From: Jamie Lenehan Date: Tue, 26 Sep 2006 07:45:40 +0000 (+0000) Subject: cpan_build.bbclass: The existing cpan.bbclass works for perl modules that X-Git-Tag: Release-2010-05/1~9453^2~705 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=189af8b6bb6ac246141051e204accacaf70c1231;p=openembedded.git cpan_build.bbclass: The existing cpan.bbclass works for perl modules that uses the old Makefile.PL based build ssytem. This class is for perl modules that use the new Build.PL based build system (not widely used yet but starting to appear). Again this use site_perl instead of vendor_perl since vender_perl is not being setup by the perl build. --- diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass new file mode 100644 index 0000000000..b61a009eed --- /dev/null +++ b/classes/cpan_build.bbclass @@ -0,0 +1,44 @@ +INHIBIT_NATIVE_STAGE_INSTALL = "1" +FILES_${PN} += '${libdir}/perl5' + +def is_crosscompiling(d): + import bb + if not bb.data.inherits_class('native', d): + return "yes" + return "no" + +cpan_build_do_configure () { + if [ ${@is_crosscompiling(d)} == "yes" ]; then + # build for target + . ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh + perl Build.PL --installdirs vendor \ + --destdir ${D} \ + --install_path lib="${libdir}/perl5/site_perl/${version}" \ + --install_path arch="${libdir}/perl5/site_perl/${version}/${TARGET_SYS}" \ + --install_path script=${bindir} \ + --install_path bin=${bindir} \ + --install_path bindoc=${mandir}/man1 \ + --install_path libdoc=${mandir}/man3 + else + # build for host + perl Build.PL --installdirs site + fi +} + +cpan_build_do_compile () { + perl Build +} + +cpan_build_do_install () { + if [ ${@is_crosscompiling(d)} == "yes" ]; then + perl Build install + fi +} + +do_stage_append () { + if [ ${@is_crosscompiling(d)} == "no" ]; then + perl Build install + fi +} + +EXPORT_FUNCTIONS do_configure do_compile do_install