[Buildroot] [git commit] pkg-perl: refactor perl infrastructure

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Fri Oct 2 19:56:52 UTC 2015


commit: http://git.buildroot.net/buildroot/commit/?id=2e39ffcc6aa227b619cb7fc74dd14445108d4937
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

the perl dependency of cpan module is no longer generated by scancpan,
but added at the infrastructure level

Signed-off-by: Francois Perrad <francois.perrad at gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
---
 package/pkg-perl.mk      |    8 ++++++++
 support/scripts/scancpan |   10 ++++------
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/package/pkg-perl.mk b/package/pkg-perl.mk
index 6577588..a06c068 100644
--- a/package/pkg-perl.mk
+++ b/package/pkg-perl.mk
@@ -39,7 +39,15 @@ PERL_RUN = PERL5LIB= $(HOST_DIR)/usr/bin/perl
 
 define inner-perl-package
 
+# Target packages need both the perl interpreter on the target (for
+# runtime) and the perl interpreter on the host (for
+# compilation). However, host packages only need the perl
+# interpreter on the host.
+ifeq ($(4),target)
+$(2)_DEPENDENCIES += host-perl perl
+else
 $(2)_DEPENDENCIES += host-perl
+endif
 
 #
 # Configure step. Only define it if not already defined by the package
diff --git a/support/scripts/scancpan b/support/scripts/scancpan
index a33ec8b..1835fea 100755
--- a/support/scripts/scancpan
+++ b/support/scripts/scancpan
@@ -650,11 +650,9 @@ while (my ($distname, $dist) = each %dist) {
         # the auth part is not used, because we use $(BR2_CPAN_MIRROR)
         my($filename, $directories, $suffix) = fileparse( $path, q{tar.gz}, q{tgz} );
         $directories =~ s|/$||;
-        my $dependencies = join q{ }, qw( = perl ),
-                                      map( { q{host-} . fsname( $_ ); } sort @{$deps_build{$distname}} ),
+        my $dependencies = join q{ }, map( { q{host-} . fsname( $_ ); } sort @{$deps_build{$distname}} ),
                                       map( { fsname( $_ ); } sort @{$deps_runtime{$distname}} );
-        my $host_dependencies = join q{ }, qw( = ),
-                                           map { q{host-} . fsname( $_ ); } sort( @{$deps_build{$distname}},
+        my $host_dependencies = join q{ }, map { q{host-} . fsname( $_ ); } sort( @{$deps_build{$distname}},
                                                                                   @{$deps_runtime{$distname}} );
         my $license = ref $dist->{license} eq 'ARRAY'
                     ? join q{ or }, @{$dist->{license}}
@@ -677,8 +675,8 @@ while (my ($distname, $dist) = each %dist) {
         say {$fh} qq{${brname}_VERSION = ${version}};
         say {$fh} qq{${brname}_SOURCE = ${distname}-\$(${brname}_VERSION).${suffix}};
         say {$fh} qq{${brname}_SITE = \$(BR2_CPAN_MIRROR)${directories}};
-        say {$fh} qq{${brname}_DEPENDENCIES ${dependencies}} if $need_target{$distname};
-        say {$fh} qq{HOST_${brname}_DEPENDENCIES ${host_dependencies}} if $need_host{$distname};
+        say {$fh} qq{${brname}_DEPENDENCIES = ${dependencies}} if $need_target{$distname} && $dependencies;
+        say {$fh} qq{HOST_${brname}_DEPENDENCIES = ${host_dependencies}} if $need_host{$distname} && $host_dependencies;
         say {$fh} qq{${brname}_LICENSE = ${license}} if $license && $license ne q{unknown};
         say {$fh} qq{${brname}_LICENSE_FILES = ${license_files}} if $license_files;
         say {$fh} qq{};


More information about the buildroot mailing list