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