Android.mk语法学习

Makefile 中:= ?= += =的区别:
= 是最基本的赋值 (变量的值将会是整个makefile中最后被指定的值)
:= 是覆盖之前的值 (变量的值决定于它在makefile中的顺序,而不是整个makefile展开后的最终值)
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值

Android.mk常用的变量

变量名 参数 功能
LOCAL_INIT_RC RC文件名 将服务相关的RC文件编译到相应etc/init
LOCAL_VENDOR_MODULE true 供应商模块是指供应商专用的可执行文件或共享库,这些模块必须安装到供应商分区中。在 Android.bp 文件中,供应商模块必须将 vendor 或 proprietary 属性设为 true。在 Android.mk 文件中,供应商模块必须将 LOCAL_VENDOR_MODULE 或 LOCAL_PROPRIETARY_MODULE 设为 true
LOCAL_MODULE 模块名 定义模块名字
LOCAL_MODULE_TAGS user eng tests optional 决定在相应的版本能否编译
include $(BUILD_EXECUTABLE) - 编译为Native C可执行程序
include $(BUILD_STATIC_LIBRARY) - 编译为静态库
include $(BUILD_SHARED_LIBRARY) - 编译为动态库
LOCAL_SHARED_LIBRARIES library name 要链接到本模块的动态库
include $(CLEAR_VARS) - 清理LOCAL变量,除了LOCAL_PATH
LOCAL_PATH := $(call my-dir) - 每个Android.mk文件必须以定义LOCAL_PATH为开始。它用于在开发tree中查找源文件,宏my-dir 则由Build System提供。返回包含Android.mk的目录路径

你可能感兴趣的:(Android)