diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2009-01-05 20:02:59 +0000 |
---|---|---|
committer | Lars-Peter Clausen <lars@metafoo.de> | 2009-01-05 20:02:59 +0000 |
commit | bbfb0bf0beb06b534cf6b1ca7eed73340f9b624c (patch) | |
tree | 1d2c207aff3b85c70875d6d729c02fafa4e6635c /scripts/metadata.pl | |
parent | c813d578fd2b83986721cd57300a12ce9d43428f (diff) | |
download | upstream-bbfb0bf0beb06b534cf6b1ca7eed73340f9b624c.tar.gz upstream-bbfb0bf0beb06b534cf6b1ca7eed73340f9b624c.tar.bz2 upstream-bbfb0bf0beb06b534cf6b1ca7eed73340f9b624c.zip |
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
Diffstat (limited to 'scripts/metadata.pl')
-rwxr-xr-x | scripts/metadata.pl | 15 |
1 files changed, 10 insertions, 5 deletions
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"; } |