[ar71xx] improve MZK-W300NH support (thanks to Kazuki Shimada for the board)
[openwrt/svn-archive/archive.git] / scripts / kconfig.pl
index d22af9fe62b352dca052b89c3312462f0ffb47b9..c76e2978b2092e28b4bb5606b82a37ea87f664a2 100755 (executable)
@@ -9,7 +9,8 @@
 use warnings;
 use strict;
 
-my @arg = @ARGV;
+my @arg;
+my $PREFIX = "CONFIG_";
 
 sub load_config($) {
        my $file = shift;
@@ -18,11 +19,11 @@ sub load_config($) {
        open FILE, "$file" or die "can't open file";
        while (<FILE>) {
                chomp;
-               /^CONFIG_(.+?)=(.+)/ and do {
+               /^$PREFIX(.+?)=(.+)/ and do {
                        $config{$1} = $2;
                        next;
                };
-               /^# CONFIG_(.+?) is not set/ and do {
+               /^# $PREFIX(.+?) is not set/ and do {
                        $config{$1} = "#undef";
                        next;
                };
@@ -93,10 +94,10 @@ sub config_sub($$) {
 sub print_cfgline($$) {
        my $name = shift;
        my $val = shift;
-       if ($val eq '#undef') {
-               print "# CONFIG_$name is not set\n";
+       if ($val eq '#undef' or $val eq 'n') {
+               print "# $PREFIX$name is not set\n";
        } else {
-               print "CONFIG_$name=$val\n";
+               print "$PREFIX$name=$val\n";
        }
 }
 
@@ -143,6 +144,18 @@ sub parse_expr($) {
        }
 }
 
+while (@ARGV > 0 and $ARGV[0] =~ /^-\w+$/) {
+       my $cmd = shift @ARGV;
+       if ($cmd =~ /^-n$/) {
+               $PREFIX = "";
+       } elsif ($cmd =~ /^-p$/) {
+               $PREFIX = shift @ARGV;
+       } else {
+               die "Invalid option: $cmd\n";
+       }
+}
+@arg = @ARGV;
+
 my $pos = 0;
 dump_config(parse_expr(\$pos));
 die "Parse error" if ($arg[$pos]);