aboutsummaryrefslogtreecommitdiffstats
path: root/classes
diff options
context:
space:
mode:
authorJamie Lenehan <lenehan@twibble.org>2006-09-26 07:45:40 +0000
committerJamie Lenehan <lenehan@twibble.org>2006-09-26 07:45:40 +0000
commit189af8b6bb6ac246141051e204accacaf70c1231 (patch)
treec68541b094a2d542ba7a38dec755e4f0216bae23 /classes
parent20ceec866f55b195c18a433a8afe9a962bcdc102 (diff)
downloadopenembedded-189af8b6bb6ac246141051e204accacaf70c1231.tar.gz
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.
Diffstat (limited to 'classes')
-rw-r--r--classes/cpan_build.bbclass44
1 files changed, 44 insertions, 0 deletions
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