implement target profiles in menuconfig
authorFelix Fietkau <nbd@openwrt.org>
Sun, 12 Nov 2006 05:06:56 +0000 (05:06 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 12 Nov 2006 05:06:56 +0000 (05:06 +0000)
SVN-Revision: 5512

26 files changed:
Makefile
include/kernel-build.mk
package/ar7-atm/Makefile
package/ar7-net/Makefile
package/base-files/Makefile
package/bridge/Makefile
package/broadcom-wl/Makefile
package/busybox/Makefile
package/dnsmasq/Makefile
package/dropbear/Makefile
package/iptables/Makefile
package/madwifi/Makefile
package/mtd/Makefile
package/nozomi/Makefile
package/nvram/Makefile
package/ppp/Makefile
package/switch/Makefile
package/wireless-tools/Makefile
package/wlcompat/Makefile
scripts/gen_package_config.pl
scripts/gen_target_config.pl
target/Config.in
target/linux/ar7-2.4/Makefile
target/linux/aruba-2.6/Makefile
target/linux/brcm-2.4/Makefile
target/linux/brcm-2.6/Makefile

index e5e1f6f..eed9335 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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
 
index e491e48..35149d7 100644 (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
 
 
index 6ef3c26..25ef372 100644 (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)
index a8423a3..fbcdf64 100644 (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)
index ea4159d..5af1414 100644 (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/
index c186c8e..07149fd 100644 (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 \\\
index 3ef4bcf..1b39642 100644 (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 \\\
index 05174a3..cc34737 100644 (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
index d7e5f18..d0beeb6 100644 (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.
index 546facf..1f4e47d 100644 (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.
index ee0c094..5fb069f 100644 (file)
@@ -38,7 +38,6 @@ endef
 
 define Package/iptables
   $(call Package/iptables/Default)
-  DEFAULT:=y
   TITLE:=IPv4 firewall administration tool
   MENU:=1
 endef
index 6fa682b..2d952d1 100644 (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/
index b3edb7b..2a27f0f 100644 (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 \\\
index 5b879de..a6b9c00 100644 (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)
index 1fd82cd..ab33c11 100644 (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:=\
index 80c6f5a..7d05db0 100644 (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:=\
index 75f3129..07208bc 100644 (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.
index def2a6c..f78bef9 100644 (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 \\\
index fc66c90..4a37294 100644 (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
index 9c705af..4ce117c 100755 (executable)
@@ -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";
                        }
index c0b8396..4d0d6b1 100755 (executable)
@@ -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";
index 0ed1d0c..83e2e1a 100644 (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
index f3d55da..0ecfed6 100644 (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))
index c3946e2..0a42148 100644 (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
index 7319cca..2294a05 100644 (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))
index 5992828..0c3f5f7 100644 (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))