bcm43xx-mac80211 fixes:
authorNicolas Thill <nico@openwrt.org>
Thu, 30 Aug 2007 14:19:31 +0000 (14:19 +0000)
committerNicolas Thill <nico@openwrt.org>
Thu, 30 Aug 2007 14:19:31 +0000 (14:19 +0000)
 * make build depends on in-kernel mac80211 support
 * rework kconfig hack

SVN-Revision: 8544

package/bcm43xx-mac80211/Makefile

index e3cbc2c23aa88b29bc51a951fb32df2a723939e2..8566bf4e4090b9bdecc655a1ae02bbfe1fadf8a9 100644 (file)
@@ -15,43 +15,59 @@ PKG_RELEASE:=1
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)
 
 include $(INCLUDE_DIR)/package.mk
-
-# This horrible, horrible hack is because I can't work out ow to add
-# CONFIG_* definitions to a kernel config from an external module dir.
-# It should come from a proper configuration based on the Kconfig in the src
-# directory.
-MAKE_CONFIGS=CONFIG_BCM43XX_MAC80211=m CONFIG_BCM43XX_MAC80211_PCI=y \
-       CONFIG_BCM43XX_MAC80211_DEBUG=y CONFIG_BCM43XX_MAC80211_DMA=y \
-       CONFIG_BCM43XX_MAC80211_PIO=y CONFIG_BCM43XX_MAC80211_DMA_AND_PIO_MODE=y
-
-BUILDFLAGS+=$(patsubst CONFIG_%, -DCONFIG_%, $(MAKE_CONFIGS))
+ifeq ($(DUMP),)
+  include $(LINUX_DIR)/.config
+endif
 
 define KernelPackage/bcm43xx-mac80211
+  SUBMENU:=Wireless Drivers
   TITLE:=Broadcom 43xx wireless support
   DESCRIPTION:=Kernel module for Broadcom 43xx wireless support (mac80211)
   VERSION:=$(PKG_RELEASE)+$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)
   DEPENDS:=@LINUX_2_6_BRCM47XX +kmod-mac80211
-  SUBMENU:=Wireless Drivers
-  ifneq ($(KERNEL_PATCHVER),2.6.21)
+  KCONFIG:=CONFIG_MAC80211
+  FILES:=$(PKG_BUILD_DIR)/bcm43xx-mac80211.$(LINUX_KMOD_SUFFIX)
 #  AUTOLOAD:=$(call AutoLoad,30,bcm43xx-mac80211)
-   FILES:=$(PKG_BUILD_DIR)/bcm43xx-mac80211.$(LINUX_KMOD_SUFFIX)
-  endif
 endef
 
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-       $(CP) ./src/bcm43xx/* $(PKG_BUILD_DIR)/
-endef
+ifneq ($(CONFIG_MAC80211),)
 
-ifneq ($(KERNEL_PATCHVER),2.6.21)
-  define Build/Compile
-       $(MAKE) $(MAKE_CONFIGS) -C "$(LINUX_DIR)" \
-               CROSS_COMPILE="$(TARGET_CROSS)" \
+  PKG_EXTRA_KCONFIG:= \
+       CONFIG_BCM43XX_MAC80211=m \
+       CONFIG_BCM43XX_MAC80211_PCI=y \
+       CONFIG_BCM43XX_MAC80211_DEBUG=y \
+       CONFIG_BCM43XX_MAC80211_DMA=y \
+       CONFIG_BCM43XX_MAC80211_PIO=y \
+       CONFIG_BCM43XX_MAC80211_DMA_AND_PIO_MODE=y \
+
+  PKG_EXTRA_CFLAGS:= \
+       -I$(STAGING_DIR)/usr/include/mac80211 \
+       $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(PKG_EXTRA_KCONFIG)))) \
+       $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(PKG_EXTRA_KCONFIG)))) \
+
+  define Build/Compile/it
+       $(MAKE) -C "$(LINUX_DIR)" \
                ARCH="$(LINUX_KARCH)" \
-               EXTRA_CFLAGS="$(BUILDFLAGS)" \
+               CROSS_COMPILE="$(TARGET_CROSS)" \
                SUBDIRS="$(PKG_BUILD_DIR)" \
+               $(PKG_EXTRA_KCONFIG) \
+               EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS)" \
+               V="$(V)" \
                modules
   endef
+
 endif
 
+define Build/Prepare
+       mkdir -p $(PKG_BUILD_DIR)
+       $(CP) ./src/bcm43xx/* $(PKG_BUILD_DIR)/
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+$(call Build/Compile/it)
+endef
+
 $(eval $(call KernelPackage,bcm43xx-mac80211))