summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Config.in2
-rw-r--r--Makefile3
-rw-r--r--package/Config.in11
-rw-r--r--package/busybox/Makefile1
-rw-r--r--package/iptables/Makefile9
-rw-r--r--package/rules.mk20
-rwxr-xr-xscripts/gen_menuconfig.pl82
-rw-r--r--target/Config.in2
8 files changed, 108 insertions, 22 deletions
diff --git a/Config.in b/Config.in
index 7e4d29e7d7..71f0568977 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 d82d6180e3..b938c241f9 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 a0961bf667..0000000000
--- 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 a5830764e5..5ccbe22514 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 56ab594174..cc7c84a0d5 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 ac9b98d74c..2ff710ac84 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 0000000000..70e31a45f5
--- /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 80e9847d62..7f07ff0ac1 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 ...)