generic-poky/meta/classes/cpan_build.bbclass
Richard Purdie 240c55275e cpan_build: Fix cmaker Build.PL module builds
Certain cpan Build.PL based modules were failing to build due to
the host's config information being used instead of the targets.

This patch sets the appropriate variables to ensure the modules
get the correct configuration from the target config_heavy.pl script.

It also ensures the linker is CCLD, not LD since the LDFLAGS contain
-Wl,XXX options and build failures result if LD is used.

libencode-detect-perl is a module which tests this class extensively.

(From OE-Core rev: 7fac8bffcd250aec90c0b675aeb2bbe7896d0ae1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:42 +00:00

52 lines
1.4 KiB
Text

#
# This is for perl modules that use the new Build.PL build system
#
inherit cpan-base perlnative
# Env var which tells perl if it should use host (no) or target (yes) settings
export PERLCONFIGTARGET = "${@is_target(d)}"
export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
export LD = "${CCLD}"
#
# We also need to have built libmodule-build-perl-native for
# everything except libmodule-build-perl-native itself (which uses
# this class, but uses itself as the provider of
# libmodule-build-perl)
#
def cpan_build_dep_prepend(d):
if d.getVar('CPAN_BUILD_DEPS', True):
return ''
pn = d.getVar('PN', True)
if pn in ['libmodule-build-perl', 'libmodule-build-perl-native']:
return ''
return 'libmodule-build-perl-native '
DEPENDS_prepend = "${@cpan_build_dep_prepend(d)}"
cpan_build_do_configure () {
if [ "${@is_target(d)}" = "yes" ]; then
# build for target
. ${STAGING_LIBDIR}/perl/config.sh
fi
perl Build.PL --installdirs vendor \
--destdir ${D} \
--install_path lib="${datadir}/perl" \
--install_path arch="${libdir}/perl" \
--install_path script=${bindir} \
--install_path bin=${bindir} \
--install_path bindoc=${mandir}/man1 \
--install_path libdoc=${mandir}/man3
}
cpan_build_do_compile () {
perl Build
}
cpan_build_do_install () {
perl Build install
}
EXPORT_FUNCTIONS do_configure do_compile do_install