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