blob: 66728d44c68db2b8dcb7ddc89e4e63fbc783053a [file] [log] [blame]
#------------------------------------------------------------------------------
# <copyright file="makefile" company="Atheros">
# Copyright (c) 2005-2010 Atheros Corporation. All rights reserved.
#
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
#
#------------------------------------------------------------------------------
#==============================================================================
# Author(s): ="Atheros"
#==============================================================================
#######################################################################################
# AR6K Kernel Module makefile.
#
# This makefile is invoked by the master makefile in the linux kernel, the linux kernel
# source must be initially compiled. The top level make will invoke the main linux kernel
# makefile which will subsequently pick up this makefile.
#
#######################################################################################
REV ?= 2
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/include
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/../include
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/wlan/include
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/os/linux/include
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/os/
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/bmi/include
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/../include/AR6002
EXTRA_CFLAGS += -DLINUX -D__KERNEL__ \
-DTCMD -DSEND_EVENT_TO_APP -DUSER_KEYS \
-DNO_SYNC_FLUSH -DHTC_EP_STAT_PROFILING -DWLAN_HEADERS\
-DATH_AR6K_11N_SUPPORT \
-DSUPPORT_11N \
-DWAPI_ENABLE \
-DHS20_ENABLE #\
-DMULTIPLE_FRAMES_PER_INTERRUPT -DAR6000REV$(REV) \
-DBLOCK_TX_PATH_FLAG -DCHECKSUM_OFFLOAD \
ifeq ($(ATH_BUILD_BTFILTER),yes)
EXTRA_CFLAGS += -DBTCOEX
EXTRA_CFLAGS += -DCONFIG_BT
endif
ifeq ($(ATH_BMISS_ENHANCEMENT),yes)
EXTRA_CFLAGS += -DBMISS_ENHANCEMENT
endif
ifeq ($(ATH_CFG80211_ENV),yes)
EXTRA_CFLAGS += -DATH6K_CONFIG_CFG80211
# EXTRA_CFLAGS += -DCFG80211_WAPI_ENABLE
endif
ifeq ($(ATH_INIT_MODE_DRV_ENABLED), yes)
ifeq ($(ATH_AR600x_WB31_XXX),yes)
EXTRA_CFLAGS += -DAR600x_WB31_XXX
else
ifeq ($(ATH_AR600x_SD32_XXX),yes)
EXTRA_CFLAGS += -DAR600x_SD32_XXX
else
EXTRA_CFLAGS += -DAR600x_SD31_XXX
endif
endif
EXTRA_CFLAGS += -DINIT_MODE_DRV_ENABLED -DBMIENABLE_SET
endif
ifeq ($(ATH_ANDROID_ENV),yes)
EXTRA_CFLAGS += -DANDROID_ENV -D__linux__ $(ATH_ANDROID_BUILD_FLAGS)
EXTRA_CFLAGS += -DINIT_MODE_DRV_ENABLED -DBMIENABLE_SET -DAR600x_SD31_XXX \
-DATH6KL_CONFIG_HIF_VIRTUAL_SCATTER \
-DCONFIG_AP_VIRTUAL_ADAPTER_SUPPORT
ifeq ($(ATH_AR6K_HCI_BRIDGE),yes)
EXTRA_CFLAGS += -DSETUPHCI_ENABLED -DSETUPBTDEV_ENABLED \
-DATH6KL_CONFIG_GPIO_BT_RESET -DAR600x_BT_AR3001
endif
endif
ifeq ($(ATH_AR6K_HCI_PAL),yes)
EXTRA_CFLAGS += -DSETUPHCIPAL_ENABLED
ifeq ($(ATH_AR6K_DEBUG_HCI_PAL),yes)
EXTRA_CFLAGS += -DHCIPAL_DEBUG
endif
endif
ifeq ($(ATH_SOFTMAC_FILE_USED),yes)
EXTRA_CFLAGS += -DSOFTMAC_FILE_USED
endif
ifeq ($(ATH_AR6K_OTA_TEST_MODE),yes)
EXTRA_CFLAGS += -DATH6K_CONFIG_OTA_MODE
endif
ifeq ($(ATH_AR6K_HCI_BRIDGE),yes)
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/miscdrv/ar3kps
EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/../include/AR6002/hw4.0
EXTRA_CFLAGS += -DATH_AR6K_ENABLE_GMBOX \
-DHCI_TRANSPORT_SDIO
ifeq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no)
EXTRA_CFLAGS += -DEXPORT_HCI_BRIDGE_INTERFACE
endif
endif
ifeq ($(ATH_HTC_RAW_INT_ENV),yes)
EXTRA_CFLAGS += -DHTC_RAW_INTERFACE
endif
ifeq ($(ATH_DEBUG_DRIVER),yes)
EXTRA_CFLAGS += -DDEBUG -DATH_DEBUG_MODULE
endif
ifeq ($(ATH_USE_PREALLOC_BUFFER),yes)
EXTRA_CFLAGS += -DUSE_PREALLOC_BUFFER
endif
ifeq ($(ATH_BUILD_P2P),yes)
EXTRA_CFLAGS += -DP2P
endif
ifeq ($(AR6002_REV),4)
EXTRA_CFLAGS += -DAR6002_REV4
endif
ifneq ("$(wildcard $(ATH_SRC_BASE)/../include/AR6002/hw2.0)","")
EXTRA_CFLAGS += -DAR6002_HEADERS_DEF
endif
ifneq ("$(wildcard $(ATH_SRC_BASE)/../include/AR6002/hw4.0)","")
EXTRA_CFLAGS += -DAR6003_HEADERS_DEF
endif
ifneq ("$(wildcard $(ATH_SRC_BASE)/../include/AR6002/hw6.0)","")
EXTRA_CFLAGS += -DMCKINLEY_HEADERS_DEF
endif
ifneq ($(ATH_OS_SUB_TYPE),linux_2_4)
# linux 2.6 and higher kernel module build settings
EXTRA_CFLAGS += -DKERNEL_2_6
obj-m += ar6000.o
ifeq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no)
obj-m += bt_hci_sdio.o
endif
-include $(ATH_SRC_BASE)/hif/$(ATH_HIF_TYPE)/Makefile
ifneq ($(ATH_HIF_MESSAGE_BASED),yes)
ar6000-objs += ../../htc2/AR6000/ar6k.o \
../../htc2/AR6000/ar6k_events.o \
../../htc2/htc_send.o \
../../htc2/htc_recv.o \
../../htc2/htc_services.o \
../../htc2/htc.o
endif
ifeq ($(ATH_HIF_MESSAGE_BASED),yes)
ar6000-objs += ../../htc_thin/htc_send.o \
../../htc_thin/htc_recv.o \
../../htc_thin/htc_services.o \
../../htc_thin/htc.o
endif
ar6000-objs += ../../bmi/src/bmi.o \
ar6000_drv.o \
ar6000_pm.o \
ar6000_raw_if.o \
netbuf.o \
wireless_ext.o \
ioctl.o \
../../miscdrv/common_drv.o \
../../miscdrv/credit_dist.o \
../../wmi/wmi.o \
../../reorder/rcv_aggr.o \
../../wlan/src/wlan_node.o \
../../wlan/src/wlan_recv_beacon.o \
../../wlan/src/wlan_utils.o \
../../regtable/regtable.o \
../../regtable/AR6003def.o
ifeq ($(ATH_BUILD_P2P),yes)
ar6000-objs += ../../p2p/p2p_main.o
endif
ifeq ($(ATH_HIF_TYPE),sdio)
ar6000-objs += ../../hif/common/hif_bmi_reg_access.o \
../../hif/common/hif_diag_reg_access.o
endif
ifeq ($(ATH_CFG80211_ENV),yes)
ar6000-objs += cfg80211.o
endif
ifneq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no)
ar6000-objs += hci_bridge.o
endif
ifneq ($(ATH_AR6K_BUILTIN_HCI_PAL),no)
ar6000-objs += ar6k_pal.o
else
obj-m += ar6k_pal.o
endif
ifeq ($(ATH_AR6K_HCI_BRIDGE),yes)
ar6000-objs += ../../htc2/AR6000/ar6k_gmbox.o \
../../htc2/AR6000/ar6k_gmbox_hciuart.o
ifneq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no)
ar6000-objs += ../../miscdrv/ar3kconfig.o \
../../miscdrv/ar3kps/ar3kpsconfig.o \
../../miscdrv/ar3kps/ar3kpsparser.o
else
ar6000-objs += export_hci_transport.o
endif
ifeq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no)
bt_hci_sdio-objs += hci_bridge.o \
../../miscdrv/ar3kconfig.o \
../../miscdrv/ar3kps/ar3kpsconfig.o \
../../miscdrv/ar3kps/ar3kpsparser.o
endif
endif
ifeq ($(ATH_ANDROID_ENV),yes)
ar6000-objs += ar6000_android.o
endif
ifeq ($(ATH_AR6K_DEBUG_ALLOC),yes)
EXTRA_CFLAGS += -DAR6K_ALLOC_DEBUG
ar6000-objs += ar6k_mem_debug.o
endif
endif
ifeq ($(ATH_OS_SUB_TYPE),linux_2_4)
# linux 2.4 kernel module build settings
EXTRA_CFLAGS += -DKERNEL_2_4
O_TARGET := ar6000.o
# need export line for module export
export-objs := ar6000_drv.o
-include $(ATH_SRC_BASE)/hif/$(ATH_HIF_TYPE)/Makefile
obj-y += $(ATH_SRC_BASE)/htc2/htc.o \
$(ATH_SRC_BASE)/htc2/htc_send.o \
$(ATH_SRC_BASE)/htc2/htc_recv.o \
$(ATH_SRC_BASE)/htc2/htc_services.o \
$(ATH_SRC_BASE)/htc2/AR6000/ar6k.o \
$(ATH_SRC_BASE)/htc2/AR6000/ar6k_events.o \
$(ATH_SRC_BASE)/bmi/src/bmi.o \
$(ATH_SRC_BASE)/wmi/wmi.o \
$(ATH_SRC_BASE)/reorder/rcv_aggr.o \
$(ATH_SRC_BASE)/wlan/src/wlan_node.o \
$(ATH_SRC_BASE)/wlan/src/wlan_recv_beacon.o \
$(ATH_SRC_BASE)/wlan/src/wlan_utils.o \
$(ATH_SRC_BASE)/os/linux/ar6000_drv.o \
$(ATH_SRC_BASE)/os/linux/ar6000_raw_if.o \
$(ATH_SRC_BASE)/os/linux/wireless_ext.o \
$(ATH_SRC_BASE)/os/linux/ioctl.o \
$(ATH_SRC_BASE)/os/linux/netbuf.o \
$(ATH_SRC_BASE)/miscdrv/common_drv.o \
$(ATH_SRC_BASE)/miscdrv/credit_dist.o
ifeq ($(ATH_HIF_TYPE),SPI2)
obj-y += $(ATH_SRC_BASE)/hif/common/hif_bmi_reg_access.o \
$(ATH_SRC_BASE)/hif/common/hif_diag_reg_access.o
endif
obj-m += htc.o \
htc_send.o \
htc_recv.o \
htc_services.o \
ar6k_events.o \
ar6k.o \
hif.o \
bmi.o \
wmi.o \
wlan_node.o \
wlan_recv_beacon.o \
wlan_utils.o \
ar6000_drv.o \
ar6000_raw_if.o \
common_drv.o \
credit_dist.o \
netbuf.o \
wireless_ext.o \
rcv_aggr.o \
ioctl.o \
ar6000.o
ifeq ($(ATH_HIF_TYPE),SPI2)
obj-m += hif_bmi_reg_access.o \
hif_diag_reg_access.o
endif
include $(ATH_LINUXPATH)/Rules.make
endif