ath: add a compile time option that gives the user full control over regulatory setti...
[10.03/openwrt.git] / package / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2009 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10
11 PKG_NAME:=mac80211
12
13 PKG_VERSION:=2009-08-20
14 PKG_RELEASE:=2
15 PKG_SOURCE_URL:= \
16         http://www.orbit-lab.org/kernel/compat-wireless-2.6/2009/08 \
17         http://wireless.kernel.org/download/compat-wireless-2.6
18 PKG_MD5SUM:=0b3919adf847a59478cc4fb58e1cb6ec
19
20 PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
21 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
22
23 PKG_CONFIG_DEPENDS:= \
24         CONFIG_PACKAGE_kmod-mac80211 \
25
26 include $(INCLUDE_DIR)/package.mk
27
28 WMENU:=Wireless Drivers
29
30 define KernelPackage/mac80211/Default
31   SUBMENU:=$(WMENU)
32   URL:=http://linuxwireless.org/
33   DEPENDS:=@LINUX_2_6 @!TARGET_avr32
34 endef
35
36 define KernelPackage/mac80211
37   $(call KernelPackage/mac80211/Default)
38   TITLE:=Linux 802.11 Wireless Networking Stack
39   DEPENDS+= +kmod-crypto-arc4 +kmod-crypto-aes +wireless-tools +@PACKAGE_iw @!LINUX_2_6_21 @!LINUX_2_6_25
40   FILES:= \
41         $(PKG_BUILD_DIR)/net/mac80211/mac80211.$(LINUX_KMOD_SUFFIX) \
42         $(PKG_BUILD_DIR)/net/wireless/cfg80211.$(LINUX_KMOD_SUFFIX)
43   AUTOLOAD:=$(call AutoLoad,20,cfg80211 mac80211)
44 endef
45
46 define KernelPackage/mac80211/config
47         source "$(SOURCE)/Config.in"
48 endef
49
50 define KernelPackage/mac80211/description
51 Linux 802.11 Wireless Networking Stack
52 endef
53
54 # Prism54 drivers
55 P54PCIFW:=2.13.12.0.arm
56 P54USBFW:=2.13.24.0.lm86.arm
57
58 define Download/p54usb
59   FILE:=$(P54USBFW)
60   URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb
61   MD5SUM:=2efd50eab43c0d0376765576a54b7a30
62 endef
63 $(eval $(call Download,p54usb))
64
65 define Download/p54pci
66   FILE:=$(P54PCIFW)
67   URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac
68   MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4
69 endef
70 $(eval $(call Download,p54pci))
71
72 define KernelPackage/p54/Default
73   $(call KernelPackage/mac80211/Default)
74   TITLE:=Prism54 Drivers
75 endef
76
77 define KernelPackage/p54/description
78   Kernel module for Prism54 chipsets (mac80211)
79 endef
80
81 define KernelPackage/p54-common
82   $(call KernelPackage/p54/Default)
83   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT +kmod-mac80211
84   TITLE+= (COMMON)
85   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.$(LINUX_KMOD_SUFFIX)
86   AUTOLOAD:=$(call AutoLoad,30,p54common)
87 endef
88
89 define KernelPackage/p54-pci
90   $(call KernelPackage/p54/Default)
91   TITLE+= (PCI)
92   DEPENDS+= @PCI_SUPPORT +kmod-p54-common
93   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.$(LINUX_KMOD_SUFFIX)
94   AUTOLOAD:=$(call AutoLoad,31,p54pci)
95 endef
96
97 define KernelPackage/p54-usb
98   $(call KernelPackage/p54/Default)
99   TITLE+= (USB)
100   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
101   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.$(LINUX_KMOD_SUFFIX)
102   AUTOLOAD:=$(call AutoLoad,31,p54usb)
103 endef
104
105 # Ralink rt2x00 drivers
106 RT61FW:=RT61_Firmware_V1.2.zip
107 RT71FW:=RT71W_Firmware_V1.8.zip
108 RT2860FW:=RT2860_Firmware_V11.zip
109 RT2870FW:=RT2870_Firmware_V8.zip
110
111 define Download/rt61
112   FILE:=$(RT61FW)
113   URL:=http://www.ralinktech.com.tw/data/
114   MD5SUM:=d4c690c93b470bc9a681297c2adc6281
115 endef
116 $(eval $(call Download,rt61))
117
118 define Download/rt71w
119   FILE:=$(RT71FW)
120   URL:=http://www.ralinktech.com.tw/data/
121   MD5SUM:=1e7a5dc574e0268574fcda3fd5cf52f7
122 endef
123 $(eval $(call Download,rt71w))
124
125 define Download/rt2860
126   FILE:=$(RT2860FW)
127   URL:=http://www.ralinktech.com.tw/data/drivers
128   MD5SUM:=440a81756a52c53528f16faa41c40124
129 endef
130 $(eval $(call Download,rt2860))
131
132 define Download/rt2870
133   FILE:=$(RT2870FW)
134   URL:=http://www.ralinktech.com.tw/data/drivers
135   MD5SUM:=a7aae1d8cfd68e4d86a73000df0b6584
136 endef
137 $(eval $(call Download,rt2870))
138
139 AR9170FW:=ar9170.fw
140
141 define Download/ar9170
142   FILE:=$(AR9170FW)
143   URL:=http://www.kernel.org/pub/linux/kernel/people/mcgrof/firmware/ar9170
144   MD5SUM:=34feec4ec0eae3bb92c7c1ea2dfb4530
145 endef
146 $(eval $(call Download,ar9170))
147
148 define KernelPackage/rt2x00/Default
149   $(call KernelPackage/mac80211/Default)
150   TITLE:=Ralink Drivers for RT2x00 cards
151 endef
152
153 define KernelPackage/rt2x00-lib
154 $(call KernelPackage/rt2x00/Default)
155   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT +kmod-mac80211 +kmod-crc-itu-t
156   TITLE+= (LIB)
157   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.$(LINUX_KMOD_SUFFIX)
158   AUTOLOAD:=$(call AutoLoad,25,blkcipher ecb arc4 rt2x00lib)
159 endef
160
161 define KernelPackage/rt2x00-pci
162 $(call KernelPackage/rt2x00/Default)
163   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-lib +kmod-eeprom-93cx6
164   TITLE+= (PCI)
165   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.$(LINUX_KMOD_SUFFIX)
166   AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
167 endef
168
169 define KernelPackage/rt2x00-usb
170 $(call KernelPackage/rt2x00/Default)
171   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
172   TITLE+= (USB)
173   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.$(LINUX_KMOD_SUFFIX)
174   AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
175 endef
176
177 define KernelPackage/rt2400-pci
178 $(call KernelPackage/rt2x00/Default)
179   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
180   TITLE+= (RT2400 PCI)
181   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.$(LINUX_KMOD_SUFFIX)
182   AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
183 endef
184
185 define KernelPackage/rt2500-pci
186 $(call KernelPackage/rt2x00/Default)
187   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
188   TITLE+= (RT2500 PCI)
189   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.$(LINUX_KMOD_SUFFIX)
190   AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
191 endef
192
193 define KernelPackage/rt2500-usb
194 $(call KernelPackage/rt2x00/Default)
195   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
196   TITLE+= (RT2500 USB)
197   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.$(LINUX_KMOD_SUFFIX)
198   AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
199 endef
200
201 define KernelPackage/rt61-pci
202 $(call KernelPackage/rt2x00/Default)
203   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
204   TITLE+= (RT2x61 PCI)
205   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.$(LINUX_KMOD_SUFFIX)
206   AUTOLOAD:=$(call AutoLoad,27,rt61pci)
207 endef
208
209 define KernelPackage/rt73-usb
210   $(call KernelPackage/rt2x00/Default)
211   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
212   TITLE+= (RT73 USB)
213   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.$(LINUX_KMOD_SUFFIX)
214   AUTOLOAD:=$(call AutoLoad,27,rt73usb)
215 endef
216
217 define KernelPackage/rt2800-pci
218 $(call KernelPackage/rt2x00/Default)
219   DEPENDS+= +kmod-rt2x00-pci +kmod-crc-ccitt
220   TITLE+= (RT2860 PCI)
221   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.$(LINUX_KMOD_SUFFIX)
222   AUTOLOAD:=$(call AutoLoad,27,rt2800pci)
223 endef
224
225 define KernelPackage/rt2800-usb
226 $(call KernelPackage/rt2x00/Default)
227   DEPENDS+= +kmod-rt2x00-usb +kmod-crc-ccitt
228   TITLE+= (RT2870 USB)
229   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.$(LINUX_KMOD_SUFFIX)
230   AUTOLOAD:=$(call AutoLoad,27,rt2800usb)
231 endef
232
233 define KernelPackage/rtl818x/Default
234   $(call KernelPackage/mac80211/Default)
235   TITLE:=Realtek Drivers for RTL818x devices
236   URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
237   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
238 endef
239
240 define KernelPackage/rtl8180
241   $(call KernelPackage/rtl818x/Default)
242   DEPENDS+= @PCI_SUPPORT
243   TITLE+= (RTL8180 PCI)
244   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180.$(LINUX_KMOD_SUFFIX)
245   AUTOLOAD:=$(call AutoLoad,27,rtl8180)
246 endef
247
248 define KernelPackage/rtl8187
249 $(call KernelPackage/rtl818x/Default)
250   DEPENDS+= @USB_SUPPORT
251   TITLE+= (RTL8187 USB)
252   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187.$(LINUX_KMOD_SUFFIX)
253   AUTOLOAD:=$(call AutoLoad,27,rtl8187)
254 endef
255
256 ZD1211FW_NAME:=zd1211-firmware
257 ZD1211FW_VERSION:=1.4
258 define Download/zd1211rw
259   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
260   URL:=@SF/zd1211/
261   MD5SUM:=19f28781d76569af8551c9d11294c870
262 endef
263 $(eval $(call Download,zd1211rw))
264
265 define KernelPackage/zd1211rw
266   $(call KernelPackage/mac80211/Default)
267   TITLE:=Zydas ZD1211 support
268   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
269   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.$(LINUX_KMOD_SUFFIX)
270   AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
271 endef
272
273 define KernelPackage/ath/config
274
275 config ATH_USER_REGD
276         bool "Force Atheros drivers to respect the user's regdomain settings"
277         depends on PACKAGE_kmod-ath
278         help
279                 Atheros' idea of regulatory handling is that the EEPROM of the card defines
280                 the regulatory limits and the user is only allowed to restrict the settings
281                 even further, even if the country allows frequencies or power levels that 
282                 are forbidden by the EEPROM settings.
283                 Select this option if you want the driver to respect the user's decision about
284                 regulatory settings.
285 endef
286
287 define KernelPackage/ath
288   $(call KernelPackage/mac80211/Default)
289   TITLE:=Atheros common driver part
290   DEPENDS+= @PCI_SUPPORT +kmod-mac80211
291   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.$(LINUX_KMOD_SUFFIX)
292   AUTOLOAD:=$(call AutoLoad,26,ath)
293 endef
294
295 define KernelPackage/ath/description
296  This module contains some common parts needed by Atheros Wireless drivers.
297 endef
298
299 define KernelPackage/ath5k
300   $(call KernelPackage/mac80211/Default)
301   TITLE:=Atheros 5xxx wireless cards support
302   URL:=http://linuxwireless.org/en/users/Drivers/ath5k
303   DEPENDS+= +kmod-ath
304   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.$(LINUX_KMOD_SUFFIX)
305   AUTOLOAD:=$(call AutoLoad,27,ath5k)
306 endef
307
308 define KernelPackage/ath5k/description
309  This module adds support for wireless adapters based on
310  Atheros 5xxx chipset.
311 endef
312
313 define KernelPackage/ath9k
314   $(call KernelPackage/mac80211/Default)
315   TITLE:=Atheros 802.11n wireless cards support
316   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
317   DEPENDS+= +kmod-ath
318   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.$(LINUX_KMOD_SUFFIX)
319   AUTOLOAD:=$(call AutoLoad,27,ath9k)
320 endef
321
322 define KernelPackage/ath9k/description
323 This module adds support for wireless adapters based on
324 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
325 endef
326
327 define KernelPackage/ath9k/config
328         source "$(SOURCE)/Config.in.ath9k"
329 endef
330
331 define KernelPackage/ar9170
332   $(call KernelPackage/mac80211/Default)
333   TITLE:=Atheros AR9170 802.11n USB support
334   URL:=http://wireless.kernel.org/en/users/Drivers/ar9170
335   DEPENDS+= @USB_SUPPORT @!LINUX_2_6_25 @!LINUX_2_6_27 +kmod-ath +kmod-usb-core
336   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ar9170/ar9170usb.$(LINUX_KMOD_SUFFIX)
337   AUTOLOAD:=$(call AutoLoad,27,ar9170usb)
338 endef
339
340 define KernelPackage/ar9170/description
341  This is a driver for the Atheros "otus" 802.11n USB devices.
342 endef
343
344 define KernelPackage/mac80211-hwsim
345   $(call KernelPackage/mac80211/Default)
346   TITLE:=mac80211 HW simulation device
347   DEPENDS+= +kmod-mac80211
348   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.$(LINUX_KMOD_SUFFIX)
349   AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
350 endef
351
352 #Broadcom firmware
353 ifneq ($(CONFIG_B43_EXPERIMENTAL),)
354   PKG_B43_FWV4_NAME:=broadcom-wl
355   PKG_B43_FWV4_VERSION:=4.178.10.4
356   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl.o
357   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
358   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
359   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
360 else
361   PKG_B43_FWV4_NAME:=broadcom-wl
362   PKG_B43_FWV4_VERSION:=4.150.10.5
363   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
364   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
365   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
366   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
367 endif
368 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
369   PKG_B43_FWV4_NAME:=broadcom-wl
370   PKG_B43_FWV4_VERSION:=5.2
371   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
372   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
373   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
374   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
375 endif
376
377
378 PKG_B43_FWV3_NAME:=wl_apsta
379 PKG_B43_FWV3_VERSION:=3.130.20.0
380 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
381 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
382 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
383
384 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
385   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
386   PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417
387   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
388   PKG_B43_FWCUTTER_PROTO:=git
389   PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git
390   PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)
391   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/
392 else
393   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
394   PKG_B43_FWCUTTER_VERSION:=012
395   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
396   PKG_B43_FWCUTTER_PROTO:=default
397   PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
398   PKG_B43_FWCUTTER_MD5SUM:=69eadf67b459f313a8d6b37aaabef96c
399   PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION)
400   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/
401 endif
402
403 define Download/b43-common
404   FILE:=$(PKG_B43_FWCUTTER_SOURCE)
405   URL:=$(PKG_B43_FWCUTTER_SOURCE_URL)
406   MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM)
407   PROTO:=$(PKG_B43_FWCUTTER_PROTO)
408   VERSION:=$(PKG_B43_FWCUTTER_VERSION)
409   SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR)
410 endef
411 $(eval $(call Download,b43-common))
412
413 define Download/b43
414   FILE:=$(PKG_B43_FWV4_SOURCE)
415   URL:=$(PKG_B43_FWV4_SOURCE_URL)
416   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
417 endef
418 $(eval $(call Download,b43))
419
420 define Download/b43legacy
421   FILE:=$(PKG_B43_FWV3_SOURCE)
422   URL:=$(PKG_B43_FWV3_SOURCE_URL)
423   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
424 endef
425 $(eval $(call Download,b43legacy))
426
427 define KernelPackage/b43-common
428   $(call KernelPackage/mac80211/Default)
429   TITLE:=Generic stuff for Broadcom wireless devices
430   URL:=http://linuxwireless.org/en/users/Drivers/b43
431   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
432 endef
433
434 define KernelPackage/b43
435 $(call KernelPackage/b43-common)
436   TITLE:=Broadcom 43xx wireless support
437   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.$(LINUX_KMOD_SUFFIX)
438   AUTOLOAD:=$(call AutoLoad,30,b43)
439 endef
440
441 define KernelPackage/b43/config
442         source "$(SOURCE)/Config.in.b43"
443 endef
444
445 define KernelPackage/b43/description
446 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
447 endef
448
449 define KernelPackage/b43legacy
450 $(call KernelPackage/b43-common)
451   TITLE:=Broadcom 43xx-legacy wireless support
452   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.$(LINUX_KMOD_SUFFIX)
453   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
454 endef
455
456 define KernelPackage/b43legacy/description
457 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
458 endef
459
460 BUILDFLAGS:= \
461         -I$(PKG_BUILD_DIR)/include \
462         $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
463         $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT -DCONFIG_SSB_DRIVER_PCICORE_POSSIBLE -DCONFIG_SSB_DRIVER_PCICORE) \
464         $(if $(CONFIG_PCI),-DCONFIG_SSB_PCIHOST_POSSIBLE -DCONFIG_SSB_PCIHOST) \
465         $(if $(CONFIG_PCI),-DCONFIG_SSB_SPROM) \
466         $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \
467         $(if $(CONFIG_HW_RANDOM),-DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG) \
468         $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS) \
469         $(if $(CONFIG_PACKAGE_ATH9K_DEBUG),-DCONFIG_ATH9K_DEBUG) \
470         -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
471         $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1)
472
473 MAKE_OPTS:= \
474         CROSS_COMPILE="$(KERNEL_CROSS)" \
475         ARCH="$(LINUX_KARCH)" \
476         EXTRA_CFLAGS="$(BUILDFLAGS)" \
477         $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
478         CONFIG_MAC80211_RC_PID=y \
479         CONFIG_MAC80211_RC_MINSTREL=y \
480         CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
481         CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
482         CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
483         CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
484         CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
485         CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=$(if $(CONFIG_PCI),y) \
486         CONFIG_SSB_DRIVER_PCICORE=$(if $(CONFIG_PCI),y) \
487         CONFIG_SSB_PCIHOST_POSSIBLE=$(if $(CONFIG_PCI),y) \
488         CONFIG_SSB_PCIHOST=$(if $(CONFIG_PCI),y) \
489         CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
490         CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
491         CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
492         CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
493         CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
494         CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
495         CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
496         CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
497         CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
498         CONFIG_ATH9K_DEBUG=$(if $(CONFIG_PACKAGE_ATH9K_DEBUG),y) \
499         CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
500         CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
501         CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
502         CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
503         CONFIG_P54_SPI= \
504         CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
505         CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
506         CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
507         CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
508         CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
509         CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
510         CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
511         CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
512         CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
513         CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
514         CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
515         CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
516         CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
517         CONFIG_PCMCIA= \
518         CONFIG_LIBIPW= \
519         CONFIG_LIBERTAS= \
520         CONFIG_LIBERTAS_CS= \
521         CONFIG_LIBERTAS_SDIO= \
522         CONFIG_LIBERTAS_THINFIRM= \
523         CONFIG_IPW2100= \
524         CONFIG_IPW2200= \
525         CONFIG_NL80211=y \
526         CONFIG_LIB80211= \
527         CONFIG_LIB80211_CRYPT_WEP= \
528         CONFIG_LIB80211_CRYPT_CCMP= \
529         CONFIG_LIB80211_CRYPT_TKIP= \
530         CONFIG_IWLWIFI= \
531         CONFIG_IWLAGN= \
532         CONFIG_MWL8K= \
533         CONFIG_ATMEL= \
534         CONFIG_PCMCIA_ATMEL= \
535         CONFIG_ADM8211= \
536         CONFIG_USB_NET_RNDIS_HOST= \
537         CONFIG_USB_NET_RNDIS_WLAN= \
538         CONFIG_USB_NET_CDCETHER= \
539         CONFIG_USB_USBNET= \
540         CONFIG_AT76C50X_USB= \
541         CONFIG_WL12XX= \
542         CONFIG_EEPROM_93CX6= \
543         CONFIG_AR9170_USB=$(if $(CONFIG_PACKAGE_kmod-ar9170),m) \
544         CONFIG_AR9170_LEDS=$(CONFIG_LEDS_TRIGGERS) \
545         CONFIG_IWM= \
546         MADWIFI= \
547         OLD_IWL= \
548         KLIB_BUILD="$(LINUX_DIR)" \
549         MODPROBE=: \
550         KLIB=$(TARGET_MODULES_DIR) \
551         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER)))
552
553 define Build/Prepare
554         rm -rf $(PKG_BUILD_DIR)
555         mkdir -p $(PKG_BUILD_DIR)
556         $(PKG_UNPACK)
557         $(Build/Patch)
558         unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT61FW)
559         unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT71FW)
560         -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2860FW)
561         -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2870FW)
562         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
563         rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
564         rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
565         rm $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h
566 endef
567
568 ifneq ($(CONFIG_PACKAGE_kmod-mac80211),)
569  define Build/Compile/kmod
570         rm -rf $(PKG_BUILD_DIR)/modules
571         $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
572  endef
573 endif
574
575 define Build/Compile
576         $(call Build/Compile/kmod)
577 endef
578
579 define Build/InstallDev
580         mkdir -p $(1)/usr/include/mac80211 $(1)/usr/include/net/mac80211
581         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
582         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
583 endef
584
585 define KernelPackage/mac80211/install
586         $(INSTALL_DIR) $(1)/lib/wifi
587         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
588 endef
589
590 define KernelPackage/p54-pci/install
591         $(INSTALL_DIR) $(1)/lib/firmware
592         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
593 endef
594
595 define KernelPackage/p54-usb/install
596         $(INSTALL_DIR) $(1)/lib/firmware
597         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3886usb
598 endef
599
600 define KernelPackage/rt61-pci/install
601         $(INSTALL_DIR) $(1)/lib/firmware
602         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware/
603 endef
604
605 define KernelPackage/rt73-usb/install
606         $(INSTALL_DIR) $(1)/lib/firmware
607         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt73.bin $(1)/lib/firmware/
608 endef
609
610 define KernelPackage/rt2800-pci/install
611         $(INSTALL_DIR) $(1)/lib/firmware
612         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2860.bin $(1)/lib/firmware/
613 endef
614
615 define KernelPackage/rt2800-usb/install
616         $(INSTALL_DIR) $(1)/lib/firmware
617         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2870.bin $(1)/lib/firmware/
618 endef
619
620 define KernelPackage/zd1211rw/install
621         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
622         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
623 endef
624
625 define KernelPackage/ar9170/install
626         $(INSTALL_DIR) $(1)/lib/firmware
627         $(INSTALL_DATA) $(DL_DIR)/$(AR9170FW) $(1)/lib/firmware/
628 endef
629
630 define Build/b43-common
631         tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
632         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
633                 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h"
634         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
635 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
636         $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
637         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
638         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
639         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
640 endif
641         $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
642 endef
643
644 define KernelPackage/b43/install
645         rm -rf $(1)/lib/firmware/
646         $(call Build/b43-common)
647 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
648         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
649 else
650         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
651 endif
652         $(INSTALL_DIR) $(1)/lib/firmware/
653 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
654         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
655         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
656         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
657         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
658         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
659 else
660         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
661 endif
662 ifneq ($(CONFIG_B43_FW_SQUASH),)
663         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
664 endif
665 endef
666
667 define KernelPackage/b43legacy/install
668         $(call Build/b43-common)
669         $(INSTALL_DIR) $(1)/lib/firmware/
670
671         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
672 endef
673
674 $(eval $(call KernelPackage,ath5k))
675 $(eval $(call KernelPackage,mac80211))
676 $(eval $(call KernelPackage,p54-common))
677 $(eval $(call KernelPackage,p54-pci))
678 $(eval $(call KernelPackage,p54-usb))
679 $(eval $(call KernelPackage,rt2x00-lib))
680 $(eval $(call KernelPackage,rt2x00-pci))
681 $(eval $(call KernelPackage,rt2x00-usb))
682 $(eval $(call KernelPackage,rt2400-pci))
683 $(eval $(call KernelPackage,rt2500-pci))
684 $(eval $(call KernelPackage,rt2500-usb))
685 $(eval $(call KernelPackage,rt61-pci))
686 $(eval $(call KernelPackage,rt73-usb))
687 $(eval $(call KernelPackage,rt2800-pci))
688 $(eval $(call KernelPackage,rt2800-usb))
689 $(eval $(call KernelPackage,rtl8180))
690 $(eval $(call KernelPackage,rtl8187))
691 $(eval $(call KernelPackage,zd1211rw))
692 $(eval $(call KernelPackage,mac80211-hwsim))
693 $(eval $(call KernelPackage,ath9k))
694 $(eval $(call KernelPackage,ath))
695 $(eval $(call KernelPackage,ar9170))
696 $(eval $(call KernelPackage,b43))
697 $(eval $(call KernelPackage,b43legacy))