【汇总】Android mk语法
前言全局说明
Android mk语法
一、说明
1.1 环境:
二、赋值
2.1 赋值
语法::= 是赋值
TARGET_BUILD_TYPE := release
2.2 追加赋值
TARGET_BUILD_TYPE += debug
变量内容原有基础上,再增加内容
2.2 多个文件赋值
LOCAL_SRC_FILES := adb.c \
utils.c
三、取值
$() 是取值
3.1 取值
\$(HOST_OS)
3.2
四、判断
4.1 相等判断
ifeq ($(HOST_OS),linux)
WITH_DEXPREOPT := true
endif
判断 HOST_OS变量内容是不是 linux
4.2 不相等判断
ifneq ($(HOST_OS, linux)
...(省略)
else
...(省略)
endif
4.3 判断默认值
ifdef LOCAL_DEX_PREOPT
# Make sure the boot jars get dexpreopt-ed first
$(LOCAL_BUILT_MODULE): $(DEXPREOPT_BOOT_ODEXS) | $(DEXPREOPT) $(DEXOPT)
endif
4.4 判断空
# Prebuild apps
ifneq ($(strip $(TARGET_PRODUCT)), )
TARGET_DEVICE_DIR=$(shell test -d device && find device -maxdepth 4 -path '*/$(TARGET_PRODUCT)/BoardConfig.mk')
endif
4.5 else if
android/android/build/make/core/prebuilt_internal.mk
ifdef LOCAL_PREBUILT_MODULE_FILE
my_prebuilt_src_file := $(LOCAL_PREBUILT_MODULE_FILE)
else ifdef LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
my_prebuilt_src_file := $(call clean-path,$(LOCAL_PATH)/$(LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)))
else
$(call pretty-error,No source files specified)
endif
4.
五、引入(导入、引用、执行某个文件)
5.1 include 函数
include $(CLEAR_VARS)
5.2 include 文件
include Vendor/google/Android.mk
5.3 -include 文件
和include区别,-include 引入的文件不存在,不会报错
-include Vendor/google/Android.mk
5.4 inherit-product
$(call inherit-product, device/mediatek/mt2712/device.mk)
或者
5.5 先判断文件
$(call inherit-product-if-exists, device/mediatek/mt2712/device.mk)
5.6 export_includes
5.7 import_includes
5.
六、宏定义
6.1 定义宏
define 宏名
宏内容
endef
6.1 引用宏
$(宏名)
七、执行shell命令
7.1 执行新建文件夹命令
$(mkdir -p a/b/c )
7.1 执行 cp 命令
$(cp a/b/c dd/ff/jj )
7.1 一条语句执行多个命令
$(shell mkdir -p a/b/c; cp a/b/c dd/ff/jj )
7.
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
https://blog.csdn.net/tunmengsmile/article/details/118328061
https://blog.csdn.net/honghua_bai/article/details/122159169
https://www.cnblogs.com/bhlsheji/p/5318149.html
https://www.bilibili.com/video/BV1Eh4y1B7Z4 (10:53 ### 5.3)
https://blog.51cto.com/u_16213318/7393225 (宏定义 define)
https://blog.csdn.net/xiaowang_lj/article/details/132557765 (inherit-product)
https://blog.51cto.com/u_16248677/7387223 (import_includes)
https://blog.51cto.com/u_16213314/9323949 (shell)
浙公网安备 33010602011771号