【汇总】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)



posted @   悟透  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2024-01-07 Python Flask session 内容保存到用户浏览器里
点击右上角即可分享
微信分享提示