1# Helper makefile for building Broadcom wl device driver
2# This file maps wl driver feature flags (import) to WLFLAGS and WLFILES_SRC (export).
3#
4# Copyright (C) 2015, Broadcom Corporation. All Rights Reserved.
5# 
6# Permission to use, copy, modify, and/or distribute this software for any
7# purpose with or without fee is hereby granted, provided that the above
8# copyright notice and this permission notice appear in all copies.
9# 
10# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
13# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
15# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
16# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17# $Id: wl.mk 534370 2015-02-13 05:37:36Z $
18
19
20
21ifeq ($(BCMDBG_PINGTRACK), 1)
22WLFLAGS += -DBCMDBG_PINGTRACK
23WLFILES_SRC_LO += src/wl/sys/wlc_ptrack.c
24endif
25
26# debug/internal
27ifeq ($(WL_EXPORT_CURPOWER),1)
28	WLFLAGS += -DWL_EXPORT_CURPOWER
29endif
30ifeq ($(DEBUG),1)
31	WLFLAGS += -DBCMDBG -DWLTEST -DRWL_WIFI -DWIFI_ACT_FRAME -DWLRWL -DWL_EXPORT_CURPOWER
32	WLRWL = 1
33else ifeq ($(WLDEBUG),1)
34	BCMUTILS = 1
35	OSLLX = 1
36	WLFLAGS += -DBCMDBG -DWLTEST -DWIFI_ACT_FRAME -DWL_EXPORT_CURPOWER
37else
38#ifdef WLTEST
39	# mfgtest builds
40	ifeq ($(WLTEST),1)
41		WLFLAGS += -DWLTEST -DWL_EXPORT_CURPOWER
42	endif
43#endif
44endif
45
46
47ifeq ($(HSPOT),1)
48	WLBSSLOAD = 1
49	L2_FILTER = 1
50	WLDLS = 1
51	WLWNM = 1
52	WIFI_ACT_FRAME = 1
53	WL11U = 1
54	WLPROBRESP_SW = 1
55endif
56
57ifeq ($(NPS),1)
58	WLWNM = 1
59	WLNPS = 1
60	ifeq ($(STA),1)
61		KEEP_ALIVE = 1
62	endif
63endif
64
65ifneq ($(MINIAP),1)
66	WLFLAGS += -DENABLE_ACPHY
67endif
68WLFLAGS += -DPPR_API
69
70#ifdef WL11AC
71ifneq ($(WL11AC),0)
72	WL11AC := 1
73	WLFLAGS += -DWL11AC
74
75ifneq ($(WLTXBF),0)
76	WLFLAGS += -DWL_BEAMFORMING
77endif
78endif
79#endif
80
81ifeq ($(WLATF),1)
82	WLATF := 1
83	WLFLAGS += -DWLATF
84endif
85
86
87ifeq ($(NTGRARLO), 1)
88	WLFLAGS += -DNTGRARLO
89endif
90
91ifneq ($(WLC_MAX_UCODE_BSS),)
92	WLFLAGS += -DWLC_MAX_UCODE_BSS=$(WLC_MAX_UCODE_BSS)
93endif
94
95#ifdef BCMDBG_MEM
96ifeq ($(BCMDBG_MEM),1)
97	WLFLAGS += -DBCMDBG_MEM
98endif
99#endif
100
101#ifdef BCMDBG_PKT
102ifeq ($(BCMDBG_PKT),1)
103	WLFLAGS += -DBCMDBG_PKT
104endif
105#endif
106
107#ifdef PKTQ_LOG
108ifeq ($(PKTQ_LOG),1)
109	WLFLAGS += -DPKTQ_LOG
110	ifeq ($(SCB_BS_DATA),1)
111		WLFILES_SRC_HI += src/wl/sys/wlc_bs_data.c
112		WLFLAGS += -DSCB_BS_DATA
113	endif
114endif
115#endif
116
117ifeq ($(PSPRETEND),1)
118	WLFLAGS += -DPSPRETEND
119	WLFLAGS += -DWL_CS_PKTRETRY -DWL_CS_RESTRICT_RELEASE
120endif
121
122#ifdef BCMDBG_TRAP
123# CPU debug traps (lomem access, divide by 0, etc) are enabled except when mogrified out for
124# external releases.
125WLFLAGS += -DBCMDBG_TRAP
126#endif
127
128## wl driver common
129
130ifndef WL_LOW
131WL_LOW = 1
132endif
133
134ifndef WL_HIGH
135WL_HIGH = 1
136endif
137
138## iff one of WLC_LOW and WLC_HIGH is defined, SPLIT is true
139WL_SPLIT = 0
140ifeq ($(WL_LOW),1)
141	ifneq ($(WL_HIGH),1)
142		WL_SPLIT = 1
143	endif
144endif
145
146ifeq ($(WL_HIGH),1)
147	ifneq ($(WL_LOW),1)
148		WL_SPLIT = 1
149		ifeq ($(RPC_NOCOPY),1)
150			WLFLAGS += -DBCM_RPC_NOCOPY
151		endif
152		ifeq ($(RPC_RXNOCOPY),1)
153			WLFLAGS += -DBCM_RPC_RXNOCOPY
154		endif
155		ifeq ($(RPC_TXNOCOPY),1)
156			WLFLAGS += -DBCM_RPC_TXNOCOPY
157		endif
158		ifeq ($(RPC_TOC),1)
159			WLFLAGS += -DBCM_RPC_TOC
160		endif
161		ifeq ($(RPC_ROC),1)
162			WLFLAGS += -DBCM_RPC_ROC
163		endif
164		ifeq ($(BMAC_ENABLE_LINUX_HOST_RPCAGG),1)
165			WLFLAGS += -DBMAC_ENABLE_LINUX_HOST_RPCAGG
166		endif
167		ifeq ($(DBUS_LINUX_RXDPC),1)
168			WLFLAGS += -DDBUS_LINUX_RXDPC
169		endif
170		ifneq ($(BCM_RPC_TP_DBUS_NTXQ),)
171			WLFLAGS += -DBCM_RPC_TP_DBUS_NTXQ=$(BCM_RPC_TP_DBUS_NTXQ)
172		endif
173		ifneq ($(BCM_RPC_TP_DBUS_NRXQ),)
174			WLFLAGS += -DBCM_RPC_TP_DBUS_NRXQ=$(BCM_RPC_TP_DBUS_NRXQ)
175		endif
176		ifeq ($(BCMUSBDEV_EP_FOR_RPCRETURN),1)
177			WLFLAGS += -DBCMUSBDEV_EP_FOR_RPCRETURN
178		endif
179		ifeq ($(BCMUSBDEV_COMPOSITE),1)
180			WLFLAGS += -DBCMUSBDEV_COMPOSITE
181		endif
182	endif
183endif
184
185ifeq ($(WL_LOW),1)
186	WLFLAGS += -DWLC_LOW
187	ifneq ($(WL_HIGH),1)
188		ifneq ($(BCM_RPC_TP_FLOWCTL_QWM_HIGH),)
189			WLFLAGS += -DBCM_RPC_TP_FLOWCTL_QWM_HIGH=$(BCM_RPC_TP_FLOWCTL_QWM_HIGH)
190		endif
191	endif
192endif
193
194ifeq ($(WL_HIGH),1)
195	WLFLAGS += -DWLC_HIGH
196endif
197
198ifeq ($(GTK_RESET),1)
199	WLFLAGS += -DGTK_RESET
200endif
201
202ifeq ($(USBAP),1)
203	WLFLAGS += -DUSBAP
204	WLFLAGS += -DEHCI_FASTPATH_TX -DEHCI_FASTPATH_RX
205endif
206
207# split driver infrastructure files
208ifeq ($(WL_SPLIT),1)
209	WLFILES_SRC += src/shared/bcm_xdr.c
210	WLFILES_SRC += src/shared/bcm_rpc.c
211	ifneq ($(USBAP),1)
212		WLFILES_SRC_HI += src/shared/nvramstubs.c
213	endif
214	ifeq ($(OSLLX),1)
215		WLFILES_SRC_HI += src/shared/linux_rpc_osl.c
216	endif
217
218	ifeq ($(OSLNDIS),1)
219		WLFILES_SRC_HI += src/shared/ndis_rpc_osl.c
220	endif
221
222	ifeq ($(BCMDBUS),1)
223		WLFILES_SRC_HI += src/shared/bcm_rpc_tp_dbus.c
224	endif
225
226	WLFILES_SRC_HI += src/wl/sys/wlc_bmac_stubs.c
227	WLFILES_SRC_HI += src/wl/sys/wlc_rpctx.c
228	WLFILES_SRC_LO += src/wl/sys/wlc_high_stubs.c
229
230	WLFILES_SRC_HI += src/wl/ppr/src/wlc_ppr.c
231
232	ifeq ($(WL_HIGH),1)
233		ifeq ($(BCMSDIO),1)
234			ifneq ($(WLVISTA)$(WLWIN7)$(WLWIN8),)
235				WLFILES_SRC_HI += src/shared/sdh_ndis.c
236			endif
237		else
238			WLFLAGS += -DBCMBUSTYPE=RPC_BUS
239			WLFLAGS += -DOSLREGOPS
240			ifeq ($(WLNDIS),1)
241				WLFLAGS += -DBCMUSB
242			endif
243		endif
244	endif
245	WLFLAGS += -DPREATTACH_NORECLAIM
246endif
247
248#ifdef WL
249ifeq ($(WL),1)
250	WLFILES_SRC += src/shared/bcmwifi/src/bcmwifi_channels.c
251	WLFILES_SRC += src/shared/bcmevent.c
252	WLFILES_SRC += src/shared/bcm_mpool.c
253	WLFILES_SRC += src/shared/bcm_notif.c
254	WLFILES_SRC += src/wl/sys/wlc_alloc.c
255	WLFILES_SRC += src/wl/sys/wlc_intr.c
256	WLFILES_SRC += src/wl/sys/wlc_hw.c
257
258	WLFILES_SRC_LO += src/shared/qmath.c
259	WLFILES_SRC_LO += src/wl/sys/d11ucode_gt15.c
260	WLFILES_SRC_LO += src/wl/sys/d11ucode_ge24.c
261	WLFILES_SRC_LO += src/wl/ppr/src/wlc_ppr.c
262	WLFILES_SRC_LO += src/wl/phy/wlc_phy_cmn.c
263	WLFILES_SRC_LO += src/wl/phy/wlc_phy_ssn.c
264	WLFILES_SRC_LO += src/wl/phy/wlc_phy_n.c
265	WLFILES_SRC_LO += src/wl/phy/wlc_phy_radio_n.c
266	WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_n.c
267	WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_ssn.c
268	WLFILES_SRC_LO += src/wl/sys/wlc_phy_shim.c
269	WLFILES_SRC_LO += src/wl/sys/wlc_bmac.c
270
271	ifneq ($(MINIAP),1)
272		WLFILES_SRC_LO += src/wl/sys/d11ucode_ge40.c
273		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_ac.c
274		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_acdc.c
275		WLFILES_SRC_LO += src/wl/phy/wlc_phy_ac.c
276		WLFILES_SRC_LO += src/wl/sys/d11ucode_le15.c
277		WLFILES_SRC_LO += src/wl/phy/wlc_phy_ht.c
278		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_ht.c
279		WLFILES_SRC_LO += src/wl/phy/wlc_phy_lcn40.c
280		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_lcn40.c
281		WLFILES_SRC_LO += src/wl/phy/wlc_phy_lcn.c
282		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_lcn.c
283		WLFILES_SRC_LO += src/wl/phy/wlc_phy_lp.c
284		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_lp.c
285		WLFILES_SRC_LO += src/wl/phy/wlc_phy_abg.c
286	endif
287
288	WLFILES_SRC_HI += src/wl/sys/wlc.c
289	WLFILES_SRC_HI += src/wl/sys/wlc_utils.c
290	WLFILES_SRC_HI += src/wl/sys/wlc_prot.c
291	WLFILES_SRC_HI += src/wl/sys/wlc_prot_g.c
292	WLFILES_SRC_HI += src/wl/sys/wlc_prot_n.c
293	WLFILES_SRC_HI += src/wl/sys/wlc_assoc.c
294	WLFILES_SRC_HI += src/wl/sys/wlc_rate.c
295	WLFILES_SRC_HI += src/wl/sys/wlc_stf.c
296	WLFILES_SRC_HI += src/wl/sys/wlc_lq.c
297	ifneq ($(WLOBSSPROT),0)
298		WLFLAGS += -DWL_OBSSPROT
299	endif
300	ifneq ($(WLWSEC),0)
301		WLFLAGS += -DWLWSEC
302		WLFILES_SRC_HI += src/wl/sys/wlc_security.c
303		WLFILES_SRC_HI += src/wl/sys/wlc_key.c
304	endif
305	WLFILES_SRC_HI += src/wl/sys/wlc_scb.c
306	WLFILES_SRC_HI += src/wl/sys/wlc_rate_sel.c
307	WLFILES_SRC_HI += src/wl/sys/wlc_scb_ratesel.c
308	WLFILES_SRC_HI += src/wl/sys/wlc_macfltr.c
309
310        ifeq ($(WL_PROXDETECT),1)
311		WLFLAGS += -DWL_PROXDETECT
312		WLFILES_SRC_HI += src/wl/proxd/src/wlc_pdsvc.c
313		WLFILES_SRC_HI += src/wl/proxd/src/wlc_pdrssi.c
314	endif
315
316#ifdef WL_LPC
317	ifeq ($(WL_LPC),1)
318		WLFLAGS += -DWL_LPC
319		WLFILES_SRC_LO += src/wl/sys/wlc_power_sel.c
320		WLFILES_SRC_LO += src/wl/sys/wlc_scb_powersel.c
321	else
322		ifeq ($(LP_P2P_SOFTAP),1)
323			WLFLAGS += -DLP_P2P_SOFTAP
324		endif
325	endif
326#ifdef WL_LPC_DEBUG
327	ifeq ($(WL_LPC_DEBUG),1)
328		WLFLAGS += -DWL_LPC_DEBUG
329	endif
330#endif
331#endif
332	ifeq ($(WL_RELMCAST),1)
333		WLFLAGS += -DWL_RELMCAST
334		WLFILES_SRC_HI += src/wl/rel_mcast/src/wlc_relmcast.c
335	endif
336	WLFILES_SRC_HI += src/wl/sys/wlc_antsel.c
337	WLFILES_SRC_HI += src/wl/sys/wlc_bsscfg.c
338	WLFILES_SRC_HI += src/wl/sys/wlc_vndr_ie_list.c
339	WLFILES_SRC_HI += src/wl/sys/wlc_scan.c
340	WLFILES_SRC_HI += src/wl/phy/wlc_phy_iovar.c
341	WLFILES_SRC_HI += src/wl/sys/wlc_rm.c
342	WLFILES_SRC_HI += src/wl/sys/wlc_tso.c
343	ifeq ($(WL11AC),1)
344		WLFILES_SRC_HI += src/wl/sys/wlc_vht.c
345		WLFILES_SRC_HI += src/wl/sys/wlc_txbf.c
346	endif
347	ifeq ($(WLATF),1)
348		WLFILES_SRC_HI += src/wl/sys/wlc_airtime.c
349	endif
350#ifdef WL11H
351	ifeq ($(WL11H),1)
352		WLFLAGS += -DWL11H
353		WLFILES_SRC_HI += src/wl/sys/wlc_11h.c
354		WLFLAGS += -DWLCSA
355		WLFILES_SRC_HI += src/wl/sys/wlc_csa.c
356		WLFLAGS += -DWLQUIET
357		WLFILES_SRC_HI += src/wl/sys/wlc_quiet.c
358	endif
359#endif /* WL11H */
360	# tpc module is shared by 11h tpc and wl tx power control */
361	WLTPC := 1
362	ifeq ($(WLTPC),1)
363		WLFLAGS += -DWLTPC
364		WLFILES_SRC_HI += src/wl/sys/wlc_tpc.c
365#ifdef WL_AP_TPC
366		ifeq ($(WL_AP_TPC),1)
367			WLFLAGS += -DWL_AP_TPC
368		endif
369#endif
370		ifeq ($(WL_CHANSPEC_TXPWR_MAX),1)
371			WLFLAGS += -DWL_CHANSPEC_TXPWR_MAX
372		endif
373	endif
374	WLFILES_SRC_HI += src/wl/sys/wlc_dfs.c
375#ifdef WL11D
376	ifeq ($(WL11D),1)
377		WLFLAGS += -DWL11D
378		WLFILES_SRC_HI += src/wl/sys/wlc_11d.c
379	endif
380#endif /* WL11D */
381	# cntry module is shared by 11h/11d and wl channel */
382	WLCNTRY := 1
383	ifeq ($(WLCNTRY),1)
384		WLFLAGS += -DWLCNTRY
385		WLFILES_SRC_HI += src/wl/sys/wlc_cntry.c
386	endif
387	WLFILES_SRC_HI += src/wl/sys/wlc_event.c
388	ifeq ($(WLCHANNEL_DUMMY),1)
389		WLFILES_SRC_HI += src/wl/sys/wlc_channel_dummy.c
390	else
391		WLFILES_SRC_HI += src/wl/sys/wlc_channel.c
392		WLFILES_SRC_HI += src/wl/clm/src/wlc_clm.c
393		WLFILES_SRC_HI += src/wl/clm/src/wlc_clm_data.c
394		ifeq ($(WLCLMINC),1)
395			WLFILES_SRC_HI += src/wl/clm/src/wlc_clm_data_inc.c
396		endif
397	endif
398	WLFILES_SRC_HI += src/shared/bcmwpa.c
399#ifndef LINUX_CRYPTO
400	ifneq ($(LINUX_CRYPTO),1)
401		WLFILES_SRC_HI += src/bcmcrypto/rc4.c
402		WLFILES_SRC_HI += src/bcmcrypto/tkhash.c
403		WLFILES_SRC_HI += src/bcmcrypto/tkmic.c
404		WLFILES_SRC_HI += src/bcmcrypto/wep.c
405	endif
406#endif /* LINUX_CRYPTO */
407#ifdef WLEXTLOG
408ifeq ($(WLEXTLOG),1)
409	WLFLAGS += -DWLEXTLOG
410	WLFILES_SRC += src/wl/sys/wlc_extlog.c
411endif
412#endif
413#ifdef WLSCANCACHE
414ifeq ($(WLSCANCACHE),1)
415	WLFLAGS += -DWLSCANCACHE
416	WLFILES_SRC_HI += src/wl/sys/wlc_scandb.c
417endif
418#endif
419	WLFILES_SRC_HI += src/wl/sys/wlc_hrt.c
420endif
421#endif /* WL */
422
423#ifdef BCMDBUS
424ifeq ($(BCMDBUS),1)
425	WLFLAGS += -DBCMDBUS
426	WLFILES_SRC += src/shared/dbus.c
427
428	ifeq ($(BCMTRXV2),1)
429		WLFLAGS += -DBCMTRXV2
430	endif
431
432	ifeq ($(BCMSDIO),1)
433		ifeq ($(WL_HIGH),1)
434			WLFILES_SRC_HI += src/shared/siutils.c
435			WLFILES_SRC_HI += src/shared/bcmotp.c
436			WLFILES_SRC_HI += src/shared/sbutils.c
437			WLFILES_SRC_HI += src/shared/aiutils.c
438			WLFILES_SRC_HI += src/shared/hndpmu.c
439		endif
440	endif
441
442	ifeq ($(WLLX),1)
443		ifeq ($(BCMSDIO),1)
444			WLFILES_SRC += src/shared/dbus_sdh.c
445			WLFILES_SRC += src/shared/dbus_sdh_linux.c
446		else
447			WLFILES_SRC += src/shared/dbus_usb.c
448			WLFILES_SRC += src/shared/dbus_usb_linux.c
449		endif
450	else
451		ifeq ($(WLNDIS),1)
452			ifeq ($(BCMSDIO),1)
453				ifneq ($(WLWIN7)$(WLWIN8),)
454					WLFILES_SRC += src/shared/dbus_sdio.c
455					WLFILES_SRC += src/shared/dbus_sdio_ndis.c
456				else
457					WLFILES_SRC += src/shared/dbus_sdh.c
458					WLFILES_SRC += src/shared/dbus_sdh_ndis.c
459				endif
460			else
461				WLFILES_SRC += src/shared/dbus_usb.c
462				WLFILES_SRC += src/shared/dbus_usb_ndis.c
463			endif
464		endif
465	endif
466endif
467#endif
468
469#ifndef LINUX_HYBRID
470ifeq ($(BCM_DNGL_EMBEDIMAGE),1)
471	WLFLAGS += -DBCM_DNGL_EMBEDIMAGE
472endif
473#endif
474
475# For USBAP to select which images to embed
476ifeq ($(EMBED_IMAGE_4319usb),1)
477	WLFLAGS += -DEMBED_IMAGE_4319usb
478endif
479ifeq ($(EMBED_IMAGE_4319sd),1)
480	WLFLAGS += -DEMBED_IMAGE_4319sd
481endif
482ifeq ($(EMBED_IMAGE_4322),1)
483	WLFLAGS += -DEMBED_IMAGE_4322
484endif
485
486ifeq ($(EMBED_IMAGE_43236b),1)
487	WLFLAGS += -DEMBED_IMAGE_43236b
488endif
489ifeq ($(EMBED_IMAGE_43526a),1)
490	WLFLAGS += -DEMBED_IMAGE_43526a
491endif
492ifeq ($(EMBED_IMAGE_43526b),1)
493	WLFLAGS += -DEMBED_IMAGE_43526b
494endif
495ifeq ($(EMBED_IMAGE_4325sd),1)
496	WLFLAGS += -DEMBED_IMAGE_4325sd
497endif
498
499ifeq ($(DNGL_WD_KEEP_ALIVE),1)
500	WLFLAGS += -DDNGL_WD_KEEP_ALIVE
501endif
502
503## wl OSL
504#ifdef WLVX
505ifeq ($(WLVX),1)
506	WLFILES_SRC += src/wl/sys/wl_vx.c
507	WLFILES_SRC += src/shared/bcmstdlib.c
508	WLFLAGS += -DSEC_TXC_ENABLED
509endif
510#endif
511
512#ifdef WLBSD
513ifeq ($(WLBSD),1)
514	WLFILES_SRC += src/wl/sys/wl_bsd.c
515endif
516#endif
517
518#ifdef WLLX
519ifeq ($(WLLX),1)
520	ifneq ($(WL_HIGH),1)
521		WLFILES_SRC_LO += src/wl/sys/wl_linux_bmac.c
522		WLFILES_SRC_LO += src/shared/bcm_rpc_char.c
523	endif
524
525        WLFILES_SRC_HI += src/wl/sys/wl_linux.c
526endif
527#endif
528
529#ifdef WLLXIW
530ifeq ($(WLLXIW),1)
531	WLFILES_SRC_HI += src/wl/sys/wl_iw.c
532	WLFLAGS += -DWLLXIW
533endif
534#endif
535
536#ifdef WLLXCFG80211
537ifdef ($(WLLXCFG80211),1)
538	WLFILES_SRC_HI += src/wl/sys/wl_cfg80211_hybrid.c
539endif
540#endif
541
542ifeq ($(BCM_STA_CFG80211),1)
543	WLFILES_SRC_HI += src/wl/sys/wl_cfg80211.c 
544	WLFILES_SRC_HI += src/wl/sys/wl_cfgp2p.c
545	WLFILES_SRC_HI += src/wl/sys/wldev_common.c
546	WLFILES_SRC_HI += src/wl/sys/wl_linux_mon.c
547endif
548
549#ifdef WLCFE
550ifeq ($(WLCFE),1)
551	WLFILES_SRC += src/wl/sys/wl_cfe.c
552endif
553#endif
554
555#ifdef WLRTE
556ifeq ($(WLRTE),1)
557	WLFILES_SRC += src/wl/sys/wl_rte.c
558	ifneq ($(WL_HIGH),1)
559		WLFILES_SRC_LO += src/shared/bcm_rpc_tp_rte.c
560	endif
561endif
562#endif
563
564ifeq ($(BCMECICOEX),1)
565	WLFLAGS += -DBCMECICOEX
566endif
567
568ifeq ($(DNGL_WD_KEEP_ALIVE),1)
569	WLFLAGS += -DDNGL_WD_KEEP_ALIVE
570endif
571
572
573ifeq ($(TRAFFIC_MGMT),1)
574	WLFLAGS += -DTRAFFIC_MGMT
575	WLFILES_SRC += src/wl/sys/wlc_traffic_mgmt.c
576
577	ifeq ($(TRAFFIC_SHAPING),1)
578		WLFLAGS += -DTRAFFIC_SHAPING
579	endif
580
581	ifeq ($(TRAFFIC_MGMT_RSSI_POLICY),1)
582		WLFLAGS += -DTRAFFIC_MGMT_RSSI_POLICY=$(AP)
583	endif
584
585endif
586
587#ifdef NDIS
588# anything Windows/NDIS specific for 2k/xp/vista/windows7
589ifeq ($(WLNDIS),1)
590	WLFILES_SRC += src/wl/sys/wl_ndis.c
591
592	ifeq ($(WLNDIS_DHD),)
593		WLFILES_SRC += src/wl/sys/nhd_ndis.c
594		ifeq ($(WL_SPLIT),1)
595			ifdef USEDDK
596				WLFLAGS += -DMEMORY_TAG="'7034'"
597			else
598				WLFLAGS += -DMEMORY_TAG='DWMB'
599			endif
600		else
601			ifdef USEDDK
602				WLFLAGS += -DMEMORY_TAG="'7034'"
603			else
604				WLFLAGS += -DMEMORY_TAG='NWMB'
605			endif
606		endif
607	else
608		WLFILES_SRC += src/dhd/sys/dhd_ndis.c
609		ifdef USEDDK
610			WLFLAGS += -DMEMORY_TAG="'7034'"
611		else
612			WLFLAGS += -DMEMORY_TAG='DWMB'
613		endif
614	endif
615
616	WLFILES_SRC += src/wl/sys/wl_ndconfig.c
617	WLFILES_SRC += src/shared/bcmwifi/src/bcmwifi_channels.c
618	WLFILES_SRC += src/shared/bcmstdlib.c
619
620	# support host supplied nvram variables
621	ifeq ($(WLTEST),1)
622		ifeq ($(WLHOSTVARS), 1)
623			WLFLAGS += -DBCMHOSTVARS
624		endif
625	else
626		ifeq ($(BCMEXTNVM),1)
627			ifeq ($(WLHOSTVARS), 1)
628				WLFLAGS += -DBCMHOSTVARS
629			endif
630		endif
631	endif
632
633	ifneq ($(WLVISTA)$(WLWIN7)$(WLWIN8),)
634		WLFLAGS += -DEXT_STA
635		WLFLAGS += -DWL_MONITOR
636	        WLFLAGS += -DIBSS_PEER_GROUP_KEY
637	        WLFLAGS += -DIBSS_PEER_DISCOVERY_EVENT
638	        WLFLAGS += -DIBSS_PEER_MGMT
639	endif
640
641	ifneq ($(WLWIN7)$(WLWIN8),)
642		WLFLAGS += -DAP
643	endif
644
645	ifeq ($(WLXP),1)
646		WLFLAGS += -DWLNOEIND
647	endif
648
649	ifeq ($(WLVIF),1)
650		WLFLAGS += -DWLVIF
651	endif
652
653	# HIGH driver for BMAC ?? any ndis/xp/vista ?
654	ifeq ($(WL_SPLIT),1)
655	endif
656
657	# DHD host: ?? to clean up and to support all other DHD OSes
658	ifeq ($(WLNDIS_DHD),1)
659		WLFLAGS += -DSHOW_EVENTS -DBCMPERFSTATS
660		WLFLAGS += -DBDC -DBCMDONGLEHOST
661		WLFLAGS += -DBCM4325
662
663		ifneq ($(BCMSDIO),1)
664			WLFLAGS += -DBCMDHDUSB
665			WLFLAGS += -DBCM4328 -DBCM4322
666		endif
667
668		WLFILES_SRC += src/shared/bcmevent.c
669		WLFILES_SRC += src/dhd/sys/dhd_cdc.c
670		WLFILES_SRC += src/dhd/sys/dhd_common.c
671
672		BCMPCI = 0
673
674		ifneq ($(BCMDBUS),1)
675			WLFILES_SRC += src/dhd/sys/dhd_usb_ndis.c
676		endif
677
678		ifneq ($(WLVISTA)$(WLWIN7)$(WLWIN8),)
679			WLFILES_SRC += src/wl/sys/wlc_rate.c
680		endif
681
682		ifneq ($(WLWIN7)$(WLWIN8),)
683			WLFILES_SRC += src/wl/sys/wlc_ap.c
684			WLFILES_SRC += src/wl/sys/wlc_apps.c
685		endif
686
687		ifeq ($(WLXP),1)
688			WLFLAGS += -DNDIS_DMAWAR
689			# move these non-wl flag to makefiles
690			WLFLAGS += -DBINARY_COMPATIBLE -DWIN32_LEAN_AND_MEAN=1
691		endif
692
693	endif
694endif
695#endif
696
697ifeq ($(ADV_PS_POLL),1)
698	WLFLAGS += -DADV_PS_POLL
699endif
700
701#ifdef DHDOID
702ifeq ($(DHDOID),1)
703	WLFLAGS += -DWLC_HOSTOID
704	WLFILES_SRC += src/wl/sys/wlc_hostoid.c
705endif
706#endif
707
708
709#ifdef BINOSL
710ifeq ($(BINOSL),1)
711	WLFLAGS += -DBINOSL
712endif
713#endif
714
715## wl features
716# ACCONF -- 0 is remove from code, else bit mask of supported acphy revs
717ifneq ($(ACCONF),)
718	WLFLAGS += -DACCONF=$(ACCONF)
719endif
720
721# NCONF -- 0 is remove from code, else bit mask of supported nphy revs
722ifneq ($(NCONF),)
723	WLFLAGS += -DNCONF=$(NCONF)
724endif
725
726# HTCONF -- 0 is remove from code, else bit mask of supported htphy revs
727ifneq ($(HTCONF),)
728	WLFLAGS += -DHTCONF=$(HTCONF)
729endif
730
731# ACONF -- 0 is remove from code, else bit mask of supported aphy revs
732ifneq ($(ACONF),)
733	WLFLAGS += -DACONF=$(ACONF)
734endif
735
736# GCONF -- 0 is remove from code, else bit mask of supported gphy revs
737ifneq ($(GCONF),)
738	WLFLAGS += -DGCONF=$(GCONF)
739endif
740
741# LPCONF -- 0 is remove from code, else bit mask of supported lpphy revs
742ifneq ($(LPCONF),)
743	WLFLAGS += -DLPCONF=$(LPCONF)
744endif
745
746# SSLPNCONF -- 0 is remove from code, else bit mask of supported sslpnphy revs
747ifneq ($(SSLPNCONF),)
748	WLFLAGS += -DSSLPNCONF=$(SSLPNCONF)
749endif
750
751# LCNCONF -- 0 is remove from code, else bit mask of supported lcnphy revs
752ifneq ($(LCNCONF),)
753	WLFLAGS += -DLCNCONF=$(LCNCONF)
754endif
755
756#ifdef SOFTAP
757ifeq ($(SOFTAP),1)
758	WLFLAGS += -DSOFTAP
759endif
760#endif
761
762#ifdef AP
763# ap
764ifeq ($(AP),1)
765	WLFILES_SRC_HI += src/wl/sys/wlc_ap.c
766	WLFILES_SRC_HI += src/wl/sys/wlc_apps.c
767	WLFLAGS += -DAP
768
769	ifeq ($(MBSS),1)
770		WLFLAGS += -DMBSS
771	endif
772
773	ifeq ($(WDS),1)
774		WLFLAGS += -DWDS
775	endif
776
777	ifeq ($(DWDS),1)
778		WLFLAGS += -DDWDS
779	endif
780
781	# Channel Select
782	ifeq ($(APCS),1)
783		WLFILES_SRC_HI += src/wl/sys/wlc_apcs.c
784		WLFLAGS += -DAPCS
785	endif
786
787	# WME_PER_AC_TX_PARAMS
788	ifeq ($(WME_PER_AC_TX_PARAMS),1)
789		WLFLAGS += -DWME_PER_AC_TX_PARAMS
790	endif
791
792	# WME_PER_AC_TUNING
793	ifeq ($(WME_PER_AC_TUNING),1)
794		WLFLAGS += -DWME_PER_AC_TUNING
795	endif
796
797endif
798#endif
799
800#ifdef STA
801# sta
802ifeq ($(STA),1)
803	WLFLAGS += -DSTA
804endif
805#endif
806
807#ifdef EXT_STA_DONGLE
808# Microsoft Extensible STA for Dongle
809ifeq ($(EXT_STA_DONGLE),1)
810	WLFLAGS += -DEXT_STA
811	WLFLAGS += -DIBSS_PEER_GROUP_KEY
812	WLFLAGS += -DIBSS_PEER_DISCOVERY_EVENT
813	WLFLAGS += -DIBSS_PEER_MGMT
814endif
815#endif
816
817#ifdef APSTA
818# apsta
819ifeq ($(APSTA),1)
820	WLFLAGS += -DAPSTA
821endif
822# apsta
823#endif
824
825#ifdef WET
826# wet
827ifeq ($(WET),1)
828	WLFLAGS += -DWET
829	WLFILES_SRC_HI += src/wl/sys/wlc_wet.c
830endif
831#endif
832
833#ifdef RXCHAIN_PWRSAVE
834ifeq ($(RXCHAIN_PWRSAVE), 1)
835	WLFLAGS += -DRXCHAIN_PWRSAVE
836endif
837#endif
838
839#ifdef RADIO_PWRSAVE
840ifeq ($(RADIO_PWRSAVE), 1)
841	WLFLAGS += -DRADIO_PWRSAVE
842endif
843#endif
844
845#ifdef WMF
846ifeq ($(WMF), 1)
847	WLFILES_SRC_HI += src/wl/sys/wlc_wmf.c
848	WLFLAGS += -DWMF
849endif
850ifeq ($(IGMP_UCQUERY), 1)
851	WLFLAGS += -DWL_IGMP_UCQUERY
852endif
853ifeq ($(UCAST_UPNP), 1)
854	WLFLAGS += -DWL_UCAST_UPNP
855endif
856#endif
857
858#ifdef MCAST_REGEN
859ifeq ($(MCAST_REGEN), 1)
860	WLFLAGS += -DMCAST_REGEN
861endif
862#endif
863
864#ifdef  ROUTER_COMA
865ifeq ($(ROUTER_COMA), 1)
866	WLFILES_SRC_HI += src/shared/hndmips.c
867	WLFILES_SRC_HI += src/shared/hndchipc.c
868	WLFLAGS += -DROUTER_COMA
869endif
870#endif
871
872
873#ifdef WLOVERTHRUSTER
874ifeq ($(WLOVERTHRUSTER), 1)
875	WLFLAGS += -DWLOVERTHRUSTER
876endif
877#endif
878
879#ifdef MAC_SPOOF
880# mac spoof
881ifeq ($(MAC_SPOOF),1)
882	WLFLAGS += -DMAC_SPOOF
883endif
884#endif
885
886#ifdef PSTA
887# Proxy STA
888ifeq ($(PSTA),1)
889	WLFILES_SRC_HI += src/wl/sys/wlc_psta.c
890	WLFLAGS += -DPSTA
891endif
892#endif
893
894#ifdef DPSTA
895# Dualband Proxy STA
896ifeq ($(DPSTA),1)
897	WLFLAGS += -DDPSTA
898endif
899#endif
900
901#ifdef SMARTMESH
902ifeq ($(SMARTMESH),1)
903        WLFLAGS += -DSMARTMESH
904endif
905#endif
906
907ifeq ($(WAR_A6100_SEND_BAR_ADDBA),1)
908        WLFLAGS += -DWAR_A6100_SEND_BAR_ADDBA
909endif
910
911#ifndef LINUX_HYBRID
912# Router IBSS Security Support
913ifeq ($(ROUTER_SECURE_IBSS),1)
914         WLFLAGS += -DIBSS_PEER_GROUP_KEY
915         WLFLAGS += -DIBSS_PSK
916         WLFLAGS += -DIBSS_PEER_MGMT
917         WLFLAGS += -DIBSS_PEER_DISCOVERY_EVENT
918endif
919#endif
920
921#ifdef WLLED
922# led
923ifeq ($(WLLED),1)
924	WLFLAGS += -DWLLED
925	WLFILES_SRC_HI += src/wl/sys/wlc_led.c
926endif
927#endif
928
929#ifdef WL_MONITOR
930# MONITOR
931ifeq ($(WL_MONITOR),1)
932	WLFLAGS += -DWL_MONITOR
933endif
934#endif
935
936#ifdef WL_PROMISC
937# PROMISC
938ifeq ($(PROMISC),1)
939	WLFLAGS += -DWL_PROMISC
940endif
941#endif
942
943ifeq ($(WL_ALL_PASSIVE),1)
944	WLFLAGS += -DWL_ALL_PASSIVE
945endif
946
947#ifdef ND_ALL_PASSIVE
948ifeq ($(ND_ALL_PASSIVE),1)
949	WLFLAGS += -DND_ALL_PASSIVE
950endif
951#endif
952
953#ifdef WME
954# WME
955ifeq ($(WME),1)
956	WLFLAGS += -DWME
957	ifeq ($(WLCAC), 1)
958		ifeq ($(WL), 1)
959			WLFLAGS += -DWLCAC
960			WLFILES_SRC_HI += src/wl/sys/wlc_cac.c
961		endif
962	endif
963endif
964#endif
965
966#ifdef WLPIO
967# WLPIO
968ifeq ($(WLPIO),1)
969	WLFLAGS += -DWLPIO
970	WLFILES_SRC_LO += src/wl/sys/wlc_pio.c
971endif
972#endif
973
974#ifdef WL11N
975# 11N
976ifeq ($(WL11N),1)
977	WLFLAGS += -DWL11N
978endif
979#endif
980
981#ifdef WL11N_20MHZONLY
982# 11N 20MHz only optimization
983ifeq ($(WL11N_20MHZONLY),1)
984	WLFLAGS += -DWL11N_20MHZONLY
985endif
986#endif
987
988#ifdef WL11N_SINGLESTREAM
989# 11N single stream optimization
990ifeq ($(WL11N_SINGLESTREAM),1)
991	WLFLAGS += -DWL11N_SINGLESTREAM
992endif
993#endif
994
995#ifdef WL11H
996# 11H
997ifeq ($(WL11H),1)
998	WLFLAGS += -DWL11H
999endif
1000#endif
1001
1002#ifdef WL11D
1003# 11D
1004ifeq ($(WL11D),1)
1005	WLFLAGS += -DWL11D
1006endif
1007#endif
1008
1009#ifdef WL11U
1010# 11U
1011ifeq ($(WL11U),1)
1012	WLFLAGS += -DWL11U -DWIFI_ACT_FRAME
1013	WLFILES_SRC_HI += src/wl/sys/wlc_11u.c
1014endif
1015#endif
1016
1017#ifdef WLPROBRESP_SW
1018# WLPROBRESP_SW
1019ifeq ($(WLPROBRESP_SW),1)
1020	WLFLAGS += -DWLPROBRESP_SW
1021	WLFILES_SRC_HI += src/wl/sys/wlc_probresp.c
1022ifeq ($(WLPROBRESP_MAC_FILTER),1)
1023	WLFLAGS += -DWLPROBRESP_MAC_FILTER
1024	WLFILES_SRC_HI += src/wl/sys/wlc_probresp_mac_filter.c
1025endif
1026endif
1027#endif
1028
1029#ifdef DBAND
1030# DBAND
1031ifeq ($(DBAND),1)
1032	WLFLAGS += -DDBAND
1033endif
1034#endif
1035
1036#ifdef WLRM
1037# WLRM
1038ifeq ($(WLRM),1)
1039	WLFLAGS += -DWLRM
1040endif
1041#endif
1042
1043#ifdef WLCQ
1044# WLCQ
1045ifeq ($(WLCQ),1)
1046	WLFLAGS += -DWLCQ
1047endif
1048#endif
1049
1050#ifdef WLCNT
1051# WLCNT
1052ifeq ($(WLCNT),1)
1053	WLFLAGS += -DWLCNT
1054ifndef DELTASTATS
1055	DELTASTATS := 1
1056endif
1057endif
1058#endif
1059
1060# DELTASTATS
1061ifeq ($(DELTASTATS),1)
1062	WLFLAGS += -DDELTASTATS
1063endif
1064
1065#ifdef WLCHANIM
1066# WLCHANIM
1067ifeq ($(WLCHANIM),1)
1068	WLFLAGS += -DWLCHANIM
1069endif
1070#endif
1071
1072#ifdef WLCNTSCB
1073# WLCNTSCB
1074ifeq ($(WLCNTSCB),1)
1075	WLFLAGS += -DWLCNTSCB
1076endif
1077#endif
1078
1079
1080#ifdef WLCOEX
1081# WLCOEX
1082ifeq ($(WLCOEX),1)
1083	WLFLAGS += -DWLCOEX
1084endif
1085#endif
1086
1087## wl security
1088# external linux supplicant
1089#ifdef LINUX_CRYPTO
1090ifeq ($(LINUX_CRYPTO), 1)
1091	WLFLAGS += -DLINUX_CRYPTO
1092endif
1093#endif
1094
1095ifeq ($(WLFBT),1)
1096	WLFLAGS += -DWLFBT
1097	WLFLAGS += -DWLFBTOVERDS
1098	WLFLAGS += -DBCMINTSUP
1099	WLFLAGS += -DWLCAC
1100	WLFILES_SRC_HI += src/wl/sys/wlc_sup.c
1101	WLFILES_SRC_HI += src/bcmcrypto/aes.c
1102	WLFILES_SRC_HI += src/bcmcrypto/aeskeywrap.c
1103	WLFILES_SRC_HI += src/bcmcrypto/prf.c
1104	WLFILES_SRC_HI += src/bcmcrypto/sha1.c
1105	WLFILES_SRC_HI += src/bcmcrypto/hmac_sha256.c
1106	WLFILES_SRC_HI += src/bcmcrypto/sha256.c
1107	WLFILES_SRC_HI += src/wl/sys/wlc_cac.c
1108	# NetBSD 2.0 has MD5 and AES built in
1109	ifneq ($(OSLBSD),1)
1110		WLFILES_SRC_HI += src/bcmcrypto/md5.c
1111		WLFILES_SRC_HI += src/bcmcrypto/rijndael-alg-fst.c
1112	endif
1113endif
1114
1115ifeq ($(WLWNM),1)
1116	WLFLAGS += -DWLWNM
1117endif
1118
1119ifeq ($(WLNPS),1)
1120	WLFLAGS += -DWLWNM -DWLNPS
1121endif
1122
1123#ifdef BCMSUP_PSK
1124# in-driver supplicant
1125ifeq ($(BCMSUP_PSK),1)
1126	WLFLAGS += -DBCMSUP_PSK -DBCMINTSUP
1127	WLFILES_SRC_HI += src/wl/sys/wlc_sup.c
1128	WLFILES_SRC_HI += src/bcmcrypto/aes.c
1129	WLFILES_SRC_HI += src/bcmcrypto/aeskeywrap.c
1130	WLFILES_SRC_HI += src/bcmcrypto/hmac.c
1131	WLFILES_SRC_HI += src/bcmcrypto/prf.c
1132	WLFILES_SRC_HI += src/bcmcrypto/sha1.c
1133	ifeq ($(WLFBT),1)
1134	WLFILES_SRC_HI += src/bcmcrypto/hmac_sha256.c
1135	WLFILES_SRC_HI += src/bcmcrypto/sha256.c
1136	endif
1137	# NetBSD 2.0 has MD5 and AES built in
1138	ifneq ($(OSLBSD),1)
1139		WLFILES_SRC_HI += src/bcmcrypto/md5.c
1140		WLFILES_SRC_HI += src/bcmcrypto/rijndael-alg-fst.c
1141	endif
1142	WLFILES_SRC_HI += src/bcmcrypto/passhash.c
1143endif
1144#endif
1145
1146
1147#ifdef BCMAUTH_PSK
1148# in-driver authenticator
1149ifeq ($(BCMAUTH_PSK),1)
1150	WLFLAGS += -DBCMAUTH_PSK
1151	WLFILES_SRC_HI += src/wl/sys/wlc_auth.c
1152endif
1153#endif
1154
1155#ifdef WLTDLS
1156ifeq ($(WLTDLS), 1)
1157ifndef ($(WLFBT),1)
1158	WLFILES_SRC_HI += src/bcmcrypto/sha256.c
1159	WLFILES_SRC_HI += src/bcmcrypto/hmac_sha256.c
1160endif
1161endif
1162#endif
1163
1164#ifdef BCMCCMP
1165# Soft AES CCMP
1166ifeq ($(BCMCCMP),1)
1167	WLFLAGS += -DBCMCCMP
1168	WLFILES_SRC_HI += src/bcmcrypto/aes.c
1169	# BSD has AES built in
1170	ifneq ($(BSD),1)
1171		WLFILES_SRC_HI += src/bcmcrypto/rijndael-alg-fst.c
1172	endif
1173endif
1174#endif
1175
1176#ifdef MFP
1177# Management Frame Protection
1178ifeq ($(MFP),1)
1179	WLFLAGS += -DMFP
1180	WLFILES_SRC_HI += src/bcmcrypto/aes.c
1181	WLFILES_SRC_HI += src/bcmcrypto/sha256.c
1182	WLFILES_SRC_HI += src/bcmcrypto/hmac_sha256.c
1183	WLFILES_SRC_HI += src/bcmcrypto/prf.c
1184	WLFILES_SRC_HI += src/bcmcrypto/sha1.c
1185	WLFILES_SRC_HI += src/wl/sys/wlc_mfp.c
1186	# BSD has AES built in
1187	ifneq ($(BSD),1)
1188		WLFILES_SRC_HI += src/bcmcrypto/rijndael-alg-fst.c
1189	endif
1190	ifeq ($(MFP_TEST),1)
1191		WLFLAGS += -DMFP_TEST
1192		WLFILES_SRC_HI += src/wl/sys/wlc_mfp_test.c
1193	endif
1194endif
1195#endif
1196
1197
1198
1199#ifdef WIFI_ACT_FRAME
1200# WIFI_ACT_FRAME
1201ifeq ($(WIFI_ACT_FRAME),1)
1202	WLFLAGS += -DWIFI_ACT_FRAME
1203endif
1204#endif
1205
1206# BCMDMA32
1207ifeq ($(BCMDMA32),1)
1208	WLFLAGS += -DBCMDMA32
1209endif
1210
1211ifeq ($(BCMDMA64OSL),1)
1212	WLFLAGS += -DBCMDMA64OSL
1213endif
1214
1215ifeq ($(BCMDMASGLISTOSL),1)
1216	WLFLAGS += -DBCMDMASGLISTOSL
1217endif
1218
1219# Early DMA TX Free for LOW driver
1220ifeq ($(WL_DMA_TX_FREE),1)
1221	ifneq ($(WL_HIGH),1)
1222		ifeq ($(PT_GIANT),1)
1223			WLFLAGS += -DDMA_TX_FREE
1224		endif
1225	endif
1226endif
1227
1228## wl over jtag
1229#ifdef BCMJTAG
1230ifeq ($(BCMJTAG),1)
1231	WLFLAGS += -DBCMJTAG -DBCMSLTGT
1232	WLFILES_SRC += src/shared/bcmjtag.c
1233	WLFILES_SRC += src/shared/bcmjtag_linux.c
1234	WLFILES_SRC += src/shared/ejtag.c
1235	WLFILES_SRC += src/shared/jtagm.c
1236endif
1237#endif
1238
1239#ifdef WLAMSDU
1240ifeq ($(WLAMSDU),1)
1241	WLFLAGS += -DWLAMSDU
1242	WLFILES_SRC_HI += src/wl/sys/wlc_amsdu.c
1243endif
1244#endif
1245
1246#ifdef WLAMSDU_SWDEAGG
1247ifeq ($(WLAMSDU_SWDEAGG),1)
1248	WLFLAGS += -DWLAMSDU_SWDEAGG
1249endif
1250#endif
1251
1252#ifdef WLNAR
1253ifeq ($(WLNAR),1)
1254    WLFILES_SRC_HI += src/wl/sys/wlc_nar.c
1255    WLFLAGS += -DWLNAR
1256endif
1257#endif
1258
1259#ifdef WLAMPDU
1260ifeq ($(WLAMPDU),1)
1261	WLFLAGS += -DWLAMPDU
1262	WLFILES_SRC_HI += src/wl/sys/wlc_ampdu.c
1263	WLFILES_SRC_HI += src/wl/sys/wlc_ampdu_rx.c
1264	WLFILES_SRC_HI += src/wl/sys/wlc_ampdu_cmn.c
1265	ifeq ($(WLAMPDU_UCODE),1)
1266		WLFLAGS += -DWLAMPDU_UCODE -DWLAMPDU_MAC
1267	endif
1268	ifeq ($(WLAMPDU_HW),1)
1269		WLFLAGS += -DWLAMPDU_HW -DWLAMPDU_MAC
1270	endif
1271	ifeq ($(WLAMPDU_AQM),1)
1272		WLFLAGS += -DWLAMPDU_AQM -DWLAMPDU_MAC
1273	endif
1274	ifeq ($(WLAMPDU_PRECEDENCE),1)
1275		WLFLAGS += -DWLAMPDU_PRECEDENCE
1276	endif
1277endif
1278#endif
1279
1280#ifdef WOWL
1281ifeq ($(WOWL),1)
1282	WLFLAGS += -DWOWL
1283	WLFILES_SRC_HI += src/wl/sys/d11ucode_wowl.c
1284	WLFILES_SRC_HI += src/wl/sys/d11ucode_p2p.c
1285	WLFILES_SRC_HI += src/wl/sys/d11ucode_ge40.c
1286	WLFILES_SRC_HI += src/wl/sys/d11ucode_ge24.c
1287	WLFILES_SRC_HI += src/wl/sys/wlc_wowl.c
1288	WLFILES_SRC_HI += src/wl/sys/wowlaestbls.c
1289endif
1290ifeq ($(WOWL_OS_OFFLOADS),1)
1291ifneq ($(WLTEST),1)
1292	WLFLAGS += -DWOWL_OS_OFFLOADS
1293endif
1294endif
1295#endif
1296
1297#ifdef BTC2WIRE
1298ifeq ($(BTC2WIRE),1)
1299	WLFLAGS += -DBTC2WIRE
1300	WLFILES_SRC_LO += src/wl/sys/d11ucode_2w.c
1301endif
1302#endif
1303
1304#ifdef WL_ASSOC_RECREATE
1305ifeq ($(WL_ASSOC_RECREATE),1)
1306	ifeq ($(STA),1)
1307		WLFLAGS += -DWL_ASSOC_RECREATE
1308	endif
1309endif
1310#endif
1311
1312
1313#ifdef WLTDLS
1314ifeq ($(TDLS_TESTBED), 1)
1315	WLFLAGS += -DTDLS_TESTBED
1316endif
1317ifeq ($(WLTDLS), 1)
1318	WLFLAGS += -DWLTDLS
1319	WLFILES_SRC_HI += src/wl/sys/wlc_tdls.c
1320endif
1321#endif
1322
1323#ifdef WLDLS
1324ifeq ($(WLDLS), 1)
1325	WLFLAGS += -DWLDLS
1326	WLFILES_SRC_HI += src/wl/sys/wlc_dls.c
1327endif
1328#endif
1329
1330#ifdef WLBSSLOAD
1331# WLBSSLOAD
1332ifeq ($(WLBSSLOAD),1)
1333	WLFLAGS += -DWLBSSLOAD
1334	WLFILES_SRC_HI += src/wl/sys/wlc_bssload.c
1335endif
1336#endif
1337
1338#ifdef L2_FILTER
1339ifeq ($(L2_FILTER),1)
1340	WLFLAGS += -DL2_FILTER
1341	ifeq ($(L2_FILTER_STA),1)
1342		WLFLAGS += -DL2_FILTER_STA
1343    endif
1344	WLFILES_SRC += src/wl/sys/wlc_l2_filter.c
1345endif
1346#endif
1347
1348#ifdef WLP2P
1349ifeq ($(WLP2P),1)
1350	WLFLAGS += -DWLP2P
1351	WLFILES_SRC_HI += src/wl/sys/wlc_p2p.c
1352	WLFLAGS += -DWL_BSSCFG_TX_SUPR -DWIFI_ACT_FRAME
1353	WLMCNX := 1
1354ifndef WLMCHAN
1355	WLMCHAN := 1
1356endif
1357endif
1358#endif /* WLP2P */
1359#ifdef WLOFFLD
1360ifeq ($(WLTEST),1)
1361	WLOFFLD=0
1362endif
1363ifeq ($(WLOFFLD),1)
1364	ifeq ($(WL_SPLIT),0)
1365		WLFLAGS += -DWLOFFLD
1366		WLFILES_SRC_HI += src/wl/sys/wlc_offloads.c
1367		WLFILES_SRC_HI += src/shared/bcm_ol_msg.c
1368	endif
1369endif
1370#endif /* WLOFFLD */
1371
1372#ifdef WLVSDB
1373ifeq ($(WLVSDB),1)
1374        WLFLAGS += -DWLVSDB
1375        WLMCNX := 1
1376ifndef WLMCHAN
1377        WLMCHAN := 1
1378endif
1379endif
1380#endif /*WLVSDB*/
1381
1382
1383ifeq ($(WLMCNX),1)
1384	WLFLAGS += -DWLP2P_UCODE
1385	WLFILES_SRC_LO += src/wl/sys/d11ucode_p2p.c
1386	WLFLAGS += -DWLMCNX
1387	WLFILES_SRC_HI += src/wl/sys/wlc_mcnx.c
1388endif
1389
1390ifeq ($(WLP2P_UCODE_ONLY),1)
1391	WLFLAGS += -DWLP2P_UCODE_ONLY
1392endif
1393
1394#ifdef WLMCHAN
1395ifeq ($(WLMCHAN),1)
1396ifeq ($(WL_HIGH),1)
1397	WLFLAGS += -DWLTXPWR_CACHE
1398else
1399	ifneq ($(PHY_WLSRVSDB),1)
1400		WLFLAGS += -DWLTXPWR_CACHE
1401	endif
1402endif
1403	WLFLAGS += -DWLMCHAN
1404	WLFILES_SRC_HI += src/wl/sys/wlc_mchan.c
1405ifndef WLMULTIQUEUE
1406	WLMULTIQUEUE := 1
1407endif
1408endif
1409#endif /* WLMCHAN */
1410
1411#ifdef WLMULTIQUEUE
1412ifeq ($(WLMULTIQUEUE), 1)
1413	WLFLAGS += -DWL_MULTIQUEUE
1414endif
1415#endif /* WLMULTIQUEUE */
1416
1417ifeq ($(WLMCHAN), 1)
1418	ifeq ($(WL_SPLIT), 1)
1419		CCA_STATS = 0
1420	endif
1421endif
1422
1423ifeq ($(CCA_STATS),1)
1424	WLFLAGS += -DCCA_STATS
1425	WLFILES_SRC_HI += src/wl/sys/wlc_cca.c
1426	ifeq ($(ISID_STATS),1)
1427		WLFLAGS += -DISID_STATS
1428		WLFILES_SRC_HI += src/wl/sys/wlc_interfere.c
1429	endif
1430endif
1431
1432#ifdef WLRWL
1433ifeq ($(WLRWL),1)
1434	WLFLAGS += -DWLRWL -DRWL_WIFI
1435	WLFILES_SRC_HI += src/wl/sys/wlc_rwl.c
1436endif
1437#endif
1438
1439ifneq ($(WLNDIS_DHD),1)
1440endif
1441
1442#ifdef WLPLT
1443ifeq ($(WLPLT),1)
1444	WLFLAGS += -DWLPLT
1445	WLFILES_SRC_HI += src/wl/sys/wlc_plt.c
1446endif
1447#endif
1448
1449
1450
1451#ifdef WLMEDIA
1452ifeq ($(WLMEDIA),1)
1453	WLFLAGS += -DWLMEDIA_EN
1454	WLFLAGS += -DWLMEDIA_RATESTATS
1455	WLFLAGS += -DWLMEDIA_MULTIQUEUE
1456	WLFLAGS += -DWLMEDIA_TXFIFO_FLUSH_SCB
1457	WLFLAGS += -DWLMEDIA_AMPDUSTATS
1458	WLFLAGS += -DWLMEDIA_TXFAILEVENT
1459	WLFLAGS += -DWLMEDIA_LQSTATS
1460	WLFLAGS += -DWLMEDIA_CALDBG
1461	WLFLAGS += -DWLMEDIA_EXT
1462	WLFLAGS += -DWLMEDIA_TXFILTER_OVERRIDE
1463	WLFLAGS += -DWLMEDIA_TSF
1464	WLFLAGS += -DWLMEDIA_PEAKRATE
1465endif
1466#endif
1467
1468ifeq ($(WLMEDIA_FLAMES),1)
1469        WLFLAGS += -DWLMEDIA_FLAMES
1470endif
1471
1472
1473#ifdef WL_WFDLL
1474ifeq ($(WL_WFDLL),1)
1475	WLFLAGS += -DWFD_PHY_LL
1476ifeq ($(WL_WFDLLDBG),1)
1477	WLFLAGS += -DWFD_PHY_LL_DEBUG
1478endif
1479endif
1480
1481#ifdef WLPKTDLYSTAT
1482ifeq ($(WLPKTDLYSTAT),1)
1483	WLFLAGS += -DWLPKTDLYSTAT
1484endif
1485#endif
1486
1487#ifdef WLPKTDLYSTAT_IND
1488ifeq ($(WLPKTDLYSTAT_IND),1)
1489	WLFLAGS += -DWLPKTDLYSTAT_IND
1490endif
1491#endif
1492
1493#ifdef WLINTFERSTAT
1494ifeq ($(WLINTFERSTAT),1)
1495        WLFLAGS += -DWLINTFERSTAT
1496endif
1497#endif
1498
1499## --- which buses
1500
1501# silicon backplane
1502
1503#ifdef BCMSIBUS
1504ifeq ($(BCMSIBUS),1)
1505	WLFLAGS += -DBCMBUSTYPE=SI_BUS
1506	BCMPCI = 0
1507endif
1508#endif
1509
1510ifeq ($(SOCI_SB),1)
1511	WLFLAGS += -DBCMCHIPTYPE=SOCI_SB
1512else
1513	ifeq ($(SOCI_AI),1)
1514		WLFLAGS += -DBCMCHIPTYPE=SOCI_AI
1515	endif
1516endif
1517
1518
1519
1520#ifndef LINUX_HYBRID
1521# AP/ROUTER with SDSTD
1522ifeq ($(WLAPSDSTD),1)
1523	WLFILES_SRC += src/shared/nvramstubs.c
1524	WLFILES_SRC += src/shared/bcmsrom.c
1525endif
1526#endif
1527
1528## --- basic shared files
1529
1530#ifdef BCMHIGHSDIO
1531ifeq ($(BCMHIGHSDIO),1)
1532	WLFLAGS += -DBCMHIGHSDIO
1533endif
1534#endif
1535
1536#ifdef BCMLOSDIO
1537ifeq ($(BCMLOSDIO),1)
1538	WLFLAGS += -DBCMLOSDIO
1539endif
1540#endif
1541
1542#ifdef BCMHIGHUSB
1543ifeq ($(BCMHIGHUSB),1)
1544	WLFLAGS += -DBCMHIGHUSB
1545endif
1546#endif
1547
1548#ifdef BCMLOUSB
1549ifeq ($(BCMLOUSB),1)
1550	WLFLAGS += -DBCMLOUSB
1551endif
1552#endif
1553
1554#ifdef HNDDMA
1555ifeq ($(HNDDMA),1)
1556	WLFILES_SRC_LO += src/shared/hnddma.c
1557endif
1558#endif
1559
1560#ifdef MSGTRACE
1561ifeq ($(MSGTRACE),1)
1562	WLFILES_SRC += src/shared/msgtrace.c
1563	WLFLAGS += -DMSGTRACE
1564endif
1565#endif
1566
1567#ifdef BCMUTILS
1568ifeq ($(BCMUTILS),1)
1569	WLFILES_SRC += src/shared/bcmutils.c
1570endif
1571#endif
1572
1573
1574#ifdef BCMSROM
1575ifeq ($(BCMSROM),1)
1576	ifeq ($(BCMSDIO),1)
1577		ifeq ($(WL_HIGH),1)
1578			WLFILES_SRC_HI += src/shared/bcmsrom.c
1579			WLFILES_SRC_HI += src/shared/bcmotp.c
1580		endif
1581	endif
1582	WLFILES_SRC_LO += src/shared/bcmsrom.c
1583	WLFILES_SRC_LO += src/shared/bcmotp.c
1584endif
1585#endif
1586
1587#ifdef BCMOTP
1588ifeq ($(BCMOTP),1)
1589	WLFILES_SRC_LO += src/shared/bcmotp.c
1590	WLFLAGS += -DBCMNVRAMR
1591endif
1592#endif
1593
1594#ifdef SIUTILS
1595ifeq ($(SIUTILS),1)
1596	WLFILES_SRC_LO += src/shared/siutils.c
1597	WLFILES_SRC_LO += src/shared/sbutils.c
1598	WLFILES_SRC_LO += src/shared/aiutils.c
1599	WLFILES_SRC_LO += src/shared/hndpmu.c
1600	ifneq ($(BCMPCI), 0)
1601		WLFILES_SRC_LO += src/shared/nicpci.c
1602	endif
1603endif
1604#endif /* SIUTILS */
1605
1606#ifdef SBMIPS
1607ifeq ($(SBMIPS),1)
1608	WLFLAGS += -DBCMMIPS
1609	WLFILES_SRC_LO += src/shared/hndmips.c
1610	WLFILES_SRC_LO += src/shared/hndchipc.c
1611endif
1612#endif
1613
1614#ifdef SBPCI
1615ifeq ($(SBPCI),1)
1616	WLFILES_SRC_LO += src/shared/hndpci.c
1617endif
1618#endif
1619
1620#ifdef SFLASH
1621ifeq ($(SFLASH),1)
1622	WLFILES_SRC_LO += src/shared/sflash.c
1623endif
1624#endif
1625
1626#ifdef FLASHUTL
1627ifeq ($(FLASHUTL),1)
1628	WLFILES_SRC_LO += src/shared/flashutl.c
1629endif
1630#endif
1631
1632## --- shared OSL
1633#ifdef OSLLX
1634# linux osl
1635ifeq ($(OSLLX),1)
1636	WLFILES_SRC += src/shared/linux_osl.c
1637endif
1638#endif
1639
1640#ifdef OSLVX
1641# vx osl
1642ifeq ($(OSLVX),1)
1643	WLFILES_SRC += src/shared/vx_osl.c
1644	WLFILES_SRC += src/shared/bcmallocache.c
1645endif
1646#endif
1647
1648#ifdef OSLBSD
1649# bsd osl
1650ifeq ($(OSLBSD),1)
1651	WLFILES_SRC += src/shared/bsd_osl.c
1652	WLFILES_SRC += src/shared/nvramstubs.c
1653endif
1654#endif
1655
1656#ifdef OSLCFE
1657ifeq ($(OSLCFE),1)
1658	WLFILES_SRC += src/shared/cfe_osl.c
1659endif
1660#endif
1661
1662#ifdef OSLRTE
1663ifeq ($(OSLRTE),1)
1664	WLFILES_SRC += src/shared/hndrte_osl.c
1665endif
1666#endif
1667
1668#ifdef OSLNDIS
1669ifeq ($(OSLNDIS),1)
1670	WLFILES_SRC += src/shared/ndshared.c
1671	WLFILES_SRC += src/shared/ndis_osl.c
1672endif
1673#endif
1674
1675#ifndef LINUX_HYBRID
1676ifeq ($(CONFIG_USBRNDIS_RETAIL),1)
1677	WLFLAGS += -DCONFIG_USBRNDIS_RETAIL
1678	WLFILES_SRC += src/wl/sys/wl_ndconfig.c
1679	WLFILES_SRC += src/shared/bcmwifi/src/bcmwifi_channels.c
1680endif
1681
1682ifeq ($(NVRAM),1)
1683	WLFILES_SRC_LO += src/dongle/rte/test/nvram.c
1684	WLFILES_SRC_LO += src/dongle/rte/sim/nvram.c
1685	WLFILES_SRC_LO += src/shared/nvram.c
1686endif
1687
1688ifeq ($(NVRAMVX),1)
1689	WLFILES_SRC_LO += src/shared/nvram_rw.c
1690endif
1691#endif /* LINUX_HYBRID */
1692
1693#ifdef BCMNVRAMR
1694ifeq ($(BCMNVRAMR),1)
1695	WLFILES_SRC_LO += src/shared/nvram_ro.c
1696	WLFILES_SRC_LO += src/shared/sflash.c
1697	WLFILES_SRC_LO += src/shared/bcmotp.c
1698	WLFLAGS += -DBCMNVRAMR
1699endif
1700#else /* !BCMNVRAMR */
1701ifneq ($(BCMNVRAMR),1)
1702	ifeq ($(WLLXNOMIPSEL),1)
1703		ifneq ($(WLUMK),1)
1704			WLFILES_SRC += src/shared/nvramstubs.c
1705		endif
1706	else
1707		ifeq ($(WLNDIS),1)
1708			WLFILES_SRC += src/shared/nvramstubs.c
1709		else
1710			ifeq ($(BCMNVRAMW),1)
1711				WLFILES_SRC_LO += src/shared/nvram_ro.c
1712				WLFILES_SRC_LO += src/shared/sflash.c
1713			endif
1714		endif
1715	endif
1716	ifeq ($(BCMNVRAMW),1)
1717		WLFILES_SRC_LO += src/shared/bcmotp.c
1718		WLFLAGS += -DBCMNVRAMW
1719	endif
1720endif
1721#endif /* !BCMNVRAMR */
1722
1723# Define one OTP mechanism, or none to support all dynamically
1724ifeq ($(BCMHNDOTP),1)
1725	WLFLAGS += -DBCMHNDOTP
1726endif
1727ifeq ($(BCMIPXOTP),1)
1728	WLFLAGS += -DBCMIPXOTP
1729endif
1730
1731
1732#ifdef WLDIAG
1733ifeq ($(WLDIAG),1)
1734	WLFLAGS += -DWLDIAG
1735	WLFILES_SRC_LO += src/wl/sys/wlc_diag.c
1736endif
1737#endif
1738
1739
1740#ifdef BCMQT
1741ifeq ($(BCMQT),1)
1742	# Set flag to indicate emulated chip
1743	WLFLAGS += -DBCMSLTGT -DBCMQT
1744	ifeq ($(WLRTE),1)
1745		# Use of RTE implies embedded (CPU emulated)
1746		WLFLAGS += -DBCMQT_CPU
1747	endif
1748endif
1749#endif
1750
1751#ifdef WLPFN
1752ifeq ($(WLPFN),1)
1753	WLFLAGS += -DWLPFN
1754	WLFILES_SRC += src/wl/sys/wl_pfn.c
1755	ifeq ($(WLPFN_AUTO_CONNECT),1)
1756		WLFLAGS += -DWLPFN_AUTO_CONNECT
1757	endif
1758endif
1759#endif
1760
1761#ifdef TOE
1762ifeq ($(TOE),1)
1763	WLFLAGS += -DTOE
1764	WLFILES_SRC += src/wl/sys/wl_toe.c
1765endif
1766#endif
1767
1768#ifdef ARPOE
1769ifeq ($(ARPOE),1)
1770	WLFLAGS += -DARPOE
1771	WLFILES_SRC += src/wl/sys/wl_arpoe.c
1772endif
1773#endif
1774
1775#ifdef NWOE
1776ifeq ($(NWOE),1)
1777	WLFLAGS += -DNWOE
1778	WLFILES_SRC += src/wl/sys/wl_nwoe.c
1779	WLFILES_SRC += src/wl/lwip/src/core/def.c
1780	WLFILES_SRC += src/wl/lwip/src/core/dns.c
1781	WLFILES_SRC += src/wl/lwip/src/core/mem.c
1782	WLFILES_SRC += src/wl/lwip/src/core/netif.c
1783	WLFILES_SRC += src/wl/lwip/src/core/raw.c
1784	WLFILES_SRC += src/wl/lwip/src/core/stats.c
1785	WLFILES_SRC += src/wl/lwip/src/core/tcp.c
1786	WLFILES_SRC += src/wl/lwip/src/core/tcp_out.c
1787	WLFILES_SRC += src/wl/lwip/src/core/udp.c
1788	WLFILES_SRC += src/wl/lwip/src/core/dhcp.c
1789	WLFILES_SRC += src/wl/lwip/src/core/init.c
1790	WLFILES_SRC += src/wl/lwip/src/core/memp.c
1791	WLFILES_SRC += src/wl/lwip/src/core/pbuf.c
1792	WLFILES_SRC += src/wl/lwip/src/core/sys.c
1793	WLFILES_SRC += src/wl/lwip/src/core/tcp_in.c
1794	WLFILES_SRC += src/wl/lwip/src/core/timers.c
1795	WLFILES_SRC += src/wl/lwip/src/netif/etharp.c
1796	WLFILES_SRC += src/wl/lwip/src/core/ipv4/autoip.c
1797	WLFILES_SRC += src/wl/lwip/src/core/ipv4/icmp.c
1798	WLFILES_SRC += src/wl/lwip/src/core/ipv4/igmp.c
1799	WLFILES_SRC += src/wl/lwip/src/core/ipv4/inet.c
1800	WLFILES_SRC += src/wl/lwip/src/core/ipv4/inet_chksum.c
1801	WLFILES_SRC += src/wl/lwip/src/core/ipv4/ip_addr.c
1802	WLFILES_SRC += src/wl/lwip/src/core/ipv4/ip.c
1803	WLFILES_SRC += src/wl/lwip/src/core/ipv4/ip_frag.c
1804endif
1805#endif
1806
1807#ifdef WLNDOE
1808ifeq ($(WLNDOE),1)
1809	WLFLAGS += -DWLNDOE
1810	WLFILES_SRC += src/wl/sys/wl_ndoe.c
1811endif
1812#endif
1813
1814#ifdef PLC
1815ifeq ($(PLC),1)
1816	WLFLAGS += -DPLC -DPLC_WET
1817	WLFILES_SRC += src/wl/sys/wl_plc_linux.c
1818endif
1819#endif
1820
1821#ifdef PCOEM_LINUXSTA
1822ifeq ($(PCOEM_LINUXSTA),1)
1823	WLFLAGS += -DPCOEM_LINUXSTA
1824endif
1825#endif
1826
1827#ifdef LINUXSTA_PS
1828ifeq ($(LINUXSTA_PS),1)
1829	WLFLAGS += -DLINUXSTA_PS
1830endif
1831#endif
1832
1833#ifndef LINUX_HYBRID
1834ifeq ($(KEEP_ALIVE),1)
1835	WLFLAGS += -DKEEP_ALIVE
1836	WLFILES_SRC += src/wl/sys/wl_keep_alive.c
1837endif
1838
1839#ifdef OPENSRC_IOV_IOCTL
1840ifeq ($(OPENSRC_IOV_IOCTL),1)
1841	WLFLAGS += -DOPENSRC_IOV_IOCTL
1842endif
1843#endif
1844
1845ifeq ($(PACKET_FILTER),1)
1846	WLFLAGS += -DPACKET_FILTER
1847	WLFILES_SRC += src/wl/sys/wlc_pkt_filter.c
1848endif
1849
1850ifeq ($(SEQ_CMDS),1)
1851	WLFLAGS += -DSEQ_CMDS
1852	WLFILES_SRC_HI += src/wl/sys/wlc_seq_cmds.c
1853endif
1854
1855ifeq ($(RECEIVE_THROTTLE),1)
1856	WLFLAGS += -DWL_PM2_RCV_DUR_LIMIT
1857endif
1858
1859ifeq ($(ASYNC_TSTAMPED_LOGS),1)
1860	WLFLAGS += -DBCMTSTAMPEDLOGS
1861endif
1862
1863ifeq ($(WL11K),1)
1864	WLFLAGS += -DWL11K
1865	WLFILES_SRC += src/wl/sys/wlc_rrm.c
1866endif
1867ifeq ($(WLWNM),1)
1868	WLFLAGS += -DWLWNM
1869	WLFILES_SRC += src/wl/sys/wlc_wnm.c
1870endif
1871#endif
1872
1873# Sort and remove duplicates from WLFILES* 
1874ifeq ($(WL_LOW),1)
1875	WLFILES_SRC += $(sort $(WLFILES_SRC_LO))
1876endif
1877ifeq ($(WL_HIGH),1)
1878	WLFILES_SRC += $(sort $(WLFILES_SRC_HI))
1879endif
1880
1881# wl patch code
1882ifneq ($(WLPATCHFILE), )
1883	WLFLAGS += -DWLC_PATCH
1884	WLC_PATCH_IOCTL ?= 1
1885	ifeq ($(WLC_PATCH_IOCTL),1)
1886		WLFLAGS += -DWLC_PATCH_IOCTL
1887	endif
1888	WLFILES_SRC += $(WLPATCHFILE)
1889endif
1890
1891ifeq ($(SAMPLE_COLLECT),1)
1892	WLFLAGS += -DSAMPLE_COLLECT
1893endif
1894
1895ifeq ($(SMF_STATS),1)
1896	WLFLAGS += -DSMF_STATS
1897endif
1898
1899#ifdef PHYMON
1900ifeq ($(PHYMON),1)
1901	WLFLAGS += -DPHYMON
1902endif
1903#endif
1904
1905#ifdef USBSHIM
1906ifeq ($(USBSHIM),1)
1907        WLFLAGS += -DUSBSHIM
1908endif # USBSHIM
1909#endif
1910
1911#ifdef BCM_DCS
1912ifeq ($(BCM_DCS),1)
1913	WLFLAGS += -DBCM_DCS
1914endif
1915#endif
1916
1917ifeq ($(WLMCHAN), 1)
1918	ifeq ($(WL_SPLIT), 1)
1919		WL_THREAD = 1
1920		USBOS_THREAD = 1
1921	endif
1922endif
1923
1924ifeq ($(WL_THREAD),1)
1925	WLFLAGS += -DWL_THREAD
1926endif
1927
1928ifneq ($(WL_THREADNICE),)
1929	WLFLAGS += -DWL_THREADNICE=$(WL_THREADNICE)
1930endif
1931
1932ifeq ($(USBOS_THREAD),1)
1933	WLFLAGS += -DUSBOS_THREAD
1934endif
1935ifeq ($(WL_NVRAM_FILE),1)
1936	WLFLAGS += -DWL_NVRAM_FILE
1937endif
1938
1939ifeq ($(WL_FW_DECOMP),1)
1940	WLFLAGS += -DWL_FW_DECOMP
1941	WLFILES_SRC_HI += src/shared/zlib/adler32.c
1942	WLFILES_SRC_HI += src/shared/zlib/inffast.c
1943	WLFILES_SRC_HI += src/shared/zlib/inflate.c
1944	WLFILES_SRC_HI += src/shared/zlib/infcodes.c
1945	WLFILES_SRC_HI += src/shared/zlib/infblock.c
1946	WLFILES_SRC_HI += src/shared/zlib/inftrees.c
1947	WLFILES_SRC_HI += src/shared/zlib/infutil.c
1948	WLFILES_SRC_HI += src/shared/zlib/zutil.c
1949	WLFILES_SRC_HI += src/shared/zlib/crc32.c
1950endif
1951
1952ifeq ($(WL_WOWL_MEDIA),1)
1953	WLFLAGS += -DWL_WOWL_MEDIA
1954endif
1955
1956ifeq ($(WL_USB_ZLP_PAD),1)
1957	WLFLAGS += -DWL_USB_ZLP_PAD
1958endif
1959
1960ifeq ($(WL_URB_ZPKT),1)
1961	WLFLAGS += -DWL_URB_ZPKT
1962endif
1963
1964#ifdef SAVERESTORE
1965ifeq ($(SAVERESTORE),1)
1966	WLFLAGS += -DSAVERESTORE
1967	WLFILES_SRC_LO += src/shared/sr_array.c
1968	WLFILES_SRC_LO += src/shared/saverestore.c
1969endif
1970#endif
1971
1972#ifdef BCM_REQUEST_FW
1973ifeq ($(BCM_REQUEST_FW), 1)
1974	WLFLAGS += -DBCM_REQUEST_FW
1975endif
1976#endif
1977
1978# HW CSO support (D11 rev40 feature)
1979ifeq ($(WLCSO),1)
1980	WLFLAGS += -DWLCSO
1981endif
1982
1983# add a flag to indicate the split to linux kernels
1984WLFLAGS += -DPHY_HAL
1985
1986# compile only 1x1 ACPHY related code
1987ifeq ($(ACPHY_1X1_ONLY),1)
1988WLFLAGS += -DACPHY_1X1_ONLY
1989endif
1990
1991#ifdef WET_TUNNEL
1992ifeq ($(WET_TUNNEL),1)
1993	WLFLAGS += -DWET_TUNNEL
1994	WLFILES_SRC_HI += src/wl/sys/wlc_wet_tunnel.c
1995endif
1996#endif
1997
1998#ifdef WLDURATION
1999ifeq ($(WLDURATION),1)
2000	WLFLAGS += -DWLDURATION
2001	WLFILES_SRC += src/wl/sys/wlc_duration.c
2002endif
2003#endif
2004
2005#ifdef WL_BCN_COALESCING
2006ifeq ($(WL_BCN_COALESCING),1)
2007	WLFLAGS += -DWL_BCN_COALESCING
2008	WLFILES_SRC += src/wl/sys/wlc_bcn_clsg.c
2009endif
2010#endif
2011
2012#ifdef TINY_PKTJOIN
2013ifeq ($(TINY_PKTJOIN),1)
2014	WLFLAGS += -DTINY_PKTJOIN
2015endif
2016#endif
2017
2018#ifdef WL_RXEARLYRC
2019ifeq ($(WL_RXEARLYRC),1)
2020	WLFLAGS += -DWL_RXEARLYRC
2021endif
2022#endif
2023
2024#ifdef WLMCHAN
2025#ifdef PROP_TXSTATUS
2026ifeq ($(WLMCHAN),1)
2027ifeq ($(PROP_TXSTATUS),1)
2028	ifeq ($(WL_SPLIT),0)
2029		WLFLAGS += -DWLMCHANPRECLOSE
2030		WLFLAGS += -DBBPLL_PARR
2031	endif
2032endif
2033endif
2034#endif  ## PROP_TXSTATUS
2035#endif  ## WLMCHAN
2036
2037#ifdef WLRXOV
2038ifeq ($(WLRXOV),1)
2039	WLFLAGS += -DWLRXOV
2040endif
2041#endif
2042
2043ifeq ($(PKTC_DONGLE),1)
2044	WLFLAGS += -DPKTC_DONGLE
2045endif
2046
2047# Legacy WLFILES pathless definition, please use new src relative path
2048# in make files. 
2049WLFILES := $(sort $(notdir $(WLFILES_SRC)))
2050
2051ifeq ($(AMPDU_HOSTREORDER), 1)
2052	WLFLAGS += -DBRCMAPIVTW=128 -DWLAMPDU_HOSTREORDER
2053endif
2054
2055# Work-arounds for ROM compatibility - relocate struct fields that were excluded in ROMs,
2056# but are required in ROM offload builds.
2057ifeq ($(WLC_PUB_OLDROM_BEAMFORMING_FIELDS),1)
2058	EXTRA_DFLAGS += -DWLC_PUB_OLDROM_BEAMFORMING_FIELDS
2059endif
2060
2061ifeq ($(WLC_STF_OLDROM_BEAMFORMING_FIELDS),1)
2062	EXTRA_DFLAGS += -DWLC_STF_OLDROM_BEAMFORMING_FIELDS
2063endif
2064
2065
2066# used by the 4335c0 ROM. It avoids ROM abandons for every function that invokes this macro due to
2067# additional devices added post tape-out.
2068ifeq ($(IS_SINGLEBAND_5G_4335C0_ROM_COMPAT),1)
2069	EXTRA_DFLAGS += -DIS_SINGLEBAND_5G_4335C0_ROM_COMPAT
2070endif
2071
2072ifeq ($(WL_EVDATA_BSSINFO),1)
2073	EXTRA_DFLAGS += -DWL_EVDATA_BSSINFO
2074endif
2075
2076# Work-arounds for ROM compatibility to handle ROM that exclude MFP support.
2077ifeq ($(WLC_MFP_ROM_COMPAT),1)
2078	EXTRA_DFLAGS += -DWLC_MFP_ROM_COMPAT
2079endif
2080
2081# This feature disables mac sleep on 11AC router platforms (zero packet loss).
2082ifeq ($(WLMAC_RX_NO_SLEEP),1)
2083	WLFLAGS += -DWLMAC_RX_NO_SLEEP
2084endif
2085
2086# This feature disables mac sleep on 11AC router platforms (zero packet loss).
2087ifeq ($(WLMAC_RX_NO_SLEEP),1)
2088	WLFLAGS += -DWLMAC_RX_NO_SLEEP
2089endif
2090