From bbfb0bf0beb06b534cf6b1ca7eed73340f9b624c Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Mon, 5 Jan 2009 20:02:59 +0000 Subject: If a package is part of a virtual dependency and also listed as a normal dependency ensure that the dependency is always unconditional. Such a case happens if for example a package has a build dependency and the build dependency provides a virtual install dependency of the package. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13877 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- scripts/metadata.pl | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'scripts') diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 43e5ccc6d0..f000e9db9a 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -560,7 +560,7 @@ sub gen_package_mk() { } my $hasdeps = 0; - my $depline = ""; + my %deplines; foreach my $deps (@srcdeps) { my $idx; my $condition; @@ -588,9 +588,10 @@ sub gen_package_mk() { } undef $idx if $idx =~ /^(kernel)|(base-files)$/; if ($idx) { + my $depline; next if $pkg->{src} eq $pkg_dep->{src}; next if $dep{$pkg->{src}."->".$idx}; - next if $dep{$pkg->{src}."->($dep)".$idx}; + next if $dep{$pkg->{src}."->($dep)".$idx} and $pkg_dep->{vdepends}; my $depstr; if ($pkg_dep->{vdepends}) { @@ -602,16 +603,20 @@ sub gen_package_mk() { } if ($condition) { if ($condition =~ /^!(.+)/) { - $depline .= " \$(if \$(CONFIG_$1),,$depstr)"; + $depline = "\$(if \$(CONFIG_$1),,$depstr)"; } else { - $depline .= " \$(if \$(CONFIG_$condition),$depstr)"; + $depline = "\$(if \$(CONFIG_$condition),$depstr)"; } } else { - $depline .= " $depstr"; + $depline = $depstr; + } + if ($depline) { + $deplines{$idx.$dep} = $depline; } } } } + my $depline = join(" ", values %deplines); if ($depline) { $line .= "\$(curdir)/".$pkg->{subdir}."$pkg->{src}/compile += $depline\n"; } -- cgit v1.2.3