X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/85c1d5c75138d7110b998553544cf6a4907aecc4..5cc4ef352f25536b07e49dd0d96b7b61c5c7c635:/package/b43/Makefile

diff --git a/package/b43/Makefile b/package/b43/Makefile
index 86b8621a3..756e83b08 100644
--- a/package/b43/Makefile
+++ b/package/b43/Makefile
@@ -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,27 @@ PKG_RELEASE:=1
 
 include $(INCLUDE_DIR)/package.mk
 
+PKG_FWV4_NAME:=broadcom-wl
+PKG_FWV4_VERSION=4.80.53.0
+PKG_FWV4_OBJECT:=kmod/wl_apsta.o
+
+PKG_FWV4_SOURCE:=$(PKG_FWV4_NAME)-$(PKG_FWV4_VERSION).tar.bz2
+PKG_FWV4_SOURCE_URL:=http://downloads.openwrt.org/sources/
+PKG_FWV4_MD5SUM:=a7d8dde3ce474c361143b83e1d9890b1
+
+PKG_FWCUTTER_NAME:=b43-fwcutter
+PKG_FWCUTTER_VERSION=008
+
+PKG_FWCUTTER_SOURCE:=$(PKG_FWCUTTER_NAME)-$(PKG_FWCUTTER_VERSION).tar.bz2
+PKG_FWCUTTER_SOURCE_URL:=http://download.berlios.de/bcm43xx/
+PKG_FWCUTTER_MD5SUM:=3f7fbf4f8dcd296c6d1b0d42eab0f9ac
+
 define KernelPackage/b43
   SUBMENU:=Wireless Drivers
   TITLE:=Broadcom 43xx wireless support
-  DEPENDS:=@TARGET_brcm47xx +kmod-mac80211 @BROKEN
+  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
@@ -44,9 +59,20 @@ MAKE_OPTS:= \
 	LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211 -I$(LINUX_DIR)/include -include linux/autoconf.h" \
 	$(EXTRA_KCONFIG)
 
+$(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)/
+	tar xjf "$(DL_DIR)/$(PKG_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
+	tar xjf "$(DL_DIR)/$(PKG_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
 endef
 
 define Build/Configure
@@ -56,6 +82,16 @@ define Build/Compile
 	$(MAKE) -C "$(LINUX_DIR)" \
 		$(MAKE_OPTS) \
 		modules
+
+	$(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_FWCUTTER_NAME)-$(PKG_FWCUTTER_VERSION)"
+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))