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) 2010, 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,v 1.369.2.53 2011-01-26 19:40:43 Exp $
18
19
20#ifdef WL_PPR_SUBBAND
21ifeq ($(WL_PPR_SUBBAND),1)
22	WLFLAGS += -DWL_PPR_SUBBAND
23endif
24#endif
25
26
27# debug/internal
28ifeq ($(DEBUG),1)
29	WLFLAGS += -DBCMDBG -DWLTEST -DWLTIMER -DWIFI_ACT_FRAME
30#ifndef LINUX_HYBRID
31	WLFLAGS += -DRWL_WIFI -DWLRWL
32	WLRWL = 1
33#endif 
34else
35#ifdef WLTEST
36	# mfgtest builds
37	ifeq ($(WLTEST),1)
38		WLFLAGS += -DWLTEST
39	endif
40#endif
41endif
42
43#ifdef WLMFG
44# wl mfg support
45ifeq ($(WLMFG),1)
46	WLFLAGS += -DWLMFG -DWLTEST
47	WLFILES_SRC_HI += src/wl/sys/wlc_mfg.c
48endif
49#endif
50
51
52#ifdef BCMDBG_MEM
53ifeq ($(BCMDBG_MEM),1)
54	WLFLAGS += -DBCMDBG_MEM
55endif
56#endif
57
58#ifdef BCMDBG_PKT
59ifeq ($(BCMDBG_PKT),1)
60	WLFLAGS += -DBCMDBG_PKT
61endif
62#endif
63
64#ifdef BCMDBG_TRAP
65# CPU debug traps (lomem access, divide by 0, etc) are enabled except when mogrified out for
66# external releases.
67WLFLAGS += -DBCMDBG_TRAP
68#endif
69
70#ifdef WLLMAC
71ifeq ($(WLLMAC),1)
72	WLFLAGS += -DWLLMAC -DEXTENDED_SCAN
73endif
74#endif
75
76
77## wl driver common
78
79ifndef WL_LOW
80WL_LOW = 1
81endif
82
83ifndef WL_HIGH
84WL_HIGH = 1
85endif
86
87## iff one of WLC_LOW and WLC_HIGH is defined, SPLIT is true
88WL_SPLIT = 0
89ifeq ($(WL_LOW),1)
90	ifneq ($(WL_HIGH),1)
91		WL_SPLIT = 1
92	endif
93endif
94
95ifeq ($(WL_HIGH),1)
96	ifneq ($(WL_LOW),1)
97		WL_SPLIT = 1
98		ifeq ($(RPC_NOCOPY),1)
99			WLFLAGS += -DBCM_RPC_NOCOPY
100		endif
101		ifeq ($(RPC_RXNOCOPY),1)
102			WLFLAGS += -DBCM_RPC_RXNOCOPY
103		endif
104		ifeq ($(RPC_TXNOCOPY),1)
105			WLFLAGS += -DBCM_RPC_TXNOCOPY
106		endif
107		ifeq ($(RPC_TOC),1)
108			WLFLAGS += -DBCM_RPC_TOC
109		endif
110		ifeq ($(RPC_ROC),1)
111			WLFLAGS += -DBCM_RPC_ROC
112		endif
113		ifeq ($(BMAC_ENABLE_LINUX_HOST_RPCAGG),1)
114			WLFLAGS += -DBMAC_ENABLE_LINUX_HOST_RPCAGG
115		endif
116		ifeq ($(DBUS_LINUX_RXDPC),1)
117			WLFLAGS += -DDBUS_LINUX_RXDPC
118		endif
119		ifneq ($(BCM_RPC_TP_DBUS_NTXQ),)
120			WLFLAGS += -DBCM_RPC_TP_DBUS_NTXQ=$(BCM_RPC_TP_DBUS_NTXQ)
121		endif
122		ifneq ($(BCM_RPC_TP_DBUS_NRXQ),)
123			WLFLAGS += -DBCM_RPC_TP_DBUS_NRXQ=$(BCM_RPC_TP_DBUS_NRXQ)
124		endif
125		ifeq ($(BCMUSBDEV_EP_FOR_RPCRETURN),1)
126			WLFLAGS += -DBCMUSBDEV_EP_FOR_RPCRETURN
127		endif
128	endif
129endif
130
131ifeq ($(WL_LOW),1)
132	WLFLAGS += -DWLC_LOW
133endif
134
135ifeq ($(WL_HIGH),1)
136	WLFLAGS += -DWLC_HIGH
137endif
138
139ifeq ($(GTK_RESET),1)
140	WLFLAGS += -DGTK_RESET
141endif
142
143ifeq ($(USBAP),1)
144	WLFLAGS += -DUSBAP
145	WLFLAGS += -DEHCI_FASTPATH_TX -DEHCI_FASTPATH_RX
146endif
147
148# split driver infrastructure files
149ifeq ($(WL_SPLIT),1)
150	WLFILES_SRC += src/shared/bcm_xdr.c
151	WLFILES_SRC += src/shared/bcm_rpc.c
152	ifneq ($(USBAP),1)
153		WLFILES_SRC_HI += src/shared/nvramstubs.c
154	endif
155	ifeq ($(OSLLX),1)
156		WLFILES_SRC_HI += src/shared/linux_rpc_osl.c
157	endif
158
159	ifeq ($(OSLNDIS),1)
160		WLFILES_SRC_HI += src/shared/ndis_rpc_osl.c
161	endif
162
163	ifeq ($(BCMDBUS),1)
164		WLFILES_SRC_HI += src/shared/bcm_rpc_tp_dbus.c
165	endif
166
167	WLFILES_SRC_HI += src/wl/sys/wlc_bmac_stubs.c
168	WLFILES_SRC_HI += src/wl/sys/wlc_rpctx.c
169	WLFILES_SRC_LO += src/wl/sys/wlc_high_stubs.c
170
171	ifeq ($(WL_HIGH),1)
172		# for SDIO BMAC, OSLREGOPS can not be a global define, dbus need direct register access 
173		# OSLREGOPS is defined in wlc_cfg.h
174		ifeq ($(BCMSDIO),1)
175			ifneq ($(WLVISTA)$(WLWIN7),)
176				WLFILES_SRC_HI += src/shared/sdh_ndis.c
177			endif
178		else
179			WLFLAGS += -DBCMBUSTYPE=RPC_BUS
180			WLFLAGS += -DOSLREGOPS
181		endif
182	endif
183endif
184
185#ifdef WL
186ifeq ($(WL),1)
187	WLFILES_SRC += src/shared/bcmwifi.c
188	WLFILES_SRC += src/shared/bcmevent.c
189	WLFILES_SRC += src/wl/sys/wlc_alloc.c
190
191	WLFILES_SRC_LO += src/shared/qmath.c
192	WLFILES_SRC_LO += src/wl/sys/d11ucode_le15.c
193	WLFILES_SRC_LO += src/wl/sys/d11ucode_gt15.c
194	WLFILES_SRC_LO += src/wl/sys/d11ucode_ge24.c
195	WLFILES_SRC_LO += src/wl/phy/wlc_phy_cmn.c
196	WLFILES_SRC_LO += src/wl/phy/wlc_phy_ssn.c
197	WLFILES_SRC_LO += src/wl/phy/wlc_phy_n.c
198	WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_n.c
199	WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_ssn.c
200	WLFILES_SRC_LO += src/wl/sys/wlc_phy_shim.c
201	WLFILES_SRC_LO += src/wl/sys/wlc_bmac.c
202
203	ifneq ($(MINIAP),1)
204		WLFILES_SRC_LO += src/wl/phy/wlc_phy_ht.c
205		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_ht.c
206		WLFILES_SRC_LO += src/wl/phy/wlc_phy_lcn40.c
207		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_lcn40.c
208		WLFILES_SRC_LO += src/wl/phy/wlc_phy_lcn.c
209		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_lcn.c
210		WLFILES_SRC_LO += src/wl/phy/wlc_phy_lp.c
211		WLFILES_SRC_LO += src/wl/phy/wlc_phytbl_lp.c
212		WLFILES_SRC_LO += src/wl/phy/wlc_phy_abg.c
213	endif
214
215	WLFILES_SRC_HI += src/wl/sys/wlc.c
216	WLFILES_SRC_HI += src/wl/sys/wlc_assoc.c
217	WLFILES_SRC_HI += src/wl/sys/wlc_rate.c
218	WLFILES_SRC_HI += src/wl/sys/wlc_stf.c
219	ifneq ($(WLWSEC),0)
220		WLFLAGS += -DWLWSEC
221		WLFILES_SRC_HI += src/wl/sys/wlc_security.c
222		WLFILES_SRC_HI += src/wl/sys/wlc_key.c
223	endif
224	WLFILES_SRC_HI += src/wl/sys/wlc_scb.c
225	WLFILES_SRC_HI += src/wl/sys/wlc_rate_sel.c
226	WLFILES_SRC_HI += src/wl/sys/wlc_antsel.c
227	WLFILES_SRC_HI += src/wl/sys/wlc_bsscfg.c
228	WLFILES_SRC_HI += src/wl/sys/wlc_scan.c
229	WLFILES_SRC_HI += src/wl/phy/wlc_phy_iovar.c
230	WLFILES_SRC_HI += src/wl/sys/wlc_rm.c
231	# tpc module is shared by 11h tpc and wl tx power control */
232	WLTPC := 1
233	ifeq ($(WLTPC),1)
234		WLFLAGS += -DWLTPC
235	endif
236	ifeq ($(WLLMAC),1)
237		WLFILES_SRC += src/wl/sys/wlc_lmac.c
238		ifeq ($(STA), 1)
239			WLFILES_SRC += src/wl/sys/wlc_lmac_sta.c
240		endif
241		ifeq ($(WLLMACPROTO),1)
242			WLFLAGS += -DWLLMACPROTO
243			WLFILES_SRC += src/wl/sys/wlc_lmac_proto.c
244		endif
245		ifeq ($(WLLMAC_ONLY),1)
246			WLFLAGS += -DWLLMAC_ONLY
247			WLFLAGS += -DWLNOEIND
248			WLFILES_SRC_HI += src/wl/sys/wlc_channel_dummy.c
249		else
250			WLFILES_SRC_HI += src/wl/sys/wlc_event.c
251			WLFILES_SRC_HI += src/wl/sys/wlc_channel.c
252		endif
253	else
254		WLFILES_SRC_HI += src/wl/sys/wlc_event.c
255		ifeq ($(WLCHANNEL_DUMMY),1)
256			WLFILES_SRC_HI += src/wl/sys/wlc_channel_dummy.c
257		else
258			WLFILES_SRC_HI += src/wl/sys/wlc_channel.c
259		endif
260	endif
261	WLFILES_SRC_HI += src/shared/bcmwpa.c
262#ifndef LINUX_CRYPTO
263	ifneq ($(LINUX_CRYPTO),1)
264		WLFILES_SRC_HI += src/bcmcrypto/rc4.c
265		WLFILES_SRC_HI += src/bcmcrypto/tkhash.c
266		WLFILES_SRC_HI += src/bcmcrypto/tkmic.c
267		WLFILES_SRC_HI += src/bcmcrypto/wep.c
268	endif
269#endif /* LINUX_CRYPTO */
270#ifdef WLEXTLOG
271ifeq ($(WLEXTLOG),1)
272	WLFLAGS += -DWLEXTLOG
273	WLFILES_SRC += src/wl/sys/wlc_extlog.c
274endif
275#endif
276#ifdef WLSCANCACHE
277ifeq ($(WLSCANCACHE),1)
278	WLFLAGS += -DWLSCANCACHE
279	WLFILES_SRC += src/wl/sys/wlc_scandb.c
280endif
281#endif
282
283endif
284#endif /* WL */
285
286#ifdef BCMDBUS
287ifeq ($(BCMDBUS),1)
288	WLFLAGS += -DBCMDBUS
289	WLFILES_SRC += src/shared/dbus.c
290
291	ifeq ($(BCMSDIO),1)
292		ifeq ($(WL_HIGH),1)
293			WLFILES_SRC_HI += src/shared/siutils.c
294			WLFILES_SRC_HI += src/shared/bcmotp.c
295			WLFILES_SRC_HI += src/shared/sbutils.c
296			WLFILES_SRC_HI += src/shared/aiutils.c
297			WLFILES_SRC_HI += src/shared/hndpmu.c
298		endif
299	endif
300
301	ifeq ($(WLLX),1)
302		ifeq ($(BCMSDIO),1)
303			WLFILES_SRC += src/shared/dbus_sdh.c
304			WLFILES_SRC += src/shared/dbus_sdio_linux.c
305		else
306			WLFILES_SRC += src/shared/dbus_usb.c
307			WLFILES_SRC += src/shared/dbus_usb_linux.c
308		endif
309	else
310		ifeq ($(WLNDIS),1)
311			ifeq ($(BCMSDIO),1)
312				ifneq ($(WLVISTA)$(WLWIN7),)
313					WLFILES_SRC += src/shared/dbus_sdio.c
314					WLFILES_SRC += src/shared/dbus_sdio_ndis.c
315				else
316					WLFILES_SRC += src/shared/dbus_sdh.c
317					WLFILES_SRC += src/shared/dbus_sdh_ndis.c
318				endif
319			else
320				WLFILES_SRC += src/shared/dbus_usb.c
321				WLFILES_SRC += src/shared/dbus_usb_ndis.c
322			endif
323		endif
324	endif
325endif
326#endif
327
328#ifndef LINUX_HYBRID
329ifeq ($(BCM_DNGL_EMBEDIMAGE),1)
330	WLFLAGS += -DBCM_DNGL_EMBEDIMAGE
331endif
332#endif
333
334# For USBAP to select which images to embed
335ifeq ($(EMBED_IMAGE_4319usb),1)
336	WLFLAGS += -DEMBED_IMAGE_4319usb
337endif
338ifeq ($(EMBED_IMAGE_4319sd),1)
339	WLFLAGS += -DEMBED_IMAGE_4319sd
340endif
341ifeq ($(EMBED_IMAGE_4322),1)
342	WLFLAGS += -DEMBED_IMAGE_4322
343endif
344
345ifeq ($(EMBED_IMAGE_43236b1),1)
346	WLFLAGS += -DEMBED_IMAGE_43236b1
347endif
348ifeq ($(EMBED_IMAGE_43237a0),1)
349	WLFLAGS += -DEMBED_IMAGE_43237a0
350endif
351
352ifeq ($(WL_DNGL_WD),1)
353	WLFLAGS += -DWL_DNGL_WD
354ifneq ($(WL_DNGL_WD_DEFAULT_TIMEOUT),)
355	WLFLAGS += -DWL_DNGL_WD_DEFAULT_TIMEOUT=$(WL_DNGL_WD_DEFAULT_TIMEOUT)
356endif
357endif
358
359## wl OSL
360#ifdef WLVX
361ifeq ($(WLVX),1)
362	WLFILES_SRC += src/wl/sys/wl_vx.c
363	WLFILES_SRC += src/shared/bcmstdlib.c
364	WLFLAGS += -DSEC_TXC_ENABLED
365endif
366#endif
367
368#ifdef WLBSD
369ifeq ($(WLBSD),1)
370	WLFILES_SRC += src/wl/sys/wl_bsd.c
371endif
372#endif
373
374#ifdef WLUM
375ifeq ($(WLUM),1)
376	WLFILES_SRC += src/wl/sys/wl_usermode.c
377	WLFLAGS += -DUSER_MODE
378endif
379#endif
380
381#ifdef WLLX
382ifeq ($(WLLX),1)
383	ifneq ($(WL_HIGH),1)
384		WLFILES_SRC_LO += src/wl/sys/wl_linux_bmac.c
385		WLFILES_SRC_LO += src/shared/bcm_rpc_char.c
386	endif
387
388        WLFILES_SRC_HI += src/wl/sys/wl_linux.c
389#ifdef WLUMK
390	ifeq ($(WLUMK),1)
391		WLFILES_SRC_HI += src/wl/sys/wl_cdev.c
392		WLFLAGS += -DWL_UMK
393	endif
394#endif
395endif
396#endif
397
398#ifdef WLLXIW
399ifeq ($(WLLXIW),1)
400	WLFILES_SRC_HI += src/wl/sys/wl_iw.c
401	WLFLAGS += -DWLLXIW
402endif
403#endif
404
405#ifdef WLCFE
406ifeq ($(WLCFE),1)
407	WLFILES_SRC += src/wl/sys/wl_cfe.c
408endif
409#endif
410
411#ifdef WLRTE
412ifeq ($(WLRTE),1)
413	WLFILES_SRC += src/wl/sys/wl_rte.c
414	ifneq ($(WL_HIGH),1)
415		WLFILES_SRC_LO += src/shared/bcm_rpc_tp_rte.c
416	endif
417endif
418#endif
419
420ifeq ($(BCMECICOEX),1)
421	WLFLAGS += -DBCMECICOEX
422endif
423
424ifeq ($(CCA_STATS),1)
425	WLFLAGS += -DCCA_STATS
426	ifeq ($(ISID_STATS),1)
427		WLFLAGS += -DISID_STATS
428	endif
429endif
430
431ifeq ($(DNGL_WD_KEEP_ALIVE),1)
432	WLFLAGS += -DDNGL_WD_KEEP_ALIVE
433endif
434
435
436#ifdef NDIS
437# anything Windows/NDIS specific for 2k/xp/vista/windows7
438ifeq ($(WLNDIS),1)
439	WLFILES_SRC += src/wl/sys/wl_ndis.c
440
441	ifeq ($(WLNDIS_DHD),)
442		WLFILES_SRC += src/wl/sys/nhd_ndis.c
443		ifeq ($(WL_SPLIT),1)
444			ifdef USEDDK
445				WLFLAGS += -DMEMORY_TAG="'7034'"
446			else
447				WLFLAGS += -DMEMORY_TAG='DWMB'
448			endif
449		else
450			ifdef USEDDK
451				WLFLAGS += -DMEMORY_TAG="'7034'"
452			else
453				WLFLAGS += -DMEMORY_TAG='NWMB'
454			endif
455		endif
456	else
457		WLFILES_SRC += src/dhd/sys/dhd_ndis.c
458		ifdef USEDDK
459			WLFLAGS += -DMEMORY_TAG="'7034'"
460		else
461			WLFLAGS += -DMEMORY_TAG='DWMB'
462		endif
463	endif
464
465	WLFILES_SRC += src/wl/sys/wl_ndconfig.c
466	WLFILES_SRC += src/shared/bcmwifi.c
467	WLFILES_SRC += src/shared/bcmstdlib.c
468
469	# support host supplied nvram variables
470	ifeq ($(WLTEST),1)
471		ifeq ($(WLHOSTVARS), 1)
472			WLFLAGS += -DBCMHOSTVARS
473		endif
474	else
475		ifeq ($(BCMEXTNVM),1)
476			ifeq ($(WLHOSTVARS), 1)
477				WLFLAGS += -DBCMHOSTVARS
478			endif
479		endif
480	endif
481
482	ifneq ($(WLVISTA)$(WLWIN7),)
483		WLFLAGS += -DEXT_STA
484		WLFLAGS += -DWL_MONITOR
485	        WLFLAGS += -DIBSS_PEER_GROUP_KEY
486	        WLFLAGS += -DIBSS_PEER_DISCOVERY_EVENT
487	        WLFLAGS += -DIBSS_PEER_MGMT
488	endif
489
490	ifeq ($(WLWIN7),1)
491		WLFLAGS += -DAP
492	endif
493
494	ifeq ($(WLXP),1)
495		WLFLAGS += -DWLNOEIND
496	endif
497
498	ifeq ($(WLVIF),1)
499		WLFLAGS += -DWLVIF
500	endif
501
502	# HIGH driver for BMAC ?? any ndis/xp/vista ?
503	ifeq ($(WL_SPLIT),1)
504	endif
505
506	# DHD host: ?? to clean up and to support all other DHD OSes
507	ifeq ($(WLNDIS_DHD),1)
508		WLFLAGS += -DSHOW_EVENTS -DBCMPERFSTATS
509		WLFLAGS += -DBDC -DBCMDONGLEHOST	
510		WLFLAGS += -DBCM4325 
511
512		ifneq ($(BCMSDIO),1)
513			WLFLAGS += -DBCMDHDUSB
514			WLFLAGS += -DBCM4328 -DBCM4322
515		endif
516
517		WLFILES_SRC += src/shared/bcmevent.c
518		WLFILES_SRC += src/dhd/sys/dhd_cdc.c
519		WLFILES_SRC += src/dhd/sys/dhd_common.c
520
521		BCMPCI = 0
522
523		ifneq ($(BCMDBUS),1)
524			WLFILES_SRC += src/dhd/sys/dhd_usb_ndis.c
525		endif
526
527		ifneq ($(WLVISTA)$(WLWIN7),)
528			WLFILES_SRC += src/wl/sys/wlc_rate.c
529		endif
530
531		ifeq ($(WLWIN7),1)
532			WLFILES_SRC += src/wl/sys/wlc_ap.c
533			WLFILES_SRC += src/wl/sys/wlc_apps.c
534		endif
535
536		ifeq ($(WLXP),1)
537			WLFLAGS += -DNDIS_DMAWAR 
538			# move these non-wl flag to makefiles
539			WLFLAGS += -DBINARY_COMPATIBLE -DWIN32_LEAN_AND_MEAN=1 
540		endif
541
542#ifdef WLBTAMP
543		ifeq ($(WLBTAMP),1)
544			WLFLAGS += -DWLBTAMP
545			WLFILES_SRC += src/dhd/sys/dhd_bta.c
546#ifdef WLBTWUSB
547			ifeq ($(WLBTWUSB),1)
548				WLFLAGS += -DWLBTWUSB
549				WLFILES_SRC += src/wl/sys/bt_int.c
550			endif
551#endif /* WLBTWUSB */
552		endif
553#endif /* WLBTAMP */
554	endif
555endif
556#endif
557
558ifeq ($(ADV_PS_POLL),1)
559	WLFLAGS += -DADV_PS_POLL
560endif
561
562#ifdef DHDOID
563ifeq ($(DHDOID),1)
564	WLFLAGS += -DWLC_HOSTOID
565	WLFILES_SRC += src/wl/sys/wlc_hostoid.c
566endif
567#endif
568
569
570#ifdef BINOSL
571ifeq ($(BINOSL),1)
572	WLFLAGS += -DBINOSL
573endif
574#endif
575
576## wl features
577# NCONF -- 0 is remove from code, else bit mask of supported nphy revs
578ifneq ($(NCONF),)
579	WLFLAGS += -DNCONF=$(NCONF)
580endif
581
582# HTCONF -- 0 is remove from code, else bit mask of supported htphy revs
583ifneq ($(HTCONF),)
584	WLFLAGS += -DHTCONF=$(HTCONF)
585endif
586
587# ACONF -- 0 is remove from code, else bit mask of supported aphy revs
588ifneq ($(ACONF),)
589	WLFLAGS += -DACONF=$(ACONF)
590endif
591
592# GCONF -- 0 is remove from code, else bit mask of supported gphy revs
593ifneq ($(GCONF),)
594	WLFLAGS += -DGCONF=$(GCONF)
595endif
596
597# LPCONF -- 0 is remove from code, else bit mask of supported lpphy revs
598ifneq ($(LPCONF),)
599	WLFLAGS += -DLPCONF=$(LPCONF)
600endif
601
602# SSLPNCONF -- 0 is remove from code, else bit mask of supported sslpnphy revs
603ifneq ($(SSLPNCONF),)
604	WLFLAGS += -DSSLPNCONF=$(SSLPNCONF)
605endif
606
607# LCNCONF -- 0 is remove from code, else bit mask of supported lcnphy revs
608ifneq ($(LCNCONF),)
609	WLFLAGS += -DLCNCONF=$(LCNCONF)
610endif
611
612#ifdef AP
613# ap
614ifeq ($(AP),1)
615	WLFILES_SRC_HI += src/wl/sys/wlc_ap.c
616	WLFILES_SRC_HI += src/wl/sys/wlc_apps.c
617	WLFLAGS += -DAP
618
619	ifeq ($(MBSS),1)
620		WLFLAGS += -DMBSS
621	endif
622
623	ifeq ($(WDS),1)
624		WLFLAGS += -DWDS
625	endif
626
627	# Channel Select
628	ifeq ($(APCS),1)
629		WLFILES_SRC_HI += wlc_apcs.c
630		WLFLAGS += -DAPCS
631	endif
632
633	# WME_PER_AC_TX_PARAMS
634	ifeq ($(WME_PER_AC_TX_PARAMS),1)
635		WLFLAGS += -DWME_PER_AC_TX_PARAMS
636	endif
637
638	# WME_PER_AC_TUNING
639	ifeq ($(WME_PER_AC_TUNING),1)
640		WLFLAGS += -DWME_PER_AC_TUNING
641	endif
642
643endif
644#endif
645
646#ifdef STA
647# sta
648ifeq ($(STA),1)
649	WLFLAGS += -DSTA
650endif
651#endif
652
653#ifdef APSTA
654# apsta
655ifeq ($(APSTA),1)
656	WLFLAGS += -DAPSTA
657endif
658# apsta
659#endif
660
661#ifdef WET
662# wet
663ifeq ($(WET),1)
664	WLFLAGS += -DWET
665	WLFILES_SRC_HI += src/wl/sys/wlc_wet.c
666endif
667#endif
668
669#ifdef RXCHAIN_PWRSAVE
670ifeq ($(RXCHAIN_PWRSAVE), 1)
671	WLFLAGS += -DRXCHAIN_PWRSAVE
672endif
673#endif
674
675#ifdef RADIO_PWRSAVE
676ifeq ($(RADIO_PWRSAVE), 1)
677	WLFLAGS += -DRADIO_PWRSAVE
678endif
679#endif
680
681#ifdef WMF
682ifeq ($(WMF), 1)
683	WLFILES_SRC_HI += src/wl/sys/wlc_wmf.c
684	WLFLAGS += -DWMF
685endif
686#endif
687
688#ifdef MCAST_REGEN
689ifeq ($(MCAST_REGEN), 1)
690	WLFLAGS += -DMCAST_REGEN
691endif
692#endif
693
694#ifdef WLOVERTHRUSTER
695ifeq ($(WLOVERTHRUSTER), 1)
696	WLFLAGS += -DWLOVERTHRUSTER
697endif
698#endif
699
700#ifdef MAC_SPOOF
701# mac spoof
702ifeq ($(MAC_SPOOF),1)
703	WLFLAGS += -DMAC_SPOOF
704endif
705#endif
706
707#ifndef LINUX_HYBRID
708# Router IBSS Security Support
709ifeq ($(ROUTER_SECURE_IBSS),1)
710         WLFLAGS += -DIBSS_PEER_GROUP_KEY
711         WLFLAGS += -DIBSS_PSK
712         WLFLAGS += -DIBSS_PEER_MGMT
713         WLFLAGS += -DIBSS_PEER_DISCOVERY_EVENT
714endif
715#endif
716
717#ifdef WLTIMER
718# timer
719ifeq ($(WLTIMER),1)
720	WLFLAGS += -DWLTIMER
721endif
722#endif
723
724#ifdef WLLED
725# led
726ifeq ($(WLLED),1)
727	WLFLAGS += -DWLLED
728	WLFILES_SRC_HI += src/wl/sys/wlc_led.c
729endif
730#endif
731
732#ifdef WL_MONITOR
733# MONITOR
734ifeq ($(WL_MONITOR),1)
735	WLFLAGS += -DWL_MONITOR
736endif
737#endif
738
739#ifdef WL_PROMISC
740# PROMISC
741ifeq ($(PROMISC),1)
742	WLFLAGS += -DWL_PROMISC
743endif
744#endif
745
746ifeq ($(WL_ALL_PASSIVE),1)
747	WLFLAGS += -DWL_ALL_PASSIVE
748endif
749
750#ifdef ND_ALL_PASSIVE
751ifeq ($(ND_ALL_PASSIVE),1)
752	WLFLAGS += -DND_ALL_PASSIVE
753endif
754#endif
755
756#ifdef WME
757# WME
758ifeq ($(WME),1)
759	WLFLAGS += -DWME
760	ifeq ($(WLCAC), 1)
761		ifeq ($(WL), 1)
762			WLFLAGS += -DWLCAC
763			WLFILES_SRC_HI += src/wl/sys/wlc_cac.c
764		endif
765	endif
766endif
767#endif
768
769#ifdef WLBA
770# WLBA
771ifeq ($(WLBA),1)
772	WLFLAGS += -DWLBA
773	WLFILES_SRC_HI += src/wl/sys/wlc_ba.c
774endif
775#endif
776
777#ifdef WLPIO
778# WLPIO 
779ifeq ($(WLPIO),1)
780	WLFLAGS += -DWLPIO
781	WLFILES_SRC_LO += src/wl/sys/wlc_pio.c
782endif
783#endif
784
785#ifdef WLAFTERBURNER
786# WLAFTERBURNER
787ifeq ($(WLAFTERBURNER),1)
788	WLFLAGS += -DWLAFTERBURNER
789endif
790#endif
791
792#ifdef CRAM
793# CRAM
794ifeq ($(CRAM),1)
795	WLFLAGS += -DCRAM
796	WLFILES_SRC_HI += src/wl/sys/wlc_cram.c
797endif
798#endif
799
800#ifdef WL11N
801# 11N
802ifeq ($(WL11N),1)
803	WLFLAGS += -DWL11N
804endif
805#endif
806
807#ifdef WL11N_20MHZONLY
808# 11N 20MHz only optimization
809ifeq ($(WL11N_20MHZONLY),1)
810	WLFLAGS += -DWL11N_20MHZONLY
811endif
812#endif
813
814#ifdef WL11N_SINGLESTREAM
815# 11N single stream optimization
816ifeq ($(WL11N_SINGLESTREAM),1)
817	WLFLAGS += -DWL11N_SINGLESTREAM
818endif
819#endif
820
821#ifdef WL11H
822# 11H
823ifeq ($(WL11H),1)
824	WLFLAGS += -DWL11H
825endif
826#endif
827
828#ifdef WL11D
829# 11D
830ifeq ($(WL11D),1)
831	WLFLAGS += -DWL11D
832endif
833#endif
834
835#ifdef DBAND
836# DBAND
837ifeq ($(DBAND),1)
838	WLFLAGS += -DDBAND
839endif
840#endif
841
842#ifdef WLRM
843# WLRM
844ifeq ($(WLRM),1)
845	WLFLAGS += -DWLRM
846endif
847#endif
848
849#ifdef WLCQ
850# WLCQ
851ifeq ($(WLCQ),1)
852	WLFLAGS += -DWLCQ
853endif
854#endif
855
856#ifdef WLCNT
857# WLCNT
858ifeq ($(WLCNT),1)
859	WLFLAGS += -DWLCNT
860endif
861#endif
862
863#ifdef WLCHANIM
864# WLCHANIM
865ifeq ($(WLCHANIM),1)
866	WLFLAGS += -DWLCHANIM
867endif
868#endif
869
870ifndef DELTASTATS
871	ifeq ($(WLCNT),1)
872		DELTASTATS := 1
873	endif
874endif
875
876ifndef WLMULTIQUEUE
877	ifeq ($(WLMCHAN),1)
878		WLMULTIQUEUE := 1
879	endif
880endif
881
882# DELTASTATS
883ifeq ($(DELTASTATS),1)
884	WLFLAGS += -DDELTASTATS
885endif
886
887#ifdef WLCNTSCB
888# WLCNTSCB
889ifeq ($(WLCNTSCB),1)
890	WLFLAGS += -DWLCNTSCB
891endif
892#endif
893
894
895#ifdef WLCOEX
896# WLCOEX
897ifeq ($(WLCOEX),1)
898	WLFLAGS += -DWLCOEX
899endif
900#endif
901
902## wl security
903# external linux supplicant
904#ifdef LINUX_CRYPTO
905ifeq ($(LINUX_CRYPTO), 1)
906	WLFLAGS += -DLINUX_CRYPTO
907endif
908#endif
909
910ifeq ($(WLFBT),1)
911	WLFLAGS += -DWLFBT
912endif
913
914ifeq ($(WLWNM),1)
915	WLFLAGS += -DWLWNM
916endif
917
918#ifdef BCMSUP_PSK
919# in-driver supplicant
920ifeq ($(BCMSUP_PSK),1)
921	WLFLAGS += -DBCMSUP_PSK -DBCMINTSUP
922	WLFILES_SRC_HI += src/wl/sys/wlc_sup.c
923	WLFILES_SRC_HI += src/bcmcrypto/aes.c
924	WLFILES_SRC_HI += src/bcmcrypto/aeskeywrap.c
925	WLFILES_SRC_HI += src/bcmcrypto/hmac.c
926	WLFILES_SRC_HI += src/bcmcrypto/prf.c
927	WLFILES_SRC_HI += src/bcmcrypto/sha1.c
928	ifeq ($(WLFBT),1)
929	WLFILES_SRC_HI += src/bcmcrypto/hmac_sha256.c
930	WLFILES_SRC_HI += src/bcmcrypto/sha256.c
931	endif
932	# NetBSD 2.0 has MD5 and AES built in
933	ifneq ($(OSLBSD),1)
934		WLFILES_SRC_HI += src/bcmcrypto/md5.c
935		WLFILES_SRC_HI += src/bcmcrypto/rijndael-alg-fst.c
936	endif
937	WLFILES_SRC_HI += src/bcmcrypto/passhash.c
938endif
939#endif
940
941
942#ifdef BCMAUTH_PSK
943# in-driver authenticator
944ifeq ($(BCMAUTH_PSK),1)
945	WLFLAGS += -DBCMAUTH_PSK
946	WLFILES_SRC_HI += src/wl/sys/wlc_auth.c
947endif
948#endif
949
950#ifdef BCMCCMP
951# Soft AES CCMP
952ifeq ($(BCMCCMP),1)
953	WLFLAGS += -DBCMCCMP
954	WLFILES_SRC_HI += src/bcmcrypto/aes.c
955	# BSD has AES built in
956	ifneq ($(BSD),1)
957		WLFILES_SRC_HI +=src/bcmcrypto/rijndael-alg-fst.c
958	endif
959endif
960#endif
961
962#ifdef MFP
963# Management Frame Protection
964ifeq ($(MFP),1)
965	WLFLAGS += -DMFP
966	WLFILES_SRC_HI += src/bcmcrypto/aes.c
967	WLFILES_SRC_HI += src/bcmcrypto/sha256.c
968	WLFILES_SRC_HI += src/bcmcrypto/hmac_sha256.c
969	# BSD has AES built in
970	ifneq ($(BSD),1)
971		WLFILES_SRC_HI +=src/bcmcrypto/rijndael-alg-fst.c
972	endif
973endif
974#endif
975
976
977#ifdef BCMWAPI_WPI
978ifeq ($(BCMWAPI_WPI),1)
979	WLFILES_SRC_HI += src/bcmcrypto/sms4.c
980	WLFLAGS += -DBCMWAPI_WPI
981	ifeq ($(BCMSMS4_TEST),1)
982		WLFLAGS += -DBCMSMS4_TEST
983	endif
984endif
985#endif
986
987#ifdef WIFI_ACT_FRAME
988# WIFI_ACT_FRAME 
989ifeq ($(WIFI_ACT_FRAME),1)
990	WLFLAGS += -DWIFI_ACT_FRAME 
991endif
992#endif
993
994# BCMDMA32
995ifeq ($(BCMDMA32),1)
996	WLFLAGS += -DBCMDMA32
997endif
998
999ifeq ($(BCMDMA64OSL),1)
1000	WLFLAGS += -DBCMDMA64OSL
1001endif
1002
1003ifeq ($(BCMDMASGLISTOSL),1)
1004	WLFLAGS += -DBCMDMASGLISTOSL
1005endif
1006
1007# Early DMA TX Free for LOW driver
1008ifeq ($(WL_DMA_TX_FREE),1)
1009	ifneq ($(WL_HIGH),1)
1010		ifeq ($(PT_GIANT),1)
1011			WLFLAGS += -DDMA_TX_FREE
1012		endif
1013	endif
1014endif
1015
1016## wl over jtag
1017#ifdef BCMJTAG
1018ifeq ($(BCMJTAG),1)
1019	WLFLAGS += -DBCMJTAG -DBCMSLTGT
1020	WLFILES_SRC += src/shared/bcmjtag.c
1021	WLFILES_SRC += src/shared/bcmjtag_linux.c
1022	WLFILES_SRC += src/shared/ejtag.c
1023	WLFILES_SRC += src/shared/jtagm.c
1024endif
1025#endif
1026
1027#ifdef WLAMSDU
1028ifeq ($(WLAMSDU),1)
1029	WLFLAGS += -DWLAMSDU
1030	WLFILES_SRC_HI += src/wl/sys/wlc_amsdu.c
1031endif
1032#endif
1033
1034#ifdef WLAMSDU_SWDEAGG
1035ifeq ($(WLAMSDU_SWDEAGG),1)
1036	WLFLAGS += -DWLAMSDU_SWDEAGG
1037endif
1038#endif
1039
1040#ifdef WLAMPDU
1041ifeq ($(WLAMPDU),1)
1042	WLFLAGS += -DWLAMPDU
1043	WLFILES_SRC_HI += src/wl/sys/wlc_ampdu.c
1044	ifeq ($(WLAMPDU_UCODE),1)
1045		WLFLAGS += -DWLAMPDU_UCODE -DWLAMPDU_MAC
1046	endif
1047	ifeq ($(WLAMPDU_HW),1)
1048		WLFLAGS += -DWLAMPDU_HW -DWLAMPDU_MAC
1049	endif
1050	ifeq ($(WLAMPDU_PRECEDENCE),1)
1051		WLFLAGS += -DWLAMPDU_PRECEDENCE
1052	endif
1053endif
1054#endif
1055
1056#ifdef WOWL
1057ifeq ($(WOWL),1)
1058	WLFLAGS += -DWOWL
1059	WLFILES_SRC_HI += src/wl/sys/d11ucode_wowl.c
1060	WLFILES_SRC_HI += src/wl/sys/wlc_wowl.c
1061	WLFILES_SRC_HI += src/wl/sys/wowlaestbls.c
1062endif
1063#endif
1064
1065#ifdef BTC2WIRE
1066ifeq ($(BTC2WIRE),1)
1067	WLFLAGS += -DBTC2WIRE
1068	WLFILES_SRC_LO += src/wl/sys/d11ucode_2w.c
1069endif
1070#endif
1071
1072#ifdef WL_ASSOC_RECREATE
1073ifeq ($(WL_ASSOC_RECREATE),1)
1074	ifeq ($(STA),1)
1075		WLFLAGS += -DWL_ASSOC_RECREATE
1076	endif
1077endif
1078#endif
1079
1080
1081#ifdef WLP2P
1082ifeq ($(WLP2P),1)
1083	WLFLAGS += -DWLP2P -DWL_BSSCFG_TX_SUPR -DWIFI_ACT_FRAME
1084	WLFILES_SRC_HI += src/wl/sys/wlc_p2p.c
1085	WLFILES_SRC_LO += src/wl/sys/d11ucode_p2p.c
1086	ifeq ($(WLMCHAN), 1)
1087		WLFLAGS += -DWLMCHAN
1088		WLFILES_SRC_HI += src/wl/sys/wlc_mchan.c
1089	endif
1090	ifeq ($(WLMULTIQUEUE), 1)
1091		WLFLAGS += -DWL_MULTIQUEUE
1092	endif
1093endif
1094#endif
1095
1096#ifdef WLRWL
1097ifeq ($(WLRWL),1)
1098	WLFLAGS += -DWLRWL
1099	WLFILES_SRC_HI += src/wl/sys/wlc_rwl.c
1100endif
1101#endif
1102
1103ifneq ($(WLNDIS_DHD),1)
1104#ifdef WLBTAMP
1105	ifeq ($(AP)$(STA),11)
1106	ifeq ($(WLBTAMP),1)
1107		WLFLAGS += -DWLBTAMP
1108		WLFILES_SRC_HI += src/wl/sys/wlc_bta.c
1109#ifdef WLBTWUSB
1110		ifeq ($(WLBTWUSB),1)
1111			WLFLAGS += -DWLBTWUSB
1112			WLFILES_SRC_HI += src/wl/sys/bt_int.c
1113		endif
1114#endif /* WLBTWUSB */
1115	endif
1116	endif
1117#endif /* WLBTAMP */
1118endif
1119
1120#ifdef WLPLT
1121ifeq ($(WLPLT),1)
1122	WLFLAGS += -DWLPLT
1123	WLFILES_SRC_HI += src/wl/sys/wlc_plt.c
1124endif
1125#endif
1126
1127
1128#ifdef WLNINTENDO2
1129ifeq ($(WLNINTENDO2),1)
1130	WLFLAGS += -DWLNINTENDO2
1131endif
1132#endif
1133
1134#ifdef WLMEDIA
1135ifeq ($(WLMEDIA),1)
1136	WLFLAGS += -DWLMEDIA_EN
1137	WLFLAGS += -DWLMEDIA_RATESTATS
1138	WLFLAGS += -DWLMEDIA_MULTIQUEUE
1139	WLFLAGS += -DWLMEDIA_TXFIFO_FLUSH_SCB
1140	WLFLAGS += -DWLMEDIA_AMPDUSTATS
1141	WLFLAGS += -DWLMEDIA_TXFAILEVENT
1142	WLFLAGS += -DWLMEDIA_LQSTATS
1143	WLFLAGS += -DWLMEDIA_CALDBG
1144	WLFLAGS += -DWLMEDIA_EXT
1145	WLFLAGS += -DWLMEDIA_TXFILTER_OVERRIDE
1146	WLFLAGS += -DWLMEDIA_TSF
1147	WLFLAGS += -DWLMEDIA_PEAKRATE
1148endif
1149#endif
1150
1151#ifdef WLPKTDLYSTAT
1152ifeq ($(WLPKTDLYSTAT),1)
1153	WLFLAGS += -DWLPKTDLYSTAT
1154endif
1155#endif
1156
1157## --- which buses
1158
1159# silicon backplane
1160
1161#ifdef BCMSIBUS
1162ifeq ($(BCMSIBUS),1)
1163	WLFLAGS += -DBCMBUSTYPE=SI_BUS
1164	BCMPCI = 0
1165endif
1166#endif
1167
1168ifeq ($(SOCI_SB),1)
1169	WLFLAGS += -DBCMCHIPTYPE=SOCI_SB
1170else
1171	ifeq ($(SOCI_AI),1)
1172		WLFLAGS += -DBCMCHIPTYPE=SOCI_AI
1173	endif
1174endif
1175
1176
1177
1178#ifndef LINUX_HYBRID
1179# AP/ROUTER with SDSTD
1180ifeq ($(WLAPSDSTD),1)
1181	WLFILES_SRC += src/shared/nvramstubs.c
1182	WLFILES_SRC += src/shared/bcmsrom.c
1183endif
1184#endif
1185
1186## --- basic shared files
1187
1188#ifdef BCMHIGHSDIO
1189ifeq ($(BCMHIGHSDIO),1)
1190	WLFLAGS += -DBCMHIGHSDIO
1191endif
1192#endif
1193
1194#ifdef BCMLOSDIO
1195ifeq ($(BCMLOSDIO),1)
1196	WLFLAGS += -DBCMLOSDIO
1197endif
1198#endif
1199
1200#ifdef BCMHIGHUSB
1201ifeq ($(BCMHIGHUSB),1)
1202	WLFLAGS += -DBCMHIGHUSB
1203endif
1204#endif
1205
1206#ifdef BCMLOUSB
1207ifeq ($(BCMLOUSB),1)
1208	WLFLAGS += -DBCMLOUSB
1209endif
1210#endif
1211
1212#ifdef HNDDMA
1213ifeq ($(HNDDMA),1)
1214	WLFILES_SRC_LO += src/shared/hnddma.c
1215endif
1216#endif
1217
1218#ifdef MSGTRACE
1219ifeq ($(MSGTRACE),1)
1220	WLFILES_SRC += src/shared/msgtrace.c
1221	WLFLAGS += -DMSGTRACE
1222endif
1223#endif
1224
1225#ifdef BCMUTILS
1226ifeq ($(BCMUTILS),1)
1227	WLFILES_SRC += src/shared/bcmutils.c
1228endif
1229#endif
1230
1231
1232#ifdef BCMSROM
1233ifeq ($(BCMSROM),1)
1234	ifeq ($(BCMSDIO),1)
1235		ifeq ($(WL_HIGH),1)
1236			WLFILES_SRC_HI += src/shared/bcmsrom.c
1237			WLFILES_SRC_HI += src/shared/bcmotp.c
1238		endif
1239	endif
1240	WLFILES_SRC_LO += src/shared/bcmsrom.c
1241	WLFILES_SRC_LO += src/shared/bcmotp.c
1242endif
1243#endif
1244
1245#ifdef BCMOTP
1246ifeq ($(BCMOTP),1)
1247	WLFILES_SRC_LO += src/shared/bcmotp.c
1248	WLFLAGS += -DBCMNVRAMR
1249endif
1250#endif
1251
1252#ifdef SIUTILS
1253ifeq ($(SIUTILS),1)
1254	WLFILES_SRC_LO += src/shared/siutils.c
1255	WLFILES_SRC_LO += src/shared/sbutils.c
1256	WLFILES_SRC_LO += src/shared/aiutils.c
1257	WLFILES_SRC_LO += src/shared/hndpmu.c
1258	ifneq ($(BCMPCI), 0)
1259		WLFILES_SRC_LO += src/shared/nicpci.c
1260	endif
1261endif
1262#endif /* SIUTILS */
1263
1264#ifdef SBMIPS
1265ifeq ($(SBMIPS),1)
1266	WLFLAGS += -DBCMMIPS
1267	WLFILES_SRC_LO += src/shared/hndmips.c
1268	WLFILES_SRC_LO += src/shared/hndchipc.c
1269endif
1270#endif
1271
1272#ifdef SBPCI
1273ifeq ($(SBPCI),1)
1274	WLFILES_SRC_LO += src/shared/hndpci.c
1275endif
1276#endif
1277
1278#ifdef SFLASH
1279ifeq ($(SFLASH),1)
1280	WLFILES_SRC_LO += src/shared/sflash.c
1281endif
1282#endif
1283
1284#ifdef FLASHUTL
1285ifeq ($(FLASHUTL),1)
1286	WLFILES_SRC_LO += src/shared/flashutl.c
1287endif
1288#endif
1289
1290## --- shared OSL
1291#ifdef OSLUM
1292# linux user mode
1293ifeq ($(OSLUM),1)
1294	WLFILES_SRC += src/shared/usermode_osl.c
1295	WLFLAGS += -DUSER_MODE
1296endif
1297#endif
1298
1299#ifdef OSLLX
1300# linux osl
1301ifeq ($(OSLLX),1)
1302	WLFILES_SRC += src/shared/linux_osl.c
1303endif
1304#endif
1305
1306#ifdef OSLVX
1307# vx osl
1308ifeq ($(OSLVX),1)
1309	WLFILES_SRC += src/shared/vx_osl.c
1310	WLFILES_SRC += src/shared/bcmallocache.c
1311endif
1312#endif
1313
1314#ifdef OSLBSD
1315# bsd osl
1316ifeq ($(OSLBSD),1)
1317	WLFILES_SRC += src/shared/bsd_osl.c
1318	WLFILES_SRC += src/shared/nvramstubs.c
1319endif
1320#endif
1321
1322#ifdef OSLCFE
1323ifeq ($(OSLCFE),1)
1324	WLFILES_SRC += src/shared/cfe_osl.c
1325endif
1326#endif
1327
1328#ifdef OSLRTE
1329ifeq ($(OSLRTE),1)
1330	WLFILES_SRC += src/shared/hndrte_osl.c
1331endif
1332#endif
1333
1334#ifdef OSLNDIS
1335ifeq ($(OSLNDIS),1)
1336	WLFILES_SRC += src/shared/ndshared.c
1337	WLFILES_SRC += src/shared/ndis_osl.c
1338endif
1339#endif
1340
1341#ifndef LINUX_HYBRID
1342ifeq ($(CONFIG_USBRNDIS_RETAIL),1)
1343	WLFLAGS += -DCONFIG_USBRNDIS_RETAIL
1344	WLFILES_SRC += src/wl/sys/wl_ndconfig.c
1345	WLFILES_SRC += src/shared/bcmwifi.c
1346endif
1347
1348ifeq ($(NVRAM),1)
1349	WLFILES_SRC_LO += src/dongle/rte/test/nvram.c
1350	WLFILES_SRC_LO += src/dongle/rte/sim/nvram.c
1351	WLFILES_SRC_LO += src/shared/nvram/nvram.c
1352endif
1353
1354ifeq ($(NVRAMVX),1)
1355	WLFILES_SRC_LO += src/shared/nvram/nvram_rw.c
1356endif
1357#endif /* LINUX_HYBRID */
1358
1359#ifdef BCMNVRAMR
1360ifeq ($(BCMNVRAMR),1)
1361	WLFILES_SRC_LO += src/shared/nvram/nvram_ro.c
1362	WLFILES_SRC_LO += src/shared/sflash.c
1363	WLFILES_SRC_LO += src/shared/bcmotp.c
1364	WLFLAGS += -DBCMNVRAMR
1365endif
1366#else /* !BCMNVRAMR */
1367ifneq ($(BCMNVRAMR),1)
1368	ifeq ($(WLLXNOMIPSEL),1)
1369		ifneq ($(WLUMK),1)
1370			WLFILES_SRC += src/shared/nvramstubs.c
1371		endif
1372	else
1373		ifeq ($(WLNDIS),1)
1374			WLFILES_SRC += src/shared/nvramstubs.c
1375		else
1376			ifeq ($(BCMNVRAMW),1)
1377				WLFILES_SRC_LO += src/shared/nvram/nvram_ro.c
1378				WLFILES_SRC_LO += src/shared/sflash.c
1379			endif
1380		endif
1381	endif
1382	ifeq ($(BCMNVRAMW),1)
1383		WLFILES_SRC_LO += src/shared/bcmotp.c
1384		WLFLAGS += -DBCMNVRAMW
1385	endif
1386endif
1387#endif /* !BCMNVRAMR */
1388
1389# Define one OTP mechanism, or none to support all dynamically
1390ifeq ($(BCMHNDOTP),1)
1391	WLFLAGS += -DBCMHNDOTP
1392endif
1393ifeq ($(BCMIPXOTP),1)
1394	WLFLAGS += -DBCMIPXOTP
1395endif
1396
1397
1398#ifdef WLDIAG
1399ifeq ($(WLDIAG),1)
1400	WLFLAGS += -DWLDIAG
1401	WLFILES_SRC_LO += src/wl/sys/wlc_diag.c
1402endif
1403#endif
1404
1405
1406#ifdef BCMQT
1407ifeq ($(BCMQT),1)
1408	# Set flag to indicate emulated chip
1409	WLFLAGS += -DBCMSLTGT -DBCMQT
1410	ifeq ($(WLRTE),1)
1411		# Use of RTE implies embedded (CPU emulated)
1412		WLFLAGS += -DBCMQT_CPU
1413	endif
1414endif
1415#endif
1416
1417#ifdef WLPFN
1418ifeq ($(WLPFN),1)
1419	WLFLAGS += -DWLPFN
1420	WLFILES_SRC += src/wl/sys/wl_pfn.c
1421	ifeq ($(WLPFN_AUTO_CONNECT),1)
1422		WLFLAGS += -DWLPFN_AUTO_CONNECT
1423	endif
1424endif
1425#endif
1426
1427#ifdef TOE
1428ifeq ($(TOE),1)
1429	WLFLAGS += -DTOE
1430	WLFILES_SRC += src/wl/sys/wl_toe.c
1431endif
1432#endif
1433
1434#ifdef ARPOE
1435ifeq ($(ARPOE),1)
1436	WLFLAGS += -DARPOE
1437	WLFILES_SRC += src/wl/sys/wl_arpoe.c
1438endif
1439#endif
1440
1441#ifdef PLC
1442ifeq ($(PLC),1)
1443	WLFLAGS += -DPLC
1444	WLFILES_SRC += src/wl/sys/wl_plc_linux.c
1445endif
1446#endif
1447
1448#ifdef PCOEM_LINUXSTA
1449ifeq ($(PCOEM_LINUXSTA),1)
1450	WLFLAGS += -DPCOEM_LINUXSTA
1451endif
1452#endif
1453
1454#ifdef LINUXSTA_PS
1455ifeq ($(LINUXSTA_PS),1)
1456	WLFLAGS += -DLINUXSTA_PS
1457endif
1458#endif
1459
1460#ifndef LINUX_HYBRID
1461ifeq ($(KEEP_ALIVE),1)
1462	WLFLAGS += -DKEEP_ALIVE
1463	WLFILES_SRC += src/wl/sys/wl_keep_alive.c
1464endif
1465
1466#ifdef OPENSRC_IOV_IOCTL
1467ifeq ($(OPENSRC_IOV_IOCTL),1)
1468	WLFLAGS += -DOPENSRC_IOV_IOCTL
1469endif
1470#endif
1471
1472ifeq ($(PACKET_FILTER),1)
1473	WLFLAGS += -DPACKET_FILTER
1474	WLFILES_SRC += src/wl/sys/wlc_pkt_filter.c
1475endif
1476
1477ifeq ($(SEQ_CMDS),1)
1478	WLFLAGS += -DSEQ_CMDS
1479	WLFILES_SRC_HI += src/wl/sys/wlc_seq_cmds.c
1480endif
1481
1482ifeq ($(RECEIVE_THROTTLE),1)
1483	WLFLAGS += -DWL_PM2_RCV_DUR_LIMIT
1484endif
1485
1486ifeq ($(ASYNC_TSTAMPED_LOGS),1)
1487	WLFLAGS += -DBCMTSTAMPEDLOGS
1488endif
1489
1490ifeq ($(WL11K),1)
1491	WLFLAGS += -DWL11K
1492	WLFILES_SRC += src/wl/sys/wlc_rrm.c
1493endif
1494ifeq ($(WLWNM),1)
1495	WLFLAGS += -DWLWNM
1496	WLFILES_SRC += src/wl/sys/wlc_wnm.c
1497endif
1498#endif
1499
1500# Sort and remove duplicates from WLFILES* 
1501ifeq ($(WL_LOW),1)
1502	WLFILES_SRC += $(sort $(WLFILES_SRC_LO))
1503endif
1504ifeq ($(WL_HIGH),1)
1505	WLFILES_SRC += $(sort $(WLFILES_SRC_HI))
1506endif
1507
1508# wl patch code
1509ifneq ($(WLPATCHFILE), )
1510	WLFLAGS += -DWLC_PATCH
1511	WLFILES_SRC += $(WLPATCHFILE)
1512endif
1513
1514ifeq ($(SAMPLE_COLLECT),1)
1515	WLFLAGS += -DSAMPLE_COLLECT
1516endif
1517
1518# add a flag to indicate the split to linux kernels
1519WLFLAGS += -DPHY_HAL
1520
1521ifeq ($(SMF_STATS),1)
1522	WLFLAGS += -DSMF_STATS
1523endif
1524
1525#ifdef PHYMON
1526ifeq ($(PHYMON),1)
1527	WLFLAGS += -DPHYMON
1528endif
1529#endif
1530
1531#ifdef USBSHIM
1532ifeq ($(USBSHIM),1)
1533        WLFLAGS += -DUSBSHIM
1534endif # USBSHIM
1535#endif
1536
1537#ifdef BCM_DCS
1538ifeq ($(BCM_DCS),1)
1539	WLFLAGS += -DBCM_DCS
1540endif
1541#endif
1542
1543ifeq ($(WL_THREAD),1)
1544	WLFLAGS += -DWL_THREAD
1545endif
1546
1547ifeq ($(USBOS_THREAD),1)
1548	WLFLAGS += -DUSBOS_THREAD
1549endif
1550ifeq ($(WL_NVRAM_FILE),1)
1551	WLFLAGS += -DWL_NVRAM_FILE
1552endif
1553
1554ifeq ($(WL_FW_DECOMP),1)
1555	WLFLAGS += -DWL_FW_DECOMP
1556	WLFILES_SRC_HI += src/shared/zlib/adler32.c
1557	WLFILES_SRC_HI += src/shared/zlib/inffast.c
1558	WLFILES_SRC_HI += src/shared/zlib/inflate.c
1559	WLFILES_SRC_HI += src/shared/zlib/infcodes.c
1560	WLFILES_SRC_HI += src/shared/zlib/infblock.c
1561	WLFILES_SRC_HI += src/shared/zlib/inftrees.c
1562	WLFILES_SRC_HI += src/shared/zlib/infutil.c
1563	WLFILES_SRC_HI += src/shared/zlib/zutil.c
1564	WLFILES_SRC_HI += src/shared/zlib/crc32.c
1565endif
1566
1567ifeq ($(WL_WOWL_MEDIA),1)
1568	WLFLAGS += -DWL_WOWL_MEDIA
1569endif
1570
1571ifeq ($(WL_USB_ZLP_PAD),1)
1572	WLFLAGS += -DWL_USB_ZLP_PAD
1573endif
1574
1575ifeq ($(WL_URB_ZPKT),1)
1576	WLFLAGS += -DWL_URB_ZPKT
1577endif
1578
1579ifeq ($(WL_VMEM_NVRAM_DECOMP),1)
1580	WLFLAGS += -DWL_VMEM_NVRAM_DECOMP
1581endif
1582
1583
1584# add a flag to indicate the split to linux kernels
1585WLFLAGS += -DPHY_HAL
1586
1587ifeq ($(MEDIA_IPTV),1)
1588	WLFLAGS += -DWLMEDIA_IPTV
1589	WLFLAGS += -DWET_TUNNEL
1590	WLFILES_SRC_HI += src/wl/sys/wlc_wet_tunnel.c
1591endif
1592
1593# Legacy WLFILES pathless definition, please use new src relative path
1594# in make files. 
1595WLFILES := $(sort $(notdir $(WLFILES_SRC)))
1596