Android mk文件中‘TARGET_OUT‘的路径分析

前言

在 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)/ (