xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/mvl88w8977/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# File: Makefile
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# Copyright (C) 2008-2017, Marvell International Ltd.
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun# This software file (the "File") is distributed by Marvell International
6*4882a593Smuzhiyun# Ltd. under the terms of the GNU General Public License Version 2, June 1991
7*4882a593Smuzhiyun# (the "License").  You may use, redistribute and/or modify this File in
8*4882a593Smuzhiyun# accordance with the terms and conditions of the License, a copy of which
9*4882a593Smuzhiyun# is available by writing to the Free Software Foundation, Inc.,
10*4882a593Smuzhiyun# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
11*4882a593Smuzhiyun# worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
12*4882a593Smuzhiyun#
13*4882a593Smuzhiyun# A copy of the GPL is available in file gpl-2.0.txt accompanying in this
14*4882a593Smuzhiyun# deliverables.
15*4882a593Smuzhiyun#
16*4882a593Smuzhiyun# THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
17*4882a593Smuzhiyun# IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
18*4882a593Smuzhiyun# ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
19*4882a593Smuzhiyun# this warranty disclaimer.
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunCOMPATDIR=/lib/modules/$(KERNELVERSION_X86)/build/compat-wireless-3.2-rc1-1/include
22*4882a593SmuzhiyunCC=		$(CROSS_COMPILE)gcc -I$(COMPATDIR)
23*4882a593SmuzhiyunLD=		$(CROSS_COMPILE)ld
24*4882a593SmuzhiyunBACKUP=		/root/backup
25*4882a593SmuzhiyunYMD=		`date +%Y%m%d%H%M`
26*4882a593Smuzhiyun
27*4882a593Smuzhiyunifneq ($(COMPAT_VERSION_CODE),)
28*4882a593SmuzhiyunDRV_DIR ?= $(shell pwd)
29*4882a593Smuzhiyunexport DRV_DIR
30*4882a593SmuzhiyunCOMPAT_VERSION=$(shell echo $(COMPAT_VERSION_CODE) | awk -F '.' '{print $$1}')
31*4882a593SmuzhiyunCOMPAT_PATCHLEVEL=$(shell echo $(COMPAT_VERSION_CODE) | awk -F '.' '{print $$2}')
32*4882a593SmuzhiyunCOMPAT_SUBLEVEL=$(shell echo $(COMPAT_VERSION_CODE) | awk -F '.' '{print $$3}')
33*4882a593SmuzhiyunDECL_HEADER_FILE=$(DRV_DIR)/mlinux/moal_main.h
34*4882a593Smuzhiyun$(shell sed -i 's/COMPAT_VERSION_CODE KERNEL_VERSION.*/COMPAT_VERSION_CODE KERNEL_VERSION(\
35*4882a593Smuzhiyun		$(COMPAT_VERSION), $(COMPAT_PATCHLEVEL), $(COMPAT_SUBLEVEL))/g' $(DECL_HEADER_FILE))
36*4882a593Smuzhiyunendif
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun#############################################################################
39*4882a593Smuzhiyun# Configuration Options
40*4882a593Smuzhiyun#############################################################################
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun# Debug Option
43*4882a593Smuzhiyun# DEBUG LEVEL n/1/2:
44*4882a593Smuzhiyun# n: NO DEBUG
45*4882a593Smuzhiyun# 1: Only PRINTM(MMSG,...), PRINTM(MFATAL,...), ...
46*4882a593Smuzhiyun# 2: All PRINTM()
47*4882a593SmuzhiyunCONFIG_DEBUG=1
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun# Proc debug file
50*4882a593SmuzhiyunCONFIG_PROC_DEBUG=y
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun# Enable STA mode support
53*4882a593SmuzhiyunCONFIG_STA_SUPPORT=y
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun# Enable uAP mode support
56*4882a593SmuzhiyunCONFIG_UAP_SUPPORT=y
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun# Enable WIFIDIRECT support
59*4882a593SmuzhiyunCONFIG_WIFI_DIRECT_SUPPORT=y
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun# Enable WIFIDISPLAY support
62*4882a593SmuzhiyunCONFIG_WIFI_DISPLAY_SUPPORT=y
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun# Re-association in driver
65*4882a593SmuzhiyunCONFIG_REASSOCIATION=y
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun# Manufacturing firmware support
69*4882a593SmuzhiyunCONFIG_MFG_CMD_SUPPORT=y
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun# OpenWrt support
72*4882a593SmuzhiyunCONFIG_OPENWRT_SUPPORT=n
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun# Big-endian platform
75*4882a593SmuzhiyunCONFIG_BIG_ENDIAN=n
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun# Enable driver based authenticator
79*4882a593SmuzhiyunCONFIG_DRV_EMBEDDED_AUTHENTICATOR=y
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun# Enable driver based supplicant
82*4882a593SmuzhiyunCONFIG_DRV_EMBEDDED_SUPPLICANT=y
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunifeq ($(CONFIG_DRV_EMBEDDED_SUPPLICANT), y)
85*4882a593SmuzhiyunCONFIG_EMBEDDED_SUPP_AUTH=y
86*4882a593Smuzhiyunelse
87*4882a593Smuzhiyunifeq ($(CONFIG_DRV_EMBEDDED_AUTHENTICATOR), y)
88*4882a593SmuzhiyunCONFIG_EMBEDDED_SUPP_AUTH=y
89*4882a593Smuzhiyunendif
90*4882a593Smuzhiyunendif
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun# Enable SDIO multi-port Tx aggregation
93*4882a593SmuzhiyunCONFIG_SDIO_MULTI_PORT_TX_AGGR=y
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun# Enable SDIO multi-port Rx aggregation
96*4882a593SmuzhiyunCONFIG_SDIO_MULTI_PORT_RX_AGGR=y
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun# SDIO suspend/resume
99*4882a593SmuzhiyunCONFIG_SDIO_SUSPEND_RESUME=y
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun# DFS testing support
102*4882a593SmuzhiyunCONFIG_DFS_TESTING_SUPPORT=y
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun# Multi-channel support
105*4882a593SmuzhiyunCONFIG_MULTI_CHAN_SUPPORT=y
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun
108*4882a593SmuzhiyunCONFIG_ANDROID_KERNEL=y
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun#32bit app over 64bit kernel support
112*4882a593SmuzhiyunCONFIG_USERSPACE_32BIT_OVER_KERNEL_64BIT=n
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun#############################################################################
115*4882a593Smuzhiyun# Select Platform Tools
116*4882a593Smuzhiyun#############################################################################
117*4882a593SmuzhiyunKERNELDIR := ./../../../../../
118*4882a593SmuzhiyunCURRENT_DIR := $(shell pwd)
119*4882a593SmuzhiyunMODEXT = ko
120*4882a593Smuzhiyun
121*4882a593Smuzhiyunccflags-y += -I$(M)/mlan
122*4882a593Smuzhiyunccflags-y += -DLINUX
123*4882a593Smuzhiyun
124*4882a593Smuzhiyunccflags-y += -Idrivers/net/wireless/rockchip_wlan/mvl88w8977/mlan/
125*4882a593Smuzhiyunccflags-y += -Idrivers/net/wireless/rockchip_wlan/mvl88w8977/mlinux
126*4882a593Smuzhiyunccflags-y += -Idrivers/net/wireless/rockchip_wlan/mvl88w8977/mlan/esa
127*4882a593Smuzhiyunccflags-y += -Idrivers/net/wireless/rockchip_wlan/mvl88w8977/mlan/esa/common
128*4882a593Smuzhiyun
129*4882a593Smuzhiyunifeq ($(CONFIG_EMBEDDED_SUPP_AUTH), y)
130*4882a593Smuzhiyunccflags-y += -I$(M)/mlan/esa
131*4882a593Smuzhiyunccflags-y += -I$(M)/mlan/esa/common
132*4882a593Smuzhiyunendif
133*4882a593Smuzhiyun
134*4882a593SmuzhiyunLD += -S
135*4882a593Smuzhiyun
136*4882a593SmuzhiyunBINDIR = ../bin_sd8977
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun#############################################################################
139*4882a593Smuzhiyun# Compiler Flags
140*4882a593Smuzhiyun#############################################################################
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun	ccflags-y += -I$(KERNELDIR)/include
143*4882a593Smuzhiyun	ccflags-y += -I$(PWD)/mlan/esa
144*4882a593Smuzhiyun	ccflags-y += -I$(PWD)/mlan/esa/common
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun	ccflags-y += -DFPNUM='"68"'
147*4882a593Smuzhiyun
148*4882a593Smuzhiyunifeq ($(CONFIG_DEBUG),1)
149*4882a593Smuzhiyun	ccflags-y += -DDEBUG_LEVEL1
150*4882a593Smuzhiyunendif
151*4882a593Smuzhiyun
152*4882a593Smuzhiyunifeq ($(CONFIG_DEBUG),2)
153*4882a593Smuzhiyun	ccflags-y += -DDEBUG_LEVEL1
154*4882a593Smuzhiyun	ccflags-y += -DDEBUG_LEVEL2
155*4882a593Smuzhiyun	DBG=	-dbg
156*4882a593Smuzhiyunendif
157*4882a593Smuzhiyun
158*4882a593Smuzhiyunifeq ($(CONFIG_PROC_DEBUG),y)
159*4882a593Smuzhiyun	ccflags-y += -DPROC_DEBUG
160*4882a593Smuzhiyun	export CONFIG_PROC_DEBUG
161*4882a593Smuzhiyunendif
162*4882a593Smuzhiyun
163*4882a593Smuzhiyunifeq ($(CONFIG_64BIT), y)
164*4882a593Smuzhiyun	ccflags-y += -DMLAN_64BIT
165*4882a593Smuzhiyunendif
166*4882a593Smuzhiyun
167*4882a593Smuzhiyunifeq ($(CONFIG_STA_SUPPORT),y)
168*4882a593Smuzhiyun	ccflags-y += -DSTA_SUPPORT
169*4882a593Smuzhiyunifeq ($(CONFIG_REASSOCIATION),y)
170*4882a593Smuzhiyun	ccflags-y += -DREASSOCIATION
171*4882a593Smuzhiyunendif
172*4882a593Smuzhiyunelse
173*4882a593SmuzhiyunCONFIG_WIFI_DIRECT_SUPPORT=n
174*4882a593SmuzhiyunCONFIG_WIFI_DISPLAY_SUPPORT=n
175*4882a593SmuzhiyunCONFIG_STA_WEXT=n
176*4882a593SmuzhiyunCONFIG_STA_CFG80211=n
177*4882a593Smuzhiyunendif
178*4882a593Smuzhiyun
179*4882a593Smuzhiyunifeq ($(CONFIG_UAP_SUPPORT),y)
180*4882a593Smuzhiyun	ccflags-y += -DUAP_SUPPORT
181*4882a593Smuzhiyunelse
182*4882a593SmuzhiyunCONFIG_WIFI_DIRECT_SUPPORT=n
183*4882a593SmuzhiyunCONFIG_WIFI_DISPLAY_SUPPORT=n
184*4882a593SmuzhiyunCONFIG_UAP_WEXT=n
185*4882a593SmuzhiyunCONFIG_UAP_CFG80211=n
186*4882a593Smuzhiyunendif
187*4882a593Smuzhiyun
188*4882a593Smuzhiyunifeq ($(CONFIG_WIFI_DIRECT_SUPPORT),y)
189*4882a593Smuzhiyun	ccflags-y += -DWIFI_DIRECT_SUPPORT
190*4882a593Smuzhiyunendif
191*4882a593Smuzhiyunifeq ($(CONFIG_WIFI_DISPLAY_SUPPORT),y)
192*4882a593Smuzhiyun	ccflags-y += -DWIFI_DISPLAY_SUPPORT
193*4882a593Smuzhiyunendif
194*4882a593Smuzhiyun
195*4882a593Smuzhiyunifeq ($(CONFIG_MFG_CMD_SUPPORT),y)
196*4882a593Smuzhiyun	ccflags-y += -DMFG_CMD_SUPPORT
197*4882a593Smuzhiyunendif
198*4882a593Smuzhiyun
199*4882a593Smuzhiyunifeq ($(CONFIG_BIG_ENDIAN),y)
200*4882a593Smuzhiyun	ccflags-y += -DBIG_ENDIAN_SUPPORT
201*4882a593Smuzhiyunendif
202*4882a593Smuzhiyun
203*4882a593Smuzhiyunifeq ($(CONFIG_USERSPACE_32BIT_OVER_KERNEL_64BIT),y)
204*4882a593Smuzhiyun	ccflags-y += -DUSERSPACE_32BIT_OVER_KERNEL_64BIT
205*4882a593Smuzhiyunendif
206*4882a593Smuzhiyun
207*4882a593Smuzhiyunifeq ($(CONFIG_SDIO_MULTI_PORT_TX_AGGR),y)
208*4882a593Smuzhiyun	ccflags-y += -DSDIO_MULTI_PORT_TX_AGGR
209*4882a593Smuzhiyunendif
210*4882a593Smuzhiyun
211*4882a593Smuzhiyunifeq ($(CONFIG_SDIO_MULTI_PORT_RX_AGGR),y)
212*4882a593Smuzhiyun	ccflags-y += -DSDIO_MULTI_PORT_RX_AGGR
213*4882a593Smuzhiyunendif
214*4882a593Smuzhiyun
215*4882a593Smuzhiyunifeq ($(CONFIG_SDIO_SUSPEND_RESUME),y)
216*4882a593Smuzhiyun	ccflags-y += -DSDIO_SUSPEND_RESUME
217*4882a593Smuzhiyunendif
218*4882a593Smuzhiyun
219*4882a593Smuzhiyunifeq ($(CONFIG_MULTI_CHAN_SUPPORT),y)
220*4882a593Smuzhiyun	ccflags-y += -DMULTI_CHAN_SUPPORT
221*4882a593Smuzhiyunendif
222*4882a593Smuzhiyun
223*4882a593Smuzhiyunifeq ($(CONFIG_DFS_TESTING_SUPPORT),y)
224*4882a593Smuzhiyun	ccflags-y += -DDFS_TESTING_SUPPORT
225*4882a593Smuzhiyunendif
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun
228*4882a593Smuzhiyunifeq ($(CONFIG_ANDROID_KERNEL), y)
229*4882a593Smuzhiyun	ccflags-y += -DANDROID_KERNEL
230*4882a593Smuzhiyunendif
231*4882a593Smuzhiyun
232*4882a593Smuzhiyunifeq ($(CONFIG_OPENWRT_SUPPORT), y)
233*4882a593Smuzhiyun	ccflags-y += -DOPENWRT
234*4882a593Smuzhiyunendif
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun
237*4882a593Smuzhiyunifeq ($(CONFIG_T50), y)
238*4882a593Smuzhiyun	ccflags-y += -DT50
239*4882a593Smuzhiyun	ccflags-y += -DT40
240*4882a593Smuzhiyun	ccflags-y += -DT3T
241*4882a593Smuzhiyunendif
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun# add -Wno-packed-bitfield-compat when GCC version greater than 4.4
244*4882a593SmuzhiyunGCC_VERSION := $(shell echo `gcc -dumpversion | cut -f1-2 -d.` \>= 4.4 | sed -e 's/\./*100+/g' | bc )
245*4882a593Smuzhiyunifeq ($(GCC_VERSION),1)
246*4882a593Smuzhiyun	ccflags-y += -Wno-packed-bitfield-compat
247*4882a593Smuzhiyunendif
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun#############################################################################
250*4882a593Smuzhiyun# Make Targets
251*4882a593Smuzhiyun#############################################################################
252*4882a593Smuzhiyun
253*4882a593Smuzhiyunifneq ($(KERNELRELEASE),)
254*4882a593Smuzhiyun
255*4882a593Smuzhiyunifeq ($(CONFIG_WIRELESS_EXT),y)
256*4882a593Smuzhiyunifeq ($(CONFIG_WEXT_PRIV),y)
257*4882a593Smuzhiyun	# Enable WEXT for STA
258*4882a593Smuzhiyun	CONFIG_STA_WEXT=y
259*4882a593Smuzhiyun	# Enable WEXT for uAP
260*4882a593Smuzhiyun	CONFIG_UAP_WEXT=y
261*4882a593Smuzhiyunelse
262*4882a593Smuzhiyun# Disable WEXT for STA
263*4882a593Smuzhiyun	CONFIG_STA_WEXT=n
264*4882a593Smuzhiyun# Disable WEXT for uAP
265*4882a593Smuzhiyun	CONFIG_UAP_WEXT=n
266*4882a593Smuzhiyunendif
267*4882a593Smuzhiyunendif
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun# Enable CFG80211 for STA
270*4882a593Smuzhiyunifeq ($(CONFIG_CFG80211),y)
271*4882a593Smuzhiyun	CONFIG_STA_CFG80211=y
272*4882a593Smuzhiyunelse
273*4882a593Smuzhiyunifeq ($(CONFIG_CFG80211),m)
274*4882a593Smuzhiyun	CONFIG_STA_CFG80211=y
275*4882a593Smuzhiyunelse
276*4882a593Smuzhiyun	CONFIG_STA_CFG80211=n
277*4882a593Smuzhiyunendif
278*4882a593Smuzhiyunendif
279*4882a593Smuzhiyun
280*4882a593Smuzhiyun# OpenWrt
281*4882a593Smuzhiyunifeq ($(CONFIG_OPENWRT_SUPPORT), y)
282*4882a593Smuzhiyunifeq ($(CPTCFG_CFG80211),y)
283*4882a593Smuzhiyun	CONFIG_STA_CFG80211=y
284*4882a593Smuzhiyunelse
285*4882a593Smuzhiyunifeq ($(CPTCFG_CFG80211),m)
286*4882a593Smuzhiyun	CONFIG_STA_CFG80211=y
287*4882a593Smuzhiyunelse
288*4882a593Smuzhiyun	CONFIG_STA_CFG80211=n
289*4882a593Smuzhiyunendif
290*4882a593Smuzhiyunendif
291*4882a593Smuzhiyunendif
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun# Enable CFG80211 for uAP
294*4882a593Smuzhiyunifeq ($(CONFIG_CFG80211),y)
295*4882a593Smuzhiyun	CONFIG_UAP_CFG80211=y
296*4882a593Smuzhiyunelse
297*4882a593Smuzhiyunifeq ($(CONFIG_CFG80211),m)
298*4882a593Smuzhiyun	CONFIG_UAP_CFG80211=y
299*4882a593Smuzhiyunelse
300*4882a593Smuzhiyun	CONFIG_UAP_CFG80211=n
301*4882a593Smuzhiyunendif
302*4882a593Smuzhiyunendif
303*4882a593Smuzhiyun
304*4882a593Smuzhiyun# OpenWrt
305*4882a593Smuzhiyunifeq ($(CONFIG_OPENWRT_SUPPORT), y)
306*4882a593Smuzhiyunifeq ($(CPTCFG_CFG80211),y)
307*4882a593Smuzhiyun	CONFIG_UAP_CFG80211=y
308*4882a593Smuzhiyunelse
309*4882a593Smuzhiyunifeq ($(CPTCFG_CFG80211),m)
310*4882a593Smuzhiyun	CONFIG_UAP_CFG80211=y
311*4882a593Smuzhiyunelse
312*4882a593Smuzhiyun	CONFIG_UAP_CFG80211=n
313*4882a593Smuzhiyunendif
314*4882a593Smuzhiyunendif
315*4882a593Smuzhiyunendif
316*4882a593Smuzhiyun
317*4882a593Smuzhiyunifneq ($(CONFIG_STA_SUPPORT),y)
318*4882a593Smuzhiyun	CONFIG_WIFI_DIRECT_SUPPORT=n
319*4882a593Smuzhiyun	CONFIG_WIFI_DISPLAY_SUPPORT=n
320*4882a593Smuzhiyun	CONFIG_STA_WEXT=n
321*4882a593Smuzhiyun	CONFIG_STA_CFG80211=n
322*4882a593Smuzhiyunendif
323*4882a593Smuzhiyun
324*4882a593Smuzhiyunifneq ($(CONFIG_UAP_SUPPORT),y)
325*4882a593Smuzhiyun	CONFIG_WIFI_DIRECT_SUPPORT=n
326*4882a593Smuzhiyun	CONFIG_WIFI_DISPLAY_SUPPORT=n
327*4882a593Smuzhiyun	CONFIG_UAP_WEXT=n
328*4882a593Smuzhiyun	CONFIG_UAP_CFG80211=n
329*4882a593Smuzhiyunendif
330*4882a593Smuzhiyun
331*4882a593Smuzhiyunifeq ($(CONFIG_STA_SUPPORT),y)
332*4882a593Smuzhiyunifeq ($(CONFIG_STA_WEXT),y)
333*4882a593Smuzhiyun	ccflags-y += -DSTA_WEXT
334*4882a593Smuzhiyunendif
335*4882a593Smuzhiyunifeq ($(CONFIG_STA_CFG80211),y)
336*4882a593Smuzhiyun	ccflags-y += -DSTA_CFG80211
337*4882a593Smuzhiyunendif
338*4882a593Smuzhiyunendif
339*4882a593Smuzhiyunifeq ($(CONFIG_UAP_SUPPORT),y)
340*4882a593Smuzhiyunifeq ($(CONFIG_UAP_WEXT),y)
341*4882a593Smuzhiyun	ccflags-y += -DUAP_WEXT
342*4882a593Smuzhiyunendif
343*4882a593Smuzhiyunifeq ($(CONFIG_UAP_CFG80211),y)
344*4882a593Smuzhiyun	ccflags-y += -DUAP_CFG80211
345*4882a593Smuzhiyunendif
346*4882a593Smuzhiyunendif
347*4882a593Smuzhiyun
348*4882a593Smuzhiyunprint:
349*4882a593Smuzhiyunifeq ($(CONFIG_STA_SUPPORT),y)
350*4882a593Smuzhiyunifeq ($(CONFIG_STA_WEXT),n)
351*4882a593Smuzhiyunifeq ($(CONFIG_STA_CFG80211),n)
352*4882a593Smuzhiyun	@echo "Can not build STA without WEXT or CFG80211"
353*4882a593Smuzhiyun	exit 2
354*4882a593Smuzhiyunendif
355*4882a593Smuzhiyunendif
356*4882a593Smuzhiyunendif
357*4882a593Smuzhiyunifeq ($(CONFIG_UAP_SUPPORT),y)
358*4882a593Smuzhiyunifeq ($(CONFIG_UAP_WEXT),n)
359*4882a593Smuzhiyunifeq ($(CONFIG_UAP_CFG80211),n)
360*4882a593Smuzhiyun	@echo "Can not build UAP without WEXT or CFG80211"
361*4882a593Smuzhiyun	exit 2
362*4882a593Smuzhiyunendif
363*4882a593Smuzhiyunendif
364*4882a593Smuzhiyunendif
365*4882a593Smuzhiyun
366*4882a593Smuzhiyun
367*4882a593Smuzhiyunifeq ($(CONFIG_DRV_EMBEDDED_AUTHENTICATOR), y)
368*4882a593Smuzhiyun    ccflags-y += -DDRV_EMBEDDED_AUTHENTICATOR
369*4882a593Smuzhiyunendif
370*4882a593Smuzhiyun
371*4882a593Smuzhiyunifeq ($(CONFIG_DRV_EMBEDDED_SUPPLICANT), y)
372*4882a593Smuzhiyun    ccflags-y += -DDRV_EMBEDDED_SUPPLICANT
373*4882a593Smuzhiyunendif
374*4882a593Smuzhiyun
375*4882a593Smuzhiyun
376*4882a593SmuzhiyunMOALOBJS =	mlinux/moal_main.o \
377*4882a593Smuzhiyun		mlinux/moal_ioctl.o \
378*4882a593Smuzhiyun		mlinux/moal_shim.o \
379*4882a593Smuzhiyun		mlinux/moal_eth_ioctl.o
380*4882a593Smuzhiyun
381*4882a593SmuzhiyunMLANOBJS =	mlan/mlan_shim.o mlan/mlan_init.o \
382*4882a593Smuzhiyun		mlan/mlan_txrx.o \
383*4882a593Smuzhiyun		mlan/mlan_cmdevt.o mlan/mlan_misc.o \
384*4882a593Smuzhiyun		mlan/mlan_cfp.o \
385*4882a593Smuzhiyun		mlan/mlan_module.o
386*4882a593Smuzhiyun
387*4882a593SmuzhiyunMLANOBJS += mlan/mlan_wmm.o
388*4882a593SmuzhiyunMLANOBJS += mlan/mlan_sdio.o
389*4882a593SmuzhiyunMLANOBJS += mlan/mlan_11n_aggr.o
390*4882a593SmuzhiyunMLANOBJS += mlan/mlan_11n_rxreorder.o
391*4882a593SmuzhiyunMLANOBJS += mlan/mlan_11n.o
392*4882a593SmuzhiyunMLANOBJS += mlan/mlan_11d.o
393*4882a593SmuzhiyunMLANOBJS += mlan/mlan_11h.o
394*4882a593Smuzhiyunifeq ($(CONFIG_STA_SUPPORT),y)
395*4882a593SmuzhiyunMLANOBJS += mlan/mlan_meas.o
396*4882a593SmuzhiyunMLANOBJS += mlan/mlan_scan.o \
397*4882a593Smuzhiyun			mlan/mlan_sta_ioctl.o \
398*4882a593Smuzhiyun			mlan/mlan_sta_rx.o \
399*4882a593Smuzhiyun			mlan/mlan_sta_tx.o \
400*4882a593Smuzhiyun			mlan/mlan_sta_event.o \
401*4882a593Smuzhiyun			mlan/mlan_sta_cmd.o \
402*4882a593Smuzhiyun			mlan/mlan_sta_cmdresp.o \
403*4882a593Smuzhiyun			mlan/mlan_join.o
404*4882a593Smuzhiyunifeq ($(CONFIG_STA_WEXT),y)
405*4882a593SmuzhiyunMOALOBJS += mlinux/moal_priv.o \
406*4882a593Smuzhiyun            mlinux/moal_wext.o
407*4882a593Smuzhiyunendif
408*4882a593Smuzhiyunendif
409*4882a593Smuzhiyunifeq ($(CONFIG_UAP_SUPPORT),y)
410*4882a593SmuzhiyunMLANOBJS += mlan/mlan_uap_ioctl.o
411*4882a593SmuzhiyunMLANOBJS += mlan/mlan_uap_cmdevent.o
412*4882a593SmuzhiyunMLANOBJS += mlan/mlan_uap_txrx.o
413*4882a593SmuzhiyunMOALOBJS += mlinux/moal_uap.o
414*4882a593Smuzhiyunifeq ($(CONFIG_UAP_WEXT),y)
415*4882a593SmuzhiyunMOALOBJS += mlinux/moal_uap_priv.o
416*4882a593SmuzhiyunMOALOBJS += mlinux/moal_uap_wext.o
417*4882a593Smuzhiyunendif
418*4882a593Smuzhiyunendif
419*4882a593Smuzhiyunifeq ($(CONFIG_STA_CFG80211),y)
420*4882a593SmuzhiyunMOALOBJS += mlinux/moal_cfg80211.o
421*4882a593SmuzhiyunMOALOBJS += mlinux/moal_cfgvendor.o
422*4882a593SmuzhiyunMOALOBJS += mlinux/moal_sta_cfg80211.o
423*4882a593Smuzhiyunendif
424*4882a593Smuzhiyunifeq ($(CONFIG_UAP_CFG80211),y)
425*4882a593SmuzhiyunMOALOBJS += mlinux/moal_cfg80211.o
426*4882a593SmuzhiyunMOALOBJS += mlinux/moal_cfgvendor.o
427*4882a593SmuzhiyunMOALOBJS += mlinux/moal_uap_cfg80211.o
428*4882a593Smuzhiyunendif
429*4882a593Smuzhiyun
430*4882a593Smuzhiyunifdef CONFIG_PROC_FS
431*4882a593SmuzhiyunMOALOBJS += mlinux/moal_proc.o
432*4882a593Smuzhiyunifeq ($(CONFIG_PROC_DEBUG),y)
433*4882a593SmuzhiyunMOALOBJS += mlinux/moal_debug.o
434*4882a593Smuzhiyunendif
435*4882a593Smuzhiyunendif
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun
438*4882a593Smuzhiyun
439*4882a593Smuzhiyun
440*4882a593Smuzhiyunifeq ($(CONFIG_EMBEDDED_SUPP_AUTH), y)
441*4882a593SmuzhiyunMLANOBJS += mlan/esa/common/rc4.o \
442*4882a593Smuzhiyun			mlan/esa/common/aes_cmac_rom.o \
443*4882a593Smuzhiyun			mlan/esa/common/hmac_sha1.o \
444*4882a593Smuzhiyun			mlan/esa/common/md5.o \
445*4882a593Smuzhiyun			mlan/esa/common/mrvl_sha256_crypto.o \
446*4882a593Smuzhiyun			mlan/esa/common/hmac_md5.o \
447*4882a593Smuzhiyun			mlan/esa/common/crypt_new_rom.o \
448*4882a593Smuzhiyun			mlan/esa/common/rijndael.o \
449*4882a593Smuzhiyun			mlan/esa/common/sha1.o \
450*4882a593Smuzhiyun			mlan/esa/common/sha256.o \
451*4882a593Smuzhiyun			mlan/esa/common/pass_phrase.o \
452*4882a593Smuzhiyun			mlan/esa/common/pmkCache.o \
453*4882a593Smuzhiyun			mlan/esa/common/pmkCache_rom.o \
454*4882a593Smuzhiyun			mlan/esa/common/parser.o \
455*4882a593Smuzhiyun			mlan/esa/common/parser_rom.o \
456*4882a593Smuzhiyun			mlan/esa/keyMgmtApStaCommon.o \
457*4882a593Smuzhiyun			mlan/esa/hostsa_init.o \
458*4882a593Smuzhiyun			mlan/esa/authenticator_api.o
459*4882a593Smuzhiyunendif
460*4882a593Smuzhiyun
461*4882a593Smuzhiyun
462*4882a593Smuzhiyunifeq ($(CONFIG_DRV_EMBEDDED_SUPPLICANT),y)
463*4882a593SmuzhiyunMLANOBJS += mlan/esa/keyMgmtSta.o \
464*4882a593Smuzhiyun			mlan/esa/keyMgmtSta_rom.o \
465*4882a593Smuzhiyun			mlan/esa/supplicant.o
466*4882a593Smuzhiyunendif
467*4882a593Smuzhiyun
468*4882a593Smuzhiyunifeq ($(CONFIG_DRV_EMBEDDED_AUTHENTICATOR),y)
469*4882a593SmuzhiyunMLANOBJS += mlan/esa/AssocAp_srv_rom.o \
470*4882a593Smuzhiyun			mlan/esa/keyMgmtAp_rom.o \
471*4882a593Smuzhiyun			mlan/esa/keyMgmtAp.o
472*4882a593Smuzhiyunendif
473*4882a593Smuzhiyun
474*4882a593Smuzhiyunifeq ($(CONFIG_MULTI_INTERFACE),y)
475*4882a593Smuzhiyunobj-m := mlan_sdio.o
476*4882a593Smuzhiyunmlan_sdio-objs := $(MLANOBJS)
477*4882a593Smuzhiyunelse
478*4882a593Smuzhiyunobj-m := mlan.o
479*4882a593Smuzhiyunmlan-objs := $(MLANOBJS)
480*4882a593Smuzhiyunendif
481*4882a593SmuzhiyunMOALOBJS += mlinux/moal_sdio_mmc.o
482*4882a593Smuzhiyunobj-m += sd8xxx.o
483*4882a593Smuzhiyunsd8xxx-objs := $(MOALOBJS)
484*4882a593Smuzhiyun
485*4882a593Smuzhiyun# Otherwise we were called directly from the command line; invoke the kernel build system.
486*4882a593Smuzhiyunelse
487*4882a593Smuzhiyun
488*4882a593Smuzhiyundefault:
489*4882a593Smuzhiyun	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
490*4882a593Smuzhiyun
491*4882a593Smuzhiyunendif
492*4882a593Smuzhiyun
493*4882a593Smuzhiyun###############################################################
494*4882a593Smuzhiyun
495*4882a593Smuzhiyunexport		CC LD ccflags-y KERNELDIR
496*4882a593Smuzhiyun
497*4882a593Smuzhiyunecho:
498*4882a593Smuzhiyun
499*4882a593Smuzhiyunbuild:		echo default
500*4882a593Smuzhiyun
501*4882a593Smuzhiyun	@if [ ! -d $(BINDIR) ]; then \
502*4882a593Smuzhiyun		mkdir $(BINDIR); \
503*4882a593Smuzhiyun	fi
504*4882a593Smuzhiyun
505*4882a593Smuzhiyunifeq ($(CONFIG_MULTI_INTERFACE),y)
506*4882a593Smuzhiyun	cp -f mlan_sdio.$(MODEXT) $(BINDIR)/mlan_sdio$(DBG).$(MODEXT)
507*4882a593Smuzhiyunelse
508*4882a593Smuzhiyun	cp -f mlan.$(MODEXT) $(BINDIR)/mlan$(DBG).$(MODEXT)
509*4882a593Smuzhiyunendif
510*4882a593Smuzhiyun	cp -f sd8xxx.$(MODEXT) $(BINDIR)/sd8977$(DBG).$(MODEXT)
511*4882a593Smuzhiyun	cp -rpf script/sdio_mmc/* $(BINDIR)/
512*4882a593Smuzhiyun
513*4882a593Smuzhiyunifeq ($(CONFIG_STA_SUPPORT),y)
514*4882a593Smuzhiyun	cp -f README $(BINDIR)
515*4882a593Smuzhiyun	cp -f README_MLAN $(BINDIR)
516*4882a593Smuzhiyunifeq ($(CONFIG_OPENWRT_SUPPORT),y)
517*4882a593Smuzhiyun	cp -f README_OPENWRT $(BINDIR)
518*4882a593Smuzhiyunendif
519*4882a593Smuzhiyunendif
520*4882a593Smuzhiyunifeq ($(CONFIG_UAP_SUPPORT),y)
521*4882a593Smuzhiyun	cp -f README_UAP $(BINDIR)
522*4882a593Smuzhiyunendif
523*4882a593Smuzhiyunifeq ($(CONFIG_WIFI_DIRECT_SUPPORT),y)
524*4882a593Smuzhiyun	cp -f README_WIFIDIRECT $(BINDIR)
525*4882a593Smuzhiyun	cp -rpf script/wifidirect $(BINDIR)
526*4882a593Smuzhiyunifeq ($(CONFIG_WIFI_DISPLAY_SUPPORT),y)
527*4882a593Smuzhiyun	cp -rpf script/wifidisplay $(BINDIR)
528*4882a593Smuzhiyunendif
529*4882a593Smuzhiyunendif
530*4882a593Smuzhiyun
531*4882a593Smuzhiyunclean:
532*4882a593Smuzhiyun	-find . -name "*.o" -exec rm {} \;
533*4882a593Smuzhiyun	-find . -name "*.ko" -exec rm {} \;
534*4882a593Smuzhiyun	-find . -name ".*.cmd" -exec rm {} \;
535*4882a593Smuzhiyun	-find . -name "*.mod.c" -exec rm {} \;
536*4882a593Smuzhiyun	-find . -name "Module.symvers" -exec rm {} \;
537*4882a593Smuzhiyun	-find . -name "Module.markers" -exec rm {} \;
538*4882a593Smuzhiyun	-find . -name "modules.order" -exec rm {} \;
539*4882a593Smuzhiyun	-find . -name ".*.dwo" -exec rm {} \;
540*4882a593Smuzhiyun	-find . -name "*dwo" -exec rm {} \;
541*4882a593Smuzhiyun	-rm -rf .tmp_versions
542*4882a593Smuzhiyun
543*4882a593Smuzhiyuninstall: default
544*4882a593Smuzhiyun
545*4882a593Smuzhiyun	cp -f mlan.$(MODEXT) $(INSTALLDIR)/mlan$(DBG).$(MODEXT)
546*4882a593Smuzhiyun	cp -f ../io/sdio/$(PLATFORM)/sdio.$(MODEXT) $(INSTALLDIR)
547*4882a593Smuzhiyun	cp -f sd8xxx.$(MODEXT) $(INSTALLDIR)/sd8977$(DBG).$(MODEXT)
548*4882a593Smuzhiyun	echo "sd8977 Driver Installed"
549*4882a593Smuzhiyun
550*4882a593Smuzhiyundistclean:
551*4882a593Smuzhiyun	-find . -name "*.o" -exec rm {} \;
552*4882a593Smuzhiyun	-find . -name "*.orig" -exec rm {} \;
553*4882a593Smuzhiyun	-find . -name "*.swp" -exec rm {} \;
554*4882a593Smuzhiyun	-find . -name "*.*~" -exec rm {} \;
555*4882a593Smuzhiyun	-find . -name "*~" -exec rm {} \;
556*4882a593Smuzhiyun	-find . -name "*.d" -exec rm {} \;
557*4882a593Smuzhiyun	-find . -name "*.a" -exec rm {} \;
558*4882a593Smuzhiyun	-find . -name "tags" -exec rm {} \;
559*4882a593Smuzhiyun	-find . -name ".*" -exec rm -rf 2> /dev/null \;
560*4882a593Smuzhiyun	-find . -name "*.ko" -exec rm {} \;
561*4882a593Smuzhiyun	-find . -name ".*.cmd" -exec rm {} \;
562*4882a593Smuzhiyun	-find . -name "*.mod.c" -exec rm {} \;
563*4882a593Smuzhiyun	-find . -name ".*.dwo" -exec rm {} \;
564*4882a593Smuzhiyun	-find . -name "*dwo" -exec rm {} \;
565*4882a593Smuzhiyun	-rm -rf .tmp_versions
566*4882a593Smuzhiyun
567*4882a593Smuzhiyun# End of file
568