blob: f82e861abfddd37e339f3ceb2fbb7291d334bb19 [file] [log] [blame]
The Android Open Source Project88b60792009-03-03 19:28:42 -08001# Variables we check:
2# HOST_BUILD_TYPE = { release debug }
The Android Open Source Project88b60792009-03-03 19:28:42 -08003# TARGET_BUILD_TYPE = { release debug }
4# and we output a bunch of variables, see the case statement at
5# the bottom for the full list
6# OUT_DIR is also set to "out" if it's not already set.
7# this allows you to set it to somewhere else if you like
C. Sean Youngcf469982015-06-09 12:35:45 -05008# SCAN_EXCLUDE_DIRS is an optional, whitespace separated list of
9# directories that will also be excluded from full checkout tree
10# searches for source or make files, in addition to OUT_DIR.
11# This can be useful if you set OUT_DIR to be a different directory
12# than other outputs of your build system.
The Android Open Source Project88b60792009-03-03 19:28:42 -080013
Colin Crossc9016592017-03-28 13:07:56 -070014# Returns all words in $1 up to and including $2
15define find_and_earlier
16 $(strip $(if $(1),
17 $(firstword $(1))
18 $(if $(filter $(firstword $(1)),$(2)),,
19 $(call find_and_earlier,$(wordlist 2,$(words $(1)),$(1)),$(2)))))
20endef
21
22#$(warning $(call find_and_earlier,A B C,A))
23#$(warning $(call find_and_earlier,A B C,B))
24#$(warning $(call find_and_earlier,A B C,C))
25#$(warning $(call find_and_earlier,A B C,D))
26
Cole Faust386b3742023-06-06 16:55:58 -070027# Runs a starlark file, and sets all the variables in its top-level
Cole Faustc63ce1a2023-05-09 14:56:36 -070028# variables_to_export_to_make variable as make variables.
29#
30# In order to avoid running starlark every time the stamp file is checked, we use
31# $(KATI_shell_no_rerun). Then, to make sure that we actually do rerun kati when
32# modifying the starlark files, we add the starlark files to the kati stamp file with
Joe Onorato7b578d32023-05-19 09:13:36 -070033# $(KATI_extra_file_deps).
Cole Faust386b3742023-06-06 16:55:58 -070034#
35# Arguments:
36# $(1): A single starlark file to use as the entrypoint
37# $(2): An optional list of starlark files to NOT include as kati dependencies.
38# $(3): An optional list of extra flags to pass to rbcrun
Cole Faustc63ce1a2023-05-09 14:56:36 -070039define run-starlark
40$(eval _starlark_results := $(OUT_DIR)/starlark_results/$(subst /,_,$(1)).mk)
Cole Faust386b3742023-06-06 16:55:58 -070041$(KATI_shell_no_rerun mkdir -p $(OUT_DIR)/starlark_results && $(OUT_DIR)/rbcrun --mode=make $(3) $(1) >$(_starlark_results) && touch -t 200001010000 $(_starlark_results))
Cole Faustc63ce1a2023-05-09 14:56:36 -070042$(if $(filter-out 0,$(.SHELLSTATUS)),$(error Starlark failed to run))
43$(eval include $(_starlark_results))
Cole Faust386b3742023-06-06 16:55:58 -070044$(KATI_extra_file_deps $(filter-out $(2),$(LOADED_STARLARK_FILES)))
Cole Faustc63ce1a2023-05-09 14:56:36 -070045$(eval LOADED_STARLARK_FILES :=)
46$(eval _starlark_results :=)
Colin Crossc9016592017-03-28 13:07:56 -070047endef
48
Joe Onorato964f4012023-05-06 12:29:01 -070049# ---------------------------------------------------------------
50# Release config
51include $(BUILD_SYSTEM)/release_config.mk
52
53# ---------------------------------------------------------------
Jeff Hamilton426a9f82023-10-19 04:54:15 +000054# Set up version information
55include $(BUILD_SYSTEM)/version_util.mk
Colin Crossc9016592017-03-28 13:07:56 -070056
Jeff Hamilton426a9f82023-10-19 04:54:15 +000057# This used to be calculated, but is now fixed and not expected
58# to change over time anymore. New code attempting to use a
59# variable like IS_AT_LAST_* should instead use a
60# build system flag.
Colin Crossc9016592017-03-28 13:07:56 -070061
Jeff Hamilton426a9f82023-10-19 04:54:15 +000062ENABLED_VERSIONS := "OPR1 OPD1 OPD2 OPM1 OPM2 PPR1 PPD1 PPD2 PPM1 PPM2 QPR1 QP1A QP1B QP2A QP2B QD1A QD1B QD2A QD2B QQ1A QQ1B QQ2A QQ2B QQ3A QQ3B RP1A RP1B RP2A RP2B RD1A RD1B RD2A RD2B RQ1A RQ1B RQ2A RQ2B RQ3A RQ3B SP1A SP1B SP2A SP2B SD1A SD1B SD2A SD2B SQ1A SQ1B SQ2A SQ2B SQ3A SQ3B TP1A TP1B TP2A TP2B TD1A TD1B TD2A TD2B TQ1A TQ1B TQ2A TQ2B TQ3A TQ3B UP1A UP1B UP2A UP2B UD1A UD1B UD2A UD2B UQ1A UQ1B UQ2A UQ2B UQ3A UQ3B"
Colin Crossc9016592017-03-28 13:07:56 -070063
64$(foreach v,$(ENABLED_VERSIONS), \
65 $(eval IS_AT_LEAST_$(v) := true))
66
The Android Open Source Project88b60792009-03-03 19:28:42 -080067# ---------------------------------------------------------------
68# If you update the build system such that the environment setup
69# or buildspec.mk need to be updated, increment this number, and
70# people who haven't re-run those will have to do so before they
71# can build. Make sure to also update the corresponding value in
72# buildspec.mk.default and envsetup.sh.
Colin Cross88737132017-03-21 17:41:03 -070073CORRECT_BUILD_ENV_SEQUENCE_NUMBER := 13
The Android Open Source Project88b60792009-03-03 19:28:42 -080074
75# ---------------------------------------------------------------
Jeff Browne33ba4c2011-07-11 22:11:46 -070076# The product defaults to generic on hardware
The Android Open Source Project88b60792009-03-03 19:28:42 -080077ifeq ($(TARGET_PRODUCT),)
Steven Morelandc89cf962024-05-31 18:07:34 +000078TARGET_PRODUCT := aosp_arm64
The Android Open Source Project88b60792009-03-03 19:28:42 -080079endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080080
81
82# the variant -- the set of files that are included for a build
83ifeq ($(strip $(TARGET_BUILD_VARIANT)),)
84TARGET_BUILD_VARIANT := eng
85endif
86
Dan Willemsen8a5d5972019-07-29 14:22:05 -070087TARGET_BUILD_APPS ?=
Jeongik Chad05b57a2020-07-08 18:10:38 +090088TARGET_BUILD_UNBUNDLED_IMAGE ?=
Dan Willemsen8a5d5972019-07-29 14:22:05 -070089
Martin Stjernholm7a430fd2020-06-04 15:16:39 +010090# Set to true for an unbundled build, i.e. a build without
91# support for platform targets like the system image. This also
92# disables consistency checks that only apply to full platform
93# builds.
94TARGET_BUILD_UNBUNDLED ?=
95
96# TARGET_BUILD_APPS implies unbundled build, otherwise we default
97# to bundled (i.e. platform targets such as the system image are
98# included).
99ifneq ($(TARGET_BUILD_APPS),)
100 TARGET_BUILD_UNBUNDLED := true
101endif
102
Jeongik Chad05b57a2020-07-08 18:10:38 +0900103# TARGET_BUILD_UNBUNDLED_IMAGE also implies unbundled build.
104# (i.e. it targets to only unbundled image, such as the vendor image,
105# ,or the product image).
106ifneq ($(TARGET_BUILD_UNBUNDLED_IMAGE),)
107 TARGET_BUILD_UNBUNDLED := true
108endif
109
Dan Willemsen8a5d5972019-07-29 14:22:05 -0700110.KATI_READONLY := \
111 TARGET_PRODUCT \
112 TARGET_BUILD_VARIANT \
Martin Stjernholm7a430fd2020-06-04 15:16:39 +0100113 TARGET_BUILD_APPS \
114 TARGET_BUILD_UNBUNDLED \
Jeongik Chad05b57a2020-07-08 18:10:38 +0900115 TARGET_BUILD_UNBUNDLED_IMAGE \
Dan Willemsen8a5d5972019-07-29 14:22:05 -0700116
The Android Open Source Project88b60792009-03-03 19:28:42 -0800117# ---------------------------------------------------------------
118# Set up configuration for host machine. We don't do cross-
Elliott Hughesf71c05a2020-03-06 16:46:59 -0800119# compiles except for arm, so the HOST is whatever we are
The Android Open Source Project88b60792009-03-03 19:28:42 -0800120# running on
121
The Android Open Source Project88b60792009-03-03 19:28:42 -0800122# HOST_OS
123ifneq (,$(findstring Linux,$(UNAME)))
Ying Wang6feb6d52014-04-17 10:03:35 -0700124 HOST_OS := linux
The Android Open Source Project88b60792009-03-03 19:28:42 -0800125endif
126ifneq (,$(findstring Darwin,$(UNAME)))
Ying Wang6feb6d52014-04-17 10:03:35 -0700127 HOST_OS := darwin
The Android Open Source Project88b60792009-03-03 19:28:42 -0800128endif
Raphael9ca16282010-04-16 17:50:09 -0700129
Peter Collingbourne0d06f702022-11-02 15:26:31 -0700130ifeq ($(CALLED_FROM_SETUP),true)
131 HOST_OS_EXTRA := $(shell uname -rsm)
132 ifeq ($(HOST_OS),linux)
133 ifneq ($(wildcard /etc/os-release),)
134 HOST_OS_EXTRA += $(shell source /etc/os-release; echo $$PRETTY_NAME)
135 endif
136 else ifeq ($(HOST_OS),darwin)
137 HOST_OS_EXTRA += $(shell sw_vers -productVersion)
Dan Willemsence7f8dd2017-07-25 00:57:38 -0700138 endif
Peter Collingbourne0d06f702022-11-02 15:26:31 -0700139 HOST_OS_EXTRA := $(subst $(space),-,$(HOST_OS_EXTRA))
Dan Willemsence7f8dd2017-07-25 00:57:38 -0700140endif
Ying Wang08800fd2016-03-03 20:57:21 -0800141
Raphael9ca16282010-04-16 17:50:09 -0700142# BUILD_OS is the real host doing the build.
143BUILD_OS := $(HOST_OS)
144
Jiyong Parke80c45f2020-07-13 13:53:52 +0900145# We can do the cross-build only on Linux
Raphael9ca16282010-04-16 17:50:09 -0700146ifeq ($(HOST_OS),linux)
Jiyong Parke80c45f2020-07-13 13:53:52 +0900147 # Windows has been the default host_cross OS
148 ifeq (,$(filter-out windows,$(HOST_CROSS_OS)))
149 # We can only create static host binaries for Linux, so if static host
150 # binaries are requested, turn off Windows cross-builds.
151 ifeq ($(BUILD_HOST_static),)
152 HOST_CROSS_OS := windows
153 HOST_CROSS_ARCH := x86
154 HOST_CROSS_2ND_ARCH := x86_64
155 2ND_HOST_CROSS_IS_64_BIT := true
156 endif
157 else ifeq ($(HOST_CROSS_OS),linux_bionic)
158 ifeq (,$(HOST_CROSS_ARCH))
159 $(error HOST_CROSS_ARCH missing.)
160 endif
161 else
162 $(error Unsupported HOST_CROSS_OS $(HOST_CROSS_OS))
163 endif
Dan Willemsen88208402021-10-19 00:30:37 -0700164else ifeq ($(HOST_OS),darwin)
165 HOST_CROSS_OS := darwin
166 HOST_CROSS_ARCH := arm64
167 HOST_CROSS_2ND_ARCH :=
Dan Willemsen2a6e3b02017-11-06 11:03:28 -0800168endif
The Android Open Source Project88b60792009-03-03 19:28:42 -0800169
170ifeq ($(HOST_OS),)
171$(error Unable to determine HOST_OS from uname -sm: $(UNAME)!)
172endif
173
The Android Open Source Project88b60792009-03-03 19:28:42 -0800174# HOST_ARCH
Ying Wang6feb6d52014-04-17 10:03:35 -0700175ifneq (,$(findstring x86_64,$(UNAME)))
Ying Wang2713fce2014-06-09 12:31:12 -0700176 HOST_ARCH := x86_64
177 HOST_2ND_ARCH := x86
Ying Wang4b1c95d2014-07-08 17:07:36 -0700178 HOST_IS_64_BIT := true
Brian Carlstrom2cd8a742015-03-20 11:39:00 -0700179else
Dan Willemsen88225fd2016-06-29 12:26:53 -0700180ifneq (,$(findstring i686,$(UNAME))$(findstring x86,$(UNAME)))
Brian Carlstrom2cd8a742015-03-20 11:39:00 -0700181$(error Building on a 32-bit x86 host is not supported: $(UNAME)!)
182endif
The Android Open Source Project88b60792009-03-03 19:28:42 -0800183endif
184
Dan Willemsen1d090fc2018-08-28 01:51:25 -0700185ifeq ($(HOST_OS),darwin)
186 # Mac no longer supports 32-bit executables
187 HOST_2ND_ARCH :=
188endif
189
Anton Hansson19279852019-02-28 17:15:57 +0000190HOST_2ND_ARCH_VAR_PREFIX := 2ND_
191HOST_2ND_ARCH_MODULE_SUFFIX := _32
192HOST_CROSS_2ND_ARCH_VAR_PREFIX := 2ND_
193HOST_CROSS_2ND_ARCH_MODULE_SUFFIX := _64
194TARGET_2ND_ARCH_VAR_PREFIX := 2ND_
195.KATI_READONLY := \
196 HOST_ARCH \
197 HOST_2ND_ARCH \
198 HOST_IS_64_BIT \
199 HOST_2ND_ARCH_VAR_PREFIX \
200 HOST_2ND_ARCH_MODULE_SUFFIX \
201 HOST_CROSS_2ND_ARCH_VAR_PREFIX \
202 HOST_CROSS_2ND_ARCH_MODULE_SUFFIX \
203 TARGET_2ND_ARCH_VAR_PREFIX \
204
205combo_target := HOST_
206combo_2nd_arch_prefix :=
207include $(BUILD_COMBOS)/select.mk
208
209ifdef HOST_2ND_ARCH
210 combo_2nd_arch_prefix := $(HOST_2ND_ARCH_VAR_PREFIX)
211 include $(BUILD_SYSTEM)/combo/select.mk
212endif
213
214# Load the windows cross compiler under Linux
215ifdef HOST_CROSS_OS
216 combo_target := HOST_CROSS_
217 combo_2nd_arch_prefix :=
218 include $(BUILD_SYSTEM)/combo/select.mk
219
220 ifdef HOST_CROSS_2ND_ARCH
221 combo_2nd_arch_prefix := $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)
222 include $(BUILD_SYSTEM)/combo/select.mk
223 endif
224endif
225
226# on windows, the tools have .exe at the end, and we depend on the
227# host config stuff being done first
228
Raphael9ca16282010-04-16 17:50:09 -0700229BUILD_ARCH := $(HOST_ARCH)
Ying Wang6feb6d52014-04-17 10:03:35 -0700230BUILD_2ND_ARCH := $(HOST_2ND_ARCH)
Raphael9ca16282010-04-16 17:50:09 -0700231
The Android Open Source Project88b60792009-03-03 19:28:42 -0800232ifeq ($(HOST_ARCH),)
233$(error Unable to determine HOST_ARCH from uname -sm: $(UNAME)!)
234endif
235
236# the host build defaults to release, and it must be release or debug
237ifeq ($(HOST_BUILD_TYPE),)
238HOST_BUILD_TYPE := release
239endif
240
241ifneq ($(HOST_BUILD_TYPE),release)
242ifneq ($(HOST_BUILD_TYPE),debug)
243$(error HOST_BUILD_TYPE must be either release or debug, not '$(HOST_BUILD_TYPE)')
244endif
245endif
246
Ying Wang6feb6d52014-04-17 10:03:35 -0700247# We don't want to move all the prebuilt host tools to a $(HOST_OS)-x86_64 dir.
248HOST_PREBUILT_ARCH := x86
The Android Open Source Project88b60792009-03-03 19:28:42 -0800249# This is the standard way to name a directory containing prebuilt host
250# objects. E.g., prebuilt/$(HOST_PREBUILT_TAG)/cc
Joe Onorato32b2aa32024-05-14 13:54:13 -0700251# This must match the logic in get_host_prebuilt_prefix in envsetup.sh
Dan Albert216ecac2015-05-04 12:44:44 -0700252HOST_PREBUILT_TAG := $(BUILD_OS)-$(HOST_PREBUILT_ARCH)
The Android Open Source Project88b60792009-03-03 19:28:42 -0800253
Ying Wang2b6aaa32011-10-27 15:18:39 -0700254# TARGET_COPY_OUT_* are all relative to the staging directory, ie PRODUCT_OUT.
255# Define them here so they can be used in product config files.
256TARGET_COPY_OUT_SYSTEM := system
Ramji Jiyani10655232022-01-20 06:43:09 +0000257TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
Alex Light4e358ab2016-06-16 14:47:10 -0700258TARGET_COPY_OUT_SYSTEM_OTHER := system_other
Ying Wang2b6aaa32011-10-27 15:18:39 -0700259TARGET_COPY_OUT_DATA := data
Vishwath Mohanb285c462017-03-29 15:32:04 -0700260TARGET_COPY_OUT_ASAN := $(TARGET_COPY_OUT_DATA)/asan
Ying Wangb8888432014-03-11 17:13:27 -0700261TARGET_COPY_OUT_OEM := oem
Tom Cherryd14b8952018-08-09 14:26:00 -0700262TARGET_COPY_OUT_RAMDISK := ramdisk
Bowgo Tsai0013f552019-03-20 17:59:52 +0800263TARGET_COPY_OUT_DEBUG_RAMDISK := debug_ramdisk
Bowgo Tsai6a683672020-02-14 19:00:15 +0800264TARGET_COPY_OUT_VENDOR_DEBUG_RAMDISK := vendor_debug_ramdisk
Bowgo Tsai5c40c712019-10-08 10:22:19 +0800265TARGET_COPY_OUT_TEST_HARNESS_RAMDISK := test_harness_ramdisk
Ying Wang2b6aaa32011-10-27 15:18:39 -0700266TARGET_COPY_OUT_ROOT := root
267TARGET_COPY_OUT_RECOVERY := recovery
Anton Hansson379b2ba2018-10-02 14:10:16 +0100268# The directory used for optional partitions depend on the BoardConfig, so
269# they're defined to placeholder values here and swapped after reading the
270# BoardConfig, to be either the partition dir, or a subdir within 'system'.
271_vendor_path_placeholder := ||VENDOR-PATH-PH||
272_product_path_placeholder := ||PRODUCT-PATH-PH||
Justin Yun6151e3f2019-06-25 15:58:13 +0900273_system_ext_path_placeholder := ||SYSTEM_EXT-PATH-PH||
Anton Hansson379b2ba2018-10-02 14:10:16 +0100274_odm_path_placeholder := ||ODM-PATH-PH||
Yifan Hongcfb917a2020-05-07 14:58:20 -0700275_vendor_dlkm_path_placeholder := ||VENDOR_DLKM-PATH-PH||
Yifan Hongf496f1b2020-07-15 16:52:59 -0700276_odm_dlkm_path_placeholder := ||ODM_DLKM-PATH-PH||
Ramji Jiyani13a41372022-01-27 07:05:08 +0000277_system_dlkm_path_placeholder := ||SYSTEM_DLKM-PATH-PH||
Anton Hansson379b2ba2018-10-02 14:10:16 +0100278TARGET_COPY_OUT_VENDOR := $(_vendor_path_placeholder)
Petri Gyntherdc24d882021-03-02 23:54:08 -0800279TARGET_COPY_OUT_VENDOR_RAMDISK := vendor_ramdisk
Lucas Weif57333f2022-02-24 10:30:15 +0800280TARGET_COPY_OUT_VENDOR_KERNEL_RAMDISK := vendor_kernel_ramdisk
Anton Hansson379b2ba2018-10-02 14:10:16 +0100281TARGET_COPY_OUT_PRODUCT := $(_product_path_placeholder)
Justin Yun6151e3f2019-06-25 15:58:13 +0900282# TODO(b/135957588) TARGET_COPY_OUT_PRODUCT_SERVICES will copy the target to
283# product
284TARGET_COPY_OUT_PRODUCT_SERVICES := $(_product_path_placeholder)
285TARGET_COPY_OUT_SYSTEM_EXT := $(_system_ext_path_placeholder)
Anton Hansson379b2ba2018-10-02 14:10:16 +0100286TARGET_COPY_OUT_ODM := $(_odm_path_placeholder)
Yifan Hongcfb917a2020-05-07 14:58:20 -0700287TARGET_COPY_OUT_VENDOR_DLKM := $(_vendor_dlkm_path_placeholder)
Yifan Hongf496f1b2020-07-15 16:52:59 -0700288TARGET_COPY_OUT_ODM_DLKM := $(_odm_dlkm_path_placeholder)
Ramji Jiyani13a41372022-01-27 07:05:08 +0000289TARGET_COPY_OUT_SYSTEM_DLKM := $(_system_dlkm_path_placeholder)
Vishwath Mohand4dbf792017-05-16 14:27:34 -0700290
291# Returns the non-sanitized version of the path provided in $1.
292define get_non_asan_path
293$(patsubst $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/%,$(PRODUCT_OUT)/%,$1)
294endef
295
Igor Murashkin9d4639c2017-06-15 10:41:02 -0700296#################################################################
297# Set up minimal BOOTCLASSPATH list of jars to build/execute
298# java code with dalvikvm/art.
Martin Stjernholm743513c2021-07-05 20:53:57 +0100299# Jars present in the ART apex. These should match exactly the list of Java
300# libraries in art-bootclasspath-fragment. The APEX variant name
301# (com.android.art) is the same regardless which Soong module provides the ART
302# APEX. See the long comment in build/soong/java/dexprepopt_bootjars.go for
303# details.
Ulya Trafimovich4c69c2f2020-04-30 10:59:48 +0100304ART_APEX_JARS := \
305 com.android.art:core-oj \
306 com.android.art:core-libart \
Ulya Trafimovich4c69c2f2020-04-30 10:59:48 +0100307 com.android.art:okhttp \
308 com.android.art:bouncycastle \
309 com.android.art:apache-xml
Martin Stjernholmfa832282021-02-17 12:26:19 +0000310# With EMMA_INSTRUMENT_FRAMEWORK=true the Core libraries depend on jacoco.
311ifeq (true,$(EMMA_INSTRUMENT_FRAMEWORK))
312 ART_APEX_JARS += com.android.art:jacocoagent
313endif
Igor Murashkin9d4639c2017-06-15 10:41:02 -0700314#################################################################
315
Cole Faustf1f49bb2021-12-01 13:49:12 -0800316# Dumps all variables that match [A-Z][A-Z0-9_]* (with a few exceptions)
317# to the file at $(1). It is used to print only the variables that are
318# likely to be relevant to the product or board configuration.
Cole Faustc7226592022-01-12 21:20:07 -0800319# Soong config variables are dumped as $(call soong_config_set) calls
320# instead of the raw variable values, because mk2rbc can't read the
Cole Fausta1b215c2022-07-21 08:08:32 -0700321# raw ones. There is a final sed command on the output file to
322# remove leading spaces because I couldn't figure out how to remove
323# them in pure make code.
Cole Faustf1f49bb2021-12-01 13:49:12 -0800324define dump-variables-rbc
Cole Faust0a746002022-03-24 12:21:55 -0700325$(eval _dump_variables_rbc_excluded := \
Cole Faustec8316d2022-04-04 11:52:52 -0700326 BUILD_NUMBER \
327 DATE \
Cole Faust0a746002022-03-24 12:21:55 -0700328 LOCAL_PATH \
Cole Faustec8316d2022-04-04 11:52:52 -0700329 MAKEFILE_LIST \
330 PRODUCTS \
331 PRODUCT_COPY_OUT_% \
332 RBC_PRODUCT_CONFIG \
333 RBC_BOARD_CONFIG \
334 SOONG_% \
Joe Onorato964f4012023-05-06 12:29:01 -0700335 TARGET_RELEASE \
Cole Faust0a746002022-03-24 12:21:55 -0700336 TOPDIR \
337 TRACE_BEGIN_SOONG \
Cole Faustec8316d2022-04-04 11:52:52 -0700338 USER)
339$(file >$(OUT_DIR)/dump-variables-rbc-temp.txt,$(subst $(space),$(newline),$(sort $(filter-out $(_dump_variables_rbc_excluded),$(.VARIABLES)))))
Cole Faustf1f49bb2021-12-01 13:49:12 -0800340$(file >$(1),\
Cole Faust971ef8e2022-04-06 11:58:37 -0700341$(foreach v, $(shell grep -he "^[A-Z][A-Z0-9_]*$$" $(OUT_DIR)/dump-variables-rbc-temp.txt),\
Cole Faustc7226592022-01-12 21:20:07 -0800342$(v) := $(strip $($(v)))$(newline))\
Cole Faustec8316d2022-04-04 11:52:52 -0700343$(foreach ns,$(sort $(SOONG_CONFIG_NAMESPACES)),\
344$(foreach v,$(sort $(SOONG_CONFIG_$(ns))),\
Cole Faustc7226592022-01-12 21:20:07 -0800345$$(call soong_config_set,$(ns),$(v),$(SOONG_CONFIG_$(ns)_$(v)))$(newline))))
Cole Fausta1b215c2022-07-21 08:08:32 -0700346$(shell sed -i "s/^ *//g" $(1))
Cole Faustf1f49bb2021-12-01 13:49:12 -0800347endef
348
Ying Wang6aef0472014-07-23 20:20:49 -0700349# Read the product specs so we can get TARGET_DEVICE and other
Ryo Fujiicbb32662011-06-16 16:58:11 -0700350# variables that we need in order to locate the output files.
351include $(BUILD_SYSTEM)/product_config.mk
Jesse Wilsonce7d5022010-09-22 10:59:10 -0700352
Ying Wangd0244b32011-11-17 14:51:12 -0800353build_variant := $(filter-out eng user userdebug,$(TARGET_BUILD_VARIANT))
Ryo Fujiicbb32662011-06-16 16:58:11 -0700354ifneq ($(build_variant)-$(words $(TARGET_BUILD_VARIANT)),-1)
355$(warning bad TARGET_BUILD_VARIANT: $(TARGET_BUILD_VARIANT))
Ying Wangd0244b32011-11-17 14:51:12 -0800356$(error must be empty or one of: eng user userdebug)
Ryo Fujiicbb32662011-06-16 16:58:11 -0700357endif
The Android Open Source Project88b60792009-03-03 19:28:42 -0800358
Ying Wang7ba7d7f2014-09-02 15:11:20 -0700359SDK_HOST_ARCH := x86
Anton Hansson19279852019-02-28 17:15:57 +0000360TARGET_OS := linux
Ying Wang7ba7d7f2014-09-02 15:11:20 -0700361
Cole Faust52e5d9c2021-11-30 11:24:33 -0800362# Some board configuration files use $(PRODUCT_OUT)
363TARGET_OUT_ROOT := $(OUT_DIR)/target
364TARGET_PRODUCT_OUT_ROOT := $(TARGET_OUT_ROOT)/product
365PRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE)
366.KATI_READONLY := TARGET_OUT_ROOT TARGET_PRODUCT_OUT_ROOT PRODUCT_OUT
367
Anton Hanssonbb76ce82019-02-26 12:34:03 +0000368include $(BUILD_SYSTEM)/board_config.mk
Jiyong Park641b6cc2018-01-15 14:48:40 +0900369
The Android Open Source Project88b60792009-03-03 19:28:42 -0800370# the target build type defaults to release
371ifneq ($(TARGET_BUILD_TYPE),debug)
372TARGET_BUILD_TYPE := release
373endif
374
Cole Faust7aa649a2023-11-03 12:27:43 -0700375include $(BUILD_SYSTEM)/product_validation_checks.mk
376
The Android Open Source Project88b60792009-03-03 19:28:42 -0800377# ---------------------------------------------------------------
378# figure out the output directories
379
Dan Willemsen60d9c672016-05-27 15:15:47 -0700380SOONG_OUT_DIR := $(OUT_DIR)/soong
381
Dan Willemsend6ed3682017-09-08 14:29:51 -0700382HOST_OUT_ROOT := $(OUT_DIR)/host
The Android Open Source Project88b60792009-03-03 19:28:42 -0800383
Cole Faust52e5d9c2021-11-30 11:24:33 -0800384.KATI_READONLY := SOONG_OUT_DIR HOST_OUT_ROOT
Dan Willemsen11677ed2018-03-28 14:33:10 -0700385
Ying Wang6feb6d52014-04-17 10:03:35 -0700386# We want to avoid two host bin directories in multilib build.
Dan Willemsend6ed3682017-09-08 14:29:51 -0700387HOST_OUT := $(HOST_OUT_ROOT)/$(HOST_OS)-$(HOST_PREBUILT_ARCH)
Colin Crossda166c52021-11-18 15:42:19 -0800388
389# Soong now installs to the same directory as Make.
390SOONG_HOST_OUT := $(HOST_OUT)
The Android Open Source Project88b60792009-03-03 19:28:42 -0800391
Jiyong Parkeccc4612020-07-13 19:19:27 +0900392HOST_CROSS_OUT := $(HOST_OUT_ROOT)/$(HOST_CROSS_OS)-$(HOST_CROSS_ARCH)
Raphael9ca16282010-04-16 17:50:09 -0700393
Dan Willemsen11677ed2018-03-28 14:33:10 -0700394.KATI_READONLY := HOST_OUT SOONG_HOST_OUT HOST_CROSS_OUT
395
The Android Open Source Project88b60792009-03-03 19:28:42 -0800396TARGET_COMMON_OUT_ROOT := $(TARGET_OUT_ROOT)/common
397HOST_COMMON_OUT_ROOT := $(HOST_OUT_ROOT)/common
398
Cole Faust52e5d9c2021-11-30 11:24:33 -0800399.KATI_READONLY := TARGET_COMMON_OUT_ROOT HOST_COMMON_OUT_ROOT
Dan Willemsen11677ed2018-03-28 14:33:10 -0700400
The Android Open Source Project88b60792009-03-03 19:28:42 -0800401OUT_DOCS := $(TARGET_COMMON_OUT_ROOT)/docs
Dan Albert303e6032017-10-04 10:20:20 -0700402OUT_NDK_DOCS := $(TARGET_COMMON_OUT_ROOT)/ndk-docs
Dan Willemsen11677ed2018-03-28 14:33:10 -0700403.KATI_READONLY := OUT_DOCS OUT_NDK_DOCS
The Android Open Source Project88b60792009-03-03 19:28:42 -0800404
Dan Willemsen11677ed2018-03-28 14:33:10 -0700405$(call KATI_obsolete,BUILD_OUT,Use HOST_OUT instead)
406
407BUILD_OUT_EXECUTABLES := $(HOST_OUT)/bin
Dan Willemsen60d9c672016-05-27 15:15:47 -0700408SOONG_HOST_OUT_EXECUTABLES := $(SOONG_HOST_OUT)/bin
Dan Willemsen11677ed2018-03-28 14:33:10 -0700409.KATI_READONLY := BUILD_OUT_EXECUTABLES SOONG_HOST_OUT_EXECUTABLES
Raphael9ca16282010-04-16 17:50:09 -0700410
Ying Wangc6349742014-01-13 16:14:20 -0800411HOST_OUT_EXECUTABLES := $(HOST_OUT)/bin
Ying Wang36ef50f2014-06-30 17:06:21 -0700412HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib64
Ivan Lozanod62e7122019-08-27 11:23:35 -0700413HOST_OUT_DYLIB_LIBRARIES := $(HOST_OUT)/lib64
Dan Willemsenc6e194f2016-02-13 00:19:40 -0800414HOST_OUT_RENDERSCRIPT_BITCODE := $(HOST_OUT_SHARED_LIBRARIES)
Ying Wangc6349742014-01-13 16:14:20 -0800415HOST_OUT_JAVA_LIBRARIES := $(HOST_OUT)/framework
Joe Onorato64d85d02009-04-09 19:31:12 -0700416HOST_OUT_SDK_ADDON := $(HOST_OUT)/sdk_addon
Dan Willemsen7fe992c2016-03-02 13:54:51 -0800417HOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest64
Ryan Campbell81c9d292016-09-12 13:56:50 -0700418HOST_OUT_COVERAGE := $(HOST_OUT)/coverage
Colin Crosse887ccb2018-03-16 22:09:50 -0700419HOST_OUT_TESTCASES := $(HOST_OUT)/testcases
Spandan Dasc7271c02024-09-18 20:49:25 +0000420HOST_OUT_ETC := $(HOST_OUT)/etc
Dan Willemsen11677ed2018-03-28 14:33:10 -0700421.KATI_READONLY := \
422 HOST_OUT_EXECUTABLES \
423 HOST_OUT_SHARED_LIBRARIES \
424 HOST_OUT_RENDERSCRIPT_BITCODE \
425 HOST_OUT_JAVA_LIBRARIES \
426 HOST_OUT_SDK_ADDON \
427 HOST_OUT_NATIVE_TESTS \
428 HOST_OUT_COVERAGE \
Spandan Dasc7271c02024-09-18 20:49:25 +0000429 HOST_OUT_TESTCASES \
430 HOST_OUT_ETC
The Android Open Source Project88b60792009-03-03 19:28:42 -0800431
Dan Willemsen057aaea2015-08-14 12:59:50 -0700432HOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT)/bin
433HOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib
Dan Willemsen7fe992c2016-03-02 13:54:51 -0800434HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest
Ryan Campbell81c9d292016-09-12 13:56:50 -0700435HOST_CROSS_OUT_COVERAGE := $(HOST_CROSS_OUT)/coverage
Colin Crosse887ccb2018-03-16 22:09:50 -0700436HOST_CROSS_OUT_TESTCASES := $(HOST_CROSS_OUT)/testcases
Dan Willemsen11677ed2018-03-28 14:33:10 -0700437.KATI_READONLY := \
438 HOST_CROSS_OUT_EXECUTABLES \
439 HOST_CROSS_OUT_SHARED_LIBRARIES \
440 HOST_CROSS_OUT_NATIVE_TESTS \
441 HOST_CROSS_OUT_COVERAGE \
442 HOST_CROSS_OUT_TESTCASES
Dan Willemsen057aaea2015-08-14 12:59:50 -0700443
The Android Open Source Project88b60792009-03-03 19:28:42 -0800444HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj
Ying Wangc6349742014-01-13 16:14:20 -0800445HOST_OUT_NOTICE_FILES := $(HOST_OUT_INTERMEDIATES)/NOTICE_FILES
The Android Open Source Project88b60792009-03-03 19:28:42 -0800446HOST_OUT_COMMON_INTERMEDIATES := $(HOST_COMMON_OUT_ROOT)/obj
Ying Wangec900ac2013-11-13 15:56:18 -0800447HOST_OUT_FAKE := $(HOST_OUT)/fake_packages
Dan Willemsen11677ed2018-03-28 14:33:10 -0700448.KATI_READONLY := \
449 HOST_OUT_INTERMEDIATES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700450 HOST_OUT_NOTICE_FILES \
451 HOST_OUT_COMMON_INTERMEDIATES \
452 HOST_OUT_FAKE
The Android Open Source Project88b60792009-03-03 19:28:42 -0800453
Dan Willemsen057aaea2015-08-14 12:59:50 -0700454HOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj
Dan Willemsen057aaea2015-08-14 12:59:50 -0700455HOST_CROSS_OUT_NOTICE_FILES := $(HOST_CROSS_OUT_INTERMEDIATES)/NOTICE_FILES
Dan Willemsen11677ed2018-03-28 14:33:10 -0700456.KATI_READONLY := \
457 HOST_CROSS_OUT_INTERMEDIATES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700458 HOST_CROSS_OUT_NOTICE_FILES
Dan Willemsen057aaea2015-08-14 12:59:50 -0700459
Colin Crossd8262642014-01-24 23:17:21 -0800460HOST_OUT_GEN := $(HOST_OUT)/gen
461HOST_OUT_COMMON_GEN := $(HOST_COMMON_OUT_ROOT)/gen
Dan Willemsen11677ed2018-03-28 14:33:10 -0700462.KATI_READONLY := \
463 HOST_OUT_GEN \
464 HOST_OUT_COMMON_GEN
Colin Crossd8262642014-01-24 23:17:21 -0800465
Dan Willemsen057aaea2015-08-14 12:59:50 -0700466HOST_CROSS_OUT_GEN := $(HOST_CROSS_OUT)/gen
Dan Willemsen11677ed2018-03-28 14:33:10 -0700467.KATI_READONLY := HOST_CROSS_OUT_GEN
Dan Willemsen057aaea2015-08-14 12:59:50 -0700468
Ying Wang6feb6d52014-04-17 10:03:35 -0700469# Out for HOST_2ND_ARCH
Ying Wang6feb6d52014-04-17 10:03:35 -0700470$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj32
Ying Wang966c1e02014-05-20 14:43:51 -0700471$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib
Ying Wang6feb6d52014-04-17 10:03:35 -0700472$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES := $(HOST_OUT_EXECUTABLES)
Dan Albertdc941372015-05-04 18:17:52 -0700473$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES := $(HOST_OUT_JAVA_LIBRARIES)
Dan Willemsen7fe992c2016-03-02 13:54:51 -0800474$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest
Simran Basi7166d1f2017-01-25 15:11:55 -0800475$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES := $(HOST_OUT_TESTCASES)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700476.KATI_READONLY := \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700477 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700478 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES \
479 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES \
480 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES \
481 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS \
482 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES
Ying Wang6feb6d52014-04-17 10:03:35 -0700483
Ying Wangc4595862014-06-10 12:04:56 -0700484# The default host library path.
485# It always points to the path where we build libraries in the default bitness.
Ying Wang5bac9622014-08-14 11:03:56 -0700486HOST_LIBRARY_PATH := $(HOST_OUT_SHARED_LIBRARIES)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700487.KATI_READONLY := HOST_LIBRARY_PATH
Ying Wang6feb6d52014-04-17 10:03:35 -0700488
Dan Willemsen9ecbf832016-02-05 16:20:19 -0800489# Out for HOST_CROSS_2ND_ARCH
Dan Willemsen9ecbf832016-02-05 16:20:19 -0800490$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj64
Dan Willemsen9ecbf832016-02-05 16:20:19 -0800491$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib64
492$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT_EXECUTABLES)
Dan Willemsen7fe992c2016-03-02 13:54:51 -0800493$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest64
Dan Willemsen11677ed2018-03-28 14:33:10 -0700494.KATI_READONLY := \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700495 $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700496 $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_SHARED_LIBRARIES \
497 $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES \
498 $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_NATIVE_TESTS
Dan Willemsen9ecbf832016-02-05 16:20:19 -0800499
Vishwath Mohand8eabaa2017-05-09 19:36:54 -0700500ifneq ($(filter address,$(SANITIZE_TARGET)),)
501 TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_asan
502else
503 TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj
504endif
Ying Wangc6349742014-01-13 16:14:20 -0800505TARGET_OUT_HEADERS := $(TARGET_OUT_INTERMEDIATES)/include
Dan Willemsen8cf6b652018-09-05 11:01:12 -0700506.KATI_READONLY := TARGET_OUT_INTERMEDIATES TARGET_OUT_HEADERS
Vishwath Mohand8eabaa2017-05-09 19:36:54 -0700507
508ifneq ($(filter address,$(SANITIZE_TARGET)),)
509 TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj_asan
510else
511 TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj
512endif
Dan Willemsen11677ed2018-03-28 14:33:10 -0700513.KATI_READONLY := TARGET_OUT_COMMON_INTERMEDIATES
The Android Open Source Project88b60792009-03-03 19:28:42 -0800514
Colin Crossd8262642014-01-24 23:17:21 -0800515TARGET_OUT_GEN := $(PRODUCT_OUT)/gen
516TARGET_OUT_COMMON_GEN := $(TARGET_COMMON_OUT_ROOT)/gen
Dan Willemsen11677ed2018-03-28 14:33:10 -0700517.KATI_READONLY := TARGET_OUT_GEN TARGET_OUT_COMMON_GEN
Colin Crossd8262642014-01-24 23:17:21 -0800518
Ying Wang2b6aaa32011-10-27 15:18:39 -0700519TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700520.KATI_READONLY := TARGET_OUT
Ivan Krasin74b32b82015-09-18 11:54:43 -0700521ifneq ($(filter address,$(SANITIZE_TARGET)),)
Vishwath Mohanb285c462017-03-29 15:32:04 -0700522target_out_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/system
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700523ifeq ($(SANITIZE_LITE),true)
524# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
525# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
526target_out_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/system
527else
528target_out_app_base := $(TARGET_OUT)
529endif
Evgenii Stepanov4d3d4142015-06-11 17:32:31 -0700530else
531target_out_shared_libraries_base := $(TARGET_OUT)
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700532target_out_app_base := $(TARGET_OUT)
Evgenii Stepanov4d3d4142015-06-11 17:32:31 -0700533endif
534
Ying Wangc6349742014-01-13 16:14:20 -0800535TARGET_OUT_EXECUTABLES := $(TARGET_OUT)/bin
536TARGET_OUT_OPTIONAL_EXECUTABLES := $(TARGET_OUT)/xbin
Ying Wang4b1c95d2014-07-08 17:07:36 -0700537ifeq ($(TARGET_IS_64_BIT),true)
Ying Wangc6349742014-01-13 16:14:20 -0800538# /system/lib always contains 32-bit libraries,
539# and /system/lib64 (if present) always contains 64-bit libraries.
Evgenii Stepanov4d3d4142015-06-11 17:32:31 -0700540TARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib64
Ying Wangc6349742014-01-13 16:14:20 -0800541else
Evgenii Stepanov4d3d4142015-06-11 17:32:31 -0700542TARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib
Ying Wangc6349742014-01-13 16:14:20 -0800543endif
Dan Willemsenc6e194f2016-02-13 00:19:40 -0800544TARGET_OUT_RENDERSCRIPT_BITCODE := $(TARGET_OUT_SHARED_LIBRARIES)
Ying Wangc6349742014-01-13 16:14:20 -0800545TARGET_OUT_JAVA_LIBRARIES := $(TARGET_OUT)/framework
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700546TARGET_OUT_APPS := $(target_out_app_base)/app
547TARGET_OUT_APPS_PRIVILEGED := $(target_out_app_base)/priv-app
The Android Open Source Project88b60792009-03-03 19:28:42 -0800548TARGET_OUT_KEYLAYOUT := $(TARGET_OUT)/usr/keylayout
549TARGET_OUT_KEYCHARS := $(TARGET_OUT)/usr/keychars
550TARGET_OUT_ETC := $(TARGET_OUT)/etc
Ying Wangc6349742014-01-13 16:14:20 -0800551TARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES
Dima Zavin531f5242010-09-27 17:37:17 -0700552TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages
Simran Basi7166d1f2017-01-25 15:11:55 -0800553TARGET_OUT_TESTCASES := $(PRODUCT_OUT)/testcases
Joe Onorato964f4012023-05-06 12:29:01 -0700554TARGET_OUT_FLAGS := $(TARGET_OUT_INTERMEDIATES)/FLAGS
555
Dan Willemsen11677ed2018-03-28 14:33:10 -0700556.KATI_READONLY := \
557 TARGET_OUT_EXECUTABLES \
558 TARGET_OUT_OPTIONAL_EXECUTABLES \
559 TARGET_OUT_SHARED_LIBRARIES \
560 TARGET_OUT_RENDERSCRIPT_BITCODE \
561 TARGET_OUT_JAVA_LIBRARIES \
562 TARGET_OUT_APPS \
563 TARGET_OUT_APPS_PRIVILEGED \
564 TARGET_OUT_KEYLAYOUT \
565 TARGET_OUT_KEYCHARS \
566 TARGET_OUT_ETC \
567 TARGET_OUT_NOTICE_FILES \
568 TARGET_OUT_FAKE \
Joe Onorato964f4012023-05-06 12:29:01 -0700569 TARGET_OUT_TESTCASES \
570 TARGET_OUT_FLAGS
The Android Open Source Project88b60792009-03-03 19:28:42 -0800571
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700572ifeq ($(SANITIZE_LITE),true)
573# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
574# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
575TARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_OTHER)
576else
Alex Light4e358ab2016-06-16 14:47:10 -0700577TARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_OTHER)
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700578endif
Dan Willemsen11677ed2018-03-28 14:33:10 -0700579.KATI_READONLY := TARGET_OUT_SYSTEM_OTHER
Alex Light4e358ab2016-06-16 14:47:10 -0700580
Ying Wange1d44c32013-12-27 11:09:36 -0800581# Out for TARGET_2ND_ARCH
Ying Wangc4595862014-06-10 12:04:56 -0700582TARGET_2ND_ARCH_MODULE_SUFFIX := $(HOST_2ND_ARCH_MODULE_SUFFIX)
Anton Hansson19279852019-02-28 17:15:57 +0000583.KATI_READONLY := TARGET_2ND_ARCH_MODULE_SUFFIX
Vishwath Mohand8eabaa2017-05-09 19:36:54 -0700584
585ifneq ($(filter address,$(SANITIZE_TARGET)),)
586 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)_asan
587else
588 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)
589endif
Evgenii Stepanov4d3d4142015-06-11 17:32:31 -0700590$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib
Dan Willemsenc6e194f2016-02-13 00:19:40 -0800591$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES)
Ying Wang72b01d62014-01-17 16:17:28 -0800592$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES := $(TARGET_OUT_EXECUTABLES)
Colin Crossd9574462014-01-24 13:37:07 -0800593$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS := $(TARGET_OUT_APPS)
594$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED := $(TARGET_OUT_APPS_PRIVILEGED)
Simran Basi7166d1f2017-01-25 15:11:55 -0800595$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES := $(TARGET_OUT_TESTCASES)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700596.KATI_READONLY := \
597 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700598 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES \
599 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_RENDERSCRIPT_BITCODE \
600 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES \
601 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS \
602 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED \
603 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES
Ying Wange1d44c32013-12-27 11:09:36 -0800604
Nelson Li1f8357f2019-03-14 01:04:05 +0000605MODULE_CLASS_APPS := app
606MODULE_CLASS_EXECUTABLES := bin
607MODULE_CLASS_JAVA_LIBRARIES := framework
608MODULE_CLASS_NATIVE_TESTS := nativetest
609MODULE_CLASS_METRIC_TESTS := benchmarktest
Ying Wang2b6aaa32011-10-27 15:18:39 -0700610TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)
Ying Wangc6349742014-01-13 16:14:20 -0800611TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES)
612TARGET_OUT_DATA_SHARED_LIBRARIES := $(TARGET_OUT_SHARED_LIBRARIES)
613TARGET_OUT_DATA_JAVA_LIBRARIES := $(TARGET_OUT_DATA)/framework
614TARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA)/app
The Android Open Source Project88b60792009-03-03 19:28:42 -0800615TARGET_OUT_DATA_KEYLAYOUT := $(TARGET_OUT_KEYLAYOUT)
616TARGET_OUT_DATA_KEYCHARS := $(TARGET_OUT_KEYCHARS)
617TARGET_OUT_DATA_ETC := $(TARGET_OUT_ETC)
Ying Wang4b1c95d2014-07-08 17:07:36 -0700618ifeq ($(TARGET_IS_64_BIT),true)
619TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest64
Julien Desprez188a1dd2016-04-12 10:22:06 +0100620TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest64
Steven Morelandcbfba702017-07-11 14:59:30 -0700621TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest64$(TARGET_VENDOR_TEST_SUFFIX)
622TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest64$(TARGET_VENDOR_TEST_SUFFIX)
Ying Wang4b1c95d2014-07-08 17:07:36 -0700623else
Ying Wang4c681742010-07-20 11:08:47 -0700624TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest
Julien Desprez188a1dd2016-04-12 10:22:06 +0100625TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest
Steven Morelandcbfba702017-07-11 14:59:30 -0700626TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_TEST_SUFFIX)
627TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX)
Ying Wang4b1c95d2014-07-08 17:07:36 -0700628endif
Nelson Li1f8357f2019-03-14 01:04:05 +0000629MODULE_CLASS_FAKE := fake_packages
Tsu Chiang Chuang40da8832012-07-13 13:47:09 -0700630TARGET_OUT_DATA_FAKE := $(TARGET_OUT_DATA)/fake_packages
Dan Willemsen11677ed2018-03-28 14:33:10 -0700631.KATI_READONLY := \
632 TARGET_OUT_DATA \
633 TARGET_OUT_DATA_EXECUTABLES \
634 TARGET_OUT_DATA_SHARED_LIBRARIES \
635 TARGET_OUT_DATA_JAVA_LIBRARIES \
636 TARGET_OUT_DATA_APPS \
637 TARGET_OUT_DATA_KEYLAYOUT \
638 TARGET_OUT_DATA_KEYCHARS \
639 TARGET_OUT_DATA_ETC \
640 TARGET_OUT_DATA_NATIVE_TESTS \
641 TARGET_OUT_DATA_METRIC_TESTS \
642 TARGET_OUT_VENDOR_NATIVE_TESTS \
643 TARGET_OUT_VENDOR_METRIC_TESTS \
Nelson Li1f8357f2019-03-14 01:04:05 +0000644 TARGET_OUT_DATA_FAKE \
645 MODULE_CLASS_APPS \
646 MODULE_CLASS_EXECUTABLES \
647 MODULE_CLASS_JAVA_LIBRARIES \
648 MODULE_CLASS_NATIVE_TESTS \
649 MODULE_CLASS_METRIC_TESTS \
650 MODULE_CLASS_FAKE
The Android Open Source Project88b60792009-03-03 19:28:42 -0800651
Ying Wange3d06792014-01-23 15:09:04 -0800652$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_DATA_EXECUTABLES)
653$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES)
Colin Crossd9574462014-01-24 13:37:07 -0800654$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA_APPS)
Ying Wang4b1c95d2014-07-08 17:07:36 -0700655$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest
Julien Desprez188a1dd2016-04-12 10:22:06 +0100656$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest
Steven Morelandcbfba702017-07-11 14:59:30 -0700657$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_TEST_SUFFIX)
658$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700659.KATI_READONLY := \
660 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES \
661 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES \
662 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS \
663 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS \
664 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS \
665 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_NATIVE_TESTS \
666 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_METRIC_TESTS \
Ying Wange3d06792014-01-23 15:09:04 -0800667
Ying Wang9f8e8db2011-11-04 11:37:01 -0700668TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache
Dan Willemsen11677ed2018-03-28 14:33:10 -0700669.KATI_READONLY := TARGET_OUT_CACHE
Ying Wang9f8e8db2011-11-04 11:37:01 -0700670
Ying Wang2b6aaa32011-10-27 15:18:39 -0700671TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700672.KATI_READONLY := TARGET_OUT_VENDOR
Ivan Krasin74b32b82015-09-18 11:54:43 -0700673ifneq ($(filter address,$(SANITIZE_TARGET)),)
Anton Hanssonae9f1052018-10-02 13:16:05 +0100674target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_VENDOR)
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700675ifeq ($(SANITIZE_LITE),true)
676# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
677# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
Anton Hanssonae9f1052018-10-02 13:16:05 +0100678target_out_vendor_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_VENDOR)
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700679else
680target_out_vendor_app_base := $(TARGET_OUT_VENDOR)
681endif
Evgenii Stepanovbf140972015-06-30 14:02:02 -0700682else
683target_out_vendor_shared_libraries_base := $(TARGET_OUT_VENDOR)
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700684target_out_vendor_app_base := $(TARGET_OUT_VENDOR)
Evgenii Stepanovbf140972015-06-30 14:02:02 -0700685endif
686
Ying Wangc6349742014-01-13 16:14:20 -0800687TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR)/bin
688TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES := $(TARGET_OUT_VENDOR)/xbin
Ying Wang4b1c95d2014-07-08 17:07:36 -0700689ifeq ($(TARGET_IS_64_BIT),true)
Evgenii Stepanovbf140972015-06-30 14:02:02 -0700690TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib64
Ying Wangc6349742014-01-13 16:14:20 -0800691else
Evgenii Stepanovbf140972015-06-30 14:02:02 -0700692TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib
Ying Wangc6349742014-01-13 16:14:20 -0800693endif
Miao Wang57be5642017-03-01 19:39:19 -0800694TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE := $(TARGET_OUT_VENDOR_SHARED_LIBRARIES)
Ying Wangc6349742014-01-13 16:14:20 -0800695TARGET_OUT_VENDOR_JAVA_LIBRARIES := $(TARGET_OUT_VENDOR)/framework
Andreas Gampe4ed21d12017-06-16 10:24:54 -0700696TARGET_OUT_VENDOR_APPS := $(target_out_vendor_app_base)/app
697TARGET_OUT_VENDOR_APPS_PRIVILEGED := $(target_out_vendor_app_base)/priv-app
Ying Wang8f779362011-09-13 13:57:26 -0700698TARGET_OUT_VENDOR_ETC := $(TARGET_OUT_VENDOR)/etc
Cole Faust976a52c2023-10-03 12:58:27 -0700699TARGET_OUT_VENDOR_FAKE := $(PRODUCT_OUT)/vendor_fake_packages
Dan Willemsen11677ed2018-03-28 14:33:10 -0700700.KATI_READONLY := \
701 TARGET_OUT_VENDOR_EXECUTABLES \
702 TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES \
703 TARGET_OUT_VENDOR_SHARED_LIBRARIES \
704 TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE \
705 TARGET_OUT_VENDOR_JAVA_LIBRARIES \
706 TARGET_OUT_VENDOR_APPS \
707 TARGET_OUT_VENDOR_APPS_PRIVILEGED \
Cole Faust976a52c2023-10-03 12:58:27 -0700708 TARGET_OUT_VENDOR_ETC \
709 TARGET_OUT_VENDOR_FAKE
Ying Wang8f779362011-09-13 13:57:26 -0700710
Ying Wange3d06792014-01-23 15:09:04 -0800711$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR_EXECUTABLES)
Andreas Gampecf6268f2016-06-30 20:20:38 -0700712$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib
Miao Wang57be5642017-03-01 19:39:19 -0800713$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)
Colin Crossd9574462014-01-24 13:37:07 -0800714$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR_APPS)
Hung-ying Tyan665e7402016-07-20 17:51:56 +0800715$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED := $(TARGET_OUT_VENDOR_APPS_PRIVILEGED)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700716.KATI_READONLY := \
717 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES \
718 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES \
719 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE \
720 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS \
721 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED
Ying Wang61d499b2014-01-15 16:02:16 -0800722
Ying Wangb8888432014-03-11 17:13:27 -0700723TARGET_OUT_OEM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_OEM)
Ying Wangf15250e2014-06-26 14:12:35 -0700724TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM)/bin
Ying Wang4540a852015-03-12 18:30:39 -0700725ifeq ($(TARGET_IS_64_BIT),true)
Ying Wangf15250e2014-06-26 14:12:35 -0700726TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib64
727else
728TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib
729endif
Ying Wangb8888432014-03-11 17:13:27 -0700730# We don't expect Java libraries in the oem.img.
731# TARGET_OUT_OEM_JAVA_LIBRARIES:= $(TARGET_OUT_OEM)/framework
Ying Wangf15250e2014-06-26 14:12:35 -0700732TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM)/app
Ying Wangb8888432014-03-11 17:13:27 -0700733TARGET_OUT_OEM_ETC := $(TARGET_OUT_OEM)/etc
Dan Willemsen11677ed2018-03-28 14:33:10 -0700734.KATI_READONLY := \
735 TARGET_OUT_OEM \
736 TARGET_OUT_OEM_EXECUTABLES \
737 TARGET_OUT_OEM_SHARED_LIBRARIES \
738 TARGET_OUT_OEM_APPS \
739 TARGET_OUT_OEM_ETC
Ying Wangb8888432014-03-11 17:13:27 -0700740
Ying Wangf15250e2014-06-26 14:12:35 -0700741$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM_EXECUTABLES)
742$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib
743$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM_APPS)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700744.KATI_READONLY := \
745 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES \
746 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES \
747 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS \
Ying Wangf15250e2014-06-26 14:12:35 -0700748
Ying Wang4540a852015-03-12 18:30:39 -0700749TARGET_OUT_ODM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ODM)
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800750ifneq ($(filter address,$(SANITIZE_TARGET)),)
Anton Hanssonae9f1052018-10-02 13:16:05 +0100751target_out_odm_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_OEM)
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800752ifeq ($(SANITIZE_LITE),true)
753# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
754# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
Anton Hanssonae9f1052018-10-02 13:16:05 +0100755target_out_odm_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_OEM)
Ying Wang4540a852015-03-12 18:30:39 -0700756else
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800757target_out_odm_app_base := $(TARGET_OUT_ODM)
Ying Wang4540a852015-03-12 18:30:39 -0700758endif
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800759else
760target_out_odm_shared_libraries_base := $(TARGET_OUT_ODM)
761target_out_odm_app_base := $(TARGET_OUT_ODM)
762endif
763
764TARGET_OUT_ODM_EXECUTABLES := $(TARGET_OUT_ODM)/bin
765TARGET_OUT_ODM_OPTIONAL_EXECUTABLES := $(TARGET_OUT_ODM)/xbin
766ifeq ($(TARGET_IS_64_BIT),true)
767TARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib64
768else
769TARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib
770endif
771TARGET_OUT_ODM_RENDERSCRIPT_BITCODE := $(TARGET_OUT_ODM_SHARED_LIBRARIES)
772TARGET_OUT_ODM_JAVA_LIBRARIES := $(TARGET_OUT_ODM)/framework
773TARGET_OUT_ODM_APPS := $(target_out_odm_app_base)/app
774TARGET_OUT_ODM_APPS_PRIVILEGED := $(target_out_odm_app_base)/priv-app
Ying Wang4540a852015-03-12 18:30:39 -0700775TARGET_OUT_ODM_ETC := $(TARGET_OUT_ODM)/etc
Alexander Koskovichd65b6252024-03-18 15:37:41 -0400776TARGET_OUT_ODM_FAKE := $(PRODUCT_OUT)/odm_fake_packages
Dan Willemsen11677ed2018-03-28 14:33:10 -0700777.KATI_READONLY := \
778 TARGET_OUT_ODM \
779 TARGET_OUT_ODM_EXECUTABLES \
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800780 TARGET_OUT_ODM_OPTIONAL_EXECUTABLES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700781 TARGET_OUT_ODM_SHARED_LIBRARIES \
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800782 TARGET_OUT_ODM_RENDERSCRIPT_BITCODE \
783 TARGET_OUT_ODM_JAVA_LIBRARIES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700784 TARGET_OUT_ODM_APPS \
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800785 TARGET_OUT_ODM_APPS_PRIVILEGED \
Alexander Koskovichd65b6252024-03-18 15:37:41 -0400786 TARGET_OUT_ODM_ETC \
787 TARGET_OUT_ODM_FAKE
Ying Wang4540a852015-03-12 18:30:39 -0700788
789$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_EXECUTABLES := $(TARGET_OUT_ODM_EXECUTABLES)
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800790$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800791$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES)
Ying Wang4540a852015-03-12 18:30:39 -0700792$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS := $(TARGET_OUT_ODM_APPS)
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800793$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS_PRIVILEGED := $(TARGET_OUT_ODM_APPS_PRIVILEGED)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700794.KATI_READONLY := \
795 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_EXECUTABLES \
796 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES \
Bowgo Tsaid624fa62017-11-14 23:42:30 +0800797 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_RENDERSCRIPT_BITCODE \
798 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS \
799 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS_PRIVILEGED
Ying Wang4540a852015-03-12 18:30:39 -0700800
Yifan Hongcfb917a2020-05-07 14:58:20 -0700801TARGET_OUT_VENDOR_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_DLKM)
802
803TARGET_OUT_VENDOR_DLKM_ETC := $(TARGET_OUT_VENDOR_DLKM)/etc
804.KATI_READONLY := \
805 TARGET_OUT_VENDOR_DLKM_ETC
806
807# Unlike other partitions, vendor_dlkm should only contain kernel modules.
808TARGET_OUT_VENDOR_DLKM_EXECUTABLES :=
809TARGET_OUT_VENDOR_DLKM_OPTIONAL_EXECUTABLES :=
810TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES :=
811TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE :=
812TARGET_OUT_VENDOR_DLKM_JAVA_LIBRARIES :=
813TARGET_OUT_VENDOR_DLKM_APPS :=
814TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED :=
815$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_EXECUTABLES :=
816$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES :=
817$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE :=
818$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS :=
819$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED :=
820$(KATI_obsolete_var \
821 TARGET_OUT_VENDOR_DLKM_EXECUTABLES \
822 TARGET_OUT_VENDOR_DLKM_OPTIONAL_EXECUTABLES \
823 TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES \
824 TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE \
825 TARGET_OUT_VENDOR_DLKM_JAVA_LIBRARIES \
826 TARGET_OUT_VENDOR_DLKM_APPS \
827 TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED \
828 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_EXECUTABLES \
829 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES \
830 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE \
831 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS \
832 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED \
833 , vendor_dlkm should not contain any executables, libraries, or apps)
834
Yifan Hongf496f1b2020-07-15 16:52:59 -0700835TARGET_OUT_ODM_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ODM_DLKM)
836
837TARGET_OUT_ODM_DLKM_ETC := $(TARGET_OUT_ODM_DLKM)/etc
838.KATI_READONLY := \
839 TARGET_OUT_ODM_DLKM_ETC
840
841# Unlike other partitions, odm_dlkm should only contain kernel modules.
842TARGET_OUT_ODM_DLKM_EXECUTABLES :=
843TARGET_OUT_ODM_DLKM_OPTIONAL_EXECUTABLES :=
844TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES :=
845TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE :=
846TARGET_OUT_ODM_DLKM_JAVA_LIBRARIES :=
847TARGET_OUT_ODM_DLKM_APPS :=
848TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED :=
849$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_EXECUTABLES :=
850$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES :=
851$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE :=
852$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS :=
853$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED :=
854$(KATI_obsolete_var \
855 TARGET_OUT_ODM_DLKM_EXECUTABLES \
856 TARGET_OUT_ODM_DLKM_OPTIONAL_EXECUTABLES \
857 TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES \
858 TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE \
859 TARGET_OUT_ODM_DLKM_JAVA_LIBRARIES \
860 TARGET_OUT_ODM_DLKM_APPS \
861 TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED \
862 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_EXECUTABLES \
863 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES \
864 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE \
865 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS \
866 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED \
867 , odm_dlkm should not contain any executables, libraries, or apps)
868
Ramji Jiyani13a41372022-01-27 07:05:08 +0000869TARGET_OUT_SYSTEM_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_DLKM)
870
871# Unlike other partitions, system_dlkm should only contain kernel modules.
872TARGET_OUT_SYSTEM_DLKM_EXECUTABLES :=
873TARGET_OUT_SYSTEM_DLKM_OPTIONAL_EXECUTABLES :=
874TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES :=
875TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE :=
876TARGET_OUT_SYSTEM_DLKM_JAVA_LIBRARIES :=
877TARGET_OUT_SYSTEM_DLKM_APPS :=
878TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED :=
879$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_EXECUTABLES :=
880$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES :=
881$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE :=
882$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS :=
883$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED :=
884$(KATI_obsolete_var \
885 TARGET_OUT_SYSTEM_DLKM_EXECUTABLES \
886 TARGET_OUT_SYSTEM_DLKM_OPTIONAL_EXECUTABLES \
887 TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES \
888 TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE \
889 TARGET_OUT_SYSTEM_DLKM_JAVA_LIBRARIES \
890 TARGET_OUT_SYSTEM_DLKM_APPS \
891 TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED \
892 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_EXECUTABLES \
893 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES \
894 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE \
895 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS \
896 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED \
897 , system_dlkm should not contain any executables, libraries, or apps)
898
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900899TARGET_OUT_PRODUCT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_PRODUCT)
Doheon Lee09d9b902018-06-25 10:56:01 +0900900TARGET_OUT_PRODUCT_EXECUTABLES := $(TARGET_OUT_PRODUCT)/bin
Dan Willemsen11677ed2018-03-28 14:33:10 -0700901.KATI_READONLY := TARGET_OUT_PRODUCT
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900902ifneq ($(filter address,$(SANITIZE_TARGET)),)
Anton Hanssonae9f1052018-10-02 13:16:05 +0100903target_out_product_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT)
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900904ifeq ($(SANITIZE_LITE),true)
905# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
906# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
Anton Hanssonae9f1052018-10-02 13:16:05 +0100907target_out_product_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT)
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900908else
909target_out_product_app_base := $(TARGET_OUT_PRODUCT)
910endif
911else
Inseob Kim47c13522018-05-04 11:20:43 +0900912target_out_product_shared_libraries_base := $(TARGET_OUT_PRODUCT)
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900913target_out_product_app_base := $(TARGET_OUT_PRODUCT)
914endif
915
916ifeq ($(TARGET_IS_64_BIT),true)
917TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib64
918else
919TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib
920endif
Dan Willemsen11677ed2018-03-28 14:33:10 -0700921TARGET_OUT_PRODUCT_JAVA_LIBRARIES := $(TARGET_OUT_PRODUCT)/framework
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900922TARGET_OUT_PRODUCT_APPS := $(target_out_product_app_base)/app
923TARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(target_out_product_app_base)/priv-app
924TARGET_OUT_PRODUCT_ETC := $(TARGET_OUT_PRODUCT)/etc
Alexander Koskovichd65b6252024-03-18 15:37:41 -0400925TARGET_OUT_PRODUCT_FAKE := $(TARGET_OUT_PRODUCT)/product_fake_packages
Dan Willemsen11677ed2018-03-28 14:33:10 -0700926.KATI_READONLY := \
Doheon Lee09d9b902018-06-25 10:56:01 +0900927 TARGET_OUT_PRODUCT_EXECUTABLES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700928 TARGET_OUT_PRODUCT_SHARED_LIBRARIES \
929 TARGET_OUT_PRODUCT_JAVA_LIBRARIES \
930 TARGET_OUT_PRODUCT_APPS \
931 TARGET_OUT_PRODUCT_APPS_PRIVILEGED \
Alexander Koskovichd65b6252024-03-18 15:37:41 -0400932 TARGET_OUT_PRODUCT_ETC \
933 TARGET_OUT_PRODUCT_FAKE
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900934
Doheon Lee09d9b902018-06-25 10:56:01 +0900935$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_EXECUTABLES := $(TARGET_OUT_PRODUCT_EXECUTABLES)
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900936$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900937$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS := $(TARGET_OUT_PRODUCT_APPS)
938$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(TARGET_OUT_PRODUCT_APPS_PRIVILEGED)
Dan Willemsen11677ed2018-03-28 14:33:10 -0700939.KATI_READONLY := \
Doheon Lee09d9b902018-06-25 10:56:01 +0900940 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_EXECUTABLES \
Dan Willemsen11677ed2018-03-28 14:33:10 -0700941 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES \
942 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS \
943 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED
Jaekyun Seokb7735d82017-11-27 17:04:47 +0900944
Justin Yun6151e3f2019-06-25 15:58:13 +0900945TARGET_OUT_SYSTEM_EXT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_EXT)
Dario Freni5f681e12018-05-29 13:09:01 +0100946ifneq ($(filter address,$(SANITIZE_TARGET)),)
Justin Yun6151e3f2019-06-25 15:58:13 +0900947target_out_system_ext_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_EXT)
Dario Freni5f681e12018-05-29 13:09:01 +0100948ifeq ($(SANITIZE_LITE),true)
949# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
950# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
Justin Yun6151e3f2019-06-25 15:58:13 +0900951target_out_system_ext_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_EXT)
Dario Freni5f681e12018-05-29 13:09:01 +0100952else
Justin Yun6151e3f2019-06-25 15:58:13 +0900953target_out_system_ext_app_base := $(TARGET_OUT_SYSTEM_EXT)
Dario Freni5f681e12018-05-29 13:09:01 +0100954endif
955else
Justin Yun6151e3f2019-06-25 15:58:13 +0900956target_out_system_ext_shared_libraries_base := $(TARGET_OUT_SYSTEM_EXT)
957target_out_system_ext_app_base := $(TARGET_OUT_SYSTEM_EXT)
Dario Freni5f681e12018-05-29 13:09:01 +0100958endif
959
960ifeq ($(TARGET_IS_64_BIT),true)
Justin Yun6151e3f2019-06-25 15:58:13 +0900961TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib64
Dario Freni5f681e12018-05-29 13:09:01 +0100962else
Justin Yun6151e3f2019-06-25 15:58:13 +0900963TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib
Dario Freni5f681e12018-05-29 13:09:01 +0100964endif
Justin Yun6151e3f2019-06-25 15:58:13 +0900965TARGET_OUT_SYSTEM_EXT_JAVA_LIBRARIES:= $(TARGET_OUT_SYSTEM_EXT)/framework
966TARGET_OUT_SYSTEM_EXT_APPS := $(target_out_system_ext_app_base)/app
967TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED := $(target_out_system_ext_app_base)/priv-app
968TARGET_OUT_SYSTEM_EXT_ETC := $(TARGET_OUT_SYSTEM_EXT)/etc
Jeongik Cha6a5e9a22019-08-20 19:24:43 +0900969TARGET_OUT_SYSTEM_EXT_EXECUTABLES := $(TARGET_OUT_SYSTEM_EXT)/bin
Alexander Koskovichd65b6252024-03-18 15:37:41 -0400970TARGET_OUT_SYSTEM_EXT_FAKE := $(PRODUCT_OUT)/system_ext_fake_packages
Jeongik Cha6a5e9a22019-08-20 19:24:43 +0900971.KATI_READONLY := \
972 TARGET_OUT_SYSTEM_EXT_EXECUTABLES \
973 TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES \
974 TARGET_OUT_SYSTEM_EXT_JAVA_LIBRARIES \
975 TARGET_OUT_SYSTEM_EXT_APPS \
976 TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED \
Alexander Koskovichd65b6252024-03-18 15:37:41 -0400977 TARGET_OUT_SYSTEM_EXT_ETC \
978 TARGET_OUT_SYSTEM_EXT_FAKE
Dario Freni5f681e12018-05-29 13:09:01 +0100979
Jeongik Cha6a5e9a22019-08-20 19:24:43 +0900980$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_EXECUTABLES := $(TARGET_OUT_SYSTEM_EXT_EXECUTABLES)
Justin Yun6151e3f2019-06-25 15:58:13 +0900981$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib
Justin Yun6151e3f2019-06-25 15:58:13 +0900982$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS := $(TARGET_OUT_SYSTEM_EXT_APPS)
983$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED := $(TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED)
Jeongik Cha6a5e9a22019-08-20 19:24:43 +0900984.KATI_READONLY := \
985 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_EXECUTABLES \
986 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES \
987 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS \
988 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED
Dario Freni5f681e12018-05-29 13:09:01 +0100989
Steve Fungdfbab492015-09-24 18:12:33 -0700990TARGET_OUT_BREAKPAD := $(PRODUCT_OUT)/breakpad
Dan Willemsen11677ed2018-03-28 14:33:10 -0700991.KATI_READONLY := TARGET_OUT_BREAKPAD
Steve Fungdfbab492015-09-24 18:12:33 -0700992
The Android Open Source Project88b60792009-03-03 19:28:42 -0800993TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols
994TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin
995TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/lib
Colin Crossa58f8e02014-06-20 13:33:36 -0700996TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/$(TARGET_COPY_OUT_VENDOR)/lib
The Android Open Source Project88b60792009-03-03 19:28:42 -0800997TARGET_ROOT_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)
The Android Open Source Project88b60792009-03-03 19:28:42 -0800998TARGET_ROOT_OUT_BIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/bin
Ryan Campbell737bc022016-09-15 17:32:13 -0700999TARGET_OUT_COVERAGE := $(PRODUCT_OUT)/coverage
Dan Willemsen11677ed2018-03-28 14:33:10 -07001000.KATI_READONLY := \
1001 TARGET_OUT_UNSTRIPPED \
1002 TARGET_OUT_EXECUTABLES_UNSTRIPPED \
1003 TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED \
1004 TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED \
1005 TARGET_ROOT_OUT_UNSTRIPPED \
Dan Willemsen11677ed2018-03-28 14:33:10 -07001006 TARGET_ROOT_OUT_BIN_UNSTRIPPED \
1007 TARGET_OUT_COVERAGE
The Android Open Source Project88b60792009-03-03 19:28:42 -08001008
Tom Cherryd14b8952018-08-09 14:26:00 -07001009TARGET_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RAMDISK)
1010TARGET_RAMDISK_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)
Bowgo Tsai0013f552019-03-20 17:59:52 +08001011TARGET_DEBUG_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DEBUG_RAMDISK)
Bowgo Tsai6a683672020-02-14 19:00:15 +08001012TARGET_VENDOR_DEBUG_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_DEBUG_RAMDISK)
Bowgo Tsai5c40c712019-10-08 10:22:19 +08001013TARGET_TEST_HARNESS_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_TEST_HARNESS_RAMDISK)
Tom Cherryd14b8952018-08-09 14:26:00 -07001014
Ramji Jiyani10655232022-01-20 06:43:09 +00001015TARGET_SYSTEM_DLKM_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_DLKM)
1016.KATI_READONLY := TARGET_SYSTEM_DLKM_OUT
1017
Steve Mucklee1b10862019-07-10 10:49:37 -07001018TARGET_VENDOR_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_RAMDISK)
Lucas Weif57333f2022-02-24 10:30:15 +08001019TARGET_VENDOR_KERNEL_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_KERNEL_RAMDISK)
Steve Mucklee1b10862019-07-10 10:49:37 -07001020
Ying Wang2b6aaa32011-10-27 15:18:39 -07001021TARGET_ROOT_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ROOT)
The Android Open Source Project88b60792009-03-03 19:28:42 -08001022TARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin
The Android Open Source Project88b60792009-03-03 19:28:42 -08001023TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc
1024TARGET_ROOT_OUT_USR := $(TARGET_ROOT_OUT)/usr
Dan Willemsen11677ed2018-03-28 14:33:10 -07001025.KATI_READONLY := \
1026 TARGET_ROOT_OUT \
1027 TARGET_ROOT_OUT_BIN \
Dan Willemsen11677ed2018-03-28 14:33:10 -07001028 TARGET_ROOT_OUT_ETC \
1029 TARGET_ROOT_OUT_USR
The Android Open Source Project88b60792009-03-03 19:28:42 -08001030
Ying Wang2b6aaa32011-10-27 15:18:39 -07001031TARGET_RECOVERY_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RECOVERY)
The Android Open Source Project88b60792009-03-03 19:28:42 -08001032TARGET_RECOVERY_ROOT_OUT := $(TARGET_RECOVERY_OUT)/root
Dan Willemsen11677ed2018-03-28 14:33:10 -07001033.KATI_READONLY := \
1034 TARGET_RECOVERY_OUT \
1035 TARGET_RECOVERY_ROOT_OUT
The Android Open Source Project88b60792009-03-03 19:28:42 -08001036
1037TARGET_SYSLOADER_OUT := $(PRODUCT_OUT)/sysloader
1038TARGET_SYSLOADER_ROOT_OUT := $(TARGET_SYSLOADER_OUT)/root
1039TARGET_SYSLOADER_SYSTEM_OUT := $(TARGET_SYSLOADER_OUT)/root/system
Dan Willemsen11677ed2018-03-28 14:33:10 -07001040.KATI_READONLY := \
1041 TARGET_SYSLOADER_OUT \
1042 TARGET_SYSLOADER_ROOT_OUT \
1043 TARGET_SYSLOADER_SYSTEM_OUT
The Android Open Source Project88b60792009-03-03 19:28:42 -08001044
1045TARGET_INSTALLER_OUT := $(PRODUCT_OUT)/installer
1046TARGET_INSTALLER_DATA_OUT := $(TARGET_INSTALLER_OUT)/data
1047TARGET_INSTALLER_ROOT_OUT := $(TARGET_INSTALLER_OUT)/root
1048TARGET_INSTALLER_SYSTEM_OUT := $(TARGET_INSTALLER_OUT)/root/system
Dan Willemsen11677ed2018-03-28 14:33:10 -07001049.KATI_READONLY := \
1050 TARGET_INSTALLER_OUT \
1051 TARGET_INSTALLER_DATA_OUT \
1052 TARGET_INSTALLER_ROOT_OUT \
1053 TARGET_INSTALLER_SYSTEM_OUT
The Android Open Source Project88b60792009-03-03 19:28:42 -08001054
Dan Willemsen8447b812020-06-08 21:00:18 -07001055COMMON_MODULE_CLASSES := TARGET_NOTICE_FILES HOST_NOTICE_FILES HOST_JAVA_LIBRARIES
Ivan Lozanod62e7122019-08-27 11:23:35 -07001056PER_ARCH_MODULE_CLASSES := SHARED_LIBRARIES STATIC_LIBRARIES EXECUTABLES GYP RENDERSCRIPT_BITCODE NATIVE_TESTS HEADER_LIBRARIES RLIB_LIBRARIES DYLIB_LIBRARIES
Dan Willemsen11677ed2018-03-28 14:33:10 -07001057.KATI_READONLY := COMMON_MODULE_CLASSES PER_ARCH_MODULE_CLASSES
The Android Open Source Project88b60792009-03-03 19:28:42 -08001058
Dan Willemsen20f99a62017-10-12 01:35:14 -07001059ifeq ($(CALLED_FROM_SETUP),true)
Dan Willemsen0d255292017-02-18 10:32:13 -08001060PRINT_BUILD_CONFIG ?= true
The Android Open Source Project88b60792009-03-03 19:28:42 -08001061endif