mk相关记录

Android 中主要的mk 文件

Android 编译系统中涉及到的主要Makefile 文件的解释

以下文件的路径:~\build\core\

  • main.mk - 整个编译系统的主导文件
  • config.mk - 产品配置的主导文件
  • base_rule.mk - 编译系统中需要遵循的基础规则定义
  • build_id.mk - 版本id 的定义
  • cleanbuild.mk - clean 操作的定义
  • clear_vars.mk - 清空以LOCAL 开头的相关系统变量
  • definition.mk - 大量常用函数的定义
  • envsetup.mk - 配置编译的环境变量 要区别于 envsetup.sh
  • excutable.mk 负责BUILD_EXCUTABLE的具体实现
  • java.mk - 负责与java 语言相关的编译实现
  • host_executable.mk - 负责BUILD_HOST_EXCUTABLE 的具体实现
  • host_static_library.mk - 负责BUILD_HOST_STATIC_LIBRARY 的具体实现(其它BUILD_xxxx 变量也有对应的mk文件实现)
  • product_config.mk - 产品级别配置,属于config的一部分
  • version_defaults.mk - 负责生成版本信息

一个Android.mk 模块编译顺序

# LOCAL_PATH 位置先于 CLEAR_VARS
LOCAL_PATH:= $(call my-dir)

# 清除了上百个除去LOCAL_PATH外的变量,一般被认为是一个编译模块的开始
include $(CLEAR_VARS)

# LOCAL_SRC_FILES 是一个很重要的变量,定义了本木块编译所涉及的所有源文件
LOCAL_SRC_FILES := $(call all-java-files-under, java)

# 编译参数
LOCAL_CFLAGS := 

# LOCAL_MODULE 编译所生成模块的名称
LOCAL_MODULE := 

# 编译中用到的库
LOCAL_STATIC_JAVA_LIBRARIES / LOCAL_STATIC_LIBRARIES := 

# BUILD_HOST_EXCUTABLE / BUILD_HOST_EXCUTABLE
include $(BUILD_HOST_EXCUTABLE)
mk文件的重点,BUILD_HOST_EXCUTABLE 表示希望生成一个Host 可执行程序,也标记一个模块从include $(CLEAR_VARS)开始,到这里结束

posted @ 2023-11-20 21:26  阿丟啊  阅读(22)  评论(0编辑  收藏  举报