add grub based images for x86-2.6 - still a bit hackish, but works with ext2 and...
[openwrt/staging/dedeckeh.git] / openwrt / scripts / gen_menuconfig.pl
index e62363e63038a24df1aa28b0ac562abbab8d3a36..fe013109288243cf089efbdcccba7a365447160d 100755 (executable)
@@ -13,6 +13,18 @@ my $makefile;
 my $pkg;
 my %category;
 my $cur_menu;
+my $cur_menu_dep;
+
+sub close_submenu {
+       if ($cur_menu) {
+               print "endmenu\n";
+               $cur_menu_dep and do {
+                       print "endif\n";
+                       $cur_menu_dep = undef;
+               };
+               undef $cur_menu;
+       } 
+}
 
 sub print_category($) {
        my $cat = shift;
@@ -24,12 +36,10 @@ sub print_category($) {
        foreach my $spkg (sort {uc($a) cmp uc($b)} keys %spkg) {
                foreach my $pkg (@{$spkg{$spkg}}) {
                        if ($cur_menu ne $pkg->{submenu}) {
-                               if ($cur_menu) {
-                                       print "endmenu\n";
-                                       undef $cur_menu;
-                               } 
+                               close_submenu();
                                if ($pkg->{submenu}) {
                                        $cur_menu = $pkg->{submenu};
+                                       $cur_menu_dep = $pkg->{submenudep} and print "if $cur_menu_dep\n";
                                        print "menu \"$cur_menu\"\n";
                                }
                        }
@@ -60,6 +70,7 @@ sub print_category($) {
                        $pkg->{config} and print $pkg->{config}."\n";
                }
        }
+       close_submenu();
        print "endmenu\n\n";
        
        undef $category{$cat};
@@ -84,6 +95,7 @@ while ($line = <>) {
        $line =~ /^Title: \s*(.+)\s*$/ and $pkg->{title} = $1;
        $line =~ /^Menu: \s*(.+)\s*$/ and $pkg->{menu} = $1;
        $line =~ /^Submenu: \s*(.+)\s*$/ and $pkg->{submenu} = $1;
+       $line =~ /^Submenu-Depends: \s*(.+)\s*$/ and $pkg->{submenudep} = $1;
        $line =~ /^Default: \s*(.+)\s*$/ and $pkg->{default} = $1;
        $line =~ /^Depends: \s*(.+)\s*$/ and do {
                my @dep = split /\s+/, $1;