ANDROID_BUILD_TOP variable is being deprecated and thus all paths are assumed to be relative to the top directory. However, this is causing problem when some of the paths are constructed in the Android build system and used in the non-Android makefiles that are usually executed NOT at the top directory but at a sub directory using -C option. As a result, the relative path from the Android build system become invalid in the non-Android makefiles. In order to overcome the restriction, ANDROID_BUILD_TOP is manually constructed when invoking the non-Android makefiles by using $$(pwd). The non-Android makefiles are expected to construct the absolute path by prepending ANDROID_BUILD_TOP to any path that came from the Android build system. Specifically, Kbuild is modified so that ANDROID_BUILD_TOP is prepended to WLAN_ROOT and WLAN_COMMON_INC to make them absolute paths. Change-Id: Ic34de7a2bc407153085eb3eb154d6dd71f04eedb CRs-Fixed: 2328210
87 lines
2.9 KiB
Makefile
87 lines
2.9 KiB
Makefile
# Android makefile for the WLAN Module
|
|
|
|
# Assume no targets will be supported
|
|
WLAN_CHIPSET :=
|
|
|
|
ifeq ($(BOARD_HAS_QCOM_WLAN), true)
|
|
|
|
# Check if this driver needs be built for current target
|
|
ifneq ($(findstring qca_cld3,$(WIFI_DRIVER_BUILT)),)
|
|
WLAN_CHIPSET := qca_cld3
|
|
WLAN_SELECT := CONFIG_QCA_CLD_WLAN=m
|
|
endif
|
|
|
|
# Build/Package only in case of supported target
|
|
ifneq ($(WLAN_CHIPSET),)
|
|
|
|
LOCAL_PATH := $(call my-dir)
|
|
|
|
# This makefile is only for DLKM
|
|
ifneq ($(findstring vendor,$(LOCAL_PATH)),)
|
|
|
|
ifneq ($(findstring opensource,$(LOCAL_PATH)),)
|
|
WLAN_BLD_DIR := vendor/qcom/opensource/wlan
|
|
endif # opensource
|
|
|
|
# DLKM_DIR was moved for JELLY_BEAN (PLATFORM_SDK 16)
|
|
ifeq ($(call is-platform-sdk-version-at-least,16),true)
|
|
DLKM_DIR := $(TOP)/device/qcom/common/dlkm
|
|
else
|
|
DLKM_DIR := build/dlkm
|
|
endif # platform-sdk-version
|
|
|
|
# Build wlan.ko as $(WLAN_CHIPSET)_wlan.ko
|
|
###########################################################
|
|
# This is set once per LOCAL_PATH, not per (kernel) module
|
|
KBUILD_OPTIONS := WLAN_ROOT=$(WLAN_BLD_DIR)/qcacld-3.0
|
|
KBUILD_OPTIONS += WLAN_COMMON_ROOT=../qca-wifi-host-cmn
|
|
KBUILD_OPTIONS += WLAN_COMMON_INC=$(WLAN_BLD_DIR)/qca-wifi-host-cmn
|
|
|
|
# We are actually building wlan.ko here, as per the
|
|
# requirement we are specifying <chipset>_wlan.ko as LOCAL_MODULE.
|
|
# This means we need to rename the module to <chipset>_wlan.ko
|
|
# after wlan.ko is built.
|
|
KBUILD_OPTIONS += MODNAME=wlan
|
|
KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
|
|
KBUILD_OPTIONS += $(WLAN_SELECT)
|
|
|
|
include $(CLEAR_VARS)
|
|
LOCAL_MODULE := $(WLAN_CHIPSET)_wlan.ko
|
|
LOCAL_MODULE_KBUILD_NAME := wlan.ko
|
|
LOCAL_MODULE_TAGS := debug
|
|
LOCAL_MODULE_DEBUG_ENABLE := true
|
|
ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true)
|
|
ifeq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),true)
|
|
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
|
else
|
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET)
|
|
endif
|
|
else
|
|
LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/modules/$(WLAN_CHIPSET)
|
|
endif
|
|
|
|
include $(DLKM_DIR)/AndroidKernelModule.mk
|
|
###########################################################
|
|
|
|
# Create Symbolic link
|
|
ifneq ($(findstring $(WLAN_CHIPSET),$(WIFI_DRIVER_DEFAULT)),)
|
|
ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true)
|
|
ifneq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),)
|
|
$(shell mkdir -p $(TARGET_OUT_VENDOR)/lib/modules; \
|
|
ln -sf /$(TARGET_COPY_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE) $(TARGET_OUT_VENDOR)/lib/modules/wlan.ko)
|
|
endif
|
|
else
|
|
$(shell mkdir -p $(TARGET_OUT)/lib/modules; \
|
|
ln -sf /system/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE) $(TARGET_OUT)/lib/modules/wlan.ko)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true)
|
|
$(shell ln -sf /mnt/vendor/persist/wlan_mac.bin $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/wlan_mac.bin)
|
|
else
|
|
$(shell ln -sf /mnt/vendor/persist/wlan_mac.bin $(TARGET_OUT_ETC)/firmware/wlan/qca_cld/wlan_mac.bin)
|
|
endif
|
|
endif # DLKM check
|
|
endif # supported target check
|
|
endif # WLAN enabled check
|