add libipfix
[openwrt/svn-archive/archive.git] / package / b43 / Makefile
index e917947889f4b264a3d33192ada76a09befecf4c..28a6cc5b39a8e749685a2a61c99a1023a1db71b9 100644 (file)
@@ -3,7 +3,7 @@
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
-# 
+#
 # $Id: Makefile 7440 2007-06-02 02:22:01Z nbd $
 
 include $(TOPDIR)/rules.mk
@@ -14,12 +14,34 @@ PKG_RELEASE:=1
 
 include $(INCLUDE_DIR)/package.mk
 
+PKG_FWV4_NAME:=broadcom-wl
+PKG_FWV4_VERSION=4.150.10.5
+PKG_FWV4_OBJECT:=driver/wl_apsta_mimo.o
+
+PKG_FWV4_SOURCE:=$(PKG_FWV4_NAME)-$(PKG_FWV4_VERSION).tar.bz2
+PKG_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
+PKG_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
+
+PKG_FWCUTTER_NAME:=b43-fwcutter
+PKG_FWCUTTER_VERSION=011
+
+PKG_FWCUTTER_SOURCE:=$(PKG_FWCUTTER_NAME)-$(PKG_FWCUTTER_VERSION).tar.bz2
+PKG_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
+PKG_FWCUTTER_MD5SUM:=3db2f4de85a459451f5b391cf67a8d44
+
+PKG_SRC_NAME:=b43-src
+PKG_SRC_VERSION:=2008-08-06
+
+PKG_SRC_SOURCE:=compat-wireless-$(PKG_SRC_VERSION).tar.bz2
+PKG_SRC_SOURCE_URL:=http://www.orbit-lab.org/kernel/compat-wireless-2.6/2008/08/
+PKG_SRC_MD5SUM:=9563ceeed86bca0859ad5f010623277c
+
 define KernelPackage/b43
   SUBMENU:=Wireless Drivers
   TITLE:=Broadcom 43xx wireless support
   DEPENDS:=@TARGET_brcm47xx +kmod-mac80211
   FILES:=$(PKG_BUILD_DIR)/b43.$(LINUX_KMOD_SUFFIX)
-#  AUTOLOAD:=$(call AutoLoad,30,b43)
+  AUTOLOAD:=$(call AutoLoad,30,b43)
 endef
 
 define KernelPackage/b43/description
@@ -28,7 +50,9 @@ endef
 
 EXTRA_KCONFIG:= \
        CONFIG_B43=m \
-       CONFIG_B43_DMA=y \
+       CONFIG_B43_NPHY=y \
+       CONFIG_B43_DEBUG=y \
+       $(if $(CONFIG_RFKILL),CONFIG_B43_RFKILL=y) \
        $(if $(CONFIG_LEDS_TRIGGERS),CONFIG_B43_LEDS=y) \
 
 
@@ -44,22 +68,43 @@ MAKE_OPTS:= \
        LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211 -I$(LINUX_DIR)/include -include linux/autoconf.h" \
        $(EXTRA_KCONFIG)
 
-ifneq ($(findstring 2.6.23,$(LINUX_VERSION)),)
-  define Build/Prepare
+$(STAMP_PREPARED): $(DL_DIR)/$(PKG_FWV4_SOURCE) $(DL_DIR)/$(PKG_FWCUTTER_SOURCE)
+
+$(DL_DIR)/$(PKG_FWV4_SOURCE):
+       $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_FWV4_SOURCE)" "$(PKG_FWV4_MD5SUM)" $(PKG_FWV4_SOURCE_URL)
+
+$(DL_DIR)/$(PKG_FWCUTTER_SOURCE):
+       $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_FWCUTTER_SOURCE)" "$(PKG_FWCUTTER_MD5SUM)" $(PKG_FWCUTTER_SOURCE_URL)
+
+
+define Build/Prepare
        mkdir -p $(PKG_BUILD_DIR)
-       $(CP) ./src/* $(PKG_BUILD_DIR)/
-  endef
+       tar xjf "$(DL_DIR)/$(PKG_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
+       tar xjf "$(DL_DIR)/$(PKG_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
+       tar xjf "$(DL_DIR)/$(PKG_SRC_SOURCE)" -C "$(PKG_BUILD_DIR)"
+       $(CP) $(PKG_BUILD_DIR)/compat-wireless-$(PKG_SRC_VERSION)/drivers/net/wireless/b43/* $(PKG_BUILD_DIR)/
+       $(Build/Patch)
+       $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
+endef
 
-  define Build/Configure
-  endef
+define Build/Configure
+endef
 
-  define Build/Compile
+define Build/Compile
        $(MAKE) -C "$(LINUX_DIR)" \
                $(MAKE_OPTS) \
                modules
-  endef
-else
-  override CONFIG_PACKAGE_kmod-b43=
-endif
+
+       $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_FWCUTTER_NAME)-$(PKG_FWCUTTER_VERSION)" \
+               CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h"
+endef
+
+define KernelPackage/b43/install
+       $(INSTALL_DIR) $(1)/lib/firmware/
+
+       $(PKG_BUILD_DIR)/$(PKG_FWCUTTER_NAME)-$(PKG_FWCUTTER_VERSION)/b43-fwcutter \
+       -w $(1)/lib/firmware/ \
+       $(PKG_BUILD_DIR)/$(PKG_FWV4_NAME)-$(PKG_FWV4_VERSION)/$(PKG_FWV4_OBJECT)
+endef
 
 $(eval $(call KernelPackage,b43))