* For native modules DEPEND on perl-native and for others DEPEND on perl (which in turn depends on perl-native) rather then always depending on both perl and perl-native. * Only RDEPEND for non-native modules rather then both native and non-native. These changes are to allow you to build native modules without have to build perl. Previously the dependencies would result in perl being built even though it didn't actually need to. Thanks to hrw for pointing out what was happening here. Revision: 399705dfa7f6a6fd87366a6c0b1058354a5d4312 Ancestor: 5f43096a239a7ac66c7046feb414e8279db8f4bc Author: lenehan@openembedded.org Date: 2007-05-30T22:10:32 Branch: org.openembedded.dev Modified files: classes/cpan-base.bbclass git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3280 311d38ba-8fff-0310-9ca6-ca027cbcb966
56 lines
1.4 KiB
Text
56 lines
1.4 KiB
Text
#
|
|
# 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 os, bb, re
|
|
cfg = bb.data.expand('${STAGING_DIR}/${HOST_SYS}/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
|
|
|
|
# Only 5.8.7 and 5.8.4 existed at the time we moved to the new layout
|
|
def is_new_perl(d):
|
|
ver = get_perl_version(d)
|
|
if ver == "5.8.4" or ver == "5.8.7":
|
|
return "no"
|
|
return "yes"
|
|
|
|
# Determine where the library directories are
|
|
def perl_get_libdirs(d):
|
|
import bb
|
|
libdir = bb.data.getVar('libdir', d, 1)
|
|
if is_new_perl(d) == "yes":
|
|
libdirs = libdir + '/perl5'
|
|
else:
|
|
libdirs = libdir + '/*/*/perl5'
|
|
return libdirs
|
|
|
|
def is_target(d):
|
|
import bb
|
|
if not bb.data.inherits_class('native', d):
|
|
return "yes"
|
|
return "no"
|
|
|
|
IS_NEW_PERL = "${@is_new_perl(d)}"
|
|
PERLLIBDIRS = "${@perl_get_libdirs(d)}"
|
|
|
|
FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
|
|
${PERLLIBDIRS}/auto/*/*/.debug \
|
|
${PERLLIBDIRS}/auto/*/*/*/.debug"
|