mac80211: Update to version 4.19.221
[librecmc/librecmc.git] / package / kernel / mac80211 / Makefile
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
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10
11 PKG_NAME:=mac80211
12
13 PKG_VERSION:=4.19.221-1
14 PKG_RELEASE:=1
15 PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.221/
16 PKG_HASH:=343f54b21ddda4bc79c0457a7fa88356d430b802f86194abc20fe09c12559b05
17
18 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
19 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
20 PKG_BUILD_PARALLEL:=1
21
22 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
23
24 PKG_DRIVERS = \
25         adm8211 \
26         lib80211 \
27         mac80211-hwsim
28
29
30 PKG_CONFIG_DEPENDS:= \
31         CONFIG_PACKAGE_kmod-mac80211 \
32         CONFIG_PACKAGE_MAC80211_DEBUGFS \
33         CONFIG_PACKAGE_MAC80211_MESH \
34         CONFIG_PACKAGE_MAC80211_TRACING \
35         CONFIG_PACKAGE_IWLWIFI_DEBUG \
36         CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
37         CONFIG_PACKAGE_RTLWIFI_DEBUG \
38
39 include $(INCLUDE_DIR)/package.mk
40
41 WMENU:=Wireless Drivers
42
43 define KernelPackage/mac80211/Default
44   SUBMENU:=$(WMENU)
45   URL:=https://wireless.wiki.kernel.org/
46   MAINTAINER:=Felix Fietkau <nbd@nbd.name>
47 endef
48
49 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
50
51 config-y:= \
52         WLAN \
53         NL80211_TESTMODE \
54         CFG80211_WEXT \
55         CFG80211_CERTIFICATION_ONUS \
56         MAC80211_RC_MINSTREL \
57         MAC80211_RC_MINSTREL_HT \
58         MAC80211_RC_MINSTREL_VHT \
59         MAC80211_RC_DEFAULT_MINSTREL \
60         WLAN_VENDOR_ADMTEK \
61         WLAN_VENDOR_ATH \
62         WLAN_VENDOR_ATMEL \
63         WLAN_VENDOR_BROADCOM \
64         WLAN_VENDOR_CISCO \
65         WLAN_VENDOR_INTEL \
66         WLAN_VENDOR_INTERSIL \
67         WLAN_VENDOR_MARVELL \
68         WLAN_VENDOR_MEDIATEK \
69         WLAN_VENDOR_RALINK \
70         WLAN_VENDOR_REALTEK \
71         WLAN_VENDOR_RSI \
72         WLAN_VENDOR_ST \
73         WLAN_VENDOR_TI \
74         WLAN_VENDOR_ZYDAS \
75
76 config-$(call config_package,cfg80211) += CFG80211
77
78 config-$(call config_package,mac80211) += MAC80211
79 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
80
81 include ath.mk
82
83 PKG_CONFIG_DEPENDS += \
84         $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS))
85
86 define KernelPackage/cfg80211
87   $(call KernelPackage/mac80211/Default)
88   TITLE:=cfg80211 - wireless configuration API
89   DEPENDS+= +iw +wireless-regdb
90   ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
91   FILES:= \
92         $(PKG_BUILD_DIR)/compat/compat.ko \
93         $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
94 endef
95
96 define KernelPackage/cfg80211/description
97 cfg80211 is the Linux wireless LAN (802.11) configuration API.
98 endef
99
100 define KernelPackage/mac80211
101   $(call KernelPackage/mac80211/Default)
102   TITLE:=Linux 802.11 Wireless Networking Stack
103   # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
104   DEPENDS+= +kmod-cfg80211 +hostapd-common
105   KCONFIG:=\
106         CONFIG_AVERAGE=y
107   FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
108   ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
109   MENU:=1
110 endef
111
112 define KernelPackage/mac80211/config
113   if PACKAGE_kmod-mac80211
114
115         config PACKAGE_MAC80211_DEBUGFS
116                 bool "Export mac80211 internals in DebugFS"
117                 select KERNEL_DEBUG_FS
118                 default y
119                 help
120                   Select this to see extensive information about
121                   the internal state of mac80211 in debugfs.
122
123         config PACKAGE_MAC80211_TRACING
124                 bool "Enable tracing (mac80211 and supported drivers)"
125                 select KERNEL_FTRACE
126                 select KERNEL_ENABLE_DEFAULT_TRACERS
127                 default n
128                 help
129                   Select this to enable tracing of mac80211 and
130                   related wifi drivers (using trace-cmd).
131
132         config PACKAGE_MAC80211_MESH
133                 bool "Enable 802.11s mesh support"
134                 default y
135
136   endif
137 endef
138
139 define KernelPackage/mac80211/description
140 Generic IEEE 802.11 Networking Stack (mac80211)
141 endef
142
143 define KernelPackage/adm8211
144   $(call KernelPackage/mac80211/Default)
145   TITLE:=ADMTek 8211 support
146   DEPENDS+=@PCI_SUPPORT +kmod-mac80211 +kmod-eeprom-93cx6
147   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/admtek/adm8211.ko
148   AUTOLOAD:=$(call AutoProbe,adm8211)
149 endef
150
151
152
153
154
155
156
157
158
159
160
161
162 define KernelPackage/lib80211
163   $(call KernelPackage/mac80211/Default)
164   TITLE:=802.11 Networking stack
165   DEPENDS:=+kmod-cfg80211 +kmod-crypto-hash
166   FILES:= \
167         $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
168         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
169         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
170         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
171   AUTOLOAD:=$(call AutoProbe, \
172         lib80211 \
173         lib80211_crypt_wep \
174         lib80211_crypt_ccmp \
175         lib80211_crypt_tkip \
176   )
177 endef
178
179 define KernelPackage/lib80211/description
180  Kernel modules for 802.11 Networking stack
181  Includes:
182  - lib80211
183  - lib80211_crypt_wep
184  - lib80211_crypt_tkip
185  - lib80211_crytp_ccmp
186 endef
187
188
189 define KernelPackage/mac80211-hwsim
190   $(call KernelPackage/mac80211/Default)
191   TITLE:=mac80211 HW simulation device
192   DEPENDS+= +kmod-mac80211 +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT
193   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
194   AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
195 endef
196
197 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
198   config-y += \
199         CFG80211_DEBUGFS \
200         MAC80211_DEBUGFS
201 endif
202
203 ifdef CONFIG_PACKAGE_MAC80211_TRACING
204   config-y += \
205         IWLWIFI_DEVICE_TRACING
206 endif
207
208 config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
209
210
211 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
212
213
214
215 config-$(call config_package,adm8211) += ADM8211
216 config-$(call config_package,rsi91x) += RSI_91X
217 config-$(call config_package,rsi91x-usb) += RSI_USB
218 config-$(call config_package,rsi91x-sdio) += RSI_SDIO
219
220 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS
221
222 MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
223         $(KERNEL_MAKE_FLAGS) \
224         EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS)" \
225         KLIB_BUILD="$(LINUX_DIR)" \
226         MODPROBE=true \
227         KLIB=$(TARGET_MODULES_DIR) \
228         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
229         KBUILD_LDFLAGS_MODULE_PREREQ=
230
231 define ConfigVars
232 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
233 ))
234 endef
235
236 define mac80211_config
237 $(call ConfigVars,m)$(call ConfigVars,y)
238 endef
239 $(eval $(call shexport,mac80211_config))
240
241 define Build/Prepare
242         rm -rf $(PKG_BUILD_DIR)
243         mkdir -p $(PKG_BUILD_DIR)
244         $(PKG_UNPACK)
245         $(Build/Patch)
246         rm -rf \
247                 $(PKG_BUILD_DIR)/include/linux/ssb \
248                 $(PKG_BUILD_DIR)/include/linux/bcma \
249                 $(PKG_BUILD_DIR)/include/net/bluetooth
250
251         rm -f \
252                 $(PKG_BUILD_DIR)/include/linux/cordic.h \
253                 $(PKG_BUILD_DIR)/include/linux/crc8.h \
254                 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
255                 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
256                 $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
257                 $(PKG_BUILD_DIR)/include/net/ieee80211.h \
258                 $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
259
260         echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
261 endef
262
263 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
264  define Build/Compile/kmod
265         rm -rf $(PKG_BUILD_DIR)/modules
266         +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
267  endef
268 endif
269
270 #do not Build/Configure for EXTERNAL KERNEL
271 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
272   ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
273     define Build/Configure
274           cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
275           cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
276           cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
277     endef
278   endif
279 endif
280
281 define Build/Patch
282         $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
283         $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
284         $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
285         $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
286         $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
287         $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
288         $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
289         $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
290 endef
291
292 define Quilt/Refresh/Package
293         $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
294         $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
295         $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
296         $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
297         $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
298         $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
299 endef
300
301 define Build/Compile
302         $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
303         $(MAKE) $(MAKE_OPTS) allnoconfig
304         $(call Build/Compile/kmod)
305 endef
306
307 define Build/InstallDev
308         mkdir -p \
309                 $(1)/usr/include/mac80211 \
310                 $(1)/usr/include/mac80211-backport \
311                 $(1)/usr/include/mac80211/ath \
312                 $(1)/usr/include/net/mac80211
313         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
314         $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
315         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
316         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
317         rm -f $(1)/usr/include/mac80211-backport/linux/module.h
318 endef
319
320
321
322 define KernelPackage/cfg80211/install
323         $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
324         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
325         $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
326         $(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211
327         $(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/10-wifi-detect
328 endef
329
330
331 $(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
332 $(eval $(call KernelPackage,cfg80211))
333 $(eval $(call KernelPackage,mac80211))