X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/2fb0892917fa75590e20c32599de11880fe92c23..cee33e241a7974dc808b91a325d6777fc18280c0:/scripts/gen_menuconfig.pl diff --git a/scripts/gen_menuconfig.pl b/scripts/gen_menuconfig.pl index 3f4476a2c..c40e1caed 100755 --- a/scripts/gen_menuconfig.pl +++ b/scripts/gen_menuconfig.pl @@ -24,13 +24,22 @@ sub print_category($) { $pkg->{menu} and print "menu"; print "config PACKAGE_".$pkg->{name}."\n"; print "\t\ttristate \"$title\"\n"; - print "\t\tdefault ".$pkg->{default}."\n"; + foreach my $default (split /\s*,\s*/, $pkg->{default}) { + print "\t\tdefault $default\n"; + } foreach my $depend (@{$pkg->{depends}}) { - print "\t\tdepends PACKAGE_$depend\n"; + my $m = "depends"; + $depend =~ s/^([@\+])//; + my $flags = $1; + $flags =~ /@/ or $depend = "PACKAGE_$depend"; + $flags =~ /\+/ and $m = "select"; + print "\t\t$m $depend\n"; } print "\t\thelp\n"; print $pkg->{description}; - print "\n" + print "\n"; + + $pkg->{config} and print $pkg->{config}."\n"; } } print "endmenu\n\n"; @@ -58,7 +67,7 @@ while ($line = <>) { $line =~ /^Menu: \s*(.+)\s*$/ and $pkg->{menu} = $1; $line =~ /^Default: \s*(.+)\s*$/ and $pkg->{default} = $1; $line =~ /^Depends: \s*(.+)\s*$/ and do { - my @dep = split /,\s*/, $1; + my @dep = split /\s+/, $1; $pkg->{depends} = \@dep; }; $line =~ /^Category: \s*(.+)\s*$/ and do { @@ -75,6 +84,15 @@ while ($line = <>) { $desc .= "\t\t$line"; } $pkg->{description} = $desc; + }; + $line =~ /^Config: \s*(.*)\s*$/ and do { + my $conf = "$1\n"; + my $line; + while ($line = <>) { + last if $line =~ /^@@/; + $conf .= "$line"; + } + $pkg->{config} = $conf; } }