关于wlan的编译

/vendor/qcom/opensource/wlan/qcacld-3.0/Android.mk

ifeq ($(LOCAL_MULTI_KO), true) 会有一个这个的判断, 如果是true 就会

$(foreach chip, $(TARGET_WLAN_CHIP) 遍历 TARGET_WLAN_CHIP,这个会在device下面某个项目仓库里面定义,使用了哪些wlan芯片?
例如:TARGET_WLAN_CHIP=qca6174 qca6390 qcn7605 qca6490 qca6390_cnss2 qca6490_cnss2

include $(foreach chip, $(TARGET_WLAN_CHIP), $(LOCAL_PATH)/.$(chip)/Android.mk) 然后创建一些软连接,并 include 进来

1
2
3
4
5
ifeq ($(TARGET_PRODUCT), taro)
include $(DLKM_DIR)/Build_external_kernelmodule.mk
else
include $(DLKM_DIR)/AndroidKernelModule.mk # ./device/qcom/common/dlkm/AndroidKernelModule.mk
endif

比较奇怪的地方是 这里没有打印 including mk的日志???

1
2
3
4
5
6
7
8
9
10
3 [sa8295_xxxx-userdebug][ 69% 306/443]
2 [sa8295_xxxx-userdebug][ 69% 307/443]including vendor/qcom/opensource/tinycompress/Android.mk ...
1 [sa8295_xxxx-userdebug][ 69% 308/443]"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
[sa8295_xxxx-userdebug][ 69% 308/443]LOCAL_PATH=vendor/qcom/opensource/wlan/qcacld-3.0
1 [sa8295_xxxx-userdebug][ 69% 308/443]LOCAL_DEV_NAME=qcacld-3.0
2 [sa8295_xxxx-userdebug][ 69% 308/443]TARGET_WLAN_CHIP=qca6174 qca6390 qcn7605 qca6490 qca6390_cnss2 qca6490_cnss2
3 [sa8295_xxxx-userdebug][ 69% 308/443]"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
4 [sa8295_xxxx-userdebug][ 69% 308/443]LOCAL_PATH=vendor/qcom/opensource/wlan/qcacld-3.0/.qca6174
5 [sa8295_xxxx-userdebug][ 69% 308/443]LOCAL_DEV_NAME=qca6174

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/bin/bash -c "
(
cp -f vendor/qcom/opensource/wlan/qcacld-3.0/.qcn7605/Kbuild out/target/product/sa8295_xxxx/obj/vendor/qcom/opensource/wlan/qcacld-3.0/.qcn7605/Kbuild
) &&
(
./prebuilts/build-tools/linux-x86/bin/make -j16 -j32
-C out/target/product/sa8295_xxxx/obj/kernel/msm-5.4
M=../../vendor/qcom/opensource/wlan/qcacld-3.0/.qcn7605
ARCH=arm64
CROSS_COMPILE=./prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
REAL_CC=./prebuilts/clang/host/linux-x86/clang-r416183b/bin/clang
CLANG_TRIPLE=aarch64-linux-gnu- AR=./prebuilts/clang/host/linux-x86/clang-r416183b/bin/llvm-ar
LLVM_NM=./prebuilts/clang/host/linux-x86/clang-r416183b/bin/llvm-nm
LD=./prebuilts/clang/host/linux-x86/clang-r416183b/bin/ld.lld
NM=./prebuilts/clang/host/linux-x86/clang-r416183b/bin/llvm-nm modules
WLAN_ROOT=vendor/qcom/opensource/wlan/qcacld-3.0/.qcn7605
WLAN_COMMON_ROOT=cmn
WLAN_COMMON_INC=vendor/qcom/opensource/wlan/qcacld-3.0/cmn
WLAN_FW_API=vendor/qcom/opensource/wlan/fw-api
WLAN_PROFILE=qcn7605
DYNAMIC_SINGLE_CHIP=qcn7605
MODNAME=wlan
DEVNAME=qcn7605
BOARD_PLATFORM=msmnile
CONFIG_QCA_CLD_WLAN=m
WLAN_CFG_OVERRIDE=\"CONFIG_FEATURE_COEX=y
CONFIG_QCACLD_FEATURE_BTC_CHAIN_MODE=y
CONFIG_WLAN_DISABLE_EXPORT_SYMBOL=y
CONFIG_GET_DRIVER_MODE=y
CONFIG_VCPU_TIMESTOLEN=y\"
WLAN_CTRL_NAME=wlan
ANDROID_BUILD_TOP=\$(pwd)
) &&
(
touch out/target/product/sa8295_xxxx/obj/vendor/qcom/opensource/wlan/qcacld-3.0/.qcn7605/buildko.timestamp
)"