more cleanups and a new menuconfig generator
authorFelix Fietkau <nbd@openwrt.org>
Fri, 21 Apr 2006 00:12:18 +0000 (00:12 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 21 Apr 2006 00:12:18 +0000 (00:12 +0000)
SVN-Revision: 3685

openwrt/Config.in
openwrt/Makefile
openwrt/package/Config.in [deleted file]
openwrt/package/busybox/Makefile
openwrt/package/iptables/Makefile
openwrt/package/rules.mk
openwrt/scripts/gen_menuconfig.pl [new file with mode: 0755]
openwrt/target/Config.in

index 7e4d29e7d7d7b39881e05ac87c6dbc8bc2f4264a..71f05689770f64127f77e6b8efccd1f4eff6e2af 100644 (file)
@@ -34,5 +34,5 @@ config JLEVEL
            Number of jobs to run simultanesouly
 
 source "toolchain/Config.in"
-source "package/Config.in"
+source ".config.in"
 
index d82d6180e32778cf6810a21b21a64e66511fbb6e..b938c241f9f084b77c55e18188dc679751072d66 100644 (file)
@@ -50,6 +50,7 @@ endif
        done > $@
        
 .config.in: .pkginfo
+       ./scripts/gen_menuconfig.pl < $< > $@ || rm -f $@
 
 pkginfo-clean:
        -rm -f .pkginfo .config.in
@@ -63,7 +64,7 @@ scripts/config/conf: .config.in
 menuconfig: scripts/config/mconf
        $< Config.in
 
-config: scripts/config/mconf
+config: scripts/config/conf
        $< Config.in
 
 config-clean:
diff --git a/openwrt/package/Config.in b/openwrt/package/Config.in
deleted file mode 100644 (file)
index a0961bf..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-
-menu "OpenWrt Package Selection"
-
-comment "Package categories"
-
-menu "Base system"
-endmenu
-
-endmenu
-
index a5830764e5fc17b80315227570db3df0a6cf4848..5ccbe225144c63de4c8e76987ed28946c50376b7 100644 (file)
@@ -18,6 +18,7 @@ define Package/busybox
 CONFIGFILE:=config/Config.in
 SECTION:=base
 CATEGORY:=Base system
+DEFAULT:=y
 TITLE:=Core utilities for embedded Linux
 DESCRIPTION:=The Swiss Army Knife of embedded Linux.  It slices, it dices, it\\\
 makes Julian Fries.
index 56ab594174b57a9828bdceeefb65123028d664fb..cc7c84a0d57d10c658ab2fede679ec8e48950238 100644 (file)
@@ -28,6 +28,8 @@ endif
 define Package/iptables
 SECTION:=net
 CATEGORY:=Base system
+MENU:=1
+DEFAULT:=y
 TITLE:=IPv4 firewall administration tool
 URL:=http://netfilter.org/
 endef
@@ -186,10 +188,6 @@ define Package/ip6tables/install
        $(RSTRIP) $(1)
 endef
 
-$(eval $(call BuildPackage,iptables))
-$(eval $(call BuildPackage,iptables-utils))
-$(eval $(call BuildPackage,ip6tables))
-
 define BuildPlugin
 define Package/$(1)/install
        install -m0755 -d $$(1)/usr/lib/iptables
@@ -206,6 +204,8 @@ endef
 L7_INSTALL:=mkdir -p $$(1)/etc/l7-protocols; \
        $(CP) files/l7/*.pat $$(1)/etc/l7-protocols/
 
+$(eval $(call BuildPackage,iptables))
+$(eval $(call BuildPackage,iptables-utils))
 $(eval $(call BuildPlugin,iptables-mod-conntrack,$(IPT_CONNTRACK-m)))
 $(eval $(call BuildPlugin,iptables-mod-extra,$(IPT_EXTRA-m)))
 $(eval $(call BuildPlugin,iptables-mod-filter,$(IPT_FILTER-m),$(L7_INSTALL)))
@@ -214,6 +214,7 @@ $(eval $(call BuildPlugin,iptables-mod-ipopt,$(IPT_IPOPT-m)))
 $(eval $(call BuildPlugin,iptables-mod-ipsec,$(IPT_IPSEC-m)))
 $(eval $(call BuildPlugin,iptables-mod-nat,$(IPT_NAT-m)))
 $(eval $(call BuildPlugin,iptables-mod-ulog,$(IPT_ULOG-m)))
+$(eval $(call BuildPackage,ip6tables))
 
 
 $(STAGING_DIR)/usr/lib/libipq.a: $(PKG_BUILD_DIR)/.built
index ac9b98d74c49cd08adc69d74fbc9c9f67cfffbbc..2ff710ac84799a5f70bfd1dfd9c896254b88af05 100644 (file)
@@ -46,6 +46,8 @@ SOURCE:=$(patsubst $(TOPDIR)/%,%,${shell pwd})
 VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
 PKGARCH:=$(ARCH)
 PRIORITY:=optional
+DEFAULT:=
+MENU:=
 TITLE:=
 DESCRIPTION:=
 endef
@@ -96,11 +98,21 @@ endif
 IDEPEND_$(1):=$$(strip $$(DEPENDS))
 
 DUMPINFO += \
-       echo "Package: $(1)"; \
+       echo "Package: $(1)"; 
+ifneq ($(MENU),)
+DUMPINFO += \
+       echo "Menu: $(MENU)";
+endif
+ifneq ($(DEFAULT),)
+DUMPINFO += \
+       echo "Default: $(DEFAULT)";
+endif
+DUMPINFO += \
        echo "Version: $(VERSION)"; \
-       echo "Depends: $(IDEPEND_$(1))"; \
+       echo "Depends: $$(IDEPEND_$(1))"; \
+       echo "Category: $(CATEGORY)"; \
        echo "Title: $(TITLE)"; \
-       echo "$(DESCRIPTION)" | sed -e 's,\\,\n,g'; \
+       echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g'; \
        echo; \
        echo "$(URL)"; \
        echo "@@";
@@ -110,7 +122,7 @@ $$(IDIR_$(1))/CONTROL/control: $(PKG_BUILD_DIR)/.prepared
        mkdir -p $$(IDIR_$(1))/CONTROL
        echo "Package: $(1)" > $$(IDIR_$(1))/CONTROL/control
        echo "Version: $(VERSION)" >> $$(IDIR_$(1))/CONTROL/control
-       echo "Depends: $(IDEPEND_$(1))" >> $$(IDIR_$(1))/CONTROL/control
+       echo "Depends: $$(IDEPEND_$(1))" >> $$(IDIR_$(1))/CONTROL/control
        echo "Source: $(SOURCE)" >> $$(IDIR_$(1))/CONTROL/control
        echo "Section: $(SECTION)" >> $$(IDIR_$(1))/CONTROL/control
        echo "Priority: $(PRIORITY)" >> $$(IDIR_$(1))/CONTROL/control
diff --git a/openwrt/scripts/gen_menuconfig.pl b/openwrt/scripts/gen_menuconfig.pl
new file mode 100755 (executable)
index 0000000..70e31a4
--- /dev/null
@@ -0,0 +1,82 @@
+#!/usr/bin/perl
+use strict;
+
+my $src;
+my $makefile;
+my $pkg;
+my %category;
+
+sub print_category($) {
+       my $cat = shift;
+       
+       return unless $category{$cat};
+       
+       print "menu \"$cat\"\n\n";
+       my %spkg = %{$category{$cat}};
+       foreach my $spkg (sort {uc($a) cmp uc($b)} keys %spkg) {
+               foreach my $pkg (@{$spkg{$spkg}}) {
+                       my $title = $pkg->{name};
+                       my $c = (72 - length($pkg->{name}) - length($pkg->{title}));
+                       if ($c > 0) {
+                               $title .= ("." x $c). " ". $pkg->{title};
+                       }
+                       print "\t";
+                       $pkg->{menu} and print "menu";
+                       print "config PACKAGE_".$pkg->{name}."\n";
+                       print "\t\ttristate \"$title\"\n";
+                       print "\t\tdefault ".$pkg->{default}."\n";
+                       foreach my $depend (@{$pkg->{depends}}) {
+                               print "\t\tdepends PACKAGE_$depend\n";
+                       }
+                       print "\n"
+               }
+       }
+       print "endmenu\n\n";
+       
+       undef $category{$cat};
+}
+
+my $line;
+while ($line = <>) {
+       chomp $line;
+       $line =~ /^Source-Makefile: \s*(.+\/([^\/]+)\/Makefile)\s*$/ and do {
+               $makefile = $1;
+               $src = $2;
+               undef $pkg;
+       };
+       $line =~ /^Package: \s*(.+)\s*$/ and do {
+               $pkg = {};
+               $pkg->{src} = $src;
+               $pkg->{makefile} = $makefile;
+               $pkg->{name} = $1;
+               $pkg->{default} = "m if ALL";
+       };
+       $line =~ /^Version: \s*(.+)\s*$/ and $pkg->{version} = $1;
+       $line =~ /^Title: \s*(.+)\s*$/ and $pkg->{title} = $1;
+       $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;
+               $pkg->{depends} = \@dep;
+       };
+       $line =~ /^Category: \s*(.+)\s*$/ and do {
+               $pkg->{category} = $1;
+               defined $category{$1} or $category{$1} = {};
+               defined $category{$1}->{$src} or $category{$1}->{$src} = [];
+               push @{$category{$1}->{$src}}, $pkg;
+       };
+       $line =~ /^Description: \s*(.*)\s*$/ and do {
+               my $desc = $1;
+               my $line;
+               while (<>) {
+                       last if /^@@/;
+                       $desc .= $1;
+               }
+               $pkg->{description} = $desc;
+       }
+}
+
+print_category 'Base system';
+foreach my $cat (keys %category) {
+       print_category $cat;
+}
index 80e9847d6253408a2ca02499d0490e639b47c780..7f07ff0ac102923a5e6876a3667533a13c181a24 100644 (file)
@@ -69,7 +69,7 @@ config LINUX_2_6_AU1000
        bool "au1000 [2.6]"
        select mipsel
        select LINUX_2_6
-       select LINUX_PCMCIA_SUPPORT
+       select PCMCIA_SUPPORT
        help
          Build firmware for AMD Alchemy 1500 boards
          (e.g. 4G-Systems Mesh/Access Cube ...)