1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-27 17:55:55 +02:00

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.



git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6293 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2007-02-12 23:50:40 +00:00
parent 80d27b5e3c
commit df68e5dff3
2 changed files with 35 additions and 15 deletions

View File

@ -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:=\

View File

@ -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";