summaryrefslogtreecommitdiff
path: root/classes/cpan.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'classes/cpan.bbclass')
-rw-r--r--classes/cpan.bbclass33
1 files changed, 26 insertions, 7 deletions
diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass
index 853abfd1b3..24e0c6e326 100644
--- a/classes/cpan.bbclass
+++ b/classes/cpan.bbclass
@@ -1,20 +1,39 @@
-FILES_${PN} += '${libdir}/perl5'
+#
+# 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)}"
+
+NATIVE_INSTALL_WORKS = "1"
cpan_do_configure () {
- perl Makefile.PL
+ yes '' | perl Makefile.PL ${EXTRA_CPANFLAGS}
if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
- . ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh
- sed -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:; s:\(SITEARCHEXP = \).*:\1${sitearchexp}:; s:\(INSTALLVENDORLIB = \).*:\1${D}${libdir}/perl5:; s:\(INSTALLVENDORARCH = \).*:\1${D}${libdir}/perl5:" < Makefile > Makefile.new
- mv Makefile.new Makefile
+ . ${STAGING_LIBDIR}/perl/config.sh
+ sed -i -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:" \
+ -e "s:\(SITEARCHEXP = \).*:\1${sitearchexp}:" \
+ -e "s:\(INSTALLVENDORLIB = \).*:\1${D}${datadir}/perl5:" \
+ -e "s:\(INSTALLVENDORARCH = \).*:\1${D}${libdir}/perl5:" \
+ -e "s:\(LDDLFLAGS.*\)${STAGING_LIBDIR_NATIVE}:\1${STAGING_LIBDIR}:" \
+ Makefile
fi
}
cpan_do_compile () {
- oe_runmake PASTHRU_INC="${CFLAGS}"
+ oe_runmake PASTHRU_INC="${CFLAGS}" CCFLAGS="${CFLAGS}" LD="${CCLD}"
}
cpan_do_install () {
- oe_runmake install_vendor
+ oe_runmake DESTDIR="${D}" install_vendor
}
EXPORT_FUNCTIONS do_configure do_compile do_install