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
master
Felix Fietkau 2006-04-21 00:12:18 +00:00
parent 47fe20b27a
commit 9d87977458
8 changed files with 108 additions and 22 deletions

View File

@ -34,5 +34,5 @@ config JLEVEL
Number of jobs to run simultanesouly
source "toolchain/Config.in"
source "package/Config.in"
source ".config.in"

View 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:

View File

@ -1,11 +0,0 @@
#
menu "OpenWrt Package Selection"
comment "Package categories"
menu "Base system"
endmenu
endmenu

View 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.

View 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

View 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

82
scripts/gen_menuconfig.pl Executable file
View File

@ -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;
}

View 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 ...)