Without these gcc would be used which resolves to /usr/bin/gcc and one gets an intel exe. This showed up with libparams-validate-perl and libdatetime-perl The LDFLAGS are added to resolve the GNU_HASH QA error
Signed-off-by: Frans Meulenbroeks <[email protected]> --- classes/cpan_build.bbclass | 1 + classes/poky/cpan-base.bbclass | 42 ++++++++++++++++++++++++++++++++++++++++ classes/poky/cpan.bbclass | 38 ++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 0 deletions(-) create mode 100644 classes/poky/cpan-base.bbclass create mode 100644 classes/poky/cpan.bbclass diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass index d1bbc4f..070e061 100644 --- a/classes/cpan_build.bbclass +++ b/classes/cpan_build.bbclass @@ -26,6 +26,7 @@ cpan_build_do_configure () { # build for target . ${STAGING_LIBDIR}/perl/config.sh perl Build.PL --installdirs vendor \ + --config cc="${CC} ${LDFLAGS}" --config ld="${CCLD} ${LDFLAGS}" \ --destdir ${D} \ --install_path lib="${datadir}/perl5" \ --install_path arch="${libdir}/perl5" \ diff --git a/classes/poky/cpan-base.bbclass b/classes/poky/cpan-base.bbclass new file mode 100644 index 0000000..3175248 --- /dev/null +++ b/classes/poky/cpan-base.bbclass @@ -0,0 +1,42 @@ +# +# cpan-base providers various perl related information needed for building +# cpan modules +# +FILES_${PN} += "${libdir}/perl5 ${datadir}/perl5" + +DEPENDS += "$...@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}" +RDEPENDS += "$...@["perl", ""][(bb.data.inherits_class('native', d))]}" + +# Determine the staged version of perl from the perl configuration file +def get_perl_version(d): + import re + cfg = bb.data.expand('${STAGING_LIBDIR}/perl/config.sh', d) + try: + f = open(cfg, 'r') + except IOError: + return None + l = f.readlines(); + f.close(); + r = re.compile("^version='(\d*\.\d*\.\d*)'") + for s in l: + m = r.match(s) + if m: + return m.group(1) + return None + +# Determine where the library directories are +def perl_get_libdirs(d): + libdir = bb.data.getVar('libdir', d, 1) + libdirs = libdir + '/*/*/perl5' + return libdirs + +def is_target(d): + if not bb.data.inherits_class('native', d): + return "yes" + return "no" + +PERLLIBDIRS = "$...@perl_get_libdirs(d)}" + +FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \ + ${PERLLIBDIRS}/auto/*/*/.debug \ + ${PERLLIBDIRS}/auto/*/*/*/.debug" diff --git a/classes/poky/cpan.bbclass b/classes/poky/cpan.bbclass new file mode 100644 index 0000000..513f0b3 --- /dev/null +++ b/classes/poky/cpan.bbclass @@ -0,0 +1,38 @@ +# +# This is for perl modules that use the old Makefile.PL build system +# +inherit cpan-base + +EXTRA_CPANFLAGS ?= "" + +# 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_DATADIR}/perl/$...@get_perl_version(d)}" +export PERL_ARCHLIB = "${STAGING_LIBDIR}/perl/$...@get_perl_version(d)}" + +cpan_do_configure () { + export PERL5LIB="${PERL_ARCHLIB}" + yes '' | perl 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 -- 1.7.1 _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
