diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-07-18 11:31:01 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-07-18 11:31:01 +0000 |
commit | bf9b79b20073d8301fe15e8f5d5c7c8b282730e0 (patch) | |
tree | 88d4d876b06115bb72f544ca0f7dd6280ad749eb /scripts/config.pl | |
parent | 61b304e36d3db6ad05af6b830eb57273181b1004 (diff) |
dynamically enable/disable kernel config options for kmod packages based on build system config
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8026 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'scripts/config.pl')
-rwxr-xr-x | scripts/config.pl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/scripts/config.pl b/scripts/config.pl index 2f4a968ea7..53b8f11025 100755 --- a/scripts/config.pl +++ b/scripts/config.pl @@ -49,15 +49,17 @@ sub config_and($$) { } -sub config_add($$) { +sub config_add($$$) { my $cfg1 = shift; my $cfg2 = shift; + my $mod_plus = shift; my %config; for ($cfg1, $cfg2) { my %cfg = %$_; foreach my $config (keys %cfg) { + next if $mod_plus and $config{$config} and $config{$config} eq "y"; $config{$config} = $cfg{$config}; } } @@ -123,7 +125,11 @@ sub parse_expr($) { } elsif ($arg =~ /^\+/) { my $arg1 = parse_expr($pos); my $arg2 = parse_expr($pos); - return config_add($arg1, $arg2); + return config_add($arg1, $arg2, 0); + } elsif ($arg =~ /^m\+/) { + my $arg1 = parse_expr($pos); + my $arg2 = parse_expr($pos); + return config_add($arg1, $arg2, 1); } elsif ($arg eq '>') { my $arg1 = parse_expr($pos); my $arg2 = parse_expr($pos); |