Android编译系统参考手册

作者博客: http://www.cloudchou.com

build/core/envsetup.mk

定义了一系列编译变量,主要是编译用的存储编译结果的目录,
详细的请参考文档

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值