前言全局说明
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 取值
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 |
| |
| $(LOCAL_BUILT_MODULE): $(DEXPREOPT_BOOT_ODEXS) | $(DEXPREOPT) $(DEXOPT) |
| endif |
4.4 判断空
| |
| 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 函数
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 定义宏
6.1 引用宏
七、执行shell命令
7.1 执行新建文件夹命令
7.1 执行 cp 命令
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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2024-01-07 Python Flask session 内容保存到用户浏览器里