xref: /wlan-dirver/platform/Android.mk (revision 203b502ea7e54d9cb7027cf67902682cf5658bad)
169db86ceSYue Ma# Android Makefile for WLAN platform modules
269db86ceSYue Ma
318d51db0SBruce LevyENABLE_WLAN_PLATFORM_DLKM := false
418d51db0SBruce Levyifeq ($(TARGET_KERNEL_DLKM_DISABLE), true)
518d51db0SBruce Levy  ifeq ($(TARGET_KERNEL_DLKM_WLAN_OVERRIDE), true)
618d51db0SBruce Levy    ENABLE_WLAN_PLATFORM_DLKM := true
718d51db0SBruce Levy  endif
818d51db0SBruce Levyelse
918d51db0SBruce Levy  ENABLE_WLAN_PLATFORM_DLKM := true
1018d51db0SBruce Levyendif
1118d51db0SBruce Levy
1218d51db0SBruce Levyifeq ($(ENABLE_WLAN_PLATFORM_DLKM), true)
1318d51db0SBruce Levy
1469db86ceSYue Ma# LOCAL_PATH is a relative path to root build directory.
1569db86ceSYue MaLOCAL_PATH := $(call my-dir)
1669db86ceSYue MaDLKM_DIR := $(TOP)/device/qcom/common/dlkm
1769db86ceSYue Ma
1869db86ceSYue Ma# WLAN_PLATFORM_ROOT needs to be a absolute since it will be used
1969db86ceSYue Ma# for header files. $(TOP) cannot be used here since it will be
2069db86ceSYue Ma# resolved as "." which won't work for Kbuild.
2169db86ceSYue MaKBUILD_OPTIONS := WLAN_PLATFORM_ROOT=$(abspath $(LOCAL_PATH))
2269db86ceSYue Ma
2369db86ceSYue Ma# WLAN_PLATFORM_KBUILD_OPTIONS should be defined from upper level
2469db86ceSYue Ma# Product or Board related Makefiles like wlan.mk.
2569db86ceSYue MaKBUILD_OPTIONS += $(foreach wlan_platform_kbuild_option, \
2669db86ceSYue Ma		   $(WLAN_PLATFORM_KBUILD_OPTIONS), \
2769db86ceSYue Ma		   $(wlan_platform_kbuild_option))
2869db86ceSYue Ma
2969db86ceSYue Ma# Sourcing all files is for better incremental compilation.
3069db86ceSYue MaCNSS_SRC_FILES := \
3169db86ceSYue Ma	$(wildcard $(LOCAL_PATH)/*) \
3269db86ceSYue Ma	$(wildcard $(LOCAL_PATH)/*/*) \
3369db86ceSYue Ma
34*203b502eSZhaoyang Liuifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE), true)
35ad4399e3SManikandan MohanKBUILD_OPTIONS += KBUILD_EXTRA_SYMBOLS=$(PWD)/$(call intermediates-dir-for,DLKM,sec-module-symvers)/Module.symvers
36*203b502eSZhaoyang Liuendif
37ad4399e3SManikandan Mohan
3869db86ceSYue Ma# Module.symvers needs to be generated as a intermediate module so that
3969db86ceSYue Ma# other modules which depend on WLAN platform modules can set local
4069db86ceSYue Ma# dependencies to it.
4169db86ceSYue Ma
4269db86ceSYue Ma########################### Module.symvers ############################
4369db86ceSYue Mainclude $(CLEAR_VARS)
4469db86ceSYue MaLOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
4569db86ceSYue MaLOCAL_MODULE              := wlan-platform-module-symvers
4669db86ceSYue MaLOCAL_MODULE_STEM         := Module.symvers
4769db86ceSYue MaLOCAL_MODULE_KBUILD_NAME  := Module.symvers
4869db86ceSYue MaLOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
4969db86ceSYue Mainclude $(DLKM_DIR)/Build_external_kernelmodule.mk
5069db86ceSYue Ma
5169db86ceSYue Ma# Below are for Android build system to recognize each module name, so
5269db86ceSYue Ma# they can be installed properly. Since Kbuild is used to compile these
5369db86ceSYue Ma# modules, invoking any of them will cause other modules to be compiled
5469db86ceSYue Ma# as well if corresponding flags are added in KBUILD_OPTIONS from upper
5569db86ceSYue Ma# level Makefiles like wlan.mk.
5669db86ceSYue Ma
5769db86ceSYue Ma################################ cnss2 ################################
5869db86ceSYue Mainclude $(CLEAR_VARS)
59291b1a8dSRajesh Chauhanifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE), true)
60ad4399e3SManikandan MohanLOCAL_REQUIRED_MODULES := sec-module-symvers
61ad4399e3SManikandan MohanLOCAL_ADDITIONAL_DEPENDENCIES += $(call intermediates-dir-for,DLKM,sec-module-symvers)/Module.symvers
62291b1a8dSRajesh Chauhanendif #TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE
6369db86ceSYue MaLOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
6469db86ceSYue MaLOCAL_MODULE              := cnss2.ko
6569db86ceSYue MaLOCAL_MODULE_KBUILD_NAME  := cnss2/cnss2.ko
6669db86ceSYue MaLOCAL_MODULE_TAGS         := optional
6769db86ceSYue MaLOCAL_MODULE_DEBUG_ENABLE := true
6869db86ceSYue MaLOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
6969db86ceSYue Mainclude $(DLKM_DIR)/Build_external_kernelmodule.mk
7069db86ceSYue Ma######################## cnss_plat_ipc_qmi_svc ########################
7169db86ceSYue Mainclude $(CLEAR_VARS)
7269db86ceSYue MaLOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
7369db86ceSYue MaLOCAL_MODULE              := cnss_plat_ipc_qmi_svc.ko
7469db86ceSYue MaLOCAL_MODULE_KBUILD_NAME  := cnss_utils/cnss_plat_ipc_qmi_svc.ko
7569db86ceSYue MaLOCAL_MODULE_TAGS         := optional
7669db86ceSYue MaLOCAL_MODULE_DEBUG_ENABLE := true
7769db86ceSYue MaLOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
7869db86ceSYue Mainclude $(DLKM_DIR)/Build_external_kernelmodule.mk
7969db86ceSYue Ma######################## wlan_firmware_service ########################
8069db86ceSYue Mainclude $(CLEAR_VARS)
8169db86ceSYue MaLOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
8269db86ceSYue MaLOCAL_MODULE              := wlan_firmware_service.ko
8369db86ceSYue MaLOCAL_MODULE_KBUILD_NAME  := cnss_utils/wlan_firmware_service.ko
8469db86ceSYue MaLOCAL_MODULE_TAGS         := optional
8569db86ceSYue MaLOCAL_MODULE_DEBUG_ENABLE := true
8669db86ceSYue MaLOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
8769db86ceSYue Mainclude $(DLKM_DIR)/Build_external_kernelmodule.mk
8869db86ceSYue Ma############################### cnss_nl ###############################
8969db86ceSYue Mainclude $(CLEAR_VARS)
9069db86ceSYue MaLOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
9169db86ceSYue MaLOCAL_MODULE              := cnss_nl.ko
9269db86ceSYue MaLOCAL_MODULE_KBUILD_NAME  := cnss_genl/cnss_nl.ko
9369db86ceSYue MaLOCAL_MODULE_TAGS         := optional
9469db86ceSYue MaLOCAL_MODULE_DEBUG_ENABLE := true
9569db86ceSYue MaLOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
9669db86ceSYue Mainclude $(DLKM_DIR)/Build_external_kernelmodule.mk
9769db86ceSYue Ma############################ cnss_prealloc ############################
9869db86ceSYue Mainclude $(CLEAR_VARS)
9969db86ceSYue MaLOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
10069db86ceSYue MaLOCAL_MODULE              := cnss_prealloc.ko
10169db86ceSYue MaLOCAL_MODULE_KBUILD_NAME  := cnss_prealloc/cnss_prealloc.ko
10269db86ceSYue MaLOCAL_MODULE_TAGS         := optional
10369db86ceSYue MaLOCAL_MODULE_DEBUG_ENABLE := true
10469db86ceSYue MaLOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
10569db86ceSYue Mainclude $(DLKM_DIR)/Build_external_kernelmodule.mk
10669db86ceSYue Ma############################ cnss_utils ###############################
10769db86ceSYue Mainclude $(CLEAR_VARS)
10869db86ceSYue MaLOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
10969db86ceSYue MaLOCAL_MODULE              := cnss_utils.ko
11069db86ceSYue MaLOCAL_MODULE_KBUILD_NAME  := cnss_utils/cnss_utils.ko
11169db86ceSYue MaLOCAL_MODULE_TAGS         := optional
11269db86ceSYue MaLOCAL_MODULE_DEBUG_ENABLE := true
11369db86ceSYue MaLOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
11469db86ceSYue Mainclude $(DLKM_DIR)/Build_external_kernelmodule.mk
1153983bc45SNaman Padhiar################################ icnss2 ################################
1163983bc45SNaman Padhiarinclude $(CLEAR_VARS)
1173983bc45SNaman PadhiarLOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
1183983bc45SNaman PadhiarLOCAL_MODULE              := icnss2.ko
1193983bc45SNaman PadhiarLOCAL_MODULE_KBUILD_NAME  := icnss2/icnss2.ko
1203983bc45SNaman PadhiarLOCAL_MODULE_TAGS         := optional
1213983bc45SNaman PadhiarLOCAL_MODULE_DEBUG_ENABLE := true
1223983bc45SNaman PadhiarLOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
1233983bc45SNaman Padhiarinclude $(DLKM_DIR)/Build_external_kernelmodule.mk
12418d51db0SBruce Levyendif #ENABLE_WLAN_PLATFORM_DLKM
125