cleanups, small fixes and improvements for the feeds script
[openwrt/openwrt.git] / package / b43 / Makefile
1 #
2 # Copyright (C) 2007 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id: Makefile 7440 2007-06-02 02:22:01Z nbd $
8
9 include $(TOPDIR)/rules.mk
10 include $(INCLUDE_DIR)/kernel.mk
11
12 PKG_NAME:=b43
13 PKG_RELEASE:=1
14
15 include $(INCLUDE_DIR)/package.mk
16
17 PKG_FWV4_NAME:=broadcom-wl
18 PKG_FWV4_VERSION=4.80.53.0
19 PKG_FWV4_OBJECT:=kmod/wl_apsta.o
20
21 PKG_FWV4_SOURCE:=$(PKG_FWV4_NAME)-$(PKG_FWV4_VERSION).tar.bz2
22 PKG_FWV4_SOURCE_URL:=http://downloads.openwrt.org/sources/
23 PKG_FWV4_MD5SUM:=a7d8dde3ce474c361143b83e1d9890b1
24
25 PKG_FWCUTTER_NAME:=b43-fwcutter
26 PKG_FWCUTTER_VERSION=008
27
28 PKG_FWCUTTER_SOURCE:=$(PKG_FWCUTTER_NAME)-$(PKG_FWCUTTER_VERSION).tar.bz2
29 PKG_FWCUTTER_SOURCE_URL:=http://download.berlios.de/bcm43xx/
30 PKG_FWCUTTER_MD5SUM:=3f7fbf4f8dcd296c6d1b0d42eab0f9ac
31
32 define KernelPackage/b43
33 SUBMENU:=Wireless Drivers
34 TITLE:=Broadcom 43xx wireless support
35 DEPENDS:=@TARGET_brcm47xx +kmod-mac80211
36 FILES:=$(PKG_BUILD_DIR)/b43.$(LINUX_KMOD_SUFFIX)
37 AUTOLOAD:=$(call AutoLoad,30,b43)
38 endef
39
40 define KernelPackage/b43/description
41 Kernel module for Broadcom 43xx wireless support (mac80211)
42 endef
43
44 EXTRA_KCONFIG:= \
45 CONFIG_B43=m \
46 CONFIG_B43_DMA=y \
47 $(if $(CONFIG_LEDS_TRIGGERS),CONFIG_B43_LEDS=y) \
48
49
50 EXTRA_CFLAGS:= \
51 $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
52 $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \
53
54 MAKE_OPTS:= \
55 ARCH="$(LINUX_KARCH)" \
56 CROSS_COMPILE="$(TARGET_CROSS)" \
57 SUBDIRS="$(PKG_BUILD_DIR)" \
58 EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
59 LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211 -I$(LINUX_DIR)/include -include linux/autoconf.h" \
60 $(EXTRA_KCONFIG)
61
62 $(STAMP_PREPARED): $(DL_DIR)/$(PKG_FWV4_SOURCE) $(DL_DIR)/$(PKG_FWCUTTER_SOURCE)
63
64 $(DL_DIR)/$(PKG_FWV4_SOURCE):
65 $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_FWV4_SOURCE)" "$(PKG_FWV4_MD5SUM)" $(PKG_FWV4_SOURCE_URL)
66
67 $(DL_DIR)/$(PKG_FWCUTTER_SOURCE):
68 $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_FWCUTTER_SOURCE)" "$(PKG_FWCUTTER_MD5SUM)" $(PKG_FWCUTTER_SOURCE_URL)
69
70
71 define Build/Prepare
72 mkdir -p $(PKG_BUILD_DIR)
73 $(CP) ./src/* $(PKG_BUILD_DIR)/
74 tar xjf "$(DL_DIR)/$(PKG_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
75 tar xjf "$(DL_DIR)/$(PKG_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
76 endef
77
78 define Build/Configure
79 endef
80
81 define Build/Compile
82 $(MAKE) -C "$(LINUX_DIR)" \
83 $(MAKE_OPTS) \
84 modules
85
86 $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_FWCUTTER_NAME)-$(PKG_FWCUTTER_VERSION)" \
87 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h"
88 endef
89
90 define KernelPackage/b43/install
91 $(INSTALL_DIR) $(1)/lib/firmware/
92
93 $(PKG_BUILD_DIR)/$(PKG_FWCUTTER_NAME)-$(PKG_FWCUTTER_VERSION)/b43-fwcutter \
94 -w $(1)/lib/firmware/ \
95 $(PKG_BUILD_DIR)/$(PKG_FWV4_NAME)-$(PKG_FWV4_VERSION)/$(PKG_FWV4_OBJECT)
96 endef
97
98 $(eval $(call KernelPackage,b43))