Android编译系统参考手册

TARGET_PRODUCT

示例:cm_i9100

UNAME

操作系统+体系结构
例:Linux x86_64

HOST_OS

主机操作系统
linux darwin windows

BUILD_OS

编译所在主机的操作系统
BUILD_OS := $(HOST_OS)

HOST_ARCH

主机体系结构
x86 ppc

BUILD_ARCH

编译系统所在主机的操作系统
$(BUILD_OS)
x86 ppc

HOST_BUILD_TYPE

主机编译类型 release 或者debug

HOST_PREBUILT_TAG

This is the standard way to name a directory containing prebuilt host
objects. E.g., prebuilt/$(HOST_PREBUILT_TAG)/cc
ifeq ($(HOST_OS),windows)
  HOST_PREBUILT_TAG := windows
else
  HOST_PREBUILT_TAG := $(HOST_OS)-$(HOST_ARCH)
endif
linux-x86

TARGET_COPY_OUT_SYSTEM

TARGET_COPY_OUT_SYSTEM := system

TARGET_COPY_OUT_DATA

TARGET_COPY_OUT_DATA := data

TARGET_COPY_OUT_VENDOR

TARGET_COPY_OUT_VENDOR := system/vendor

TARGET_COPY_OUT_ROOT

TARGET_COPY_OUT_ROOT := root

TARGET_COPY_OUT_RECOVERY

TARGET_COPY_OUT_RECOVERY := recovery

TARGET_OS

TARGET_OS := linux

TARGET_BUILD_TYPE

ifneq ($(TARGET_BUILD_TYPE),debug)
  TARGET_BUILD_TYPE := release
endif   

OUT_DIR

ifeq (,$(strip $(OUT_DIR)))
    ifeq (,$(strip $(OUT_DIR_COMMON_BASE)))
        ifneq ($(TOPDIR),)
            OUT_DIR := $(TOPDIR)out
        else
            OUT_DIR := $(CURDIR)/out
        endif
    else
        OUT_DIR := $(OUT_DIR_COMMON_BASE)/$(notdir $(PWD))
    endif
endif

DEBUG_OUT_DIR

DEBUG_OUT_DIR := $(OUT_DIR)/debug

示例:out/debug

TARGET_OUT_ROOT_release

TARGET_OUT_ROOT_release := $(OUT_DIR)/target

示例:out/target

TARGET_OUT_ROOT_debug

TARGET_OUT_ROOT_debug := $(DEBUG_OUT_DIR)/target

示例:out/debug/target

TARGET_OUT_ROOT

TARGET_OUT_ROOT := $(TARGET_OUT_ROOT_$(TARGET_BUILD_TYPE))

示例:out/target 或者out/debug/target

HOST_OUT_ROOT_release

HOST_OUT_ROOT_release := $(OUT_DIR)/host

示例:out/host

HOST_OUT_ROOT_debug

HOST_OUT_ROOT_debug := $(DEBUG_OUT_DIR)/host

示例:out/debug/host

HOST_OUT_ROOT

HOST_OUT_ROOT := $(HOST_OUT_ROOT_$(HOST_BUILD_TYPE))

示例:out/host或者out/debug/host

HOST_OUT_release

HOST_OUT_release := $(HOST_OUT_ROOT_release)/$(HOST_OS)-$(HOST_ARCH)

示例:oust/host/linux-x86

HOST_OUT_debug

HOST_OUT_debug := $(HOST_OUT_ROOT_debug)/$(HOST_OS)-$(HOST_ARCH)

示例:out/debug/host/linux-x86

HOST_OUT

HOST_OUT := $(HOST_OUT_$(HOST_BUILD_TYPE))

示例:oust/host/linux-x86

BUILD_OUT

BUILD_OUT := $(OUT_DIR)/host/$(BUILD_OS)-$(BUILD_ARCH)

示例:out/host/linux-x86

TARGET_PRODUCT_OUT_ROOT

TARGET_PRODUCT_OUT_ROOT := $(TARGET_OUT_ROOT)/product

示例:out/target/product

TARGET_COMMON_OUT_ROOT

TARGET_COMMON_OUT_ROOT := $(TARGET_OUT_ROOT)/common

示例:out/target/common

HOST_COMMON_OUT_ROOT

HOST_COMMON_OUT_ROOT := $(HOST_OUT_ROOT)/common

示例:out/target/common

PRODUCT_OUT

PRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE)

示例:out/target/product/i9100

OUT_DOCS

OUT_DOCS := $(TARGET_COMMON_OUT_ROOT)/docs

示例:out/target/common/docs

BUILD_OUT

示例:out/host/linux-x86

BUILD_OUT_EXECUTABLES

BUILD_OUT_EXECUTABLES:= $(BUILD_OUT)/bin

示例:out/host/linux-x86/bin

HOST_OUT_EXECUTABLES

HOST_OUT_EXECUTABLES:= $(HOST_OUT)/bin
示例:out/host/linux-x86/bin

HOST_OUT_SHARED_LIBRARIES

HOST_OUT_SHARED_LIBRARIES:= $(HOST_OUT)/lib

示例:out/host/linux-x86/lib

HOST_OUT_JAVA_LIBRARIES

HOST_OUT_JAVA_LIBRARIES:= $(HOST_OUT)/framework

示例:out/host/linux-x86/framework

HOST_OUT_SDK_ADDON

HOST_OUT_SDK_ADDON := $(HOST_OUT)/sdk_addon

示例:out/host/linux-x86/sdk_addon

HOST_OUT_INTERMEDIATES

HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj

示例:out/host/linux-x86/obj

HOST_OUT_HEADERS

HOST_OUT_HEADERS:= $(HOST_OUT_INTERMEDIATES)/include

示例:out/host/linux-x86/obj/include

HOST_OUT_INTERMEDIATE_LIBRARIES

HOST_OUT_INTERMEDIATE_LIBRARIES := $(HOST_OUT_INTERMEDIATES)/lib

示例:out/host/linux-x86/obj/lib

HOST_OUT_NOTICE_FILES

HOST_OUT_NOTICE_FILES:=$(HOST_OUT_INTERMEDIATES)/NOTICE_FILES

示例:out/host/linux-x86/obj/NOTICE_FILES

HOST_OUT_COMMON_INTERMEDIATES

HOST_OUT_COMMON_INTERMEDIATES := $(HOST_COMMON_OUT_ROOT)/obj

示例:out/host/linux-x86/obj

TARGET_OUT_INTERMEDIATES

TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj

示例:out/target/product/i9100/obj

TARGET_OUT_HEADERS:=

TARGET_OUT_HEADERS:= $(TARGET_OUT_INTERMEDIATES)/include

示例:out/target/product/i9100/obj/include

TARGET_OUT_INTERMEDIATE_LIBRARIES

TARGET_OUT_INTERMEDIATE_LIBRARIES := $(TARGET_OUT_INTERMEDIATES)/lib

示例:out/target/product/i9100/obj/lib

TARGET_OUT_COMMON_INTERMEDIATES

TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj

示例:out/target/common/obj

TARGET_OUT

TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM)

示例:out/target/product/i9100/system

TARGET_OUT_EXECUTABLES

TARGET_OUT_EXECUTABLES:= $(TARGET_OUT)/bin

示例:out/target/product/i9100/system/bin

TARGET_OUT_OPTIONAL_EXECUTABLES:=

TARGET_OUT_OPTIONAL_EXECUTABLES:= $(TARGET_OUT)/xbin

示例:out/target/product/i9100/system/xbin

TARGET_OUT_SHARED_LIBRARIES:=

TARGET_OUT_SHARED_LIBRARIES:= $(TARGET_OUT)/lib

示例:out/target/product/i9100/system/lib

TARGET_OUT_JAVA_LIBRARIES:=

TARGET_OUT_JAVA_LIBRARIES:= $(TARGET_OUT)/framework

示例:out/target/product/i9100/system/framework

TARGET_OUT_APPS:=

TARGET_OUT_APPS:= $(TARGET_OUT)/app

示例:out/target/product/i9100/system/app

TARGET_OUT_KEYLAYOUT

TARGET_OUT_KEYLAYOUT := $(TARGET_OUT)/usr/keylayout

示例:out/target/product/i9100/system/usr/keylayout

TARGET_OUT_KEYCHARS

TARGET_OUT_KEYCHARS := $(TARGET_OUT)/usr/keychars

示例:out/target/product/i9100/system/usr/keychars

TARGET_OUT_ETC

TARGET_OUT_ETC := $(TARGET_OUT)/etc

示例:out/target/product/i9100/system/etc

TARGET_OUT_NOTICE_FILES

TARGET_OUT_NOTICE_FILES:=$(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES

示例:out/target/product/i9100/obj/NOTICE_FILES

TARGET_OUT_FAKE

TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages

示例:out/target/product/i9100/fake_packages

TARGET_OUT_DATA

TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)

示例:out/target/product/i9100/data

TARGET_OUT_DATA_EXECUTABLES:=

TARGET_OUT_DATA_EXECUTABLES:= $(TARGET_OUT_EXECUTABLES)

示例:out/target/product/i9100/system/bin

TARGET_OUT_DATA_SHARED_LIBRARIES:=

TARGET_OUT_DATA_SHARED_LIBRARIES:= $(TARGET_OUT_SHARED_LIBRARIES)

示例:out/target/product/i9100/system/lib

TARGET_OUT_DATA_JAVA_LIBRARIES:=

TARGET_OUT_DATA_JAVA_LIBRARIES:= $(TARGET_OUT_JAVA_LIBRARIES)

示例:out/target/product/i9100/system/framework

TARGET_OUT_DATA_APPS:=

TARGET_OUT_DATA_APPS:= $(TARGET_OUT_DATA)/app

示例:out/target/product/i9100/data/app

TARGET_OUT_DATA_KEYLAYOUT

TARGET_OUT_DATA_KEYLAYOUT := $(TARGET_OUT_KEYLAYOUT)

示例:out/target/product/i9100/system/usr/keylayout

TARGET_OUT_DATA_KEYCHARS

TARGET_OUT_DATA_KEYCHARS := $(TARGET_OUT_KEYCHARS)

示例:out/target/product/i9100/system/usr/keychars

TARGET_OUT_DATA_ETC

TARGET_OUT_DATA_ETC := $(TARGET_OUT_ETC)

示例:out/target/product/i9100/system/etc

TARGET_OUT_DATA_NATIVE_TESTS

TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest

示例:out/target/product/i9100/data/nativetest

TARGET_OUT_CACHE

TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache

示例:out/target/product/i9100/cache

TARGET_OUT_VENDOR

TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)

示例:out/target/product/i9100/system/vendor

TARGET_OUT_VENDOR_EXECUTABLES:=

TARGET_OUT_VENDOR_EXECUTABLES:= $(TARGET_OUT_VENDOR)/bin

示例:out/target/product/i9100/system/vendor/bin

TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES:=

TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES:= $(TARGET_OUT_VENDOR)/xbin

示例:out/target/product/i9100/system/vendor/xbin

TARGET_OUT_VENDOR_SHARED_LIBRARIES:=

TARGET_OUT_VENDOR_SHARED_LIBRARIES:= $(TARGET_OUT_VENDOR)/lib

示例:out/target/product/i9100/system/vendor/lib

TARGET_OUT_VENDOR_JAVA_LIBRARIES:=

TARGET_OUT_VENDOR_JAVA_LIBRARIES:= $(TARGET_OUT_VENDOR)/framework

示例:out/target/product/i9100/system/vendor/framework

TARGET_OUT_VENDOR_APPS:=

TARGET_OUT_VENDOR_APPS:= $(TARGET_OUT_VENDOR)/app

示例:out/target/product/i9100/system/vendor/app

TARGET_OUT_VENDOR_ETC

TARGET_OUT_VENDOR_ETC := $(TARGET_OUT_VENDOR)/etc

示例:out/target/product/i9100/system/vendor/etc

TARGET_OUT_UNSTRIPPED

TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols

示例:out/target/product/i9100/system/symbols

TARGET_OUT_EXECUTABLES_UNSTRIPPED

TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin

示例:out/target/product/i9100/sysmbols/system/bin

TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED

TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/lib

示例:out/target/product/i9100/sysmbols/system/lib

TARGET_ROOT_OUT_UNSTRIPPED

TARGET_ROOT_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)

示例:out/target/product/i9100/sysmbols

TARGET_ROOT_OUT_SBIN_UNSTRIPPED

TARGET_ROOT_OUT_SBIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/sbin

示例:out/target/product/i9100/sysmbols/sbin

TARGET_ROOT_OUT_BIN_UNSTRIPPED

TARGET_ROOT_OUT_BIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/bin

示例:out/target/product/i9100/sysmbols/bin

TARGET_ROOT_OUT

TARGET_ROOT_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ROOT)

示例:out/target/product/i9100/root

TARGET_ROOT_OUT_BIN

TARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin

示例:out/target/product/i9100/root/bin

TARGET_ROOT_OUT_SBIN

TARGET_ROOT_OUT_SBIN := $(TARGET_ROOT_OUT)/sbin

示例:out/target/product/i9100/root/sbin

TARGET_ROOT_OUT_ETC

TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc

示例:out/target/product/i9100/root/etc

TARGET_ROOT_OUT_USR

TARGET_ROOT_OUT_USR := $(TARGET_ROOT_OUT)/usr

示例:out/target/product/i9100/root/usr

TARGET_RECOVERY_OUT

TARGET_RECOVERY_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RECOVERY)

示例:out/target/product/i9100/recovery

TARGET_RECOVERY_ROOT_OUT

TARGET_RECOVERY_ROOT_OUT := $(TARGET_RECOVERY_OUT)/root

示例:out/target/product/i9100/recovery/root

TARGET_SYSLOADER_OUT

TARGET_SYSLOADER_OUT := $(PRODUCT_OUT)/sysloader

示例:out/target/product/i9100/sysloader

TARGET_SYSLOADER_ROOT_OUT

TARGET_SYSLOADER_ROOT_OUT := $(TARGET_SYSLOADER_OUT)/root

示例:out/target/product/i9100/sysloader/root

TARGET_SYSLOADER_SYSTEM_OUT

TARGET_SYSLOADER_SYSTEM_OUT := $(TARGET_SYSLOADER_OUT)/root/system

示例:out/target/product/i9100/sysloader/root/system

TARGET_INSTALLER_OUT

TARGET_INSTALLER_OUT := $(PRODUCT_OUT)/installer

示例:out/target/product/i9100/installer

TARGET_INSTALLER_DATA_OUT

TARGET_INSTALLER_DATA_OUT := $(TARGET_INSTALLER_OUT)/data

示例:out/target/product/i9100/installer/data

TARGET_INSTALLER_ROOT_OUT

TARGET_INSTALLER_ROOT_OUT := $(TARGET_INSTALLER_OUT)/root

示例:out/target/product/i9100/installer/root

TARGET_INSTALLER_SYSTEM_OUT

TARGET_INSTALLER_SYSTEM_OUT := $(TARGET_INSTALLER_OUT)/root/system

示例:out/target/product/i9100/installer/root/system

TARGET_FACTORY_RAMDISK_OUT

TARGET_FACTORY_RAMDISK_OUT := $(PRODUCT_OUT)/factory_ramdisk

示例:out/target/product/i9100/factory_ramdisk

COMMON_MODULE_CLASSES

COMMON_MODULE_CLASSES := TARGET-NOTICE_FILES HOST-NOTICE_FILES HOST-JAVA_LIBRARIES

DIST_DIR

ifeq (,$(strip $(DIST_DIR)))
    DIST_DIR := $(OUT_DIR)/dist
endif

示例:out/dist

PRINT_BUILD_CONFIG

ifeq ($(PRINT_BUILD_CONFIG),)
    PRINT_BUILD_CONFIG := true
endif
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,615评论 0 3
  • 2018.4.29日 晴 日更第42天 1 前奏 俗话说,“有朋自远方来,不亦乐乎”。 前几天有个苏州的朋友说要来...
    任正飞人性营销阅读 303评论 0 1
  • 在我们还不懂事的时候,身边的大人总会教导我们许多大道理: 比如,勤俭节约,好好存钱 长久的利益胜过一时的满足感 好...
    柒月书米阅读 194评论 0 0
  • 欢迎来到小于的王者地盘,小于已经更新了王者峡谷69位英雄全新的推荐出装以及铭文搭配(新英雄铠的教学已经上线),大家...
    王者小于帮阅读 391评论 0 0
  • 结果是给别人看的,需要展现的是完美无瑕; 过程是给自己悟的,需要懂得的是不变的初心。
    楹枝笔阅读 324评论 0 0