diff options
author | Roman I Khimov <khimov@altell.ru> | 2010-11-22 17:23:55 +0300 |
---|---|---|
committer | Roman I Khimov <khimov@altell.ru> | 2010-12-28 22:50:40 +0300 |
commit | 264f7ab1f41cc86d29716619d67506c85223df71 (patch) | |
tree | cda0ceeaa1ef59fc6bd4e3f97e76e2ab2fade228 | |
parent | 228a1481110bf8e522baca11fef3d682648236fd (diff) | |
download | openembedded-264f7ab1f41cc86d29716619d67506c85223df71.tar.gz |
perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars
Multimachine builds race staging Config_heavy-target.pl to native directory.
Solve that by changing PERLCONFIGTARGET variable semantics, now it will
contain $TARGET_SYS. Change perl patch and stage functions accordingly.
Also, move PERLCONFIGTARGET and other target-specific variable settings from
cpan to cpan-base as I think they're also useful for cpan_build and anywhere
else cpan-base is needed.
Signed-off-by: Roman I Khimov <khimov@altell.ru>
Acked-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | classes/cpan-base.bbclass | 14 | ||||
-rw-r--r-- | classes/cpan.bbclass | 10 | ||||
-rw-r--r-- | classes/cpan_build.bbclass | 4 | ||||
-rw-r--r-- | recipes/perl/perl-5.10.1/perl-configpm-switch.patch | 6 | ||||
-rw-r--r-- | recipes/perl/perl-5.8.8/perl-configpm-switch.patch | 6 | ||||
-rw-r--r-- | recipes/perl/perl-native_5.10.1.bb | 2 | ||||
-rw-r--r-- | recipes/perl/perl-native_5.8.8.bb | 2 | ||||
-rw-r--r-- | recipes/perl/perl_5.10.1.bb | 4 | ||||
-rw-r--r-- | recipes/perl/perl_5.8.8.bb | 2 |
9 files changed, 25 insertions, 25 deletions
diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass index a04f61c340..53621edc62 100644 --- a/classes/cpan-base.bbclass +++ b/classes/cpan-base.bbclass @@ -32,11 +32,21 @@ def perl_get_libdirs(d): def is_target(d): if not bb.data.inherits_class('native', d): - return "yes" - return "no" + return bb.data.expand('${TARGET_SYS}', d) + return "" PERLLIBDIRS = "${@perl_get_libdirs(d)}" FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \ ${PERLLIBDIRS}/auto/*/*/.debug \ ${PERLLIBDIRS}/auto/*/*/*/.debug" + +# Env var which tells perl if it should use host ('') or target ('$TARGET_SYS') settings +export PERLCONFIGTARGET = "${@is_target(d)}" + +EXTRA_CPANFLAGS ?= "" + +# 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)}"
\ No newline at end of file diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass index 24e0c6e326..b81ae9ad46 100644 --- a/classes/cpan.bbclass +++ b/classes/cpan.bbclass @@ -3,16 +3,6 @@ # 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 () { diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass index d1bbc4f93e..3f52cc21cb 100644 --- a/classes/cpan_build.bbclass +++ b/classes/cpan_build.bbclass @@ -22,7 +22,7 @@ def cpan_build_deps(d): DEPENDS_prepend = "${@cpan_build_deps(d)}" cpan_build_do_configure () { - if [ ${@is_target(d)} = "yes" ]; then + if [ ${@is_target(d)} != "" ]; then # build for target . ${STAGING_LIBDIR}/perl/config.sh perl Build.PL --installdirs vendor \ @@ -44,7 +44,7 @@ cpan_build_do_compile () { } cpan_build_do_install () { - if [ ${@is_target(d)} = "yes" ]; then + if [ ${@is_target(d)} != "" ]; then perl Build install else perl Build install destdir="${WORKDIR}/image" diff --git a/recipes/perl/perl-5.10.1/perl-configpm-switch.patch b/recipes/perl/perl-5.10.1/perl-configpm-switch.patch index 1aacd35189..8becb8e33a 100644 --- a/recipes/perl/perl-5.10.1/perl-configpm-switch.patch +++ b/recipes/perl/perl-5.10.1/perl-configpm-switch.patch @@ -1,6 +1,6 @@ This patch is used for perl-native only. It enables the switching of configuration files between Config_heavy.pl and -Config_heavy-target.pl by setting the environment variables +Config_heavy-$TARGET_SYS.pl by setting the environment variables PERLCONFIGTARGET - the later containing settings for the target while the former contains those for the host. This will allow cpan.bbclass to use the settings appropriate for the native and/or target builds @@ -24,9 +24,9 @@ values would be valid for the host only. sub AUTOLOAD { - require 'Config_heavy.pl'; + my $cfgfile = 'Config_heavy.pl'; -+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes") ++ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} ne "") + { -+ $cfgfile = 'Config_heavy-target.pl'; ++ $cfgfile = "Config_heavy-$ENV{PERLCONFIGTARGET}.pl"; + } + require $cfgfile; goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; diff --git a/recipes/perl/perl-5.8.8/perl-configpm-switch.patch b/recipes/perl/perl-5.8.8/perl-configpm-switch.patch index 1aacd35189..8becb8e33a 100644 --- a/recipes/perl/perl-5.8.8/perl-configpm-switch.patch +++ b/recipes/perl/perl-5.8.8/perl-configpm-switch.patch @@ -1,6 +1,6 @@ This patch is used for perl-native only. It enables the switching of configuration files between Config_heavy.pl and -Config_heavy-target.pl by setting the environment variables +Config_heavy-$TARGET_SYS.pl by setting the environment variables PERLCONFIGTARGET - the later containing settings for the target while the former contains those for the host. This will allow cpan.bbclass to use the settings appropriate for the native and/or target builds @@ -24,9 +24,9 @@ values would be valid for the host only. sub AUTOLOAD { - require 'Config_heavy.pl'; + my $cfgfile = 'Config_heavy.pl'; -+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes") ++ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} ne "") + { -+ $cfgfile = 'Config_heavy-target.pl'; ++ $cfgfile = "Config_heavy-$ENV{PERLCONFIGTARGET}.pl"; + } + require $cfgfile; goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; diff --git a/recipes/perl/perl-native_5.10.1.bb b/recipes/perl/perl-native_5.10.1.bb index 61d57f4b2b..8b275a2750 100644 --- a/recipes/perl/perl-native_5.10.1.bb +++ b/recipes/perl/perl-native_5.10.1.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/" SECTION = "libs" LICENSE = "Artistic|GPLv1+" DEPENDS = "virtual/db-native gdbm-native" -PR = "r6" +PR = "r7" NATIVE_INSTALL_WORKS = "1" # Not tested enough diff --git a/recipes/perl/perl-native_5.8.8.bb b/recipes/perl/perl-native_5.8.8.bb index dbff4c5c40..a7f85a30e6 100644 --- a/recipes/perl/perl-native_5.8.8.bb +++ b/recipes/perl/perl-native_5.8.8.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/" SECTION = "libs" LICENSE = "Artistic|GPLv1+" DEPENDS = "virtual/db-native gdbm-native" -PR = "r21" +PR = "r22" NATIVE_INSTALL_WORKS = "1" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}" diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb index 91434e284a..387755e4da 100644 --- a/recipes/perl/perl_5.10.1.bb +++ b/recipes/perl/perl_5.10.1.bb @@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+" PRIORITY = "optional" # We need gnugrep (for -I) DEPENDS = "virtual/db perl-native grep-native" -PR = "r14" +PR = "r15" # 5.10.1 has Module::Build built-in PROVIDES += "libmodule-build-perl" @@ -211,7 +211,7 @@ do_stage() { # target config, used by cpan.bbclass to extract version information install config.sh ${STAGING_LIBDIR}/perl/ # target configuration, used by native perl when cross-compiling - install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-target.pl + install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-${TARGET_SYS}.pl # target configuration install lib/Config.pm ${STAGING_LIBDIR}/perl/${PV}/ install lib/ExtUtils/typemap ${STAGING_DATADIR}/perl/${PV}/ExtUtils/ diff --git a/recipes/perl/perl_5.8.8.bb b/recipes/perl/perl_5.8.8.bb index 69078e8b24..3e14bc34d2 100644 --- a/recipes/perl/perl_5.8.8.bb +++ b/recipes/perl/perl_5.8.8.bb @@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+" PRIORITY = "optional" # We need gnugrep (for -I) DEPENDS = "virtual/db perl-native grep-native" -PR = "r36" +PR = "r37" # Major part of version PVM = "5.8" |