scripts/package-metadata.pl: fix overriding conditional dependencies with conditional select

Conditional dependencies use the '(!cond) || dep' syntax, whereas
conditional select uses 'dep if cond'.
Add an extra check to suppress emitting a conditional if an equal
conditional select already exists.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2017-01-11 18:22:56 +01:00
parent 90f0ca0ddc
commit cfd83555fc

View file

@ -215,11 +215,13 @@ sub mconf_depends {
$flags =~ /@/ or $depend = "PACKAGE_$depend"; $flags =~ /@/ or $depend = "PACKAGE_$depend";
} }
} }
if ($condition) { if ($condition) {
if ($m =~ /select/) { if ($m =~ /select/) {
next if $depend eq $condition; next if $depend eq $condition;
$depend = "$depend if $condition"; $depend = "$depend if $condition";
} else { } else {
next if $dep->{"$depend if $condition"};
$depend = "!($condition) || $depend" unless $dep->{$condition} eq 'select'; $depend = "!($condition) || $depend" unless $dep->{$condition} eq 'select';
} }
} }