|
|
@@ -457,28 +457,38 @@ sub mconf_depends {
|
|
|
$depend = $2;
|
|
|
}
|
|
|
next if $package{$depend} and $package{$depend}->{buildonly};
|
|
|
- if ($vdep = $package{$depend}->{vdepends}) {
|
|
|
- $depend = join("||", map { "PACKAGE_".$_ } @$vdep);
|
|
|
- } else {
|
|
|
- $flags =~ /\+/ and do {
|
|
|
- # Menuconfig will not treat 'select FOO' as a real dependency
|
|
|
- # thus if FOO depends on other config options, these dependencies
|
|
|
- # will not be checked. To fix this, we simply emit all of FOO's
|
|
|
- # depends here as well.
|
|
|
- $package{$depend} and push @t_depends, [ $package{$depend}->{depends}, $condition ];
|
|
|
-
|
|
|
- $m = "select";
|
|
|
- next if $only_dep;
|
|
|
- };
|
|
|
- $flags =~ /@/ or $depend = "PACKAGE_$depend";
|
|
|
- if ($condition) {
|
|
|
- if ($m =~ /select/) {
|
|
|
- next if $depend eq $condition;
|
|
|
- $depend = "$depend if $condition";
|
|
|
- } else {
|
|
|
- $depend = "!($condition) || $depend" unless $dep->{$condition} eq 'select';
|
|
|
+ if ($flags =~ /\+/) {
|
|
|
+ if ($vdep = $package{$depend}->{vdepends}) {
|
|
|
+ my @vdeps = @$vdep;
|
|
|
+ $depend = shift @vdeps;
|
|
|
+ if (@vdeps > 1) {
|
|
|
+ $condition = '!('.join("||", map { "PACKAGE_".$_ } @vdeps).')';
|
|
|
+ } elsif (@vdeps > 0) {
|
|
|
+ $condition = '!PACKAGE_'.$vdeps[0];
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ # Menuconfig will not treat 'select FOO' as a real dependency
|
|
|
+ # thus if FOO depends on other config options, these dependencies
|
|
|
+ # will not be checked. To fix this, we simply emit all of FOO's
|
|
|
+ # depends here as well.
|
|
|
+ $package{$depend} and push @t_depends, [ $package{$depend}->{depends}, $condition ];
|
|
|
+
|
|
|
+ $m = "select";
|
|
|
+ next if $only_dep;
|
|
|
+ } else {
|
|
|
+ if ($vdep = $package{$depend}->{vdepends}) {
|
|
|
+ $depend = join("||", map { "PACKAGE_".$_ } @$vdep);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $flags =~ /@/ or $depend = "PACKAGE_$depend";
|
|
|
+ if ($condition) {
|
|
|
+ if ($m =~ /select/) {
|
|
|
+ next if $depend eq $condition;
|
|
|
+ $depend = "$depend if $condition";
|
|
|
+ } else {
|
|
|
+ $depend = "!($condition) || $depend" unless $dep->{$condition} eq 'select';
|
|
|
+ }
|
|
|
}
|
|
|
$dep->{$depend} =~ /select/ or $dep->{$depend} = $m;
|
|
|
}
|