xref: /aosp_15_r20/build/make/core/envsetup.mk (revision 9e94795a3d4ef5c1d47486f9a02bb378756cea8a)
1*9e94795aSAndroid Build Coastguard Worker# Variables we check:
2*9e94795aSAndroid Build Coastguard Worker#     HOST_BUILD_TYPE = { release debug }
3*9e94795aSAndroid Build Coastguard Worker#     TARGET_BUILD_TYPE = { release debug }
4*9e94795aSAndroid Build Coastguard Worker# and we output a bunch of variables, see the case statement at
5*9e94795aSAndroid Build Coastguard Worker# the bottom for the full list
6*9e94795aSAndroid Build Coastguard Worker#     OUT_DIR is also set to "out" if it's not already set.
7*9e94795aSAndroid Build Coastguard Worker#         this allows you to set it to somewhere else if you like
8*9e94795aSAndroid Build Coastguard Worker#     SCAN_EXCLUDE_DIRS is an optional, whitespace separated list of
9*9e94795aSAndroid Build Coastguard Worker#         directories that will also be excluded from full checkout tree
10*9e94795aSAndroid Build Coastguard Worker#         searches for source or make files, in addition to OUT_DIR.
11*9e94795aSAndroid Build Coastguard Worker#         This can be useful if you set OUT_DIR to be a different directory
12*9e94795aSAndroid Build Coastguard Worker#         than other outputs of your build system.
13*9e94795aSAndroid Build Coastguard Worker
14*9e94795aSAndroid Build Coastguard Worker# Returns all words in $1 up to and including $2
15*9e94795aSAndroid Build Coastguard Workerdefine find_and_earlier
16*9e94795aSAndroid Build Coastguard Worker  $(strip $(if $(1),
17*9e94795aSAndroid Build Coastguard Worker    $(firstword $(1))
18*9e94795aSAndroid Build Coastguard Worker    $(if $(filter $(firstword $(1)),$(2)),,
19*9e94795aSAndroid Build Coastguard Worker      $(call find_and_earlier,$(wordlist 2,$(words $(1)),$(1)),$(2)))))
20*9e94795aSAndroid Build Coastguard Workerendef
21*9e94795aSAndroid Build Coastguard Worker
22*9e94795aSAndroid Build Coastguard Worker#$(warning $(call find_and_earlier,A B C,A))
23*9e94795aSAndroid Build Coastguard Worker#$(warning $(call find_and_earlier,A B C,B))
24*9e94795aSAndroid Build Coastguard Worker#$(warning $(call find_and_earlier,A B C,C))
25*9e94795aSAndroid Build Coastguard Worker#$(warning $(call find_and_earlier,A B C,D))
26*9e94795aSAndroid Build Coastguard Worker
27*9e94795aSAndroid Build Coastguard Worker# Runs a starlark file, and sets all the variables in its top-level
28*9e94795aSAndroid Build Coastguard Worker# variables_to_export_to_make variable as make variables.
29*9e94795aSAndroid Build Coastguard Worker#
30*9e94795aSAndroid Build Coastguard Worker# In order to avoid running starlark every time the stamp file is checked, we use
31*9e94795aSAndroid Build Coastguard Worker# $(KATI_shell_no_rerun). Then, to make sure that we actually do rerun kati when
32*9e94795aSAndroid Build Coastguard Worker# modifying the starlark files, we add the starlark files to the kati stamp file with
33*9e94795aSAndroid Build Coastguard Worker# $(KATI_extra_file_deps).
34*9e94795aSAndroid Build Coastguard Worker#
35*9e94795aSAndroid Build Coastguard Worker# Arguments:
36*9e94795aSAndroid Build Coastguard Worker#  $(1): A single starlark file to use as the entrypoint
37*9e94795aSAndroid Build Coastguard Worker#  $(2): An optional list of starlark files to NOT include as kati dependencies.
38*9e94795aSAndroid Build Coastguard Worker#  $(3): An optional list of extra flags to pass to rbcrun
39*9e94795aSAndroid Build Coastguard Workerdefine run-starlark
40*9e94795aSAndroid Build Coastguard Worker$(eval _starlark_results := $(OUT_DIR)/starlark_results/$(subst /,_,$(1)).mk)
41*9e94795aSAndroid Build Coastguard Worker$(KATI_shell_no_rerun mkdir -p $(OUT_DIR)/starlark_results && $(OUT_DIR)/rbcrun --mode=make $(3) $(1) >$(_starlark_results) && touch -t 200001010000 $(_starlark_results))
42*9e94795aSAndroid Build Coastguard Worker$(if $(filter-out 0,$(.SHELLSTATUS)),$(error Starlark failed to run))
43*9e94795aSAndroid Build Coastguard Worker$(eval include $(_starlark_results))
44*9e94795aSAndroid Build Coastguard Worker$(KATI_extra_file_deps $(filter-out $(2),$(LOADED_STARLARK_FILES)))
45*9e94795aSAndroid Build Coastguard Worker$(eval LOADED_STARLARK_FILES :=)
46*9e94795aSAndroid Build Coastguard Worker$(eval _starlark_results :=)
47*9e94795aSAndroid Build Coastguard Workerendef
48*9e94795aSAndroid Build Coastguard Worker
49*9e94795aSAndroid Build Coastguard Worker# ---------------------------------------------------------------
50*9e94795aSAndroid Build Coastguard Worker# Release config
51*9e94795aSAndroid Build Coastguard Workerinclude $(BUILD_SYSTEM)/release_config.mk
52*9e94795aSAndroid Build Coastguard Worker
53*9e94795aSAndroid Build Coastguard Worker# ---------------------------------------------------------------
54*9e94795aSAndroid Build Coastguard Worker# Set up version information
55*9e94795aSAndroid Build Coastguard Workerinclude $(BUILD_SYSTEM)/version_util.mk
56*9e94795aSAndroid Build Coastguard Worker
57*9e94795aSAndroid Build Coastguard Worker# This used to be calculated, but is now fixed and not expected
58*9e94795aSAndroid Build Coastguard Worker# to change over time anymore. New code attempting to use a
59*9e94795aSAndroid Build Coastguard Worker# variable like IS_AT_LAST_* should instead use a
60*9e94795aSAndroid Build Coastguard Worker# build system flag.
61*9e94795aSAndroid Build Coastguard Worker
62*9e94795aSAndroid Build Coastguard WorkerENABLED_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"
63*9e94795aSAndroid Build Coastguard Worker
64*9e94795aSAndroid Build Coastguard Worker$(foreach v,$(ENABLED_VERSIONS), \
65*9e94795aSAndroid Build Coastguard Worker  $(eval IS_AT_LEAST_$(v) := true))
66*9e94795aSAndroid Build Coastguard Worker
67*9e94795aSAndroid Build Coastguard Worker# ---------------------------------------------------------------
68*9e94795aSAndroid Build Coastguard Worker# If you update the build system such that the environment setup
69*9e94795aSAndroid Build Coastguard Worker# or buildspec.mk need to be updated, increment this number, and
70*9e94795aSAndroid Build Coastguard Worker# people who haven't re-run those will have to do so before they
71*9e94795aSAndroid Build Coastguard Worker# can build.  Make sure to also update the corresponding value in
72*9e94795aSAndroid Build Coastguard Worker# buildspec.mk.default and envsetup.sh.
73*9e94795aSAndroid Build Coastguard WorkerCORRECT_BUILD_ENV_SEQUENCE_NUMBER := 13
74*9e94795aSAndroid Build Coastguard Worker
75*9e94795aSAndroid Build Coastguard Worker# ---------------------------------------------------------------
76*9e94795aSAndroid Build Coastguard Worker# The product defaults to generic on hardware
77*9e94795aSAndroid Build Coastguard Workerifeq ($(TARGET_PRODUCT),)
78*9e94795aSAndroid Build Coastguard WorkerTARGET_PRODUCT := aosp_arm64
79*9e94795aSAndroid Build Coastguard Workerendif
80*9e94795aSAndroid Build Coastguard Worker
81*9e94795aSAndroid Build Coastguard Worker
82*9e94795aSAndroid Build Coastguard Worker# the variant -- the set of files that are included for a build
83*9e94795aSAndroid Build Coastguard Workerifeq ($(strip $(TARGET_BUILD_VARIANT)),)
84*9e94795aSAndroid Build Coastguard WorkerTARGET_BUILD_VARIANT := eng
85*9e94795aSAndroid Build Coastguard Workerendif
86*9e94795aSAndroid Build Coastguard Worker
87*9e94795aSAndroid Build Coastguard WorkerTARGET_BUILD_APPS ?=
88*9e94795aSAndroid Build Coastguard WorkerTARGET_BUILD_UNBUNDLED_IMAGE ?=
89*9e94795aSAndroid Build Coastguard Worker
90*9e94795aSAndroid Build Coastguard Worker# Set to true for an unbundled build, i.e. a build without
91*9e94795aSAndroid Build Coastguard Worker# support for platform targets like the system image. This also
92*9e94795aSAndroid Build Coastguard Worker# disables consistency checks that only apply to full platform
93*9e94795aSAndroid Build Coastguard Worker# builds.
94*9e94795aSAndroid Build Coastguard WorkerTARGET_BUILD_UNBUNDLED ?=
95*9e94795aSAndroid Build Coastguard Worker
96*9e94795aSAndroid Build Coastguard Worker# TARGET_BUILD_APPS implies unbundled build, otherwise we default
97*9e94795aSAndroid Build Coastguard Worker# to bundled (i.e. platform targets such as the system image are
98*9e94795aSAndroid Build Coastguard Worker# included).
99*9e94795aSAndroid Build Coastguard Workerifneq ($(TARGET_BUILD_APPS),)
100*9e94795aSAndroid Build Coastguard Worker  TARGET_BUILD_UNBUNDLED := true
101*9e94795aSAndroid Build Coastguard Workerendif
102*9e94795aSAndroid Build Coastguard Worker
103*9e94795aSAndroid Build Coastguard Worker# TARGET_BUILD_UNBUNDLED_IMAGE also implies unbundled build.
104*9e94795aSAndroid Build Coastguard Worker# (i.e. it targets to only unbundled image, such as the vendor image,
105*9e94795aSAndroid Build Coastguard Worker# ,or the product image).
106*9e94795aSAndroid Build Coastguard Workerifneq ($(TARGET_BUILD_UNBUNDLED_IMAGE),)
107*9e94795aSAndroid Build Coastguard Worker  TARGET_BUILD_UNBUNDLED := true
108*9e94795aSAndroid Build Coastguard Workerendif
109*9e94795aSAndroid Build Coastguard Worker
110*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
111*9e94795aSAndroid Build Coastguard Worker  TARGET_PRODUCT \
112*9e94795aSAndroid Build Coastguard Worker  TARGET_BUILD_VARIANT \
113*9e94795aSAndroid Build Coastguard Worker  TARGET_BUILD_APPS \
114*9e94795aSAndroid Build Coastguard Worker  TARGET_BUILD_UNBUNDLED \
115*9e94795aSAndroid Build Coastguard Worker  TARGET_BUILD_UNBUNDLED_IMAGE \
116*9e94795aSAndroid Build Coastguard Worker
117*9e94795aSAndroid Build Coastguard Worker# ---------------------------------------------------------------
118*9e94795aSAndroid Build Coastguard Worker# Set up configuration for host machine.  We don't do cross-
119*9e94795aSAndroid Build Coastguard Worker# compiles except for arm, so the HOST is whatever we are
120*9e94795aSAndroid Build Coastguard Worker# running on
121*9e94795aSAndroid Build Coastguard Worker
122*9e94795aSAndroid Build Coastguard Worker# HOST_OS
123*9e94795aSAndroid Build Coastguard Workerifneq (,$(findstring Linux,$(UNAME)))
124*9e94795aSAndroid Build Coastguard Worker  HOST_OS := linux
125*9e94795aSAndroid Build Coastguard Workerendif
126*9e94795aSAndroid Build Coastguard Workerifneq (,$(findstring Darwin,$(UNAME)))
127*9e94795aSAndroid Build Coastguard Worker  HOST_OS := darwin
128*9e94795aSAndroid Build Coastguard Workerendif
129*9e94795aSAndroid Build Coastguard Worker
130*9e94795aSAndroid Build Coastguard Workerifeq ($(CALLED_FROM_SETUP),true)
131*9e94795aSAndroid Build Coastguard Worker  HOST_OS_EXTRA := $(shell uname -rsm)
132*9e94795aSAndroid Build Coastguard Worker  ifeq ($(HOST_OS),linux)
133*9e94795aSAndroid Build Coastguard Worker    ifneq ($(wildcard /etc/os-release),)
134*9e94795aSAndroid Build Coastguard Worker      HOST_OS_EXTRA += $(shell source /etc/os-release; echo $$PRETTY_NAME)
135*9e94795aSAndroid Build Coastguard Worker    endif
136*9e94795aSAndroid Build Coastguard Worker  else ifeq ($(HOST_OS),darwin)
137*9e94795aSAndroid Build Coastguard Worker    HOST_OS_EXTRA += $(shell sw_vers -productVersion)
138*9e94795aSAndroid Build Coastguard Worker  endif
139*9e94795aSAndroid Build Coastguard Worker  HOST_OS_EXTRA := $(subst $(space),-,$(HOST_OS_EXTRA))
140*9e94795aSAndroid Build Coastguard Workerendif
141*9e94795aSAndroid Build Coastguard Worker
142*9e94795aSAndroid Build Coastguard Worker# BUILD_OS is the real host doing the build.
143*9e94795aSAndroid Build Coastguard WorkerBUILD_OS := $(HOST_OS)
144*9e94795aSAndroid Build Coastguard Worker
145*9e94795aSAndroid Build Coastguard Worker# We can do the cross-build only on Linux
146*9e94795aSAndroid Build Coastguard Workerifeq ($(HOST_OS),linux)
147*9e94795aSAndroid Build Coastguard Worker  # Windows has been the default host_cross OS
148*9e94795aSAndroid Build Coastguard Worker  ifeq (,$(filter-out windows,$(HOST_CROSS_OS)))
149*9e94795aSAndroid Build Coastguard Worker    # We can only create static host binaries for Linux, so if static host
150*9e94795aSAndroid Build Coastguard Worker    # binaries are requested, turn off Windows cross-builds.
151*9e94795aSAndroid Build Coastguard Worker    ifeq ($(BUILD_HOST_static),)
152*9e94795aSAndroid Build Coastguard Worker      HOST_CROSS_OS := windows
153*9e94795aSAndroid Build Coastguard Worker      HOST_CROSS_ARCH := x86
154*9e94795aSAndroid Build Coastguard Worker      HOST_CROSS_2ND_ARCH := x86_64
155*9e94795aSAndroid Build Coastguard Worker      2ND_HOST_CROSS_IS_64_BIT := true
156*9e94795aSAndroid Build Coastguard Worker    endif
157*9e94795aSAndroid Build Coastguard Worker  else ifeq ($(HOST_CROSS_OS),linux_bionic)
158*9e94795aSAndroid Build Coastguard Worker    ifeq (,$(HOST_CROSS_ARCH))
159*9e94795aSAndroid Build Coastguard Worker      $(error HOST_CROSS_ARCH missing.)
160*9e94795aSAndroid Build Coastguard Worker    endif
161*9e94795aSAndroid Build Coastguard Worker  else
162*9e94795aSAndroid Build Coastguard Worker    $(error Unsupported HOST_CROSS_OS $(HOST_CROSS_OS))
163*9e94795aSAndroid Build Coastguard Worker  endif
164*9e94795aSAndroid Build Coastguard Workerelse ifeq ($(HOST_OS),darwin)
165*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_OS := darwin
166*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_ARCH := arm64
167*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_2ND_ARCH :=
168*9e94795aSAndroid Build Coastguard Workerendif
169*9e94795aSAndroid Build Coastguard Worker
170*9e94795aSAndroid Build Coastguard Workerifeq ($(HOST_OS),)
171*9e94795aSAndroid Build Coastguard Worker$(error Unable to determine HOST_OS from uname -sm: $(UNAME)!)
172*9e94795aSAndroid Build Coastguard Workerendif
173*9e94795aSAndroid Build Coastguard Worker
174*9e94795aSAndroid Build Coastguard Worker# HOST_ARCH
175*9e94795aSAndroid Build Coastguard Workerifneq (,$(findstring x86_64,$(UNAME)))
176*9e94795aSAndroid Build Coastguard Worker  HOST_ARCH := x86_64
177*9e94795aSAndroid Build Coastguard Worker  HOST_2ND_ARCH := x86
178*9e94795aSAndroid Build Coastguard Worker  HOST_IS_64_BIT := true
179*9e94795aSAndroid Build Coastguard Workerelse
180*9e94795aSAndroid Build Coastguard Workerifneq (,$(findstring i686,$(UNAME))$(findstring x86,$(UNAME)))
181*9e94795aSAndroid Build Coastguard Worker$(error Building on a 32-bit x86 host is not supported: $(UNAME)!)
182*9e94795aSAndroid Build Coastguard Workerendif
183*9e94795aSAndroid Build Coastguard Workerendif
184*9e94795aSAndroid Build Coastguard Worker
185*9e94795aSAndroid Build Coastguard Workerifeq ($(HOST_OS),darwin)
186*9e94795aSAndroid Build Coastguard Worker  # Mac no longer supports 32-bit executables
187*9e94795aSAndroid Build Coastguard Worker  HOST_2ND_ARCH :=
188*9e94795aSAndroid Build Coastguard Workerendif
189*9e94795aSAndroid Build Coastguard Worker
190*9e94795aSAndroid Build Coastguard WorkerHOST_2ND_ARCH_VAR_PREFIX := 2ND_
191*9e94795aSAndroid Build Coastguard WorkerHOST_2ND_ARCH_MODULE_SUFFIX := _32
192*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_2ND_ARCH_VAR_PREFIX := 2ND_
193*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_2ND_ARCH_MODULE_SUFFIX := _64
194*9e94795aSAndroid Build Coastguard WorkerTARGET_2ND_ARCH_VAR_PREFIX := 2ND_
195*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
196*9e94795aSAndroid Build Coastguard Worker  HOST_ARCH \
197*9e94795aSAndroid Build Coastguard Worker  HOST_2ND_ARCH \
198*9e94795aSAndroid Build Coastguard Worker  HOST_IS_64_BIT \
199*9e94795aSAndroid Build Coastguard Worker  HOST_2ND_ARCH_VAR_PREFIX \
200*9e94795aSAndroid Build Coastguard Worker  HOST_2ND_ARCH_MODULE_SUFFIX \
201*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_2ND_ARCH_VAR_PREFIX \
202*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_2ND_ARCH_MODULE_SUFFIX \
203*9e94795aSAndroid Build Coastguard Worker  TARGET_2ND_ARCH_VAR_PREFIX \
204*9e94795aSAndroid Build Coastguard Worker
205*9e94795aSAndroid Build Coastguard Workercombo_target := HOST_
206*9e94795aSAndroid Build Coastguard Workercombo_2nd_arch_prefix :=
207*9e94795aSAndroid Build Coastguard Workerinclude $(BUILD_COMBOS)/select.mk
208*9e94795aSAndroid Build Coastguard Worker
209*9e94795aSAndroid Build Coastguard Workerifdef HOST_2ND_ARCH
210*9e94795aSAndroid Build Coastguard Worker  combo_2nd_arch_prefix := $(HOST_2ND_ARCH_VAR_PREFIX)
211*9e94795aSAndroid Build Coastguard Worker  include $(BUILD_SYSTEM)/combo/select.mk
212*9e94795aSAndroid Build Coastguard Workerendif
213*9e94795aSAndroid Build Coastguard Worker
214*9e94795aSAndroid Build Coastguard Worker# Load the windows cross compiler under Linux
215*9e94795aSAndroid Build Coastguard Workerifdef HOST_CROSS_OS
216*9e94795aSAndroid Build Coastguard Worker  combo_target := HOST_CROSS_
217*9e94795aSAndroid Build Coastguard Worker  combo_2nd_arch_prefix :=
218*9e94795aSAndroid Build Coastguard Worker  include $(BUILD_SYSTEM)/combo/select.mk
219*9e94795aSAndroid Build Coastguard Worker
220*9e94795aSAndroid Build Coastguard Worker  ifdef HOST_CROSS_2ND_ARCH
221*9e94795aSAndroid Build Coastguard Worker    combo_2nd_arch_prefix := $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)
222*9e94795aSAndroid Build Coastguard Worker    include $(BUILD_SYSTEM)/combo/select.mk
223*9e94795aSAndroid Build Coastguard Worker  endif
224*9e94795aSAndroid Build Coastguard Workerendif
225*9e94795aSAndroid Build Coastguard Worker
226*9e94795aSAndroid Build Coastguard Worker# on windows, the tools have .exe at the end, and we depend on the
227*9e94795aSAndroid Build Coastguard Worker# host config stuff being done first
228*9e94795aSAndroid Build Coastguard Worker
229*9e94795aSAndroid Build Coastguard WorkerBUILD_ARCH := $(HOST_ARCH)
230*9e94795aSAndroid Build Coastguard WorkerBUILD_2ND_ARCH := $(HOST_2ND_ARCH)
231*9e94795aSAndroid Build Coastguard Worker
232*9e94795aSAndroid Build Coastguard Workerifeq ($(HOST_ARCH),)
233*9e94795aSAndroid Build Coastguard Worker$(error Unable to determine HOST_ARCH from uname -sm: $(UNAME)!)
234*9e94795aSAndroid Build Coastguard Workerendif
235*9e94795aSAndroid Build Coastguard Worker
236*9e94795aSAndroid Build Coastguard Worker# the host build defaults to release, and it must be release or debug
237*9e94795aSAndroid Build Coastguard Workerifeq ($(HOST_BUILD_TYPE),)
238*9e94795aSAndroid Build Coastguard WorkerHOST_BUILD_TYPE := release
239*9e94795aSAndroid Build Coastguard Workerendif
240*9e94795aSAndroid Build Coastguard Worker
241*9e94795aSAndroid Build Coastguard Workerifneq ($(HOST_BUILD_TYPE),release)
242*9e94795aSAndroid Build Coastguard Workerifneq ($(HOST_BUILD_TYPE),debug)
243*9e94795aSAndroid Build Coastguard Worker$(error HOST_BUILD_TYPE must be either release or debug, not '$(HOST_BUILD_TYPE)')
244*9e94795aSAndroid Build Coastguard Workerendif
245*9e94795aSAndroid Build Coastguard Workerendif
246*9e94795aSAndroid Build Coastguard Worker
247*9e94795aSAndroid Build Coastguard Worker# We don't want to move all the prebuilt host tools to a $(HOST_OS)-x86_64 dir.
248*9e94795aSAndroid Build Coastguard WorkerHOST_PREBUILT_ARCH := x86
249*9e94795aSAndroid Build Coastguard Worker# This is the standard way to name a directory containing prebuilt host
250*9e94795aSAndroid Build Coastguard Worker# objects. E.g., prebuilt/$(HOST_PREBUILT_TAG)/cc
251*9e94795aSAndroid Build Coastguard Worker# This must match the logic in get_host_prebuilt_prefix in envsetup.sh
252*9e94795aSAndroid Build Coastguard WorkerHOST_PREBUILT_TAG := $(BUILD_OS)-$(HOST_PREBUILT_ARCH)
253*9e94795aSAndroid Build Coastguard Worker
254*9e94795aSAndroid Build Coastguard Worker# TARGET_COPY_OUT_* are all relative to the staging directory, ie PRODUCT_OUT.
255*9e94795aSAndroid Build Coastguard Worker# Define them here so they can be used in product config files.
256*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_SYSTEM := system
257*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
258*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_SYSTEM_OTHER := system_other
259*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_DATA := data
260*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_ASAN := $(TARGET_COPY_OUT_DATA)/asan
261*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_OEM := oem
262*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_RAMDISK := ramdisk
263*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_DEBUG_RAMDISK := debug_ramdisk
264*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_VENDOR_DEBUG_RAMDISK := vendor_debug_ramdisk
265*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_TEST_HARNESS_RAMDISK := test_harness_ramdisk
266*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_ROOT := root
267*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_RECOVERY := recovery
268*9e94795aSAndroid Build Coastguard Worker# The directory used for optional partitions depend on the BoardConfig, so
269*9e94795aSAndroid Build Coastguard Worker# they're defined to placeholder values here and swapped after reading the
270*9e94795aSAndroid Build Coastguard Worker# BoardConfig, to be either the partition dir, or a subdir within 'system'.
271*9e94795aSAndroid Build Coastguard Worker_vendor_path_placeholder := ||VENDOR-PATH-PH||
272*9e94795aSAndroid Build Coastguard Worker_product_path_placeholder := ||PRODUCT-PATH-PH||
273*9e94795aSAndroid Build Coastguard Worker_system_ext_path_placeholder := ||SYSTEM_EXT-PATH-PH||
274*9e94795aSAndroid Build Coastguard Worker_odm_path_placeholder := ||ODM-PATH-PH||
275*9e94795aSAndroid Build Coastguard Worker_vendor_dlkm_path_placeholder := ||VENDOR_DLKM-PATH-PH||
276*9e94795aSAndroid Build Coastguard Worker_odm_dlkm_path_placeholder := ||ODM_DLKM-PATH-PH||
277*9e94795aSAndroid Build Coastguard Worker_system_dlkm_path_placeholder := ||SYSTEM_DLKM-PATH-PH||
278*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_VENDOR := $(_vendor_path_placeholder)
279*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_VENDOR_RAMDISK := vendor_ramdisk
280*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_VENDOR_KERNEL_RAMDISK := vendor_kernel_ramdisk
281*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_PRODUCT := $(_product_path_placeholder)
282*9e94795aSAndroid Build Coastguard Worker# TODO(b/135957588) TARGET_COPY_OUT_PRODUCT_SERVICES will copy the target to
283*9e94795aSAndroid Build Coastguard Worker# product
284*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_PRODUCT_SERVICES := $(_product_path_placeholder)
285*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_SYSTEM_EXT := $(_system_ext_path_placeholder)
286*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_ODM := $(_odm_path_placeholder)
287*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_VENDOR_DLKM := $(_vendor_dlkm_path_placeholder)
288*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_ODM_DLKM := $(_odm_dlkm_path_placeholder)
289*9e94795aSAndroid Build Coastguard WorkerTARGET_COPY_OUT_SYSTEM_DLKM := $(_system_dlkm_path_placeholder)
290*9e94795aSAndroid Build Coastguard Worker
291*9e94795aSAndroid Build Coastguard Worker# Returns the non-sanitized version of the path provided in $1.
292*9e94795aSAndroid Build Coastguard Workerdefine get_non_asan_path
293*9e94795aSAndroid Build Coastguard Worker$(patsubst $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/%,$(PRODUCT_OUT)/%,$1)
294*9e94795aSAndroid Build Coastguard Workerendef
295*9e94795aSAndroid Build Coastguard Worker
296*9e94795aSAndroid Build Coastguard Worker#################################################################
297*9e94795aSAndroid Build Coastguard Worker# Set up minimal BOOTCLASSPATH list of jars to build/execute
298*9e94795aSAndroid Build Coastguard Worker# java code with dalvikvm/art.
299*9e94795aSAndroid Build Coastguard Worker# Jars present in the ART apex. These should match exactly the list of Java
300*9e94795aSAndroid Build Coastguard Worker# libraries in art-bootclasspath-fragment. The APEX variant name
301*9e94795aSAndroid Build Coastguard Worker# (com.android.art) is the same regardless which Soong module provides the ART
302*9e94795aSAndroid Build Coastguard Worker# APEX. See the long comment in build/soong/java/dexprepopt_bootjars.go for
303*9e94795aSAndroid Build Coastguard Worker# details.
304*9e94795aSAndroid Build Coastguard WorkerART_APEX_JARS := \
305*9e94795aSAndroid Build Coastguard Worker    com.android.art:core-oj \
306*9e94795aSAndroid Build Coastguard Worker    com.android.art:core-libart \
307*9e94795aSAndroid Build Coastguard Worker    com.android.art:okhttp \
308*9e94795aSAndroid Build Coastguard Worker    com.android.art:bouncycastle \
309*9e94795aSAndroid Build Coastguard Worker    com.android.art:apache-xml
310*9e94795aSAndroid Build Coastguard Worker# With EMMA_INSTRUMENT_FRAMEWORK=true the Core libraries depend on jacoco.
311*9e94795aSAndroid Build Coastguard Workerifeq (true,$(EMMA_INSTRUMENT_FRAMEWORK))
312*9e94795aSAndroid Build Coastguard Worker  ART_APEX_JARS += com.android.art:jacocoagent
313*9e94795aSAndroid Build Coastguard Workerendif
314*9e94795aSAndroid Build Coastguard Worker#################################################################
315*9e94795aSAndroid Build Coastguard Worker
316*9e94795aSAndroid Build Coastguard Worker# Dumps all variables that match [A-Z][A-Z0-9_]* (with a few exceptions)
317*9e94795aSAndroid Build Coastguard Worker# to the file at $(1). It is used to print only the variables that are
318*9e94795aSAndroid Build Coastguard Worker# likely to be relevant to the product or board configuration.
319*9e94795aSAndroid Build Coastguard Worker# Soong config variables are dumped as $(call soong_config_set) calls
320*9e94795aSAndroid Build Coastguard Worker# instead of the raw variable values, because mk2rbc can't read the
321*9e94795aSAndroid Build Coastguard Worker# raw ones. There is a final sed command on the output file to
322*9e94795aSAndroid Build Coastguard Worker# remove leading spaces because I couldn't figure out how to remove
323*9e94795aSAndroid Build Coastguard Worker# them in pure make code.
324*9e94795aSAndroid Build Coastguard Workerdefine dump-variables-rbc
325*9e94795aSAndroid Build Coastguard Worker$(eval _dump_variables_rbc_excluded := \
326*9e94795aSAndroid Build Coastguard Worker  BUILD_NUMBER \
327*9e94795aSAndroid Build Coastguard Worker  DATE \
328*9e94795aSAndroid Build Coastguard Worker  LOCAL_PATH \
329*9e94795aSAndroid Build Coastguard Worker  MAKEFILE_LIST \
330*9e94795aSAndroid Build Coastguard Worker  PRODUCTS \
331*9e94795aSAndroid Build Coastguard Worker  PRODUCT_COPY_OUT_% \
332*9e94795aSAndroid Build Coastguard Worker  RBC_PRODUCT_CONFIG \
333*9e94795aSAndroid Build Coastguard Worker  RBC_BOARD_CONFIG \
334*9e94795aSAndroid Build Coastguard Worker  SOONG_% \
335*9e94795aSAndroid Build Coastguard Worker  TARGET_RELEASE \
336*9e94795aSAndroid Build Coastguard Worker  TOPDIR \
337*9e94795aSAndroid Build Coastguard Worker  TRACE_BEGIN_SOONG \
338*9e94795aSAndroid Build Coastguard Worker  USER)
339*9e94795aSAndroid Build Coastguard Worker$(file >$(OUT_DIR)/dump-variables-rbc-temp.txt,$(subst $(space),$(newline),$(sort $(filter-out $(_dump_variables_rbc_excluded),$(.VARIABLES)))))
340*9e94795aSAndroid Build Coastguard Worker$(file >$(1),\
341*9e94795aSAndroid Build Coastguard Worker$(foreach v, $(shell grep -he "^[A-Z][A-Z0-9_]*$$" $(OUT_DIR)/dump-variables-rbc-temp.txt),\
342*9e94795aSAndroid Build Coastguard Worker$(v) := $(strip $($(v)))$(newline))\
343*9e94795aSAndroid Build Coastguard Worker$(foreach ns,$(sort $(SOONG_CONFIG_NAMESPACES)),\
344*9e94795aSAndroid Build Coastguard Worker$(foreach v,$(sort $(SOONG_CONFIG_$(ns))),\
345*9e94795aSAndroid Build Coastguard Worker$$(call soong_config_set,$(ns),$(v),$(SOONG_CONFIG_$(ns)_$(v)))$(newline))))
346*9e94795aSAndroid Build Coastguard Worker$(shell sed -i "s/^ *//g" $(1))
347*9e94795aSAndroid Build Coastguard Workerendef
348*9e94795aSAndroid Build Coastguard Worker
349*9e94795aSAndroid Build Coastguard Worker# Read the product specs so we can get TARGET_DEVICE and other
350*9e94795aSAndroid Build Coastguard Worker# variables that we need in order to locate the output files.
351*9e94795aSAndroid Build Coastguard Workerinclude $(BUILD_SYSTEM)/product_config.mk
352*9e94795aSAndroid Build Coastguard Worker
353*9e94795aSAndroid Build Coastguard Workerbuild_variant := $(filter-out eng user userdebug,$(TARGET_BUILD_VARIANT))
354*9e94795aSAndroid Build Coastguard Workerifneq ($(build_variant)-$(words $(TARGET_BUILD_VARIANT)),-1)
355*9e94795aSAndroid Build Coastguard Worker$(warning bad TARGET_BUILD_VARIANT: $(TARGET_BUILD_VARIANT))
356*9e94795aSAndroid Build Coastguard Worker$(error must be empty or one of: eng user userdebug)
357*9e94795aSAndroid Build Coastguard Workerendif
358*9e94795aSAndroid Build Coastguard Worker
359*9e94795aSAndroid Build Coastguard WorkerSDK_HOST_ARCH := x86
360*9e94795aSAndroid Build Coastguard WorkerTARGET_OS := linux
361*9e94795aSAndroid Build Coastguard Worker
362*9e94795aSAndroid Build Coastguard Worker# Some board configuration files use $(PRODUCT_OUT)
363*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ROOT := $(OUT_DIR)/target
364*9e94795aSAndroid Build Coastguard WorkerTARGET_PRODUCT_OUT_ROOT := $(TARGET_OUT_ROOT)/product
365*9e94795aSAndroid Build Coastguard WorkerPRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE)
366*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_ROOT TARGET_PRODUCT_OUT_ROOT PRODUCT_OUT
367*9e94795aSAndroid Build Coastguard Worker
368*9e94795aSAndroid Build Coastguard Workerinclude $(BUILD_SYSTEM)/board_config.mk
369*9e94795aSAndroid Build Coastguard Worker
370*9e94795aSAndroid Build Coastguard Worker# the target build type defaults to release
371*9e94795aSAndroid Build Coastguard Workerifneq ($(TARGET_BUILD_TYPE),debug)
372*9e94795aSAndroid Build Coastguard WorkerTARGET_BUILD_TYPE := release
373*9e94795aSAndroid Build Coastguard Workerendif
374*9e94795aSAndroid Build Coastguard Worker
375*9e94795aSAndroid Build Coastguard Workerinclude $(BUILD_SYSTEM)/product_validation_checks.mk
376*9e94795aSAndroid Build Coastguard Worker
377*9e94795aSAndroid Build Coastguard Worker# ---------------------------------------------------------------
378*9e94795aSAndroid Build Coastguard Worker# figure out the output directories
379*9e94795aSAndroid Build Coastguard Worker
380*9e94795aSAndroid Build Coastguard WorkerSOONG_OUT_DIR := $(OUT_DIR)/soong
381*9e94795aSAndroid Build Coastguard Worker
382*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_ROOT := $(OUT_DIR)/host
383*9e94795aSAndroid Build Coastguard Worker
384*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := SOONG_OUT_DIR HOST_OUT_ROOT
385*9e94795aSAndroid Build Coastguard Worker
386*9e94795aSAndroid Build Coastguard Worker# We want to avoid two host bin directories in multilib build.
387*9e94795aSAndroid Build Coastguard WorkerHOST_OUT := $(HOST_OUT_ROOT)/$(HOST_OS)-$(HOST_PREBUILT_ARCH)
388*9e94795aSAndroid Build Coastguard Worker
389*9e94795aSAndroid Build Coastguard Worker# Soong now installs to the same directory as Make.
390*9e94795aSAndroid Build Coastguard WorkerSOONG_HOST_OUT := $(HOST_OUT)
391*9e94795aSAndroid Build Coastguard Worker
392*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT := $(HOST_OUT_ROOT)/$(HOST_CROSS_OS)-$(HOST_CROSS_ARCH)
393*9e94795aSAndroid Build Coastguard Worker
394*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := HOST_OUT SOONG_HOST_OUT HOST_CROSS_OUT
395*9e94795aSAndroid Build Coastguard Worker
396*9e94795aSAndroid Build Coastguard WorkerTARGET_COMMON_OUT_ROOT := $(TARGET_OUT_ROOT)/common
397*9e94795aSAndroid Build Coastguard WorkerHOST_COMMON_OUT_ROOT := $(HOST_OUT_ROOT)/common
398*9e94795aSAndroid Build Coastguard Worker
399*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_COMMON_OUT_ROOT HOST_COMMON_OUT_ROOT
400*9e94795aSAndroid Build Coastguard Worker
401*9e94795aSAndroid Build Coastguard WorkerOUT_DOCS := $(TARGET_COMMON_OUT_ROOT)/docs
402*9e94795aSAndroid Build Coastguard WorkerOUT_NDK_DOCS := $(TARGET_COMMON_OUT_ROOT)/ndk-docs
403*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := OUT_DOCS OUT_NDK_DOCS
404*9e94795aSAndroid Build Coastguard Worker
405*9e94795aSAndroid Build Coastguard Worker$(call KATI_obsolete,BUILD_OUT,Use HOST_OUT instead)
406*9e94795aSAndroid Build Coastguard Worker
407*9e94795aSAndroid Build Coastguard WorkerBUILD_OUT_EXECUTABLES := $(HOST_OUT)/bin
408*9e94795aSAndroid Build Coastguard WorkerSOONG_HOST_OUT_EXECUTABLES := $(SOONG_HOST_OUT)/bin
409*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := BUILD_OUT_EXECUTABLES SOONG_HOST_OUT_EXECUTABLES
410*9e94795aSAndroid Build Coastguard Worker
411*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_EXECUTABLES := $(HOST_OUT)/bin
412*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib64
413*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_DYLIB_LIBRARIES := $(HOST_OUT)/lib64
414*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_RENDERSCRIPT_BITCODE := $(HOST_OUT_SHARED_LIBRARIES)
415*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_JAVA_LIBRARIES := $(HOST_OUT)/framework
416*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_SDK_ADDON := $(HOST_OUT)/sdk_addon
417*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest64
418*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_COVERAGE := $(HOST_OUT)/coverage
419*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_TESTCASES := $(HOST_OUT)/testcases
420*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_ETC := $(HOST_OUT)/etc
421*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
422*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_EXECUTABLES \
423*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_SHARED_LIBRARIES \
424*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_RENDERSCRIPT_BITCODE \
425*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_JAVA_LIBRARIES \
426*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_SDK_ADDON \
427*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_NATIVE_TESTS \
428*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_COVERAGE \
429*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_TESTCASES \
430*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_ETC
431*9e94795aSAndroid Build Coastguard Worker
432*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT)/bin
433*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib
434*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest
435*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT_COVERAGE := $(HOST_CROSS_OUT)/coverage
436*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT_TESTCASES := $(HOST_CROSS_OUT)/testcases
437*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
438*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_OUT_EXECUTABLES \
439*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_OUT_SHARED_LIBRARIES \
440*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_OUT_NATIVE_TESTS \
441*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_OUT_COVERAGE \
442*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_OUT_TESTCASES
443*9e94795aSAndroid Build Coastguard Worker
444*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj
445*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_NOTICE_FILES := $(HOST_OUT_INTERMEDIATES)/NOTICE_FILES
446*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_COMMON_INTERMEDIATES := $(HOST_COMMON_OUT_ROOT)/obj
447*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_FAKE := $(HOST_OUT)/fake_packages
448*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
449*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_INTERMEDIATES \
450*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_NOTICE_FILES \
451*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_COMMON_INTERMEDIATES \
452*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_FAKE
453*9e94795aSAndroid Build Coastguard Worker
454*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj
455*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT_NOTICE_FILES := $(HOST_CROSS_OUT_INTERMEDIATES)/NOTICE_FILES
456*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
457*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_OUT_INTERMEDIATES \
458*9e94795aSAndroid Build Coastguard Worker  HOST_CROSS_OUT_NOTICE_FILES
459*9e94795aSAndroid Build Coastguard Worker
460*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_GEN := $(HOST_OUT)/gen
461*9e94795aSAndroid Build Coastguard WorkerHOST_OUT_COMMON_GEN := $(HOST_COMMON_OUT_ROOT)/gen
462*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
463*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_GEN \
464*9e94795aSAndroid Build Coastguard Worker  HOST_OUT_COMMON_GEN
465*9e94795aSAndroid Build Coastguard Worker
466*9e94795aSAndroid Build Coastguard WorkerHOST_CROSS_OUT_GEN := $(HOST_CROSS_OUT)/gen
467*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := HOST_CROSS_OUT_GEN
468*9e94795aSAndroid Build Coastguard Worker
469*9e94795aSAndroid Build Coastguard Worker# Out for HOST_2ND_ARCH
470*9e94795aSAndroid Build Coastguard Worker$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj32
471*9e94795aSAndroid Build Coastguard Worker$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib
472*9e94795aSAndroid Build Coastguard Worker$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES := $(HOST_OUT_EXECUTABLES)
473*9e94795aSAndroid Build Coastguard Worker$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES := $(HOST_OUT_JAVA_LIBRARIES)
474*9e94795aSAndroid Build Coastguard Worker$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest
475*9e94795aSAndroid Build Coastguard Worker$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES := $(HOST_OUT_TESTCASES)
476*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
477*9e94795aSAndroid Build Coastguard Worker  $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES \
478*9e94795aSAndroid Build Coastguard Worker  $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES \
479*9e94795aSAndroid Build Coastguard Worker  $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES \
480*9e94795aSAndroid Build Coastguard Worker  $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES \
481*9e94795aSAndroid Build Coastguard Worker  $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS \
482*9e94795aSAndroid Build Coastguard Worker  $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES
483*9e94795aSAndroid Build Coastguard Worker
484*9e94795aSAndroid Build Coastguard Worker# The default host library path.
485*9e94795aSAndroid Build Coastguard Worker# It always points to the path where we build libraries in the default bitness.
486*9e94795aSAndroid Build Coastguard WorkerHOST_LIBRARY_PATH := $(HOST_OUT_SHARED_LIBRARIES)
487*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := HOST_LIBRARY_PATH
488*9e94795aSAndroid Build Coastguard Worker
489*9e94795aSAndroid Build Coastguard Worker# Out for HOST_CROSS_2ND_ARCH
490*9e94795aSAndroid Build Coastguard Worker$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj64
491*9e94795aSAndroid Build Coastguard Worker$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib64
492*9e94795aSAndroid Build Coastguard Worker$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT_EXECUTABLES)
493*9e94795aSAndroid Build Coastguard Worker$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest64
494*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
495*9e94795aSAndroid Build Coastguard Worker  $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATES \
496*9e94795aSAndroid Build Coastguard Worker  $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_SHARED_LIBRARIES \
497*9e94795aSAndroid Build Coastguard Worker  $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES \
498*9e94795aSAndroid Build Coastguard Worker  $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_NATIVE_TESTS
499*9e94795aSAndroid Build Coastguard Worker
500*9e94795aSAndroid Build Coastguard Workerifneq ($(filter address,$(SANITIZE_TARGET)),)
501*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_asan
502*9e94795aSAndroid Build Coastguard Workerelse
503*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj
504*9e94795aSAndroid Build Coastguard Workerendif
505*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_HEADERS := $(TARGET_OUT_INTERMEDIATES)/include
506*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_INTERMEDIATES TARGET_OUT_HEADERS
507*9e94795aSAndroid Build Coastguard Worker
508*9e94795aSAndroid Build Coastguard Workerifneq ($(filter address,$(SANITIZE_TARGET)),)
509*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj_asan
510*9e94795aSAndroid Build Coastguard Workerelse
511*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj
512*9e94795aSAndroid Build Coastguard Workerendif
513*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_COMMON_INTERMEDIATES
514*9e94795aSAndroid Build Coastguard Worker
515*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_GEN := $(PRODUCT_OUT)/gen
516*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_COMMON_GEN := $(TARGET_COMMON_OUT_ROOT)/gen
517*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_GEN TARGET_OUT_COMMON_GEN
518*9e94795aSAndroid Build Coastguard Worker
519*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM)
520*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT
521*9e94795aSAndroid Build Coastguard Workerifneq ($(filter address,$(SANITIZE_TARGET)),)
522*9e94795aSAndroid Build Coastguard Workertarget_out_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/system
523*9e94795aSAndroid Build Coastguard Workerifeq ($(SANITIZE_LITE),true)
524*9e94795aSAndroid Build Coastguard Worker# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
525*9e94795aSAndroid Build Coastguard Worker# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
526*9e94795aSAndroid Build Coastguard Workertarget_out_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/system
527*9e94795aSAndroid Build Coastguard Workerelse
528*9e94795aSAndroid Build Coastguard Workertarget_out_app_base := $(TARGET_OUT)
529*9e94795aSAndroid Build Coastguard Workerendif
530*9e94795aSAndroid Build Coastguard Workerelse
531*9e94795aSAndroid Build Coastguard Workertarget_out_shared_libraries_base := $(TARGET_OUT)
532*9e94795aSAndroid Build Coastguard Workertarget_out_app_base := $(TARGET_OUT)
533*9e94795aSAndroid Build Coastguard Workerendif
534*9e94795aSAndroid Build Coastguard Worker
535*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_EXECUTABLES := $(TARGET_OUT)/bin
536*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_OPTIONAL_EXECUTABLES := $(TARGET_OUT)/xbin
537*9e94795aSAndroid Build Coastguard Workerifeq ($(TARGET_IS_64_BIT),true)
538*9e94795aSAndroid Build Coastguard Worker# /system/lib always contains 32-bit libraries,
539*9e94795aSAndroid Build Coastguard Worker# and /system/lib64 (if present) always contains 64-bit libraries.
540*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib64
541*9e94795aSAndroid Build Coastguard Workerelse
542*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib
543*9e94795aSAndroid Build Coastguard Workerendif
544*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_RENDERSCRIPT_BITCODE := $(TARGET_OUT_SHARED_LIBRARIES)
545*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_JAVA_LIBRARIES := $(TARGET_OUT)/framework
546*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_APPS := $(target_out_app_base)/app
547*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_APPS_PRIVILEGED := $(target_out_app_base)/priv-app
548*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_KEYLAYOUT := $(TARGET_OUT)/usr/keylayout
549*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_KEYCHARS := $(TARGET_OUT)/usr/keychars
550*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ETC := $(TARGET_OUT)/etc
551*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES
552*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages
553*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_TESTCASES := $(PRODUCT_OUT)/testcases
554*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_FLAGS := $(TARGET_OUT_INTERMEDIATES)/FLAGS
555*9e94795aSAndroid Build Coastguard Worker
556*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
557*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_EXECUTABLES \
558*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_OPTIONAL_EXECUTABLES \
559*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SHARED_LIBRARIES \
560*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_RENDERSCRIPT_BITCODE \
561*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_JAVA_LIBRARIES \
562*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_APPS \
563*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_APPS_PRIVILEGED \
564*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_KEYLAYOUT \
565*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_KEYCHARS \
566*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ETC \
567*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_NOTICE_FILES \
568*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_FAKE \
569*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_TESTCASES \
570*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_FLAGS
571*9e94795aSAndroid Build Coastguard Worker
572*9e94795aSAndroid Build Coastguard Workerifeq ($(SANITIZE_LITE),true)
573*9e94795aSAndroid Build Coastguard Worker# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
574*9e94795aSAndroid Build Coastguard Worker# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
575*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_OTHER)
576*9e94795aSAndroid Build Coastguard Workerelse
577*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_OTHER)
578*9e94795aSAndroid Build Coastguard Workerendif
579*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_SYSTEM_OTHER
580*9e94795aSAndroid Build Coastguard Worker
581*9e94795aSAndroid Build Coastguard Worker# Out for TARGET_2ND_ARCH
582*9e94795aSAndroid Build Coastguard WorkerTARGET_2ND_ARCH_MODULE_SUFFIX := $(HOST_2ND_ARCH_MODULE_SUFFIX)
583*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_2ND_ARCH_MODULE_SUFFIX
584*9e94795aSAndroid Build Coastguard Worker
585*9e94795aSAndroid Build Coastguard Workerifneq ($(filter address,$(SANITIZE_TARGET)),)
586*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)_asan
587*9e94795aSAndroid Build Coastguard Workerelse
588*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)
589*9e94795aSAndroid Build Coastguard Workerendif
590*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib
591*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES)
592*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES := $(TARGET_OUT_EXECUTABLES)
593*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS := $(TARGET_OUT_APPS)
594*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED := $(TARGET_OUT_APPS_PRIVILEGED)
595*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES := $(TARGET_OUT_TESTCASES)
596*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
597*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES \
598*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES \
599*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_RENDERSCRIPT_BITCODE \
600*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES \
601*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS \
602*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED \
603*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES
604*9e94795aSAndroid Build Coastguard Worker
605*9e94795aSAndroid Build Coastguard WorkerMODULE_CLASS_APPS := app
606*9e94795aSAndroid Build Coastguard WorkerMODULE_CLASS_EXECUTABLES := bin
607*9e94795aSAndroid Build Coastguard WorkerMODULE_CLASS_JAVA_LIBRARIES := framework
608*9e94795aSAndroid Build Coastguard WorkerMODULE_CLASS_NATIVE_TESTS := nativetest
609*9e94795aSAndroid Build Coastguard WorkerMODULE_CLASS_METRIC_TESTS := benchmarktest
610*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)
611*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES)
612*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_SHARED_LIBRARIES := $(TARGET_OUT_SHARED_LIBRARIES)
613*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_JAVA_LIBRARIES := $(TARGET_OUT_DATA)/framework
614*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA)/app
615*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_KEYLAYOUT := $(TARGET_OUT_KEYLAYOUT)
616*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_KEYCHARS := $(TARGET_OUT_KEYCHARS)
617*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_ETC := $(TARGET_OUT_ETC)
618*9e94795aSAndroid Build Coastguard Workerifeq ($(TARGET_IS_64_BIT),true)
619*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest64
620*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest64
621*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest64$(TARGET_VENDOR_TEST_SUFFIX)
622*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest64$(TARGET_VENDOR_TEST_SUFFIX)
623*9e94795aSAndroid Build Coastguard Workerelse
624*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest
625*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest
626*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_TEST_SUFFIX)
627*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX)
628*9e94795aSAndroid Build Coastguard Workerendif
629*9e94795aSAndroid Build Coastguard WorkerMODULE_CLASS_FAKE := fake_packages
630*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_DATA_FAKE := $(TARGET_OUT_DATA)/fake_packages
631*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
632*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA \
633*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_EXECUTABLES \
634*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_SHARED_LIBRARIES \
635*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_JAVA_LIBRARIES \
636*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_APPS \
637*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_KEYLAYOUT \
638*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_KEYCHARS \
639*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_ETC \
640*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_NATIVE_TESTS \
641*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_METRIC_TESTS \
642*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_NATIVE_TESTS \
643*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_METRIC_TESTS \
644*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_DATA_FAKE \
645*9e94795aSAndroid Build Coastguard Worker  MODULE_CLASS_APPS \
646*9e94795aSAndroid Build Coastguard Worker  MODULE_CLASS_EXECUTABLES \
647*9e94795aSAndroid Build Coastguard Worker  MODULE_CLASS_JAVA_LIBRARIES \
648*9e94795aSAndroid Build Coastguard Worker  MODULE_CLASS_NATIVE_TESTS \
649*9e94795aSAndroid Build Coastguard Worker  MODULE_CLASS_METRIC_TESTS \
650*9e94795aSAndroid Build Coastguard Worker  MODULE_CLASS_FAKE
651*9e94795aSAndroid Build Coastguard Worker
652*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_DATA_EXECUTABLES)
653*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES)
654*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA_APPS)
655*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest
656*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest
657*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_TEST_SUFFIX)
658*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX)
659*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
660*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES \
661*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES \
662*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS \
663*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS \
664*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS \
665*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_NATIVE_TESTS \
666*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_METRIC_TESTS \
667*9e94795aSAndroid Build Coastguard Worker
668*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_CACHE := $(PRODUCT_OUT)/cache
669*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_CACHE
670*9e94795aSAndroid Build Coastguard Worker
671*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)
672*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_VENDOR
673*9e94795aSAndroid Build Coastguard Workerifneq ($(filter address,$(SANITIZE_TARGET)),)
674*9e94795aSAndroid Build Coastguard Workertarget_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_VENDOR)
675*9e94795aSAndroid Build Coastguard Workerifeq ($(SANITIZE_LITE),true)
676*9e94795aSAndroid Build Coastguard Worker# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
677*9e94795aSAndroid Build Coastguard Worker# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
678*9e94795aSAndroid Build Coastguard Workertarget_out_vendor_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_VENDOR)
679*9e94795aSAndroid Build Coastguard Workerelse
680*9e94795aSAndroid Build Coastguard Workertarget_out_vendor_app_base := $(TARGET_OUT_VENDOR)
681*9e94795aSAndroid Build Coastguard Workerendif
682*9e94795aSAndroid Build Coastguard Workerelse
683*9e94795aSAndroid Build Coastguard Workertarget_out_vendor_shared_libraries_base := $(TARGET_OUT_VENDOR)
684*9e94795aSAndroid Build Coastguard Workertarget_out_vendor_app_base := $(TARGET_OUT_VENDOR)
685*9e94795aSAndroid Build Coastguard Workerendif
686*9e94795aSAndroid Build Coastguard Worker
687*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR)/bin
688*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES := $(TARGET_OUT_VENDOR)/xbin
689*9e94795aSAndroid Build Coastguard Workerifeq ($(TARGET_IS_64_BIT),true)
690*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib64
691*9e94795aSAndroid Build Coastguard Workerelse
692*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib
693*9e94795aSAndroid Build Coastguard Workerendif
694*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE := $(TARGET_OUT_VENDOR_SHARED_LIBRARIES)
695*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_JAVA_LIBRARIES := $(TARGET_OUT_VENDOR)/framework
696*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_APPS := $(target_out_vendor_app_base)/app
697*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_APPS_PRIVILEGED := $(target_out_vendor_app_base)/priv-app
698*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_ETC := $(TARGET_OUT_VENDOR)/etc
699*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_FAKE := $(PRODUCT_OUT)/vendor_fake_packages
700*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
701*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_EXECUTABLES \
702*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES \
703*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_SHARED_LIBRARIES \
704*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE \
705*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_JAVA_LIBRARIES \
706*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_APPS \
707*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_APPS_PRIVILEGED \
708*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_ETC \
709*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_FAKE
710*9e94795aSAndroid Build Coastguard Worker
711*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR_EXECUTABLES)
712*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib
713*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)
714*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR_APPS)
715*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED := $(TARGET_OUT_VENDOR_APPS_PRIVILEGED)
716*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
717*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES \
718*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES \
719*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE \
720*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS \
721*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED
722*9e94795aSAndroid Build Coastguard Worker
723*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_OEM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_OEM)
724*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM)/bin
725*9e94795aSAndroid Build Coastguard Workerifeq ($(TARGET_IS_64_BIT),true)
726*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib64
727*9e94795aSAndroid Build Coastguard Workerelse
728*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib
729*9e94795aSAndroid Build Coastguard Workerendif
730*9e94795aSAndroid Build Coastguard Worker# We don't expect Java libraries in the oem.img.
731*9e94795aSAndroid Build Coastguard Worker# TARGET_OUT_OEM_JAVA_LIBRARIES:= $(TARGET_OUT_OEM)/framework
732*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM)/app
733*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_OEM_ETC := $(TARGET_OUT_OEM)/etc
734*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
735*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_OEM \
736*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_OEM_EXECUTABLES \
737*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_OEM_SHARED_LIBRARIES \
738*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_OEM_APPS \
739*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_OEM_ETC
740*9e94795aSAndroid Build Coastguard Worker
741*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM_EXECUTABLES)
742*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib
743*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM_APPS)
744*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
745*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES \
746*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES \
747*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS \
748*9e94795aSAndroid Build Coastguard Worker
749*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ODM)
750*9e94795aSAndroid Build Coastguard Workerifneq ($(filter address,$(SANITIZE_TARGET)),)
751*9e94795aSAndroid Build Coastguard Workertarget_out_odm_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_OEM)
752*9e94795aSAndroid Build Coastguard Workerifeq ($(SANITIZE_LITE),true)
753*9e94795aSAndroid Build Coastguard Worker# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
754*9e94795aSAndroid Build Coastguard Worker# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
755*9e94795aSAndroid Build Coastguard Workertarget_out_odm_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_OEM)
756*9e94795aSAndroid Build Coastguard Workerelse
757*9e94795aSAndroid Build Coastguard Workertarget_out_odm_app_base := $(TARGET_OUT_ODM)
758*9e94795aSAndroid Build Coastguard Workerendif
759*9e94795aSAndroid Build Coastguard Workerelse
760*9e94795aSAndroid Build Coastguard Workertarget_out_odm_shared_libraries_base := $(TARGET_OUT_ODM)
761*9e94795aSAndroid Build Coastguard Workertarget_out_odm_app_base := $(TARGET_OUT_ODM)
762*9e94795aSAndroid Build Coastguard Workerendif
763*9e94795aSAndroid Build Coastguard Worker
764*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_EXECUTABLES := $(TARGET_OUT_ODM)/bin
765*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_OPTIONAL_EXECUTABLES := $(TARGET_OUT_ODM)/xbin
766*9e94795aSAndroid Build Coastguard Workerifeq ($(TARGET_IS_64_BIT),true)
767*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib64
768*9e94795aSAndroid Build Coastguard Workerelse
769*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib
770*9e94795aSAndroid Build Coastguard Workerendif
771*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_RENDERSCRIPT_BITCODE := $(TARGET_OUT_ODM_SHARED_LIBRARIES)
772*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_JAVA_LIBRARIES := $(TARGET_OUT_ODM)/framework
773*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_APPS := $(target_out_odm_app_base)/app
774*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_APPS_PRIVILEGED := $(target_out_odm_app_base)/priv-app
775*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_ETC := $(TARGET_OUT_ODM)/etc
776*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_FAKE := $(PRODUCT_OUT)/odm_fake_packages
777*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
778*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM \
779*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_EXECUTABLES \
780*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_OPTIONAL_EXECUTABLES \
781*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_SHARED_LIBRARIES \
782*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_RENDERSCRIPT_BITCODE \
783*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_JAVA_LIBRARIES \
784*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_APPS \
785*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_APPS_PRIVILEGED \
786*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_ETC \
787*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_FAKE
788*9e94795aSAndroid Build Coastguard Worker
789*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_EXECUTABLES := $(TARGET_OUT_ODM_EXECUTABLES)
790*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib
791*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES)
792*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS := $(TARGET_OUT_ODM_APPS)
793*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS_PRIVILEGED := $(TARGET_OUT_ODM_APPS_PRIVILEGED)
794*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
795*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_EXECUTABLES \
796*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES \
797*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_RENDERSCRIPT_BITCODE \
798*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS \
799*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS_PRIVILEGED
800*9e94795aSAndroid Build Coastguard Worker
801*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_DLKM)
802*9e94795aSAndroid Build Coastguard Worker
803*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM_ETC := $(TARGET_OUT_VENDOR_DLKM)/etc
804*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
805*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_DLKM_ETC
806*9e94795aSAndroid Build Coastguard Worker
807*9e94795aSAndroid Build Coastguard Worker# Unlike other partitions, vendor_dlkm should only contain kernel modules.
808*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM_EXECUTABLES :=
809*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM_OPTIONAL_EXECUTABLES :=
810*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES :=
811*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE :=
812*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM_JAVA_LIBRARIES :=
813*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM_APPS :=
814*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED :=
815*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_EXECUTABLES :=
816*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES :=
817*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE :=
818*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS :=
819*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED :=
820*9e94795aSAndroid Build Coastguard Worker$(KATI_obsolete_var \
821*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_VENDOR_DLKM_EXECUTABLES \
822*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_VENDOR_DLKM_OPTIONAL_EXECUTABLES \
823*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES \
824*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE \
825*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_VENDOR_DLKM_JAVA_LIBRARIES \
826*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_VENDOR_DLKM_APPS \
827*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED \
828*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_EXECUTABLES \
829*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES \
830*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE \
831*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS \
832*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED \
833*9e94795aSAndroid Build Coastguard Worker    , vendor_dlkm should not contain any executables, libraries, or apps)
834*9e94795aSAndroid Build Coastguard Worker
835*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ODM_DLKM)
836*9e94795aSAndroid Build Coastguard Worker
837*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM_ETC := $(TARGET_OUT_ODM_DLKM)/etc
838*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
839*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_ODM_DLKM_ETC
840*9e94795aSAndroid Build Coastguard Worker
841*9e94795aSAndroid Build Coastguard Worker# Unlike other partitions, odm_dlkm should only contain kernel modules.
842*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM_EXECUTABLES :=
843*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM_OPTIONAL_EXECUTABLES :=
844*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM_SHARED_LIBRARIES :=
845*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE :=
846*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM_JAVA_LIBRARIES :=
847*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM_APPS :=
848*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_ODM_DLKM_APPS_PRIVILEGED :=
849*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_EXECUTABLES :=
850*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES :=
851*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE :=
852*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS :=
853*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED :=
854*9e94795aSAndroid Build Coastguard Worker$(KATI_obsolete_var \
855*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_ODM_DLKM_EXECUTABLES \
856*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_ODM_DLKM_OPTIONAL_EXECUTABLES \
857*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES \
858*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE \
859*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_ODM_DLKM_JAVA_LIBRARIES \
860*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_ODM_DLKM_APPS \
861*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED \
862*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_EXECUTABLES \
863*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES \
864*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE \
865*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS \
866*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED \
867*9e94795aSAndroid Build Coastguard Worker    , odm_dlkm should not contain any executables, libraries, or apps)
868*9e94795aSAndroid Build Coastguard Worker
869*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_DLKM)
870*9e94795aSAndroid Build Coastguard Worker
871*9e94795aSAndroid Build Coastguard Worker# Unlike other partitions, system_dlkm should only contain kernel modules.
872*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_DLKM_EXECUTABLES :=
873*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_DLKM_OPTIONAL_EXECUTABLES :=
874*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES :=
875*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE :=
876*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_DLKM_JAVA_LIBRARIES :=
877*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_DLKM_APPS :=
878*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED :=
879*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_EXECUTABLES :=
880*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES :=
881*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE :=
882*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS :=
883*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED :=
884*9e94795aSAndroid Build Coastguard Worker$(KATI_obsolete_var \
885*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_SYSTEM_DLKM_EXECUTABLES \
886*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_SYSTEM_DLKM_OPTIONAL_EXECUTABLES \
887*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES \
888*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE \
889*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_SYSTEM_DLKM_JAVA_LIBRARIES \
890*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_SYSTEM_DLKM_APPS \
891*9e94795aSAndroid Build Coastguard Worker    TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED \
892*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_EXECUTABLES \
893*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES \
894*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE \
895*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS \
896*9e94795aSAndroid Build Coastguard Worker    $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED \
897*9e94795aSAndroid Build Coastguard Worker    , system_dlkm should not contain any executables, libraries, or apps)
898*9e94795aSAndroid Build Coastguard Worker
899*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_PRODUCT)
900*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT_EXECUTABLES := $(TARGET_OUT_PRODUCT)/bin
901*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_PRODUCT
902*9e94795aSAndroid Build Coastguard Workerifneq ($(filter address,$(SANITIZE_TARGET)),)
903*9e94795aSAndroid Build Coastguard Workertarget_out_product_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT)
904*9e94795aSAndroid Build Coastguard Workerifeq ($(SANITIZE_LITE),true)
905*9e94795aSAndroid Build Coastguard Worker# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
906*9e94795aSAndroid Build Coastguard Worker# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
907*9e94795aSAndroid Build Coastguard Workertarget_out_product_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT)
908*9e94795aSAndroid Build Coastguard Workerelse
909*9e94795aSAndroid Build Coastguard Workertarget_out_product_app_base := $(TARGET_OUT_PRODUCT)
910*9e94795aSAndroid Build Coastguard Workerendif
911*9e94795aSAndroid Build Coastguard Workerelse
912*9e94795aSAndroid Build Coastguard Workertarget_out_product_shared_libraries_base := $(TARGET_OUT_PRODUCT)
913*9e94795aSAndroid Build Coastguard Workertarget_out_product_app_base := $(TARGET_OUT_PRODUCT)
914*9e94795aSAndroid Build Coastguard Workerendif
915*9e94795aSAndroid Build Coastguard Worker
916*9e94795aSAndroid Build Coastguard Workerifeq ($(TARGET_IS_64_BIT),true)
917*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib64
918*9e94795aSAndroid Build Coastguard Workerelse
919*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib
920*9e94795aSAndroid Build Coastguard Workerendif
921*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT_JAVA_LIBRARIES := $(TARGET_OUT_PRODUCT)/framework
922*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT_APPS := $(target_out_product_app_base)/app
923*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(target_out_product_app_base)/priv-app
924*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT_ETC := $(TARGET_OUT_PRODUCT)/etc
925*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_PRODUCT_FAKE := $(TARGET_OUT_PRODUCT)/product_fake_packages
926*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
927*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_PRODUCT_EXECUTABLES \
928*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_PRODUCT_SHARED_LIBRARIES \
929*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_PRODUCT_JAVA_LIBRARIES \
930*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_PRODUCT_APPS \
931*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_PRODUCT_APPS_PRIVILEGED \
932*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_PRODUCT_ETC \
933*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_PRODUCT_FAKE
934*9e94795aSAndroid Build Coastguard Worker
935*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_EXECUTABLES := $(TARGET_OUT_PRODUCT_EXECUTABLES)
936*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib
937*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS := $(TARGET_OUT_PRODUCT_APPS)
938*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(TARGET_OUT_PRODUCT_APPS_PRIVILEGED)
939*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
940*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_EXECUTABLES \
941*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES \
942*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS \
943*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED
944*9e94795aSAndroid Build Coastguard Worker
945*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_EXT)
946*9e94795aSAndroid Build Coastguard Workerifneq ($(filter address,$(SANITIZE_TARGET)),)
947*9e94795aSAndroid Build Coastguard Workertarget_out_system_ext_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_EXT)
948*9e94795aSAndroid Build Coastguard Workerifeq ($(SANITIZE_LITE),true)
949*9e94795aSAndroid Build Coastguard Worker# When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not
950*9e94795aSAndroid Build Coastguard Worker# work with unsanitized app_process. For simplicity, generate APKs into /data/asan/.
951*9e94795aSAndroid Build Coastguard Workertarget_out_system_ext_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_EXT)
952*9e94795aSAndroid Build Coastguard Workerelse
953*9e94795aSAndroid Build Coastguard Workertarget_out_system_ext_app_base := $(TARGET_OUT_SYSTEM_EXT)
954*9e94795aSAndroid Build Coastguard Workerendif
955*9e94795aSAndroid Build Coastguard Workerelse
956*9e94795aSAndroid Build Coastguard Workertarget_out_system_ext_shared_libraries_base := $(TARGET_OUT_SYSTEM_EXT)
957*9e94795aSAndroid Build Coastguard Workertarget_out_system_ext_app_base := $(TARGET_OUT_SYSTEM_EXT)
958*9e94795aSAndroid Build Coastguard Workerendif
959*9e94795aSAndroid Build Coastguard Worker
960*9e94795aSAndroid Build Coastguard Workerifeq ($(TARGET_IS_64_BIT),true)
961*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib64
962*9e94795aSAndroid Build Coastguard Workerelse
963*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib
964*9e94795aSAndroid Build Coastguard Workerendif
965*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT_JAVA_LIBRARIES:= $(TARGET_OUT_SYSTEM_EXT)/framework
966*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT_APPS := $(target_out_system_ext_app_base)/app
967*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED := $(target_out_system_ext_app_base)/priv-app
968*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT_ETC := $(TARGET_OUT_SYSTEM_EXT)/etc
969*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT_EXECUTABLES := $(TARGET_OUT_SYSTEM_EXT)/bin
970*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SYSTEM_EXT_FAKE := $(PRODUCT_OUT)/system_ext_fake_packages
971*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
972*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SYSTEM_EXT_EXECUTABLES \
973*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES \
974*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SYSTEM_EXT_JAVA_LIBRARIES \
975*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SYSTEM_EXT_APPS \
976*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED \
977*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SYSTEM_EXT_ETC \
978*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SYSTEM_EXT_FAKE
979*9e94795aSAndroid Build Coastguard Worker
980*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_EXECUTABLES := $(TARGET_OUT_SYSTEM_EXT_EXECUTABLES)
981*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib
982*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS := $(TARGET_OUT_SYSTEM_EXT_APPS)
983*9e94795aSAndroid Build Coastguard Worker$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED := $(TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED)
984*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
985*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_EXECUTABLES \
986*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES \
987*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS \
988*9e94795aSAndroid Build Coastguard Worker  $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED
989*9e94795aSAndroid Build Coastguard Worker
990*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_BREAKPAD := $(PRODUCT_OUT)/breakpad
991*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_OUT_BREAKPAD
992*9e94795aSAndroid Build Coastguard Worker
993*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols
994*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin
995*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/lib
996*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/$(TARGET_COPY_OUT_VENDOR)/lib
997*9e94795aSAndroid Build Coastguard WorkerTARGET_ROOT_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)
998*9e94795aSAndroid Build Coastguard WorkerTARGET_ROOT_OUT_BIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/bin
999*9e94795aSAndroid Build Coastguard WorkerTARGET_OUT_COVERAGE := $(PRODUCT_OUT)/coverage
1000*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
1001*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_UNSTRIPPED \
1002*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_EXECUTABLES_UNSTRIPPED \
1003*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED \
1004*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED \
1005*9e94795aSAndroid Build Coastguard Worker  TARGET_ROOT_OUT_UNSTRIPPED \
1006*9e94795aSAndroid Build Coastguard Worker  TARGET_ROOT_OUT_BIN_UNSTRIPPED \
1007*9e94795aSAndroid Build Coastguard Worker  TARGET_OUT_COVERAGE
1008*9e94795aSAndroid Build Coastguard Worker
1009*9e94795aSAndroid Build Coastguard WorkerTARGET_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RAMDISK)
1010*9e94795aSAndroid Build Coastguard WorkerTARGET_RAMDISK_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)
1011*9e94795aSAndroid Build Coastguard WorkerTARGET_DEBUG_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DEBUG_RAMDISK)
1012*9e94795aSAndroid Build Coastguard WorkerTARGET_VENDOR_DEBUG_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_DEBUG_RAMDISK)
1013*9e94795aSAndroid Build Coastguard WorkerTARGET_TEST_HARNESS_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_TEST_HARNESS_RAMDISK)
1014*9e94795aSAndroid Build Coastguard Worker
1015*9e94795aSAndroid Build Coastguard WorkerTARGET_SYSTEM_DLKM_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_DLKM)
1016*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := TARGET_SYSTEM_DLKM_OUT
1017*9e94795aSAndroid Build Coastguard Worker
1018*9e94795aSAndroid Build Coastguard WorkerTARGET_VENDOR_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_RAMDISK)
1019*9e94795aSAndroid Build Coastguard WorkerTARGET_VENDOR_KERNEL_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_KERNEL_RAMDISK)
1020*9e94795aSAndroid Build Coastguard Worker
1021*9e94795aSAndroid Build Coastguard WorkerTARGET_ROOT_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ROOT)
1022*9e94795aSAndroid Build Coastguard WorkerTARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin
1023*9e94795aSAndroid Build Coastguard WorkerTARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc
1024*9e94795aSAndroid Build Coastguard WorkerTARGET_ROOT_OUT_USR := $(TARGET_ROOT_OUT)/usr
1025*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
1026*9e94795aSAndroid Build Coastguard Worker  TARGET_ROOT_OUT \
1027*9e94795aSAndroid Build Coastguard Worker  TARGET_ROOT_OUT_BIN \
1028*9e94795aSAndroid Build Coastguard Worker  TARGET_ROOT_OUT_ETC \
1029*9e94795aSAndroid Build Coastguard Worker  TARGET_ROOT_OUT_USR
1030*9e94795aSAndroid Build Coastguard Worker
1031*9e94795aSAndroid Build Coastguard WorkerTARGET_RECOVERY_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RECOVERY)
1032*9e94795aSAndroid Build Coastguard WorkerTARGET_RECOVERY_ROOT_OUT := $(TARGET_RECOVERY_OUT)/root
1033*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
1034*9e94795aSAndroid Build Coastguard Worker  TARGET_RECOVERY_OUT \
1035*9e94795aSAndroid Build Coastguard Worker  TARGET_RECOVERY_ROOT_OUT
1036*9e94795aSAndroid Build Coastguard Worker
1037*9e94795aSAndroid Build Coastguard WorkerTARGET_SYSLOADER_OUT := $(PRODUCT_OUT)/sysloader
1038*9e94795aSAndroid Build Coastguard WorkerTARGET_SYSLOADER_ROOT_OUT := $(TARGET_SYSLOADER_OUT)/root
1039*9e94795aSAndroid Build Coastguard WorkerTARGET_SYSLOADER_SYSTEM_OUT := $(TARGET_SYSLOADER_OUT)/root/system
1040*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
1041*9e94795aSAndroid Build Coastguard Worker  TARGET_SYSLOADER_OUT \
1042*9e94795aSAndroid Build Coastguard Worker  TARGET_SYSLOADER_ROOT_OUT \
1043*9e94795aSAndroid Build Coastguard Worker  TARGET_SYSLOADER_SYSTEM_OUT
1044*9e94795aSAndroid Build Coastguard Worker
1045*9e94795aSAndroid Build Coastguard WorkerTARGET_INSTALLER_OUT := $(PRODUCT_OUT)/installer
1046*9e94795aSAndroid Build Coastguard WorkerTARGET_INSTALLER_DATA_OUT := $(TARGET_INSTALLER_OUT)/data
1047*9e94795aSAndroid Build Coastguard WorkerTARGET_INSTALLER_ROOT_OUT := $(TARGET_INSTALLER_OUT)/root
1048*9e94795aSAndroid Build Coastguard WorkerTARGET_INSTALLER_SYSTEM_OUT := $(TARGET_INSTALLER_OUT)/root/system
1049*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := \
1050*9e94795aSAndroid Build Coastguard Worker  TARGET_INSTALLER_OUT \
1051*9e94795aSAndroid Build Coastguard Worker  TARGET_INSTALLER_DATA_OUT \
1052*9e94795aSAndroid Build Coastguard Worker  TARGET_INSTALLER_ROOT_OUT \
1053*9e94795aSAndroid Build Coastguard Worker  TARGET_INSTALLER_SYSTEM_OUT
1054*9e94795aSAndroid Build Coastguard Worker
1055*9e94795aSAndroid Build Coastguard WorkerCOMMON_MODULE_CLASSES := TARGET_NOTICE_FILES HOST_NOTICE_FILES HOST_JAVA_LIBRARIES
1056*9e94795aSAndroid Build Coastguard WorkerPER_ARCH_MODULE_CLASSES := SHARED_LIBRARIES STATIC_LIBRARIES EXECUTABLES GYP RENDERSCRIPT_BITCODE NATIVE_TESTS HEADER_LIBRARIES RLIB_LIBRARIES DYLIB_LIBRARIES
1057*9e94795aSAndroid Build Coastguard Worker.KATI_READONLY := COMMON_MODULE_CLASSES PER_ARCH_MODULE_CLASSES
1058*9e94795aSAndroid Build Coastguard Worker
1059*9e94795aSAndroid Build Coastguard Workerifeq ($(CALLED_FROM_SETUP),true)
1060*9e94795aSAndroid Build Coastguard WorkerPRINT_BUILD_CONFIG ?= true
1061*9e94795aSAndroid Build Coastguard Workerendif
1062