xref: /wlan-dirver/platform/Android.mk (revision 48cfe543c66903e6d5c687c4a394b09b314631a5)
1# Android Makefile for WLAN platform modules
2
3ENABLE_WLAN_PLATFORM_DLKM := false
4ifeq ($(TARGET_KERNEL_DLKM_DISABLE), true)
5  ifeq ($(TARGET_KERNEL_DLKM_WLAN_OVERRIDE), true)
6    ENABLE_WLAN_PLATFORM_DLKM := true
7  endif
8else
9  ENABLE_WLAN_PLATFORM_DLKM := true
10endif
11
12ifeq ($(ENABLE_WLAN_PLATFORM_DLKM), true)
13
14# LOCAL_PATH is a relative path to root build directory.
15LOCAL_PATH := $(call my-dir)
16DLKM_DIR := $(TOP)/device/qcom/common/dlkm
17
18# WLAN_PLATFORM_ROOT needs to be a absolute since it will be used
19# for header files. $(TOP) cannot be used here since it will be
20# resolved as "." which won't work for Kbuild.
21KBUILD_OPTIONS := WLAN_PLATFORM_ROOT=$(abspath $(LOCAL_PATH))
22
23# WLAN_PLATFORM_KBUILD_OPTIONS should be defined from upper level
24# Product or Board related Makefiles like wlan.mk.
25KBUILD_OPTIONS += $(foreach wlan_platform_kbuild_option, \
26		   $(WLAN_PLATFORM_KBUILD_OPTIONS), \
27		   $(wlan_platform_kbuild_option))
28
29# Sourcing all files is for better incremental compilation.
30CNSS_SRC_FILES := \
31	$(wildcard $(LOCAL_PATH)/*) \
32	$(wildcard $(LOCAL_PATH)/*/*) \
33
34KBUILD_OPTIONS += KBUILD_EXTRA_SYMBOLS=$(PWD)/$(call intermediates-dir-for,DLKM,sec-module-symvers)/Module.symvers
35
36# Module.symvers needs to be generated as a intermediate module so that
37# other modules which depend on WLAN platform modules can set local
38# dependencies to it.
39
40########################### Module.symvers ############################
41include $(CLEAR_VARS)
42LOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
43LOCAL_MODULE              := wlan-platform-module-symvers
44LOCAL_MODULE_STEM         := Module.symvers
45LOCAL_MODULE_KBUILD_NAME  := Module.symvers
46LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
47include $(DLKM_DIR)/Build_external_kernelmodule.mk
48
49# Below are for Android build system to recognize each module name, so
50# they can be installed properly. Since Kbuild is used to compile these
51# modules, invoking any of them will cause other modules to be compiled
52# as well if corresponding flags are added in KBUILD_OPTIONS from upper
53# level Makefiles like wlan.mk.
54
55################################ cnss2 ################################
56include $(CLEAR_VARS)
57ifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE), true)
58LOCAL_REQUIRED_MODULES := sec-module-symvers
59LOCAL_ADDITIONAL_DEPENDENCIES += $(call intermediates-dir-for,DLKM,sec-module-symvers)/Module.symvers
60endif #TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE
61LOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
62LOCAL_MODULE              := cnss2.ko
63LOCAL_MODULE_KBUILD_NAME  := cnss2/cnss2.ko
64LOCAL_MODULE_TAGS         := optional
65LOCAL_MODULE_DEBUG_ENABLE := true
66LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
67include $(DLKM_DIR)/Build_external_kernelmodule.mk
68######################## cnss_plat_ipc_qmi_svc ########################
69include $(CLEAR_VARS)
70LOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
71LOCAL_MODULE              := cnss_plat_ipc_qmi_svc.ko
72LOCAL_MODULE_KBUILD_NAME  := cnss_utils/cnss_plat_ipc_qmi_svc.ko
73LOCAL_MODULE_TAGS         := optional
74LOCAL_MODULE_DEBUG_ENABLE := true
75LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
76include $(DLKM_DIR)/Build_external_kernelmodule.mk
77######################## wlan_firmware_service ########################
78include $(CLEAR_VARS)
79LOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
80LOCAL_MODULE              := wlan_firmware_service.ko
81LOCAL_MODULE_KBUILD_NAME  := cnss_utils/wlan_firmware_service.ko
82LOCAL_MODULE_TAGS         := optional
83LOCAL_MODULE_DEBUG_ENABLE := true
84LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
85include $(DLKM_DIR)/Build_external_kernelmodule.mk
86############################### cnss_nl ###############################
87include $(CLEAR_VARS)
88LOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
89LOCAL_MODULE              := cnss_nl.ko
90LOCAL_MODULE_KBUILD_NAME  := cnss_genl/cnss_nl.ko
91LOCAL_MODULE_TAGS         := optional
92LOCAL_MODULE_DEBUG_ENABLE := true
93LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
94include $(DLKM_DIR)/Build_external_kernelmodule.mk
95############################ cnss_prealloc ############################
96include $(CLEAR_VARS)
97LOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
98LOCAL_MODULE              := cnss_prealloc.ko
99LOCAL_MODULE_KBUILD_NAME  := cnss_prealloc/cnss_prealloc.ko
100LOCAL_MODULE_TAGS         := optional
101LOCAL_MODULE_DEBUG_ENABLE := true
102LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
103include $(DLKM_DIR)/Build_external_kernelmodule.mk
104############################ cnss_utils ###############################
105include $(CLEAR_VARS)
106LOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
107LOCAL_MODULE              := cnss_utils.ko
108LOCAL_MODULE_KBUILD_NAME  := cnss_utils/cnss_utils.ko
109LOCAL_MODULE_TAGS         := optional
110LOCAL_MODULE_DEBUG_ENABLE := true
111LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
112include $(DLKM_DIR)/Build_external_kernelmodule.mk
113################################ icnss2 ################################
114include $(CLEAR_VARS)
115LOCAL_SRC_FILES           := $(CNSS_SRC_FILES)
116LOCAL_MODULE              := icnss2.ko
117LOCAL_MODULE_KBUILD_NAME  := icnss2/icnss2.ko
118LOCAL_MODULE_TAGS         := optional
119LOCAL_MODULE_DEBUG_ENABLE := true
120LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
121include $(DLKM_DIR)/Build_external_kernelmodule.mk
122endif #ENABLE_WLAN_PLATFORM_DLKM
123