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