diff options
-rw-r--r-- | v4l/Makefile | 6 | ||||
-rwxr-xr-x | v4l/scripts/make_kconfig.pl | 46 | ||||
-rwxr-xr-x | v4l/scripts/make_noconfig.pl | 5 |
3 files changed, 45 insertions, 12 deletions
diff --git a/v4l/Makefile b/v4l/Makefile index c74019f45..9acafb007 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -263,11 +263,7 @@ menuconfig:: links .version ./scripts/make_noconfig.pl allyesconfig allmodconfig:: links .version - $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/conf - ./scripts/make_kconfig.pl - $(KDIR)/scripts/kconfig/conf -m Kconfig - cat .config|grep -v CONFIG_DVB_AV7110_FIRMWARE >.config.new - mv .config.new .config + ./scripts/make_kconfig.pl 1 ./scripts/make_noconfig.pl ################################################# diff --git a/v4l/scripts/make_kconfig.pl b/v4l/scripts/make_kconfig.pl index b1d6f5d53..11392c32d 100755 --- a/v4l/scripts/make_kconfig.pl +++ b/v4l/scripts/make_kconfig.pl @@ -4,8 +4,27 @@ use FileHandle; my %depend = (); my %minver = (); my %config = (); +my %tristate = (); my $version, $level, $sublevel; +my $force_kconfig=shift; + +sub add_bool($) +{ + my $arg=shift; + + $tristate{$arg}="bool"; + printf "Boolean:%s\n",$arg; +} + +sub add_tristate($) +{ + my $arg=shift; + + $tristate{$arg}="tristate"; + printf "Tristate:%s\n",$arg; +} + sub add_config($) { my $arg=shift; @@ -34,6 +53,7 @@ sub open_kconfig($$) { my ($dir,$file)=@_; my $in = new FileHandle; my $skip=0; + my $key; #print "opening $file\n"; open $in,"$file"; @@ -51,9 +71,14 @@ sub open_kconfig($$) { if (m|^\s+select (.*)\n|) { check_deps ($1); } + if (m|^\s*bool\s+|) { + add_bool($key); + } + if (m|^\s*tristate\s+|) { + add_tristate($key); + } if (m|^\s*config (.*)\n|) { - my $key=$1; - + $key=$1; add_config ($1); my $min=$minver { $key }; @@ -139,9 +164,26 @@ while ( my ($key, $value) = each(%config) ) { open OUT,">Kconfig.kern"; print OUT "config MODULES\n\tboolean\n\tdefault y\n\n"; +$tristate{"MODULES"}="bool"; while ( my ($key, $value) = each(%depend) ) { print OUT "# $key with $value refs\nconfig $key\n\ttristate\n\tdefault m\n\n"; } close OUT; +if (($force_kconfig eq 1) || !open IN,".config") { + open OUT,">.config"; + while ( my ($key,$value) = each(%tristate) ) { + + if ($key eq "DVB_AV7110_FIRMWARE") { + printf OUT "CONFIG_%s=n\n",$key; + } else { + if ($value eq "tristate") { + printf OUT "CONFIG_%s=m\n",$key; + } else { + printf OUT "CONFIG_%s=y\n",$key; + } + } + } + close OUT; +} diff --git a/v4l/scripts/make_noconfig.pl b/v4l/scripts/make_noconfig.pl index 94f80a954..503653a4f 100755 --- a/v4l/scripts/make_noconfig.pl +++ b/v4l/scripts/make_noconfig.pl @@ -55,11 +55,6 @@ close IN; open OUT,">.myconfig"; while ( my ($key, $value) = each(%config) ) { - if ($key ne CONFIG_DVB_AV7110_OSD && - $key ne CONFIG_DVB_AV7110_FIRMWARE && - $value eq "y") { - $value="m"; - } printf OUT "%-44s := %s\n",$key,$value; } close OUT; |