aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/metadata.pl
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2009-01-05 20:02:59 +0000
committerLars-Peter Clausen <lars@metafoo.de>2009-01-05 20:02:59 +0000
commitbbfb0bf0beb06b534cf6b1ca7eed73340f9b624c (patch)
tree1d2c207aff3b85c70875d6d729c02fafa4e6635c /scripts/metadata.pl
parentc813d578fd2b83986721cd57300a12ce9d43428f (diff)
downloadupstream-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-xscripts/metadata.pl15
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";
}