This is intended to reduce build time for situations like the following where python and python-six and their dependencies could still be built as long as any subpackage within the srcpackage was selected regardless of the selection state of openvswitch-python
define Package/openvswitch-python ... DEPENDS:=+python +python-six endef Previously we work around this by specifying the dependency as +PACKAGE_openvswitch-python:python, which is unintuitive Signed-off-by: Yousong Zhou <yszhou4t...@gmail.com> --- scripts/package-metadata.pl | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl index 53bb45a..b827154 100755 --- a/scripts/package-metadata.pl +++ b/scripts/package-metadata.pl @@ -382,6 +382,7 @@ sub gen_package_mk() { my %deplines = ('' => {}); foreach my $pkg (@{$src->{packages}}) { + my @pkgdeplines; foreach my $dep (@{$pkg->{depends}}) { next if ($dep =~ /@/); @@ -410,10 +411,17 @@ sub gen_package_mk() { } my $depline = get_conditional_dep($condition, $depstr); if ($depline) { - $deplines{''}{$depline}++; + push @pkgdeplines, $depline; } } } + if (@pkgdeplines) { + my $depstr = join(' ', @pkgdeplines); + if ($depstr) { + my $depline = get_conditional_dep('PACKAGE_'.$pkg->{name}, $depstr); + $deplines{''}{$depline}++; + } + } my $config = ''; $config = sprintf '$(CONFIG_PACKAGE_%s)', $pkg->{name} unless $pkg->{buildonly}; @@ -486,8 +494,7 @@ sub gen_package_mk() { } foreach my $suffix (sort keys %deplines) { - my $depline = join(" ", sort keys %{$deplines{$suffix}}); - if ($depline) { + for my $depline (sort keys %{$deplines{$suffix}}) { $line .= sprintf "\$(curdir)/%s/compile += %s\n", $src->{path}.$suffix, $depline; } } -- 1.8.3.1 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev