implement target profiles in menuconfig

SVN-Revision: 5512
This commit is contained in:
Felix Fietkau 2006-11-12 05:06:56 +00:00
parent 646342f30f
commit 105a602ecf
26 changed files with 256 additions and 109 deletions

View File

@ -39,11 +39,11 @@ else
endif
export OPENWRTVERSION
ifneq ($(shell ./scripts/timestamp.pl -p tmp/.pkginfo package scripts Makefile),tmp/.pkginfo)
ifneq ($(shell ./scripts/timestamp.pl -p tmp/.pkginfo package scripts include),tmp/.pkginfo)
tmp/.pkginfo: FORCE
endif
ifneq ($(shell ./scripts/timestamp.pl -p tmp/.targetinfo target/linux scripts Makefile),tmp/.targetinfo)
ifneq ($(shell ./scripts/timestamp.pl -p tmp/.targetinfo target/linux scripts include),tmp/.targetinfo)
tmp/.targetinfo: FORCE
endif

View File

@ -6,6 +6,9 @@
#
KERNEL_BUILD:=1
# For target profile selection - the default set
DEFAULT_PACKAGES:=base-files libgcc uclibc bridge busybox dnsmasq dropbear iptables mtd ppp ppp-mod-pppoe mtd
ifeq ($(DUMP),1)
all: dumpinfo
else
@ -146,41 +149,59 @@ define BuildKernel
mostlyclean: FORCE
$(call Kernel/Clean)
ifeq ($(DUMP),1)
dumpinfo:
@echo 'Target: $(BOARD)-$(KERNEL)'
@echo 'Target-Name: $(BOARDNAME) [$(KERNEL)]'
@echo 'Target-Path: $(subst $(TOPDIR)/,,$(PWD))'
@echo 'Target-Arch: $(ARCH)'
@echo 'Target-Features: $(FEATURES)'
@echo 'Linux-Version: $(LINUX_VERSION)'
@echo 'Linux-Release: $(LINUX_RELEASE)'
@echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'
@echo 'Target-Description:'
@getvar $(call shvar,Target/Description)
@echo '@@'
@echo 'Default-Packages: $(DEFAULT_PACKAGES)'
ifneq ($(DUMPINFO),)
@$(DUMPINFO)
endif
endif
define BuildKernel
endef
endef
define Profile/Default
NAME:=
PACKAGES:=
endef
define Profile
$(eval $(call Profile/Default))
$(eval $(call Profile/$(1)))
DUMPINFO += \
echo "Target-Profile: $(1)"; \
echo "Target-Profile-Name: $(NAME)"; \
echo "Target-Profile-Packages: $(PACKAGES)";
endef
$(eval $(call shexport,Target/Description))
ifeq ($(DUMP),1)
dumpinfo:
@echo 'Target: $(BOARD)-$(KERNEL)'
@echo 'Target-Name: $(BOARDNAME) [$(KERNEL)]'
@echo 'Target-Path: $(subst $(TOPDIR)/,,$(PWD))'
@echo 'Target-Arch: $(ARCH)'
@echo 'Target-Features: $(FEATURES)'
@echo 'Linux-Version: $(LINUX_VERSION)'
@echo 'Linux-Release: $(LINUX_RELEASE)'
@echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'
@echo 'Target-Description:'
@echo "$$$(call shvar,Target/Description)"
@echo '@@'
else
download: $(DL_DIR)/$(LINUX_SOURCE)
prepare: $(LINUX_DIR)/.configured $(TMP_DIR)/.kernel.mk
compile: $(LINUX_DIR)/.modules
install: $(LINUX_DIR)/.image
download: $(DL_DIR)/$(LINUX_SOURCE)
prepare: $(LINUX_DIR)/.configured $(TMP_DIR)/.kernel.mk
compile: $(LINUX_DIR)/.modules
install: $(LINUX_DIR)/.image
clean: FORCE
clean: FORCE
rm -f $(STAMP_DIR)/.linux-compile
rm -rf $(KERNEL_BUILD_DIR)
rebuild: FORCE
rebuild: FORCE
@$(MAKE) mostlyclean
@if [ -f $(LINUX_KERNEL) ]; then \
$(MAKE) clean; \
fi
@$(MAKE) compile
endif

View File

@ -25,7 +25,6 @@ include $(INCLUDE_DIR)/package.mk
define KernelPackage/sangam-atm-annex-a
SUBMENU:=Network Devices
DEPENDS:=@LINUX_2_4_AR7 +kmod-atm
DEFAULT:=y
TITLE:=AR7 ADSL driver (Annex A)
DESCRIPTION:=The AR7 ADSL driver for Annex A
VERSION:=$(PKG_VERSION)+$(LINUX_VERSION)-$(BOARD)-$(PKG_RELEASE)

View File

@ -25,7 +25,6 @@ include $(INCLUDE_DIR)/package.mk
define KernelPackage/avalanche-cpmac
SUBMENU:=Network Devices
DEPENDS:=@LINUX_2_4_AR7 +kmod-atm
DEFAULT:=y
TITLE:=AR7 Network driver (CPMAC)
DESCRIPTION:=AR7 Network driver (CPMAC)
VERSION:=$(PKG_VERSION)+$(LINUX_VERSION)-$(BOARD)-$(PKG_RELEASE)

View File

@ -35,7 +35,6 @@ CONFIG_PACKAGE_base-files$(TARGET):=$(CONFIG_PACKAGE_base-files)
define Package/base-files$(TARGET)
SECTION:=base
CATEGORY:=Base system
DEFAULT:=y
TITLE:=Base filesystem for OpenWrt
DESCRIPTION:=\
This package contains a base filesystem and system scripts for OpenWrt.
@ -87,7 +86,6 @@ endef
define Package/libgcc
SECTION:=libs
CATEGORY:=Base system
DEFAULT:=y
DEPENDS:=@!NATIVE_TOOLCHAIN
TITLE:=GCC support library
URL:=http://gcc.gnu.org/
@ -106,7 +104,6 @@ endef
define Package/uclibc
SECTION:=libs
CATEGORY:=Base system
DEFAULT:=y
DEPENDS:=@!NATIVE_TOOLCHAIN
TITLE:=C library embedded systems
URL:=http://uclibc.org/

View File

@ -24,7 +24,6 @@ include $(INCLUDE_DIR)/package.mk
define Package/bridge
SECTION:=net
CATEGORY:=Base system
DEFAULT:=y
TITLE:=Ethernet bridging configuration utility
DESCRIPTION:=\
Manage ethernet bridging: a way to connect networks together to \\\

View File

@ -44,7 +44,6 @@ endef
define Package/kmod-brcm-wl
$(call Package/kmod-brcm-wl/Default)
DEFAULT:=y
TITLE+= (normal version)
DESCRIPTION+= (normal version).
endef
@ -57,8 +56,8 @@ endef
define Package/wlc
$(call Package/broadcom-wl/Default)
TITLE:=wl driver setup utility
DEFAULT:=y
TITLE:=Proprietary Broadcom wl driver setup utility
DESCRIPTION:=\
This package contains an utility for initializing the proprietary Broadcom \\\
wl driver.
@ -74,7 +73,8 @@ endef
define Package/nas
$(call Package/broadcom-wl/Default)
DEPENDS+= +nvram
DEPENDS+=+nvram
DEFAULT:=y
TITLE:=Proprietary Broadcom WPA/WPA2 authenticator
DESCRIPTION:=\
This package contains the proprietary WPA/WPA2 authenticator (nas) for the \\\

View File

@ -24,7 +24,6 @@ include $(INCLUDE_DIR)/package.mk
define Package/busybox
SECTION:=base
CATEGORY:=Base system
DEFAULT:=y
TITLE:=Core utilities for embedded Linux
URL:=http://busybox.net/
MENU:=1

View File

@ -24,7 +24,6 @@ include $(INCLUDE_DIR)/package.mk
define Package/dnsmasq
SECTION:=net
CATEGORY:=Base system
DEFAULT:=y
TITLE:=A lightweight DNS and DHCP server
DESCRIPTION:=\
It is intended to provide coupled DNS and DHCP service to a LAN.

View File

@ -29,7 +29,6 @@ define Package/dropbear
$(call Package/dropbear/Default)
SECTION:=net
CATEGORY:=Base system
DEFAULT:=y
TITLE:=Small SSH2 client/server
DESCRIPTION:=\
A small SSH2 server/client designed for small memory environments.

View File

@ -38,7 +38,6 @@ endef
define Package/iptables
$(call Package/iptables/Default)
DEFAULT:=y
TITLE:=IPv4 firewall administration tool
MENU:=1
endef

View File

@ -77,8 +77,8 @@ endif
define KernelPackage/madwifi
SUBMENU:=Wireless Drivers
DEFAULT:=y if LINUX_2_6_BRCM || LINUX_2_6_ARUBA || LINUX_2_4_AR531X || LINUX_2_6_XSCALE, m if ALL
TITLE:=Driver for Atheros wireless chipsets
DEPENDS:=+wireless-tools
DESCRIPTION:=\
This package contains a driver for Atheros 802.11a/b/g chipsets.
URL:=http://madwifi.org/

View File

@ -19,7 +19,6 @@ include $(INCLUDE_DIR)/package.mk
define Package/mtd
SECTION:=utils
CATEGORY:=Base system
DEFAULT:=y
TITLE:=Update utility for trx firmware images
DESCRIPTION:=\
This package contains an utility useful to upgrade from other firmware or \\\

View File

@ -30,7 +30,6 @@ define KernelPackage/nozomi
DESCRIPTION:=Option Globetrotter HSDPA driver
URL:=http://www.pharscape.org/
DEPENDS:=@LINUX_2_4
DEFAULT:=m if ALL
VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
FILES:=$(PKG_BUILD_DIR)/noz.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,70,noz)

View File

@ -18,7 +18,6 @@ include $(INCLUDE_DIR)/package.mk
define Package/nvram
SECTION:=utils
CATEGORY:=Utilities
DEFAULT:=y
DEPENDS:=@LINUX_2_4_BRCM
TITLE:=Broadcom config utility
DESCRIPTION:=\

View File

@ -33,7 +33,6 @@ endef
define Package/ppp
$(call Package/ppp/Default)
DEFAULT:=y
DEPENDS:=+kmod-ppp
TITLE:=PPP daemon
DESCRIPTION:=\
@ -44,7 +43,6 @@ endef
define Package/ppp-mod-pppoa
$(call Package/ppp/Default)
DEPENDS:=ppp +linux-atm +kmod-pppoa
DEFAULT:=y if LINUX_2_4_AR7
TITLE:=PPPoA plugin
DESCRIPTION:=\
This package contains a PPPoA (PPP over ATM) plugin for ppp.
@ -52,7 +50,6 @@ endef
define Package/ppp-mod-pppoe
$(call Package/ppp/Default)
DEFAULT:=y
DEPENDS:=ppp +kmod-pppoe
TITLE:=PPPoE plugin
DESCRIPTION:=\

View File

@ -20,7 +20,6 @@ define Package/kmod-switch
SECTION:=kernel
CATEGORY:=Kernel drivers
DEPENDS:=@LINUX_2_6_BRCM||LINUX_2_4_BRCM
DEFAULT:=y
TITLE:=Switch drivers
DESCRIPTION:=\
This package contains switch drivers for ADM6996L and BCM53XX RoboSwitch.

View File

@ -26,7 +26,6 @@ include $(INCLUDE_DIR)/package.mk
define Package/wireless-tools
SECTION:=net
CATEGORY:=Base system
DEFAULT:=y
TITLE:=Tools for manipulating Linux Wireless Extensions
DESCRIPTION:=\
This package contains a collection of tools for configuring wireless \\\

View File

@ -19,7 +19,8 @@ include $(INCLUDE_DIR)/package.mk
define Package/kmod-wlcompat/Default
SECTION:=kernel
CATEGORY:=Kernel drivers
DEPENDS:=kmod-brcm-wl
DEPENDS:=@PACKAGE_kmod-brcm-wl||PACKAGE_kmod-brcm-wl-mimo +wireless-tools
DEFAULT:=y
TITLE:=Broadcom wl wrapper module
DESCRIPTION:=\
This package contains a wrapper module, that provides Wireless Extension \\\
@ -29,7 +30,6 @@ endef
define Package/kmod-wlcompat
$(call Package/kmod-wlcompat/Default)
DEFAULT:=y
endef
define Package/kmod-wlcompat-debug

View File

@ -89,10 +89,13 @@ sub print_category($) {
if ($c > 0) {
$title .= ("." x $c). " ". $pkg->{title};
}
print "\tconfig DEFAULT_".$pkg->{name}."\n";
print "\t\tbool\n\n";
print "\t";
$pkg->{menu} and print "menu";
print "config PACKAGE_".$pkg->{name}."\n";
print "\t\ttristate \"$title\"\n";
print "\t\tdefault y if DEFAULT_".$pkg->{name}."\n";
foreach my $default (split /\s*,\s*/, $pkg->{default}) {
print "\t\tdefault $default\n";
}

View File

@ -10,6 +10,8 @@ use strict;
my @target;
my $target;
my $profiles;
my $profile;
sub features(@) {
my $ret;
@ -30,8 +32,11 @@ sub features(@) {
while (<>) {
chomp;
/^Target:\s*((.+)-(\d+\.\d+))\s*$/ and do {
my $conf = uc $3.'_'.$2;
$conf =~ tr/\.-/__/;
$target = {
id => $1,
conf => $conf,
board => $2,
kernel => $3
};
@ -56,6 +61,22 @@ while (<>) {
/^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1;
/^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1;
/^Linux-Kernel-Arch:\s*(.+)\s*$/ and $target->{karch} = $1;
/^Default-Packages:\s*(.+)\s*$/ and do {
my @pkgs = split /\s+/, $1;
$target->{defaultpkgs} = \@pkgs;
};
/^Target-Profile:\s*(.+)\s*$/ and do {
$profiles = $target->{profiles} or $target->{profiles} = $profiles = [];
$profile = {
id => $1
};
push @$profiles, $profile;
};
/^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1;
/^Target-Profile-Packages:\s*(.+)\s*$/ and do {
my @pkgs = split /\s+/, $1;
$profile->{pkgs} = \@pkgs;
};
}
@target = sort {
@ -63,13 +84,18 @@ while (<>) {
} @target;
print <<EOF;
choice
prompt "Target System"
default LINUX_2_4_BRCM
EOF
foreach $target (@target) {
my $conf = uc $target->{kernel}.'_'.$target->{board};
my $features = features(@{$target->{features}});
my $help = $target->{desc};
chomp $features;
$features .= "\n";
$conf =~ tr/\.-/__/;
if ($help =~ /\w+/) {
$help =~ s/^\s*/\t /mg;
$help = "\thelp\n$help";
@ -78,7 +104,7 @@ foreach $target (@target) {
}
print <<EOF
config LINUX_$conf
config LINUX_$target->{conf}
bool "$target->{name}"
select $target->{arch}
$features$help
@ -86,3 +112,87 @@ $features$help
EOF
}
print <<EOF;
if DEVEL
config LINUX_2_6_ARM
bool "UNSUPPORTED little-endian arm platform"
depends BROKEN
select LINUX_2_6
select arm
config LINUX_2_6_CRIS
bool "UNSUPPORTED cris platform"
depends BROKEN
select LINUX_2_6
select cris
config LINUX_2_6_M68K
bool "UNSUPPORTED m68k platform"
depends BROKEN
select LINUX_2_6
select m68k
config LINUX_2_6_SH3
bool "UNSUPPORTED little-endian sh3 platform"
depends BROKEN
select LINUX_2_6
select sh3
config LINUX_2_6_SH3EB
bool "UNSUPPORTED big-endian sh3 platform"
depends BROKEN
select LINUX_2_6
select sh3eb
config LINUX_2_6_SH4
bool "UNSUPPORTED little-endian sh4 platform"
depends BROKEN
select LINUX_2_6
select sh4
config LINUX_2_6_SH4EB
bool "UNSUPPORTED big-endian sh4 platform"
depends BROKEN
select LINUX_2_6
select sh4eb
config LINUX_2_6_SPARC
bool "UNSUPPORTED sparc platform"
depends BROKEN
select LINUX_2_6
select sparc
endif
endchoice
choice
prompt "Target Profile"
EOF
foreach $target (@target) {
my $profiles;
$profiles = $target->{profiles} or $profiles = [
{
id => 'Default',
name => 'Default',
pkgs => []
}
];
foreach my $profile (@$profiles) {
print <<EOF;
config LINUX_$target->{conf}_$profile->{id}
bool "$profile->{name}"
depends LINUX_$target->{conf}
EOF
foreach my $pkg (@{$target->{defaultpkgs}}, @{$profile->{pkgs}}) {
print "\tselect DEFAULT_$pkg\n";
}
print "\n";
}
}
print "endchoice\n";

View File

@ -1,64 +1,5 @@
choice
prompt "Target System"
default LINUX_2_4_BRCM
source "tmp/.config-target.in"
if DEVEL
config LINUX_2_6_ARM
bool "UNSUPPORTED little-endian arm platform"
depends BROKEN
select LINUX_2_6
select arm
config LINUX_2_6_CRIS
bool "UNSUPPORTED cris platform"
depends BROKEN
select LINUX_2_6
select cris
config LINUX_2_6_M68K
bool "UNSUPPORTED m68k platform"
depends BROKEN
select LINUX_2_6
select m68k
config LINUX_2_6_SH3
bool "UNSUPPORTED little-endian sh3 platform"
depends BROKEN
select LINUX_2_6
select sh3
config LINUX_2_6_SH3EB
bool "UNSUPPORTED big-endian sh3 platform"
depends BROKEN
select LINUX_2_6
select sh3eb
config LINUX_2_6_SH4
bool "UNSUPPORTED little-endian sh4 platform"
depends BROKEN
select LINUX_2_6
select sh4
config LINUX_2_6_SH4EB
bool "UNSUPPORTED big-endian sh4 platform"
depends BROKEN
select LINUX_2_6
select sh4eb
config LINUX_2_6_SPARC
bool "UNSUPPORTED sparc platform"
depends BROKEN
select LINUX_2_6
select sparc
endif
endchoice
# Kernel/Hardware features
config LINUX_2_4

View File

@ -10,6 +10,7 @@ ARCH:=mipsel
BOARD:=ar7
BOARDNAME:=TI AR7
FEATURES:=atm squashfs jffs2
DEFAULT_PACKAGES += kmod-avalanche-cpmac
define Target/Description
Build firmware images for TI AR7 based routers (w.g. Linksys WAG54G v2)
@ -20,4 +21,23 @@ LINUX_RELEASE:=1
LINUX_KERNEL_MD5SUM:=38f4d0830e95a20f4bfed17622d5557c
include $(INCLUDE_DIR)/kernel-build.mk
define Profile/AnnexA
NAME:=ADSL Annex A (default)
PACKAGES:=kmod-sangam-atm-annex-a ppp-mod-pppoa
endef
$(eval $(call Profile,AnnexA))
define Profile/AnnexB
NAME:=ADSL Annex B
PACKAGES:=kmod-sangam-atm-annex-b ppp-mod-pppoa
endef
$(eval $(call Profile,AnnexB))
define Profile/None
NAME:=No ADSL
PACKAGES:=
endef
$(eval $(call Profile,None))
$(eval $(call BuildKernel))

View File

@ -10,6 +10,7 @@ ARCH:=mips
BOARD:=aruba
BOARDNAME:=Aruba
FEATURES:=jffs2 pci usb
DEFAULT_PACKAGES += kmod-madwifi
define Target/Description
Build firmware images for Aruba boards

View File

@ -10,6 +10,7 @@ ARCH:=mipsel
BOARD:=brcm
BOARDNAME:=Broadcom BCM947xx/953xx
FEATURES:=pci usb pcmcia squashfs jffs2
DEFAULT_PACKAGES += kmod-switch nvram
define Target/Description
Build firmware images for Broadcom based routers
@ -26,4 +27,59 @@ LINUX_KERNEL_MD5SUM:=38f4d0830e95a20f4bfed17622d5557c
include $(INCLUDE_DIR)/kernel-build.mk
define Profile/Broadcom
NAME:=Generic, Broadcom WiFi (default)
PACKAGES:=kmod-brcm-wl
endef
$(eval $(call Profile,Broadcom))
define Profile/BroadcomMimo
NAME:=Generic, Broadcom WiFi (MIMO)
PACKAGES:=kmod-brcm-wl-mimo
endef
$(eval $(call Profile,BroadcomMimo))
define Profile/Atheros
NAME:=Generic, Atheros WiFi
PACKAGES:=kmod-madwifi
endef
$(eval $(call Profile,Atheros))
define Profile/None
NAME:=Generic, No WiFi
PACKAGES:=
endef
$(eval $(call Profile,None))
define Profile/WRT54G3G
NAME:=Linksys WRT54G3G
PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-pcmcia-core kmod-pcmcia-serial kmod-nozomi comgt
endef
$(eval $(call Profile,WRT54G3G))
define Profile/WL500G
NAME:=ASUS WL-500g
PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-lp
endef
$(eval $(call Profile,WL500G))
define Profile/WL500GD
NAME:=ASUS WL-500g Deluxe
PACKAGES:=kmod-usb-core kmod-usb-uhci kmod-usb2
endef
$(eval $(call Profile,WL500GD))
define Profile/WL500GP
NAME:=ASUS WL-500g Premium
PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2
endef
$(eval $(call Profile,WL500GP))
define Profile/WLHDD
NAME:=WL-HDD
PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-ide-core kmod-ide-pdc202xx
endef
$(eval $(call Profile,WLHDD))
$(eval $(call BuildKernel))

View File

@ -10,6 +10,7 @@ ARCH:=mipsel
BOARD:=brcm
BOARDNAME:=Broadcom BCM947xx/953xx
FEATURES:=pci usb pcmcia squashfs jffs2
DEFAULT_PACKAGES += kmod-switch
define Target/Description
Build firmware images for Broadcom based routers
@ -26,4 +27,16 @@ LINUX_KERNEL_MD5SUM:=37ddefe96625502161f075b9d907f21e
include $(INCLUDE_DIR)/kernel-build.mk
define Profile/Atheros
NAME:=Atheros WiFi (default)
PACKAGES:=kmod-madwifi
endef
$(eval $(call Profile,Atheros))
define Profile/None
NAME:=No WiFi
PACKAGES:=
endef
$(eval $(call Profile,None))
$(eval $(call BuildKernel))