generic-poky/meta/classes/cpan.bbclass
Nitin A Kamble d52b9ff86d cpan.bbclass: add a new parameter EXTRA_PERLFLAGS
We use host perl while building target perl modules. When some of the
prebuilt perl modules such as scalar::util are used in the build process
directly or indirectly, perl needs to load the arch specific .so library
file. If perl can not find the .so library files, then perl
tries to use the target pm files which ends up in circular perl module
depedancy causing build time perl invocation to fail.

Adding this new parameter viz EXTRA_PERLFLAGS to cpan.bbclass allows perl
module recipes to specify the location of such host .so files for hostperl,
so that build time invocation of perl does not fail.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2011-01-12 00:55:48 -08:00

40 lines
1.2 KiB
Text

#
# This is for perl modules that use the old Makefile.PL build system
#
inherit cpan-base
EXTRA_CPANFLAGS ?= ""
EXTRA_PERLFLAGS ?= ""
# Env var which tells perl if it should use host (no) or target (yes) settings
export PERLCONFIGTARGET = "${@is_target(d)}"
# Env var which tells perl where the perl include files are
export PERL_INC = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}/CORE"
export PERL_LIB = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}"
export PERL_ARCHLIB = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}"
cpan_do_configure () {
export PERL5LIB="${PERL_ARCHLIB}"
yes '' | perl ${EXTRA_PERLFLAGS} Makefile.PL ${EXTRA_CPANFLAGS}
if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
. ${STAGING_LIBDIR}/perl/config.sh
# Use find since there can be a Makefile generated for each Makefile.PL
for f in `find -name Makefile.PL`; do
f2=`echo $f | sed -e 's/.PL//'`
sed -i -e "s:\(PERL_ARCHLIB = \).*:\1${PERL_ARCHLIB}:" \
$f2
done
fi
}
cpan_do_compile () {
oe_runmake PASTHRU_INC="${CFLAGS}" CCFLAGS="${CFLAGS}" LD="${CCLD}"
}
cpan_do_install () {
oe_runmake DESTDIR="${D}" install_vendor
}
EXPORT_FUNCTIONS do_configure do_compile do_install