Menuconfig will not treat 'select FOO' as a real dependency thus if BAR depends on FOO and FOO depends on other config options, these dependencies will not be checked. To fix this, we simply emit all of FOO's depends (only real dependencies, no select) for BAR as well.

SVN-Revision: 6293
v19.07.3_mercusys_ac12_duma
Felix Fietkau 17 years ago
parent 59accbecf5
commit 218aad6e2f

@ -27,7 +27,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/ntfs-3g
TITLE:=NTFS-3G
DEPENDS:=+libfuse +fuse-utils @LINUX_2_6
DEPENDS:=+libfuse +fuse-utils
SECTION:=utils
CATEGORY:=Utilities
DESCRIPTION:=\

@ -341,6 +341,39 @@ sub package_depends($$) {
return $ret;
}
sub mconf_depends($$) {
my $depends = shift;
my $only_dep = shift;
my $res;
$depends or return;
my @depends = @$depends;
foreach my $depend (@depends) {
my $m = "depends";
$depend =~ s/^([@\+]+)//;
my $flags = $1;
my $vdep;
if ($vdep = $package{$depend}->{vdepends}) {
$depend = join("||", map { "PACKAGE_".$_ } @$vdep);
} else {
$flags =~ /\+/ and do {
next if $only_dep;
$m = "select";
# 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 $res .= mconf_depends($package{$depend}->{depends}, 1);
};
$flags =~ /@/ or $depend = "PACKAGE_$depend";
}
$res .= "\t\t$m $depend\n";
}
return $res;
}
sub print_package_config_category($) {
my $cat = shift;
my %menus;
@ -394,20 +427,7 @@ sub print_package_config_category($) {
foreach my $default (split /\s*,\s*/, $pkg->{default}) {
print "\t\tdefault $default\n";
}
foreach my $depend (@{$pkg->{depends}}) {
my $m = "depends";
$depend =~ s/^([@\+]+)//;
my $flags = $1;
my $vdep;
if ($vdep = $package{$depend}->{vdepends}) {
$depend = join("||", map { "PACKAGE_".$_ } @$vdep);
} else {
$flags =~ /@/ or $depend = "PACKAGE_$depend";
$flags =~ /\+/ and $m = "select";
}
print "\t\t$m $depend\n";
}
print mconf_depends($pkg->{depends}, 0);
print "\t\thelp\n";
print $pkg->{description};
print "\n";

Loading…
Cancel
Save