From 096afa4e695916a8068c82af6807f9b6de587c38 Mon Sep 17 00:00:00 2001 From: nbd Date: Fri, 21 Apr 2006 00:12:18 +0000 Subject: [PATCH] more cleanups and a new menuconfig generator git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@3685 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- Config.in | 2 +- Makefile | 3 +- package/Config.in | 11 ------ package/busybox/Makefile | 1 + package/iptables/Makefile | 9 +++-- package/rules.mk | 20 ++++++++-- scripts/gen_menuconfig.pl | 82 +++++++++++++++++++++++++++++++++++++++ target/Config.in | 2 +- 8 files changed, 108 insertions(+), 22 deletions(-) delete mode 100644 package/Config.in create mode 100755 scripts/gen_menuconfig.pl diff --git a/Config.in b/Config.in index 7e4d29e7d..71f056897 100644 --- a/Config.in +++ b/Config.in @@ -34,5 +34,5 @@ config JLEVEL Number of jobs to run simultanesouly source "toolchain/Config.in" -source "package/Config.in" +source ".config.in" diff --git a/Makefile b/Makefile index d82d6180e..b938c241f 100644 --- a/Makefile +++ b/Makefile @@ -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/package/Config.in b/package/Config.in deleted file mode 100644 index a0961bf66..000000000 --- a/package/Config.in +++ /dev/null @@ -1,11 +0,0 @@ -# - -menu "OpenWrt Package Selection" - -comment "Package categories" - -menu "Base system" -endmenu - -endmenu - diff --git a/package/busybox/Makefile b/package/busybox/Makefile index a5830764e..5ccbe2251 100644 --- a/package/busybox/Makefile +++ b/package/busybox/Makefile @@ -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. diff --git a/package/iptables/Makefile b/package/iptables/Makefile index 56ab59417..cc7c84a0d 100644 --- a/package/iptables/Makefile +++ b/package/iptables/Makefile @@ -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 diff --git a/package/rules.mk b/package/rules.mk index ac9b98d74..2ff710ac8 100644 --- a/package/rules.mk +++ b/package/rules.mk @@ -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/scripts/gen_menuconfig.pl b/scripts/gen_menuconfig.pl new file mode 100755 index 000000000..70e31a45f --- /dev/null +++ b/scripts/gen_menuconfig.pl @@ -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; +} diff --git a/target/Config.in b/target/Config.in index 80e9847d6..7f07ff0ac 100644 --- a/target/Config.in +++ b/target/Config.in @@ -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 ...) -- 2.20.1