前言
在 Android 源码的编译系统中,TARGET_OUT
是一个核心变量,用于指向编译生成的系统镜像的最终输出路径。本文将通过分析 build/core/envsetup.mk
文件中的变量定义,详细解析 TARGET_OUT
的指向路径及其相关的变量链。
1. TARGET_OUT
的定义
TARGET_OUT
的定义如下:
TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM)
这里,TARGET_OUT 是由两个变量组合而成的:
- PRODUCT_OUT:指向产品输出的根目录。
- TARGET_COPY_OUT_SYSTEM:表示系统目录的名称,通常为 system。
因此,TARGET_OUT 的最终路径是 $(PRODUCT_OUT)/system 。
2. PRODUCT_OUT 的定义
PRODUCT_OUT 的定义如下:
PRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE)
这里, PRODUCT_OUT 由两个部分组成:
- TARGET_PRODUCT_OUT_ROOT:指向产品输出的根目录。
- TARGET_DEVICE:表示当前编译的目标设备的名称。
因此,PRODUCT_OUT 的路径是 ( T A R G E T P R O D U C T O U T R O O T ) / (TARGET_PRODUCT_OUT_ROOT)/ (