Makefile 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556
  1. #
  2. # Copyright (C) 2007-2015 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. include $(INCLUDE_DIR)/kernel.mk
  9. PKG_NAME:=mac80211
  10. PKG_VERSION:=5.15.58-1
  11. PKG_RELEASE:=2
  12. PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.58/
  13. PKG_HASH:=a3c2a2b7bbaf8943c65fd72f4e7d7ad5e205aeae28b26c835f9d8afa0f9810bf
  14. PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
  15. PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
  16. PKG_BUILD_PARALLEL:=1
  17. PKG_MAINTAINER:=Felix Fietkau <[email protected]>
  18. PKG_DRIVERS = \
  19. adm8211 \
  20. hermes hermes-pci hermes-pcmcia hermes-plx\
  21. lib80211 \
  22. mac80211-hwsim \
  23. mt7601u \
  24. p54-common p54-pci p54-usb \
  25. rsi91x rsi91x-usb rsi91x-sdio\
  26. wlcore wl12xx wl18xx \
  27. zd1211rw
  28. PKG_CONFIG_DEPENDS:= \
  29. CONFIG_PACKAGE_kmod-mac80211 \
  30. CONFIG_PACKAGE_CFG80211_TESTMODE \
  31. CONFIG_PACKAGE_MAC80211_DEBUGFS \
  32. CONFIG_PACKAGE_MAC80211_MESH \
  33. CONFIG_PACKAGE_MAC80211_TRACING \
  34. CONFIG_PACKAGE_IWLWIFI_DEBUG \
  35. CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
  36. CONFIG_PACKAGE_RTLWIFI_DEBUG \
  37. include $(INCLUDE_DIR)/package.mk
  38. WMENU:=Wireless Drivers
  39. define KernelPackage/mac80211/Default
  40. SUBMENU:=$(WMENU)
  41. URL:=https://wireless.wiki.kernel.org/
  42. MAINTAINER:=Felix Fietkau <[email protected]>
  43. endef
  44. config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
  45. config-y:= \
  46. WLAN \
  47. CFG80211_CERTIFICATION_ONUS \
  48. MAC80211_RC_MINSTREL \
  49. MAC80211_RC_MINSTREL_HT \
  50. MAC80211_RC_MINSTREL_VHT \
  51. MAC80211_RC_DEFAULT_MINSTREL \
  52. WLAN_VENDOR_ADMTEK \
  53. WLAN_VENDOR_ATH \
  54. WLAN_VENDOR_ATMEL \
  55. WLAN_VENDOR_BROADCOM \
  56. WLAN_VENDOR_CISCO \
  57. WLAN_VENDOR_INTEL \
  58. WLAN_VENDOR_INTERSIL \
  59. WLAN_VENDOR_MARVELL \
  60. WLAN_VENDOR_MEDIATEK \
  61. WLAN_VENDOR_RALINK \
  62. WLAN_VENDOR_REALTEK \
  63. WLAN_VENDOR_RSI \
  64. WLAN_VENDOR_ST \
  65. WLAN_VENDOR_TI \
  66. WLAN_VENDOR_ZYDAS \
  67. config-$(call config_package,cfg80211) += CFG80211
  68. config-$(CONFIG_PACKAGE_CFG80211_TESTMODE) += NL80211_TESTMODE
  69. config-$(call config_package,mac80211) += MAC80211
  70. config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
  71. include ath.mk
  72. include broadcom.mk
  73. include intel.mk
  74. include marvell.mk
  75. include ralink.mk
  76. include realtek.mk
  77. PKG_CONFIG_DEPENDS += \
  78. $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS))
  79. define KernelPackage/cfg80211
  80. $(call KernelPackage/mac80211/Default)
  81. TITLE:=cfg80211 - wireless configuration API
  82. DEPENDS+= +iw +iwinfo +wireless-regdb +USE_RFKILL:kmod-rfkill
  83. ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
  84. FILES:= \
  85. $(PKG_BUILD_DIR)/compat/compat.ko \
  86. $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
  87. endef
  88. define KernelPackage/cfg80211/description
  89. cfg80211 is the Linux wireless LAN (802.11) configuration API.
  90. endef
  91. define KernelPackage/cfg80211/config
  92. if PACKAGE_kmod-cfg80211
  93. config PACKAGE_CFG80211_TESTMODE
  94. bool "Enable testmode command support"
  95. default n
  96. help
  97. This is typically used for tests and calibration during
  98. manufacturing, or vendor specific debugging features
  99. endif
  100. endef
  101. define KernelPackage/mac80211
  102. $(call KernelPackage/mac80211/Default)
  103. TITLE:=Linux 802.11 Wireless Networking Stack
  104. # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
  105. DEPENDS+= +kmod-cfg80211 +kmod-crypto-cmac +kmod-crypto-ccm +kmod-crypto-gcm +hostapd-common
  106. KCONFIG:=\
  107. CONFIG_AVERAGE=y
  108. FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
  109. ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
  110. MENU:=1
  111. endef
  112. define KernelPackage/mac80211/config
  113. if PACKAGE_kmod-mac80211
  114. config PACKAGE_MAC80211_DEBUGFS
  115. bool "Export mac80211 internals in DebugFS"
  116. select KERNEL_DEBUG_FS
  117. default y
  118. help
  119. Select this to see extensive information about
  120. the internal state of mac80211 in debugfs.
  121. config PACKAGE_MAC80211_TRACING
  122. bool "Enable tracing (mac80211 and supported drivers)"
  123. select KERNEL_FTRACE
  124. select KERNEL_ENABLE_DEFAULT_TRACERS
  125. default n
  126. help
  127. Select this to enable tracing of mac80211 and
  128. related wifi drivers (using trace-cmd).
  129. config PACKAGE_MAC80211_MESH
  130. bool "Enable 802.11s mesh support"
  131. default y
  132. endif
  133. endef
  134. define KernelPackage/mac80211/description
  135. Generic IEEE 802.11 Networking Stack (mac80211)
  136. endef
  137. define KernelPackage/adm8211
  138. $(call KernelPackage/mac80211/Default)
  139. TITLE:=ADMTek 8211 support
  140. DEPENDS+=@PCI_SUPPORT +kmod-mac80211 +kmod-eeprom-93cx6
  141. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/admtek/adm8211.ko
  142. AUTOLOAD:=$(call AutoProbe,adm8211)
  143. endef
  144. define KernelPackage/hermes
  145. $(call KernelPackage/mac80211/Default)
  146. TITLE:=Hermes 802.11b chipset support
  147. DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT +kmod-crypto-michael-mic
  148. DEFAULT:=n
  149. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco.ko
  150. AUTOLOAD:=$(call AutoProbe,orinoco)
  151. endef
  152. define KernelPackage/hermes/description
  153. Kernel support for Hermes 802.11b chipsets
  154. endef
  155. define KernelPackage/hermes-pci
  156. $(call KernelPackage/mac80211/Default)
  157. TITLE:=Intersil Prism 2.5 PCI support
  158. DEPENDS:=@PCI_SUPPORT +kmod-hermes
  159. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_pci.ko
  160. AUTOLOAD:=$(call AutoProbe,orinoco_pci)
  161. endef
  162. define KernelPackage/hermes-pci/description
  163. Kernel modules for Intersil Prism 2.5 PCI support
  164. endef
  165. define KernelPackage/hermes-plx
  166. $(call KernelPackage/mac80211/Default)
  167. TITLE:=PLX9052 based PCI adaptor
  168. DEPENDS:=@PCI_SUPPORT +kmod-hermes
  169. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_plx.ko
  170. AUTOLOAD:=$(call AutoProbe,orinoco_plx)
  171. endef
  172. define KernelPackage/hermes-plx/description
  173. Kernel modules for Hermes in PLX9052 based PCI adaptors
  174. endef
  175. define KernelPackage/hermes-pcmcia
  176. $(call KernelPackage/mac80211/Default)
  177. TITLE:=Hermes based PCMCIA adaptors
  178. DEPENDS:=@PCMCIA_SUPPORT +kmod-hermes +kmod-pcmcia-core
  179. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_cs.ko
  180. AUTOLOAD:=$(call AutoProbe,orinoco_cs)
  181. endef
  182. define KernelPackage/hermes-pcmcia/description
  183. Kernel modules for Hermes based PCMCIA adaptors
  184. endef
  185. define KernelPackage/lib80211
  186. $(call KernelPackage/mac80211/Default)
  187. TITLE:=802.11 Networking stack
  188. DEPENDS:=+kmod-cfg80211 +kmod-crypto-hash +kmod-crypto-ccm
  189. HIDDEN:=1
  190. FILES:= \
  191. $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
  192. $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
  193. $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
  194. $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
  195. AUTOLOAD:=$(call AutoProbe, \
  196. lib80211 \
  197. lib80211_crypt_wep \
  198. lib80211_crypt_ccmp \
  199. lib80211_crypt_tkip \
  200. )
  201. endef
  202. define KernelPackage/lib80211/description
  203. Kernel modules for 802.11 Networking stack
  204. Includes:
  205. - lib80211
  206. - lib80211_crypt_wep
  207. - lib80211_crypt_tkip
  208. - lib80211_crytp_ccmp
  209. endef
  210. define KernelPackage/mac80211-hwsim
  211. $(call KernelPackage/mac80211/Default)
  212. TITLE:=mac80211 HW simulation device
  213. DEPENDS+= +kmod-mac80211 +@DRIVER_11AX_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT
  214. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
  215. AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
  216. endef
  217. define KernelPackage/mt7601u
  218. $(call KernelPackage/mac80211/Default)
  219. TITLE:=MT7601U-based USB dongles Wireless Driver
  220. DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
  221. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
  222. AUTOLOAD:=$(call AutoProbe,mt7601u)
  223. endef
  224. define KernelPackage/p54/Default
  225. $(call KernelPackage/mac80211/Default)
  226. TITLE:=Prism54 Drivers
  227. endef
  228. define KernelPackage/p54/description
  229. Kernel module for Prism54 chipsets (mac80211)
  230. endef
  231. define KernelPackage/p54-common
  232. $(call KernelPackage/p54/Default)
  233. DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT) +kmod-mac80211 +kmod-lib-crc-ccitt
  234. TITLE+= (COMMON)
  235. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54common.ko
  236. endef
  237. define KernelPackage/p54-pci
  238. $(call KernelPackage/p54/Default)
  239. TITLE+= (PCI)
  240. DEPENDS+= @PCI_SUPPORT +kmod-p54-common +p54-pci-firmware
  241. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54pci.ko
  242. AUTOLOAD:=$(call AutoProbe,p54pci)
  243. endef
  244. define KernelPackage/p54-usb
  245. $(call KernelPackage/p54/Default)
  246. TITLE+= (USB)
  247. DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common +p54-usb-firmware
  248. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54usb.ko
  249. AUTOLOAD:=$(call AutoProbe,p54usb)
  250. endef
  251. define KernelPackage/rsi91x
  252. $(call KernelPackage/mac80211/Default)
  253. TITLE:=Redpine Signals Inc 91x WLAN driver support
  254. DEPENDS+= +kmod-mac80211 +rs9113-firmware +@DRIVER_11N_SUPPORT
  255. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_91x.ko
  256. endef
  257. define KernelPackage/rsi91x-usb
  258. $(call KernelPackage/mac80211/Default)
  259. TITLE:=Redpine Signals USB bus support
  260. DEPENDS+=@USB_SUPPORT +kmod-usb-core +kmod-mac80211 +kmod-rsi91x +rs9113-firmware
  261. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_usb.ko
  262. AUTOLOAD:=$(call AutoProbe,rsi_usb)
  263. endef
  264. define KernelPackage/rsi91x-sdio
  265. $(call KernelPackage/mac80211/Default)
  266. TITLE:=Redpine Signals SDIO bus support
  267. DEPENDS+= +kmod-mac80211 +kmod-mmc +kmod-rsi91x +rs9113-firmware
  268. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_sdio.ko
  269. AUTOLOAD:=$(call AutoProbe,rsi_sdio)
  270. endef
  271. define KernelPackage/wlcore
  272. $(call KernelPackage/mac80211/Default)
  273. TITLE:=TI common driver part
  274. DEPENDS+= +kmod-mmc +kmod-mac80211 +@DRIVER_11N_SUPPORT
  275. FILES:= \
  276. $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \
  277. $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
  278. AUTOLOAD:=$(call AutoProbe,wlcore wlcore_sdio)
  279. endef
  280. define KernelPackage/wlcore/description
  281. This module contains some common parts needed by TI Wireless drivers.
  282. endef
  283. define KernelPackage/wl12xx
  284. $(call KernelPackage/mac80211/Default)
  285. TITLE:=Driver for TI WL12xx
  286. URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl12xx
  287. DEPENDS+= +kmod-wlcore +wl12xx-firmware
  288. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko
  289. AUTOLOAD:=$(call AutoProbe,wl12xx)
  290. endef
  291. define KernelPackage/wl12xx/description
  292. Kernel modules for TI WL12xx
  293. endef
  294. define KernelPackage/wl18xx
  295. $(call KernelPackage/mac80211/Default)
  296. TITLE:=Driver for TI WL18xx
  297. URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl18xx
  298. DEPENDS+= +kmod-wlcore +wl18xx-firmware
  299. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl18xx/wl18xx.ko
  300. AUTOLOAD:=$(call AutoProbe,wl18xx)
  301. endef
  302. define KernelPackage/wl18xx/description
  303. Kernel modules for TI WL18xx
  304. endef
  305. ZD1211FW_NAME:=zd1211-firmware
  306. ZD1211FW_VERSION:=1.4
  307. define Download/zd1211rw
  308. FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
  309. URL:=@SF/zd1211/
  310. HASH:=866308f6f59f7075f075d4959dff2ede47735c751251fecd1496df1ba4d338e1
  311. endef
  312. $(eval $(call Download,zd1211rw))
  313. define KernelPackage/zd1211rw
  314. $(call KernelPackage/mac80211/Default)
  315. TITLE:=Zydas ZD1211 support
  316. DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
  317. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zydas/zd1211rw/zd1211rw.ko
  318. AUTOLOAD:=$(call AutoProbe,zd1211rw)
  319. endef
  320. ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
  321. config-y += \
  322. CFG80211_DEBUGFS \
  323. MAC80211_DEBUGFS
  324. endif
  325. ifdef CONFIG_PACKAGE_MAC80211_TRACING
  326. config-y += \
  327. IWLWIFI_DEVICE_TRACING
  328. endif
  329. config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
  330. config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
  331. config-$(call config_package,mt7601u) += MT7601U
  332. config-y += WL_MEDIATEK
  333. config-$(call config_package,p54-common) += P54_COMMON
  334. config-$(call config_package,p54-pci) += P54_PCI
  335. config-$(call config_package,p54-usb) += P54_USB
  336. config-$(call config_package,hermes) += HERMES
  337. config-$(call config_package,hermes-pci) += PCI_HERMES
  338. config-$(call config_package,hermes-plx) += PLX_HERMES
  339. config-$(call config_package,hermes-pcmcia) += PCMCIA_HERMES
  340. config-y += HERMES_PRISM
  341. config-$(call config_package,adm8211) += ADM8211
  342. config-$(call config_package,wlcore) += WLCORE WLCORE_SDIO
  343. config-$(call config_package,wl12xx) += WL12XX
  344. config-$(call config_package,wl18xx) += WL18XX
  345. config-y += WL_TI WILINK_PLATFORM_DATA
  346. config-$(call config_package,zd1211rw) += ZD1211RW
  347. config-$(call config_package,rsi91x) += RSI_91X
  348. config-$(call config_package,rsi91x-usb) += RSI_USB
  349. config-$(call config_package,rsi91x-sdio) += RSI_SDIO
  350. config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS
  351. C_DEFINES=
  352. ifeq ($(BUILD_VARIANT),smallbuffers)
  353. C_DEFINES+= -DCONFIG_ATH10K_SMALLBUFFERS
  354. endif
  355. MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
  356. $(KERNEL_MAKE_FLAGS) \
  357. EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
  358. KLIB_BUILD="$(LINUX_DIR)" \
  359. MODPROBE=true \
  360. KLIB=$(TARGET_MODULES_DIR) \
  361. KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
  362. KBUILD_LDFLAGS_MODULE_PREREQ=
  363. define ConfigVars
  364. $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
  365. ))
  366. endef
  367. define mac80211_config
  368. $(call ConfigVars,m)$(call ConfigVars,y)
  369. endef
  370. $(eval $(call shexport,mac80211_config))
  371. define Build/Prepare
  372. rm -rf $(PKG_BUILD_DIR)
  373. mkdir -p $(PKG_BUILD_DIR)
  374. $(PKG_UNPACK)
  375. $(Build/Patch)
  376. $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
  377. $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
  378. $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
  379. rm -rf \
  380. $(PKG_BUILD_DIR)/include/linux/ssb \
  381. $(PKG_BUILD_DIR)/include/linux/bcma \
  382. $(PKG_BUILD_DIR)/include/net/bluetooth
  383. rm -f \
  384. $(PKG_BUILD_DIR)/include/linux/cordic.h \
  385. $(PKG_BUILD_DIR)/include/linux/crc8.h \
  386. $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
  387. $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
  388. $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
  389. $(PKG_BUILD_DIR)/include/net/ieee80211.h \
  390. $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
  391. echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
  392. endef
  393. ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
  394. define Build/Compile/kmod
  395. rm -rf $(PKG_BUILD_DIR)/modules
  396. +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
  397. endef
  398. endif
  399. #do not Build/Configure for EXTERNAL KERNEL
  400. ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
  401. ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
  402. define Build/Configure
  403. cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
  404. cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
  405. cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
  406. endef
  407. endif
  408. endif
  409. define Build/Patch
  410. $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
  411. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
  412. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
  413. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
  414. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath5k,ath5k/)
  415. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/)
  416. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
  417. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
  418. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
  419. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
  420. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
  421. $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
  422. $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
  423. endef
  424. define Quilt/Refresh/Package
  425. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
  426. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
  427. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
  428. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath5k,ath5k/)
  429. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/)
  430. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
  431. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
  432. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
  433. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
  434. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
  435. $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
  436. endef
  437. define Build/Compile
  438. $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
  439. $(MAKE) $(MAKE_OPTS) allnoconfig
  440. $(call Build/Compile/kmod)
  441. endef
  442. define Build/InstallDev
  443. mkdir -p \
  444. $(1)/usr/include/mac80211 \
  445. $(1)/usr/include/mac80211-backport \
  446. $(1)/usr/include/mac80211/ath \
  447. $(1)/usr/include/net/mac80211
  448. $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
  449. $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
  450. $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
  451. $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
  452. rm -f $(1)/usr/include/mac80211-backport/linux/module.h
  453. endef
  454. define KernelPackage/cfg80211/install
  455. $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
  456. $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
  457. $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
  458. $(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211
  459. $(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/10-wifi-detect
  460. endef
  461. define KernelPackage/zd1211rw/install
  462. $(INSTALL_DIR) $(1)/lib/firmware/zd1211
  463. $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
  464. endef
  465. $(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
  466. $(eval $(call KernelPackage,cfg80211))
  467. $(eval $(call KernelPackage,mac80211))