standardize Makefile, remove dup description
[openwrt.git] / scripts / gen_menuconfig.pl
index c1510b0..fe01310 100755 (executable)
@@ -1,4 +1,11 @@
 #!/usr/bin/perl
+# 
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
 use strict;
 
 my $src;
@@ -6,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;
@@ -17,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";
                                }
                        }
@@ -53,6 +70,7 @@ sub print_category($) {
                        $pkg->{config} and print $pkg->{config}."\n";
                }
        }
+       close_submenu();
        print "endmenu\n\n";
        
        undef $category{$cat};
@@ -77,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;
This page took 0.023159 seconds and 4 git commands to generate.