The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1 | # Variables we check: |
| 2 | # HOST_BUILD_TYPE = { release debug } |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 3 | # 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 Young | cf46998 | 2015-06-09 12:35:45 -0500 | [diff] [blame] | 8 | # 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 Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 13 | |
Colin Cross | c901659 | 2017-03-28 13:07:56 -0700 | [diff] [blame] | 14 | # Returns all words in $1 up to and including $2 |
| 15 | define 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))))) |
| 20 | endef |
| 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 Faust | 386b374 | 2023-06-06 16:55:58 -0700 | [diff] [blame] | 27 | # Runs a starlark file, and sets all the variables in its top-level |
Cole Faust | c63ce1a | 2023-05-09 14:56:36 -0700 | [diff] [blame] | 28 | # 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 Onorato | 7b578d3 | 2023-05-19 09:13:36 -0700 | [diff] [blame] | 33 | # $(KATI_extra_file_deps). |
Cole Faust | 386b374 | 2023-06-06 16:55:58 -0700 | [diff] [blame] | 34 | # |
| 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 Faust | c63ce1a | 2023-05-09 14:56:36 -0700 | [diff] [blame] | 39 | define run-starlark |
| 40 | $(eval _starlark_results := $(OUT_DIR)/starlark_results/$(subst /,_,$(1)).mk) |
Cole Faust | 386b374 | 2023-06-06 16:55:58 -0700 | [diff] [blame] | 41 | $(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 Faust | c63ce1a | 2023-05-09 14:56:36 -0700 | [diff] [blame] | 42 | $(if $(filter-out 0,$(.SHELLSTATUS)),$(error Starlark failed to run)) |
| 43 | $(eval include $(_starlark_results)) |
Cole Faust | 386b374 | 2023-06-06 16:55:58 -0700 | [diff] [blame] | 44 | $(KATI_extra_file_deps $(filter-out $(2),$(LOADED_STARLARK_FILES))) |
Cole Faust | c63ce1a | 2023-05-09 14:56:36 -0700 | [diff] [blame] | 45 | $(eval LOADED_STARLARK_FILES :=) |
| 46 | $(eval _starlark_results :=) |
Colin Cross | c901659 | 2017-03-28 13:07:56 -0700 | [diff] [blame] | 47 | endef |
| 48 | |
Joe Onorato | 964f401 | 2023-05-06 12:29:01 -0700 | [diff] [blame] | 49 | # --------------------------------------------------------------- |
| 50 | # Release config |
| 51 | include $(BUILD_SYSTEM)/release_config.mk |
| 52 | |
Kiyoung Kim | 1e14cdf | 2024-02-05 11:25:25 +0900 | [diff] [blame] | 53 | # Set default value of KEEP_VNDK. |
| 54 | ifeq ($(RELEASE_DEPRECATE_VNDK),true) |
| 55 | KEEP_VNDK ?= false |
| 56 | else |
| 57 | KEEP_VNDK ?= true |
| 58 | endif |
| 59 | |
Kiyoung Kim | 09aaa26 | 2024-02-13 13:38:16 +0900 | [diff] [blame] | 60 | ifeq ($(KEEP_VNDK),true) |
| 61 | # Starting in Android U, non-VNDK devices not supported |
| 62 | # WARNING: DO NOT CHANGE: if you are downstream of AOSP, and you change this, without |
| 63 | # letting upstream know it's important to you, we may do cleanup which breaks this |
| 64 | # significantly. Please let us know if you are changing this. |
| 65 | ifndef BOARD_VNDK_VERSION |
| 66 | # READ WARNING - DO NOT CHANGE |
| 67 | BOARD_VNDK_VERSION := current |
| 68 | # READ WARNING - DO NOT CHANGE |
| 69 | endif |
| 70 | endif |
| 71 | |
Joe Onorato | 964f401 | 2023-05-06 12:29:01 -0700 | [diff] [blame] | 72 | # --------------------------------------------------------------- |
Jeff Hamilton | 426a9f8 | 2023-10-19 04:54:15 +0000 | [diff] [blame] | 73 | # Set up version information |
| 74 | include $(BUILD_SYSTEM)/version_util.mk |
Colin Cross | c901659 | 2017-03-28 13:07:56 -0700 | [diff] [blame] | 75 | |
Jeff Hamilton | 426a9f8 | 2023-10-19 04:54:15 +0000 | [diff] [blame] | 76 | # This used to be calculated, but is now fixed and not expected |
| 77 | # to change over time anymore. New code attempting to use a |
| 78 | # variable like IS_AT_LAST_* should instead use a |
| 79 | # build system flag. |
Colin Cross | c901659 | 2017-03-28 13:07:56 -0700 | [diff] [blame] | 80 | |
Jeff Hamilton | 426a9f8 | 2023-10-19 04:54:15 +0000 | [diff] [blame] | 81 | ENABLED_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 Cross | c901659 | 2017-03-28 13:07:56 -0700 | [diff] [blame] | 82 | |
| 83 | $(foreach v,$(ENABLED_VERSIONS), \ |
| 84 | $(eval IS_AT_LEAST_$(v) := true)) |
| 85 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 86 | # --------------------------------------------------------------- |
| 87 | # If you update the build system such that the environment setup |
| 88 | # or buildspec.mk need to be updated, increment this number, and |
| 89 | # people who haven't re-run those will have to do so before they |
| 90 | # can build. Make sure to also update the corresponding value in |
| 91 | # buildspec.mk.default and envsetup.sh. |
Colin Cross | 8873713 | 2017-03-21 17:41:03 -0700 | [diff] [blame] | 92 | CORRECT_BUILD_ENV_SEQUENCE_NUMBER := 13 |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 93 | |
| 94 | # --------------------------------------------------------------- |
Jeff Brown | e33ba4c | 2011-07-11 22:11:46 -0700 | [diff] [blame] | 95 | # The product defaults to generic on hardware |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 96 | ifeq ($(TARGET_PRODUCT),) |
Ying Wang | 0a76df5 | 2015-06-08 11:57:26 -0700 | [diff] [blame] | 97 | TARGET_PRODUCT := aosp_arm |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 98 | endif |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 99 | |
| 100 | |
| 101 | # the variant -- the set of files that are included for a build |
| 102 | ifeq ($(strip $(TARGET_BUILD_VARIANT)),) |
| 103 | TARGET_BUILD_VARIANT := eng |
| 104 | endif |
| 105 | |
Dan Willemsen | 8a5d597 | 2019-07-29 14:22:05 -0700 | [diff] [blame] | 106 | TARGET_BUILD_APPS ?= |
Jeongik Cha | d05b57a | 2020-07-08 18:10:38 +0900 | [diff] [blame] | 107 | TARGET_BUILD_UNBUNDLED_IMAGE ?= |
Dan Willemsen | 8a5d597 | 2019-07-29 14:22:05 -0700 | [diff] [blame] | 108 | |
Martin Stjernholm | 7a430fd | 2020-06-04 15:16:39 +0100 | [diff] [blame] | 109 | # Set to true for an unbundled build, i.e. a build without |
| 110 | # support for platform targets like the system image. This also |
| 111 | # disables consistency checks that only apply to full platform |
| 112 | # builds. |
| 113 | TARGET_BUILD_UNBUNDLED ?= |
| 114 | |
| 115 | # TARGET_BUILD_APPS implies unbundled build, otherwise we default |
| 116 | # to bundled (i.e. platform targets such as the system image are |
| 117 | # included). |
| 118 | ifneq ($(TARGET_BUILD_APPS),) |
| 119 | TARGET_BUILD_UNBUNDLED := true |
| 120 | endif |
| 121 | |
Jeongik Cha | d05b57a | 2020-07-08 18:10:38 +0900 | [diff] [blame] | 122 | # TARGET_BUILD_UNBUNDLED_IMAGE also implies unbundled build. |
| 123 | # (i.e. it targets to only unbundled image, such as the vendor image, |
| 124 | # ,or the product image). |
| 125 | ifneq ($(TARGET_BUILD_UNBUNDLED_IMAGE),) |
| 126 | TARGET_BUILD_UNBUNDLED := true |
| 127 | endif |
| 128 | |
Dan Willemsen | 8a5d597 | 2019-07-29 14:22:05 -0700 | [diff] [blame] | 129 | .KATI_READONLY := \ |
| 130 | TARGET_PRODUCT \ |
| 131 | TARGET_BUILD_VARIANT \ |
Martin Stjernholm | 7a430fd | 2020-06-04 15:16:39 +0100 | [diff] [blame] | 132 | TARGET_BUILD_APPS \ |
| 133 | TARGET_BUILD_UNBUNDLED \ |
Jeongik Cha | d05b57a | 2020-07-08 18:10:38 +0900 | [diff] [blame] | 134 | TARGET_BUILD_UNBUNDLED_IMAGE \ |
Dan Willemsen | 8a5d597 | 2019-07-29 14:22:05 -0700 | [diff] [blame] | 135 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 136 | # --------------------------------------------------------------- |
| 137 | # Set up configuration for host machine. We don't do cross- |
Elliott Hughes | f71c05a | 2020-03-06 16:46:59 -0800 | [diff] [blame] | 138 | # compiles except for arm, so the HOST is whatever we are |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 139 | # running on |
| 140 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 141 | # HOST_OS |
| 142 | ifneq (,$(findstring Linux,$(UNAME))) |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 143 | HOST_OS := linux |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 144 | endif |
| 145 | ifneq (,$(findstring Darwin,$(UNAME))) |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 146 | HOST_OS := darwin |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 147 | endif |
Raphael | 9ca1628 | 2010-04-16 17:50:09 -0700 | [diff] [blame] | 148 | |
Peter Collingbourne | 0d06f70 | 2022-11-02 15:26:31 -0700 | [diff] [blame] | 149 | ifeq ($(CALLED_FROM_SETUP),true) |
| 150 | HOST_OS_EXTRA := $(shell uname -rsm) |
| 151 | ifeq ($(HOST_OS),linux) |
| 152 | ifneq ($(wildcard /etc/os-release),) |
| 153 | HOST_OS_EXTRA += $(shell source /etc/os-release; echo $$PRETTY_NAME) |
| 154 | endif |
| 155 | else ifeq ($(HOST_OS),darwin) |
| 156 | HOST_OS_EXTRA += $(shell sw_vers -productVersion) |
Dan Willemsen | ce7f8dd | 2017-07-25 00:57:38 -0700 | [diff] [blame] | 157 | endif |
Peter Collingbourne | 0d06f70 | 2022-11-02 15:26:31 -0700 | [diff] [blame] | 158 | HOST_OS_EXTRA := $(subst $(space),-,$(HOST_OS_EXTRA)) |
Dan Willemsen | ce7f8dd | 2017-07-25 00:57:38 -0700 | [diff] [blame] | 159 | endif |
Ying Wang | 08800fd | 2016-03-03 20:57:21 -0800 | [diff] [blame] | 160 | |
Raphael | 9ca1628 | 2010-04-16 17:50:09 -0700 | [diff] [blame] | 161 | # BUILD_OS is the real host doing the build. |
| 162 | BUILD_OS := $(HOST_OS) |
| 163 | |
Jiyong Park | e80c45f | 2020-07-13 13:53:52 +0900 | [diff] [blame] | 164 | # We can do the cross-build only on Linux |
Raphael | 9ca1628 | 2010-04-16 17:50:09 -0700 | [diff] [blame] | 165 | ifeq ($(HOST_OS),linux) |
Jiyong Park | e80c45f | 2020-07-13 13:53:52 +0900 | [diff] [blame] | 166 | # Windows has been the default host_cross OS |
| 167 | ifeq (,$(filter-out windows,$(HOST_CROSS_OS))) |
| 168 | # We can only create static host binaries for Linux, so if static host |
| 169 | # binaries are requested, turn off Windows cross-builds. |
| 170 | ifeq ($(BUILD_HOST_static),) |
| 171 | HOST_CROSS_OS := windows |
| 172 | HOST_CROSS_ARCH := x86 |
| 173 | HOST_CROSS_2ND_ARCH := x86_64 |
| 174 | 2ND_HOST_CROSS_IS_64_BIT := true |
| 175 | endif |
| 176 | else ifeq ($(HOST_CROSS_OS),linux_bionic) |
| 177 | ifeq (,$(HOST_CROSS_ARCH)) |
| 178 | $(error HOST_CROSS_ARCH missing.) |
| 179 | endif |
| 180 | else |
| 181 | $(error Unsupported HOST_CROSS_OS $(HOST_CROSS_OS)) |
| 182 | endif |
Dan Willemsen | 8820840 | 2021-10-19 00:30:37 -0700 | [diff] [blame] | 183 | else ifeq ($(HOST_OS),darwin) |
| 184 | HOST_CROSS_OS := darwin |
| 185 | HOST_CROSS_ARCH := arm64 |
| 186 | HOST_CROSS_2ND_ARCH := |
Dan Willemsen | 2a6e3b0 | 2017-11-06 11:03:28 -0800 | [diff] [blame] | 187 | endif |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 188 | |
| 189 | ifeq ($(HOST_OS),) |
| 190 | $(error Unable to determine HOST_OS from uname -sm: $(UNAME)!) |
| 191 | endif |
| 192 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 193 | # HOST_ARCH |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 194 | ifneq (,$(findstring x86_64,$(UNAME))) |
Ying Wang | 2713fce | 2014-06-09 12:31:12 -0700 | [diff] [blame] | 195 | HOST_ARCH := x86_64 |
| 196 | HOST_2ND_ARCH := x86 |
Ying Wang | 4b1c95d | 2014-07-08 17:07:36 -0700 | [diff] [blame] | 197 | HOST_IS_64_BIT := true |
Brian Carlstrom | 2cd8a74 | 2015-03-20 11:39:00 -0700 | [diff] [blame] | 198 | else |
Dan Willemsen | 88225fd | 2016-06-29 12:26:53 -0700 | [diff] [blame] | 199 | ifneq (,$(findstring i686,$(UNAME))$(findstring x86,$(UNAME))) |
Brian Carlstrom | 2cd8a74 | 2015-03-20 11:39:00 -0700 | [diff] [blame] | 200 | $(error Building on a 32-bit x86 host is not supported: $(UNAME)!) |
| 201 | endif |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 202 | endif |
| 203 | |
Dan Willemsen | 1d090fc | 2018-08-28 01:51:25 -0700 | [diff] [blame] | 204 | ifeq ($(HOST_OS),darwin) |
| 205 | # Mac no longer supports 32-bit executables |
| 206 | HOST_2ND_ARCH := |
| 207 | endif |
| 208 | |
Anton Hansson | 1927985 | 2019-02-28 17:15:57 +0000 | [diff] [blame] | 209 | HOST_2ND_ARCH_VAR_PREFIX := 2ND_ |
| 210 | HOST_2ND_ARCH_MODULE_SUFFIX := _32 |
| 211 | HOST_CROSS_2ND_ARCH_VAR_PREFIX := 2ND_ |
| 212 | HOST_CROSS_2ND_ARCH_MODULE_SUFFIX := _64 |
| 213 | TARGET_2ND_ARCH_VAR_PREFIX := 2ND_ |
| 214 | .KATI_READONLY := \ |
| 215 | HOST_ARCH \ |
| 216 | HOST_2ND_ARCH \ |
| 217 | HOST_IS_64_BIT \ |
| 218 | HOST_2ND_ARCH_VAR_PREFIX \ |
| 219 | HOST_2ND_ARCH_MODULE_SUFFIX \ |
| 220 | HOST_CROSS_2ND_ARCH_VAR_PREFIX \ |
| 221 | HOST_CROSS_2ND_ARCH_MODULE_SUFFIX \ |
| 222 | TARGET_2ND_ARCH_VAR_PREFIX \ |
| 223 | |
| 224 | combo_target := HOST_ |
| 225 | combo_2nd_arch_prefix := |
| 226 | include $(BUILD_COMBOS)/select.mk |
| 227 | |
| 228 | ifdef HOST_2ND_ARCH |
| 229 | combo_2nd_arch_prefix := $(HOST_2ND_ARCH_VAR_PREFIX) |
| 230 | include $(BUILD_SYSTEM)/combo/select.mk |
| 231 | endif |
| 232 | |
| 233 | # Load the windows cross compiler under Linux |
| 234 | ifdef HOST_CROSS_OS |
| 235 | combo_target := HOST_CROSS_ |
| 236 | combo_2nd_arch_prefix := |
| 237 | include $(BUILD_SYSTEM)/combo/select.mk |
| 238 | |
| 239 | ifdef HOST_CROSS_2ND_ARCH |
| 240 | combo_2nd_arch_prefix := $(HOST_CROSS_2ND_ARCH_VAR_PREFIX) |
| 241 | include $(BUILD_SYSTEM)/combo/select.mk |
| 242 | endif |
| 243 | endif |
| 244 | |
| 245 | # on windows, the tools have .exe at the end, and we depend on the |
| 246 | # host config stuff being done first |
| 247 | |
Raphael | 9ca1628 | 2010-04-16 17:50:09 -0700 | [diff] [blame] | 248 | BUILD_ARCH := $(HOST_ARCH) |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 249 | BUILD_2ND_ARCH := $(HOST_2ND_ARCH) |
Raphael | 9ca1628 | 2010-04-16 17:50:09 -0700 | [diff] [blame] | 250 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 251 | ifeq ($(HOST_ARCH),) |
| 252 | $(error Unable to determine HOST_ARCH from uname -sm: $(UNAME)!) |
| 253 | endif |
| 254 | |
| 255 | # the host build defaults to release, and it must be release or debug |
| 256 | ifeq ($(HOST_BUILD_TYPE),) |
| 257 | HOST_BUILD_TYPE := release |
| 258 | endif |
| 259 | |
| 260 | ifneq ($(HOST_BUILD_TYPE),release) |
| 261 | ifneq ($(HOST_BUILD_TYPE),debug) |
| 262 | $(error HOST_BUILD_TYPE must be either release or debug, not '$(HOST_BUILD_TYPE)') |
| 263 | endif |
| 264 | endif |
| 265 | |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 266 | # We don't want to move all the prebuilt host tools to a $(HOST_OS)-x86_64 dir. |
| 267 | HOST_PREBUILT_ARCH := x86 |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 268 | # This is the standard way to name a directory containing prebuilt host |
| 269 | # objects. E.g., prebuilt/$(HOST_PREBUILT_TAG)/cc |
Dan Albert | 216ecac | 2015-05-04 12:44:44 -0700 | [diff] [blame] | 270 | HOST_PREBUILT_TAG := $(BUILD_OS)-$(HOST_PREBUILT_ARCH) |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 271 | |
Ying Wang | 2b6aaa3 | 2011-10-27 15:18:39 -0700 | [diff] [blame] | 272 | # TARGET_COPY_OUT_* are all relative to the staging directory, ie PRODUCT_OUT. |
| 273 | # Define them here so they can be used in product config files. |
| 274 | TARGET_COPY_OUT_SYSTEM := system |
Ramji Jiyani | 1065523 | 2022-01-20 06:43:09 +0000 | [diff] [blame] | 275 | TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm |
Alex Light | 4e358ab | 2016-06-16 14:47:10 -0700 | [diff] [blame] | 276 | TARGET_COPY_OUT_SYSTEM_OTHER := system_other |
Ying Wang | 2b6aaa3 | 2011-10-27 15:18:39 -0700 | [diff] [blame] | 277 | TARGET_COPY_OUT_DATA := data |
Vishwath Mohan | b285c46 | 2017-03-29 15:32:04 -0700 | [diff] [blame] | 278 | TARGET_COPY_OUT_ASAN := $(TARGET_COPY_OUT_DATA)/asan |
Ying Wang | b888843 | 2014-03-11 17:13:27 -0700 | [diff] [blame] | 279 | TARGET_COPY_OUT_OEM := oem |
Tom Cherry | d14b895 | 2018-08-09 14:26:00 -0700 | [diff] [blame] | 280 | TARGET_COPY_OUT_RAMDISK := ramdisk |
Bowgo Tsai | 0013f55 | 2019-03-20 17:59:52 +0800 | [diff] [blame] | 281 | TARGET_COPY_OUT_DEBUG_RAMDISK := debug_ramdisk |
Bowgo Tsai | 6a68367 | 2020-02-14 19:00:15 +0800 | [diff] [blame] | 282 | TARGET_COPY_OUT_VENDOR_DEBUG_RAMDISK := vendor_debug_ramdisk |
Bowgo Tsai | 5c40c71 | 2019-10-08 10:22:19 +0800 | [diff] [blame] | 283 | TARGET_COPY_OUT_TEST_HARNESS_RAMDISK := test_harness_ramdisk |
Ying Wang | 2b6aaa3 | 2011-10-27 15:18:39 -0700 | [diff] [blame] | 284 | TARGET_COPY_OUT_ROOT := root |
| 285 | TARGET_COPY_OUT_RECOVERY := recovery |
Anton Hansson | 379b2ba | 2018-10-02 14:10:16 +0100 | [diff] [blame] | 286 | # The directory used for optional partitions depend on the BoardConfig, so |
| 287 | # they're defined to placeholder values here and swapped after reading the |
| 288 | # BoardConfig, to be either the partition dir, or a subdir within 'system'. |
| 289 | _vendor_path_placeholder := ||VENDOR-PATH-PH|| |
| 290 | _product_path_placeholder := ||PRODUCT-PATH-PH|| |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 291 | _system_ext_path_placeholder := ||SYSTEM_EXT-PATH-PH|| |
Anton Hansson | 379b2ba | 2018-10-02 14:10:16 +0100 | [diff] [blame] | 292 | _odm_path_placeholder := ||ODM-PATH-PH|| |
Yifan Hong | cfb917a | 2020-05-07 14:58:20 -0700 | [diff] [blame] | 293 | _vendor_dlkm_path_placeholder := ||VENDOR_DLKM-PATH-PH|| |
Yifan Hong | f496f1b | 2020-07-15 16:52:59 -0700 | [diff] [blame] | 294 | _odm_dlkm_path_placeholder := ||ODM_DLKM-PATH-PH|| |
Ramji Jiyani | 13a4137 | 2022-01-27 07:05:08 +0000 | [diff] [blame] | 295 | _system_dlkm_path_placeholder := ||SYSTEM_DLKM-PATH-PH|| |
Anton Hansson | 379b2ba | 2018-10-02 14:10:16 +0100 | [diff] [blame] | 296 | TARGET_COPY_OUT_VENDOR := $(_vendor_path_placeholder) |
Petri Gynther | dc24d88 | 2021-03-02 23:54:08 -0800 | [diff] [blame] | 297 | TARGET_COPY_OUT_VENDOR_RAMDISK := vendor_ramdisk |
Lucas Wei | f57333f | 2022-02-24 10:30:15 +0800 | [diff] [blame] | 298 | TARGET_COPY_OUT_VENDOR_KERNEL_RAMDISK := vendor_kernel_ramdisk |
Anton Hansson | 379b2ba | 2018-10-02 14:10:16 +0100 | [diff] [blame] | 299 | TARGET_COPY_OUT_PRODUCT := $(_product_path_placeholder) |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 300 | # TODO(b/135957588) TARGET_COPY_OUT_PRODUCT_SERVICES will copy the target to |
| 301 | # product |
| 302 | TARGET_COPY_OUT_PRODUCT_SERVICES := $(_product_path_placeholder) |
| 303 | TARGET_COPY_OUT_SYSTEM_EXT := $(_system_ext_path_placeholder) |
Anton Hansson | 379b2ba | 2018-10-02 14:10:16 +0100 | [diff] [blame] | 304 | TARGET_COPY_OUT_ODM := $(_odm_path_placeholder) |
Yifan Hong | cfb917a | 2020-05-07 14:58:20 -0700 | [diff] [blame] | 305 | TARGET_COPY_OUT_VENDOR_DLKM := $(_vendor_dlkm_path_placeholder) |
Yifan Hong | f496f1b | 2020-07-15 16:52:59 -0700 | [diff] [blame] | 306 | TARGET_COPY_OUT_ODM_DLKM := $(_odm_dlkm_path_placeholder) |
Ramji Jiyani | 13a4137 | 2022-01-27 07:05:08 +0000 | [diff] [blame] | 307 | TARGET_COPY_OUT_SYSTEM_DLKM := $(_system_dlkm_path_placeholder) |
Vishwath Mohan | d4dbf79 | 2017-05-16 14:27:34 -0700 | [diff] [blame] | 308 | |
| 309 | # Returns the non-sanitized version of the path provided in $1. |
| 310 | define get_non_asan_path |
| 311 | $(patsubst $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/%,$(PRODUCT_OUT)/%,$1) |
| 312 | endef |
| 313 | |
Igor Murashkin | 9d4639c | 2017-06-15 10:41:02 -0700 | [diff] [blame] | 314 | ################################################################# |
| 315 | # Set up minimal BOOTCLASSPATH list of jars to build/execute |
| 316 | # java code with dalvikvm/art. |
Martin Stjernholm | 743513c | 2021-07-05 20:53:57 +0100 | [diff] [blame] | 317 | # Jars present in the ART apex. These should match exactly the list of Java |
| 318 | # libraries in art-bootclasspath-fragment. The APEX variant name |
| 319 | # (com.android.art) is the same regardless which Soong module provides the ART |
| 320 | # APEX. See the long comment in build/soong/java/dexprepopt_bootjars.go for |
| 321 | # details. |
Ulya Trafimovich | 4c69c2f | 2020-04-30 10:59:48 +0100 | [diff] [blame] | 322 | ART_APEX_JARS := \ |
| 323 | com.android.art:core-oj \ |
| 324 | com.android.art:core-libart \ |
Ulya Trafimovich | 4c69c2f | 2020-04-30 10:59:48 +0100 | [diff] [blame] | 325 | com.android.art:okhttp \ |
| 326 | com.android.art:bouncycastle \ |
| 327 | com.android.art:apache-xml |
Martin Stjernholm | fa83228 | 2021-02-17 12:26:19 +0000 | [diff] [blame] | 328 | # With EMMA_INSTRUMENT_FRAMEWORK=true the Core libraries depend on jacoco. |
| 329 | ifeq (true,$(EMMA_INSTRUMENT_FRAMEWORK)) |
| 330 | ART_APEX_JARS += com.android.art:jacocoagent |
| 331 | endif |
Igor Murashkin | 9d4639c | 2017-06-15 10:41:02 -0700 | [diff] [blame] | 332 | ################################################################# |
| 333 | |
Cole Faust | f1f49bb | 2021-12-01 13:49:12 -0800 | [diff] [blame] | 334 | # Dumps all variables that match [A-Z][A-Z0-9_]* (with a few exceptions) |
| 335 | # to the file at $(1). It is used to print only the variables that are |
| 336 | # likely to be relevant to the product or board configuration. |
Cole Faust | c722659 | 2022-01-12 21:20:07 -0800 | [diff] [blame] | 337 | # Soong config variables are dumped as $(call soong_config_set) calls |
| 338 | # instead of the raw variable values, because mk2rbc can't read the |
Cole Faust | a1b215c | 2022-07-21 08:08:32 -0700 | [diff] [blame] | 339 | # raw ones. There is a final sed command on the output file to |
| 340 | # remove leading spaces because I couldn't figure out how to remove |
| 341 | # them in pure make code. |
Cole Faust | f1f49bb | 2021-12-01 13:49:12 -0800 | [diff] [blame] | 342 | define dump-variables-rbc |
Cole Faust | 0a74600 | 2022-03-24 12:21:55 -0700 | [diff] [blame] | 343 | $(eval _dump_variables_rbc_excluded := \ |
Cole Faust | ec8316d | 2022-04-04 11:52:52 -0700 | [diff] [blame] | 344 | BUILD_NUMBER \ |
| 345 | DATE \ |
Cole Faust | 0a74600 | 2022-03-24 12:21:55 -0700 | [diff] [blame] | 346 | LOCAL_PATH \ |
Cole Faust | ec8316d | 2022-04-04 11:52:52 -0700 | [diff] [blame] | 347 | MAKEFILE_LIST \ |
| 348 | PRODUCTS \ |
| 349 | PRODUCT_COPY_OUT_% \ |
| 350 | RBC_PRODUCT_CONFIG \ |
| 351 | RBC_BOARD_CONFIG \ |
| 352 | SOONG_% \ |
Joe Onorato | 964f401 | 2023-05-06 12:29:01 -0700 | [diff] [blame] | 353 | TARGET_RELEASE \ |
Cole Faust | 0a74600 | 2022-03-24 12:21:55 -0700 | [diff] [blame] | 354 | TOPDIR \ |
| 355 | TRACE_BEGIN_SOONG \ |
Cole Faust | ec8316d | 2022-04-04 11:52:52 -0700 | [diff] [blame] | 356 | USER) |
| 357 | $(file >$(OUT_DIR)/dump-variables-rbc-temp.txt,$(subst $(space),$(newline),$(sort $(filter-out $(_dump_variables_rbc_excluded),$(.VARIABLES))))) |
Cole Faust | f1f49bb | 2021-12-01 13:49:12 -0800 | [diff] [blame] | 358 | $(file >$(1),\ |
Cole Faust | 971ef8e | 2022-04-06 11:58:37 -0700 | [diff] [blame] | 359 | $(foreach v, $(shell grep -he "^[A-Z][A-Z0-9_]*$$" $(OUT_DIR)/dump-variables-rbc-temp.txt),\ |
Cole Faust | c722659 | 2022-01-12 21:20:07 -0800 | [diff] [blame] | 360 | $(v) := $(strip $($(v)))$(newline))\ |
Cole Faust | ec8316d | 2022-04-04 11:52:52 -0700 | [diff] [blame] | 361 | $(foreach ns,$(sort $(SOONG_CONFIG_NAMESPACES)),\ |
| 362 | $(foreach v,$(sort $(SOONG_CONFIG_$(ns))),\ |
Cole Faust | c722659 | 2022-01-12 21:20:07 -0800 | [diff] [blame] | 363 | $$(call soong_config_set,$(ns),$(v),$(SOONG_CONFIG_$(ns)_$(v)))$(newline)))) |
Cole Faust | a1b215c | 2022-07-21 08:08:32 -0700 | [diff] [blame] | 364 | $(shell sed -i "s/^ *//g" $(1)) |
Cole Faust | f1f49bb | 2021-12-01 13:49:12 -0800 | [diff] [blame] | 365 | endef |
| 366 | |
Ying Wang | 6aef047 | 2014-07-23 20:20:49 -0700 | [diff] [blame] | 367 | # Read the product specs so we can get TARGET_DEVICE and other |
Ryo Fujii | cbb3266 | 2011-06-16 16:58:11 -0700 | [diff] [blame] | 368 | # variables that we need in order to locate the output files. |
| 369 | include $(BUILD_SYSTEM)/product_config.mk |
Jesse Wilson | ce7d502 | 2010-09-22 10:59:10 -0700 | [diff] [blame] | 370 | |
Ying Wang | d0244b3 | 2011-11-17 14:51:12 -0800 | [diff] [blame] | 371 | build_variant := $(filter-out eng user userdebug,$(TARGET_BUILD_VARIANT)) |
Ryo Fujii | cbb3266 | 2011-06-16 16:58:11 -0700 | [diff] [blame] | 372 | ifneq ($(build_variant)-$(words $(TARGET_BUILD_VARIANT)),-1) |
| 373 | $(warning bad TARGET_BUILD_VARIANT: $(TARGET_BUILD_VARIANT)) |
Ying Wang | d0244b3 | 2011-11-17 14:51:12 -0800 | [diff] [blame] | 374 | $(error must be empty or one of: eng user userdebug) |
Ryo Fujii | cbb3266 | 2011-06-16 16:58:11 -0700 | [diff] [blame] | 375 | endif |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 376 | |
Ying Wang | 7ba7d7f | 2014-09-02 15:11:20 -0700 | [diff] [blame] | 377 | SDK_HOST_ARCH := x86 |
Anton Hansson | 1927985 | 2019-02-28 17:15:57 +0000 | [diff] [blame] | 378 | TARGET_OS := linux |
Ying Wang | 7ba7d7f | 2014-09-02 15:11:20 -0700 | [diff] [blame] | 379 | |
Cole Faust | 52e5d9c | 2021-11-30 11:24:33 -0800 | [diff] [blame] | 380 | # Some board configuration files use $(PRODUCT_OUT) |
| 381 | TARGET_OUT_ROOT := $(OUT_DIR)/target |
| 382 | TARGET_PRODUCT_OUT_ROOT := $(TARGET_OUT_ROOT)/product |
| 383 | PRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE) |
| 384 | .KATI_READONLY := TARGET_OUT_ROOT TARGET_PRODUCT_OUT_ROOT PRODUCT_OUT |
| 385 | |
Anton Hansson | bb76ce8 | 2019-02-26 12:34:03 +0000 | [diff] [blame] | 386 | include $(BUILD_SYSTEM)/board_config.mk |
Jiyong Park | 641b6cc | 2018-01-15 14:48:40 +0900 | [diff] [blame] | 387 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 388 | # the target build type defaults to release |
| 389 | ifneq ($(TARGET_BUILD_TYPE),debug) |
| 390 | TARGET_BUILD_TYPE := release |
| 391 | endif |
| 392 | |
Cole Faust | 7aa649a | 2023-11-03 12:27:43 -0700 | [diff] [blame] | 393 | include $(BUILD_SYSTEM)/product_validation_checks.mk |
| 394 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 395 | # --------------------------------------------------------------- |
| 396 | # figure out the output directories |
| 397 | |
Dan Willemsen | 60d9c67 | 2016-05-27 15:15:47 -0700 | [diff] [blame] | 398 | SOONG_OUT_DIR := $(OUT_DIR)/soong |
| 399 | |
Dan Willemsen | d6ed368 | 2017-09-08 14:29:51 -0700 | [diff] [blame] | 400 | HOST_OUT_ROOT := $(OUT_DIR)/host |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 401 | |
Cole Faust | 52e5d9c | 2021-11-30 11:24:33 -0800 | [diff] [blame] | 402 | .KATI_READONLY := SOONG_OUT_DIR HOST_OUT_ROOT |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 403 | |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 404 | # We want to avoid two host bin directories in multilib build. |
Dan Willemsen | d6ed368 | 2017-09-08 14:29:51 -0700 | [diff] [blame] | 405 | HOST_OUT := $(HOST_OUT_ROOT)/$(HOST_OS)-$(HOST_PREBUILT_ARCH) |
Colin Cross | da166c5 | 2021-11-18 15:42:19 -0800 | [diff] [blame] | 406 | |
| 407 | # Soong now installs to the same directory as Make. |
| 408 | SOONG_HOST_OUT := $(HOST_OUT) |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 409 | |
Jiyong Park | eccc461 | 2020-07-13 19:19:27 +0900 | [diff] [blame] | 410 | HOST_CROSS_OUT := $(HOST_OUT_ROOT)/$(HOST_CROSS_OS)-$(HOST_CROSS_ARCH) |
Raphael | 9ca1628 | 2010-04-16 17:50:09 -0700 | [diff] [blame] | 411 | |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 412 | .KATI_READONLY := HOST_OUT SOONG_HOST_OUT HOST_CROSS_OUT |
| 413 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 414 | TARGET_COMMON_OUT_ROOT := $(TARGET_OUT_ROOT)/common |
| 415 | HOST_COMMON_OUT_ROOT := $(HOST_OUT_ROOT)/common |
| 416 | |
Cole Faust | 52e5d9c | 2021-11-30 11:24:33 -0800 | [diff] [blame] | 417 | .KATI_READONLY := TARGET_COMMON_OUT_ROOT HOST_COMMON_OUT_ROOT |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 418 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 419 | OUT_DOCS := $(TARGET_COMMON_OUT_ROOT)/docs |
Dan Albert | 303e603 | 2017-10-04 10:20:20 -0700 | [diff] [blame] | 420 | OUT_NDK_DOCS := $(TARGET_COMMON_OUT_ROOT)/ndk-docs |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 421 | .KATI_READONLY := OUT_DOCS OUT_NDK_DOCS |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 422 | |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 423 | $(call KATI_obsolete,BUILD_OUT,Use HOST_OUT instead) |
| 424 | |
| 425 | BUILD_OUT_EXECUTABLES := $(HOST_OUT)/bin |
Dan Willemsen | 60d9c67 | 2016-05-27 15:15:47 -0700 | [diff] [blame] | 426 | SOONG_HOST_OUT_EXECUTABLES := $(SOONG_HOST_OUT)/bin |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 427 | .KATI_READONLY := BUILD_OUT_EXECUTABLES SOONG_HOST_OUT_EXECUTABLES |
Raphael | 9ca1628 | 2010-04-16 17:50:09 -0700 | [diff] [blame] | 428 | |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 429 | HOST_OUT_EXECUTABLES := $(HOST_OUT)/bin |
Ying Wang | 36ef50f | 2014-06-30 17:06:21 -0700 | [diff] [blame] | 430 | HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib64 |
Ivan Lozano | d62e712 | 2019-08-27 11:23:35 -0700 | [diff] [blame] | 431 | HOST_OUT_DYLIB_LIBRARIES := $(HOST_OUT)/lib64 |
Dan Willemsen | c6e194f | 2016-02-13 00:19:40 -0800 | [diff] [blame] | 432 | HOST_OUT_RENDERSCRIPT_BITCODE := $(HOST_OUT_SHARED_LIBRARIES) |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 433 | HOST_OUT_JAVA_LIBRARIES := $(HOST_OUT)/framework |
Joe Onorato | 64d85d0 | 2009-04-09 19:31:12 -0700 | [diff] [blame] | 434 | HOST_OUT_SDK_ADDON := $(HOST_OUT)/sdk_addon |
Dan Willemsen | 7fe992c | 2016-03-02 13:54:51 -0800 | [diff] [blame] | 435 | HOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest64 |
Ryan Campbell | 81c9d29 | 2016-09-12 13:56:50 -0700 | [diff] [blame] | 436 | HOST_OUT_COVERAGE := $(HOST_OUT)/coverage |
Colin Cross | e887ccb | 2018-03-16 22:09:50 -0700 | [diff] [blame] | 437 | HOST_OUT_TESTCASES := $(HOST_OUT)/testcases |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 438 | .KATI_READONLY := \ |
| 439 | HOST_OUT_EXECUTABLES \ |
| 440 | HOST_OUT_SHARED_LIBRARIES \ |
| 441 | HOST_OUT_RENDERSCRIPT_BITCODE \ |
| 442 | HOST_OUT_JAVA_LIBRARIES \ |
| 443 | HOST_OUT_SDK_ADDON \ |
| 444 | HOST_OUT_NATIVE_TESTS \ |
| 445 | HOST_OUT_COVERAGE \ |
| 446 | HOST_OUT_TESTCASES |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 447 | |
Dan Willemsen | 057aaea | 2015-08-14 12:59:50 -0700 | [diff] [blame] | 448 | HOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT)/bin |
| 449 | HOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib |
Dan Willemsen | 7fe992c | 2016-03-02 13:54:51 -0800 | [diff] [blame] | 450 | HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest |
Ryan Campbell | 81c9d29 | 2016-09-12 13:56:50 -0700 | [diff] [blame] | 451 | HOST_CROSS_OUT_COVERAGE := $(HOST_CROSS_OUT)/coverage |
Colin Cross | e887ccb | 2018-03-16 22:09:50 -0700 | [diff] [blame] | 452 | HOST_CROSS_OUT_TESTCASES := $(HOST_CROSS_OUT)/testcases |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 453 | .KATI_READONLY := \ |
| 454 | HOST_CROSS_OUT_EXECUTABLES \ |
| 455 | HOST_CROSS_OUT_SHARED_LIBRARIES \ |
| 456 | HOST_CROSS_OUT_NATIVE_TESTS \ |
| 457 | HOST_CROSS_OUT_COVERAGE \ |
| 458 | HOST_CROSS_OUT_TESTCASES |
Dan Willemsen | 057aaea | 2015-08-14 12:59:50 -0700 | [diff] [blame] | 459 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 460 | HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 461 | HOST_OUT_NOTICE_FILES := $(HOST_OUT_INTERMEDIATES)/NOTICE_FILES |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 462 | HOST_OUT_COMMON_INTERMEDIATES := $(HOST_COMMON_OUT_ROOT)/obj |
Ying Wang | ec900ac | 2013-11-13 15:56:18 -0800 | [diff] [blame] | 463 | HOST_OUT_FAKE := $(HOST_OUT)/fake_packages |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 464 | .KATI_READONLY := \ |
| 465 | HOST_OUT_INTERMEDIATES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 466 | HOST_OUT_NOTICE_FILES \ |
| 467 | HOST_OUT_COMMON_INTERMEDIATES \ |
| 468 | HOST_OUT_FAKE |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 469 | |
Dan Willemsen | 057aaea | 2015-08-14 12:59:50 -0700 | [diff] [blame] | 470 | HOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj |
Dan Willemsen | 057aaea | 2015-08-14 12:59:50 -0700 | [diff] [blame] | 471 | HOST_CROSS_OUT_NOTICE_FILES := $(HOST_CROSS_OUT_INTERMEDIATES)/NOTICE_FILES |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 472 | .KATI_READONLY := \ |
| 473 | HOST_CROSS_OUT_INTERMEDIATES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 474 | HOST_CROSS_OUT_NOTICE_FILES |
Dan Willemsen | 057aaea | 2015-08-14 12:59:50 -0700 | [diff] [blame] | 475 | |
Colin Cross | d826264 | 2014-01-24 23:17:21 -0800 | [diff] [blame] | 476 | HOST_OUT_GEN := $(HOST_OUT)/gen |
| 477 | HOST_OUT_COMMON_GEN := $(HOST_COMMON_OUT_ROOT)/gen |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 478 | .KATI_READONLY := \ |
| 479 | HOST_OUT_GEN \ |
| 480 | HOST_OUT_COMMON_GEN |
Colin Cross | d826264 | 2014-01-24 23:17:21 -0800 | [diff] [blame] | 481 | |
Dan Willemsen | 057aaea | 2015-08-14 12:59:50 -0700 | [diff] [blame] | 482 | HOST_CROSS_OUT_GEN := $(HOST_CROSS_OUT)/gen |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 483 | .KATI_READONLY := HOST_CROSS_OUT_GEN |
Dan Willemsen | 057aaea | 2015-08-14 12:59:50 -0700 | [diff] [blame] | 484 | |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 485 | # Out for HOST_2ND_ARCH |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 486 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj32 |
Ying Wang | 966c1e0 | 2014-05-20 14:43:51 -0700 | [diff] [blame] | 487 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 488 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES := $(HOST_OUT_EXECUTABLES) |
Dan Albert | dc94137 | 2015-05-04 18:17:52 -0700 | [diff] [blame] | 489 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES := $(HOST_OUT_JAVA_LIBRARIES) |
Dan Willemsen | 7fe992c | 2016-03-02 13:54:51 -0800 | [diff] [blame] | 490 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest |
Simran Basi | 7166d1f | 2017-01-25 15:11:55 -0800 | [diff] [blame] | 491 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES := $(HOST_OUT_TESTCASES) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 492 | .KATI_READONLY := \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 493 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 494 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES \ |
| 495 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES \ |
| 496 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES \ |
| 497 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS \ |
| 498 | $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 499 | |
Ying Wang | c459586 | 2014-06-10 12:04:56 -0700 | [diff] [blame] | 500 | # The default host library path. |
| 501 | # It always points to the path where we build libraries in the default bitness. |
Ying Wang | 5bac962 | 2014-08-14 11:03:56 -0700 | [diff] [blame] | 502 | HOST_LIBRARY_PATH := $(HOST_OUT_SHARED_LIBRARIES) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 503 | .KATI_READONLY := HOST_LIBRARY_PATH |
Ying Wang | 6feb6d5 | 2014-04-17 10:03:35 -0700 | [diff] [blame] | 504 | |
Dan Willemsen | 9ecbf83 | 2016-02-05 16:20:19 -0800 | [diff] [blame] | 505 | # Out for HOST_CROSS_2ND_ARCH |
Dan Willemsen | 9ecbf83 | 2016-02-05 16:20:19 -0800 | [diff] [blame] | 506 | $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj64 |
Dan Willemsen | 9ecbf83 | 2016-02-05 16:20:19 -0800 | [diff] [blame] | 507 | $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib64 |
| 508 | $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT_EXECUTABLES) |
Dan Willemsen | 7fe992c | 2016-03-02 13:54:51 -0800 | [diff] [blame] | 509 | $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest64 |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 510 | .KATI_READONLY := \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 511 | $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 512 | $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_SHARED_LIBRARIES \ |
| 513 | $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_EXECUTABLES \ |
| 514 | $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_NATIVE_TESTS |
Dan Willemsen | 9ecbf83 | 2016-02-05 16:20:19 -0800 | [diff] [blame] | 515 | |
Vishwath Mohan | d8eabaa | 2017-05-09 19:36:54 -0700 | [diff] [blame] | 516 | ifneq ($(filter address,$(SANITIZE_TARGET)),) |
| 517 | TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_asan |
| 518 | else |
| 519 | TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj |
| 520 | endif |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 521 | TARGET_OUT_HEADERS := $(TARGET_OUT_INTERMEDIATES)/include |
Dan Willemsen | 8cf6b65 | 2018-09-05 11:01:12 -0700 | [diff] [blame] | 522 | .KATI_READONLY := TARGET_OUT_INTERMEDIATES TARGET_OUT_HEADERS |
Vishwath Mohan | d8eabaa | 2017-05-09 19:36:54 -0700 | [diff] [blame] | 523 | |
| 524 | ifneq ($(filter address,$(SANITIZE_TARGET)),) |
| 525 | TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj_asan |
| 526 | else |
| 527 | TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj |
| 528 | endif |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 529 | .KATI_READONLY := TARGET_OUT_COMMON_INTERMEDIATES |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 530 | |
Colin Cross | d826264 | 2014-01-24 23:17:21 -0800 | [diff] [blame] | 531 | TARGET_OUT_GEN := $(PRODUCT_OUT)/gen |
| 532 | TARGET_OUT_COMMON_GEN := $(TARGET_COMMON_OUT_ROOT)/gen |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 533 | .KATI_READONLY := TARGET_OUT_GEN TARGET_OUT_COMMON_GEN |
Colin Cross | d826264 | 2014-01-24 23:17:21 -0800 | [diff] [blame] | 534 | |
Ying Wang | 2b6aaa3 | 2011-10-27 15:18:39 -0700 | [diff] [blame] | 535 | TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 536 | .KATI_READONLY := TARGET_OUT |
Ivan Krasin | 74b32b8 | 2015-09-18 11:54:43 -0700 | [diff] [blame] | 537 | ifneq ($(filter address,$(SANITIZE_TARGET)),) |
Vishwath Mohan | b285c46 | 2017-03-29 15:32:04 -0700 | [diff] [blame] | 538 | target_out_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/system |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 539 | ifeq ($(SANITIZE_LITE),true) |
| 540 | # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not |
| 541 | # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. |
| 542 | target_out_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/system |
| 543 | else |
| 544 | target_out_app_base := $(TARGET_OUT) |
| 545 | endif |
Evgenii Stepanov | 4d3d414 | 2015-06-11 17:32:31 -0700 | [diff] [blame] | 546 | else |
| 547 | target_out_shared_libraries_base := $(TARGET_OUT) |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 548 | target_out_app_base := $(TARGET_OUT) |
Evgenii Stepanov | 4d3d414 | 2015-06-11 17:32:31 -0700 | [diff] [blame] | 549 | endif |
| 550 | |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 551 | TARGET_OUT_EXECUTABLES := $(TARGET_OUT)/bin |
| 552 | TARGET_OUT_OPTIONAL_EXECUTABLES := $(TARGET_OUT)/xbin |
Ying Wang | 4b1c95d | 2014-07-08 17:07:36 -0700 | [diff] [blame] | 553 | ifeq ($(TARGET_IS_64_BIT),true) |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 554 | # /system/lib always contains 32-bit libraries, |
| 555 | # and /system/lib64 (if present) always contains 64-bit libraries. |
Evgenii Stepanov | 4d3d414 | 2015-06-11 17:32:31 -0700 | [diff] [blame] | 556 | TARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib64 |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 557 | else |
Evgenii Stepanov | 4d3d414 | 2015-06-11 17:32:31 -0700 | [diff] [blame] | 558 | TARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 559 | endif |
Dan Willemsen | c6e194f | 2016-02-13 00:19:40 -0800 | [diff] [blame] | 560 | TARGET_OUT_RENDERSCRIPT_BITCODE := $(TARGET_OUT_SHARED_LIBRARIES) |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 561 | TARGET_OUT_JAVA_LIBRARIES := $(TARGET_OUT)/framework |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 562 | TARGET_OUT_APPS := $(target_out_app_base)/app |
| 563 | TARGET_OUT_APPS_PRIVILEGED := $(target_out_app_base)/priv-app |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 564 | TARGET_OUT_KEYLAYOUT := $(TARGET_OUT)/usr/keylayout |
| 565 | TARGET_OUT_KEYCHARS := $(TARGET_OUT)/usr/keychars |
| 566 | TARGET_OUT_ETC := $(TARGET_OUT)/etc |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 567 | TARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES |
Dima Zavin | 531f524 | 2010-09-27 17:37:17 -0700 | [diff] [blame] | 568 | TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages |
Simran Basi | 7166d1f | 2017-01-25 15:11:55 -0800 | [diff] [blame] | 569 | TARGET_OUT_TESTCASES := $(PRODUCT_OUT)/testcases |
Joe Onorato | 964f401 | 2023-05-06 12:29:01 -0700 | [diff] [blame] | 570 | TARGET_OUT_FLAGS := $(TARGET_OUT_INTERMEDIATES)/FLAGS |
| 571 | |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 572 | .KATI_READONLY := \ |
| 573 | TARGET_OUT_EXECUTABLES \ |
| 574 | TARGET_OUT_OPTIONAL_EXECUTABLES \ |
| 575 | TARGET_OUT_SHARED_LIBRARIES \ |
| 576 | TARGET_OUT_RENDERSCRIPT_BITCODE \ |
| 577 | TARGET_OUT_JAVA_LIBRARIES \ |
| 578 | TARGET_OUT_APPS \ |
| 579 | TARGET_OUT_APPS_PRIVILEGED \ |
| 580 | TARGET_OUT_KEYLAYOUT \ |
| 581 | TARGET_OUT_KEYCHARS \ |
| 582 | TARGET_OUT_ETC \ |
| 583 | TARGET_OUT_NOTICE_FILES \ |
| 584 | TARGET_OUT_FAKE \ |
Joe Onorato | 964f401 | 2023-05-06 12:29:01 -0700 | [diff] [blame] | 585 | TARGET_OUT_TESTCASES \ |
| 586 | TARGET_OUT_FLAGS |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 587 | |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 588 | ifeq ($(SANITIZE_LITE),true) |
| 589 | # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not |
| 590 | # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. |
| 591 | TARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_OTHER) |
| 592 | else |
Alex Light | 4e358ab | 2016-06-16 14:47:10 -0700 | [diff] [blame] | 593 | TARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_OTHER) |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 594 | endif |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 595 | .KATI_READONLY := TARGET_OUT_SYSTEM_OTHER |
Alex Light | 4e358ab | 2016-06-16 14:47:10 -0700 | [diff] [blame] | 596 | |
Ying Wang | e1d44c3 | 2013-12-27 11:09:36 -0800 | [diff] [blame] | 597 | # Out for TARGET_2ND_ARCH |
Ying Wang | c459586 | 2014-06-10 12:04:56 -0700 | [diff] [blame] | 598 | TARGET_2ND_ARCH_MODULE_SUFFIX := $(HOST_2ND_ARCH_MODULE_SUFFIX) |
Anton Hansson | 1927985 | 2019-02-28 17:15:57 +0000 | [diff] [blame] | 599 | .KATI_READONLY := TARGET_2ND_ARCH_MODULE_SUFFIX |
Vishwath Mohan | d8eabaa | 2017-05-09 19:36:54 -0700 | [diff] [blame] | 600 | |
| 601 | ifneq ($(filter address,$(SANITIZE_TARGET)),) |
| 602 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)_asan |
| 603 | else |
| 604 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH) |
| 605 | endif |
Evgenii Stepanov | 4d3d414 | 2015-06-11 17:32:31 -0700 | [diff] [blame] | 606 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES := $(target_out_shared_libraries_base)/lib |
Dan Willemsen | c6e194f | 2016-02-13 00:19:40 -0800 | [diff] [blame] | 607 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES) |
Ying Wang | 72b01d6 | 2014-01-17 16:17:28 -0800 | [diff] [blame] | 608 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES := $(TARGET_OUT_EXECUTABLES) |
Colin Cross | d957446 | 2014-01-24 13:37:07 -0800 | [diff] [blame] | 609 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS := $(TARGET_OUT_APPS) |
| 610 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED := $(TARGET_OUT_APPS_PRIVILEGED) |
Simran Basi | 7166d1f | 2017-01-25 15:11:55 -0800 | [diff] [blame] | 611 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES := $(TARGET_OUT_TESTCASES) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 612 | .KATI_READONLY := \ |
| 613 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 614 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES \ |
| 615 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_RENDERSCRIPT_BITCODE \ |
| 616 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES \ |
| 617 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS \ |
| 618 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED \ |
| 619 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES |
Ying Wang | e1d44c3 | 2013-12-27 11:09:36 -0800 | [diff] [blame] | 620 | |
Nelson Li | 1f8357f | 2019-03-14 01:04:05 +0000 | [diff] [blame] | 621 | MODULE_CLASS_APPS := app |
| 622 | MODULE_CLASS_EXECUTABLES := bin |
| 623 | MODULE_CLASS_JAVA_LIBRARIES := framework |
| 624 | MODULE_CLASS_NATIVE_TESTS := nativetest |
| 625 | MODULE_CLASS_METRIC_TESTS := benchmarktest |
Ying Wang | 2b6aaa3 | 2011-10-27 15:18:39 -0700 | [diff] [blame] | 626 | TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA) |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 627 | TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES) |
| 628 | TARGET_OUT_DATA_SHARED_LIBRARIES := $(TARGET_OUT_SHARED_LIBRARIES) |
| 629 | TARGET_OUT_DATA_JAVA_LIBRARIES := $(TARGET_OUT_DATA)/framework |
| 630 | TARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA)/app |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 631 | TARGET_OUT_DATA_KEYLAYOUT := $(TARGET_OUT_KEYLAYOUT) |
| 632 | TARGET_OUT_DATA_KEYCHARS := $(TARGET_OUT_KEYCHARS) |
| 633 | TARGET_OUT_DATA_ETC := $(TARGET_OUT_ETC) |
Ying Wang | 4b1c95d | 2014-07-08 17:07:36 -0700 | [diff] [blame] | 634 | ifeq ($(TARGET_IS_64_BIT),true) |
| 635 | TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest64 |
Julien Desprez | 188a1dd | 2016-04-12 10:22:06 +0100 | [diff] [blame] | 636 | TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest64 |
Steven Moreland | cbfba70 | 2017-07-11 14:59:30 -0700 | [diff] [blame] | 637 | TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest64$(TARGET_VENDOR_TEST_SUFFIX) |
| 638 | TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest64$(TARGET_VENDOR_TEST_SUFFIX) |
Ying Wang | 4b1c95d | 2014-07-08 17:07:36 -0700 | [diff] [blame] | 639 | else |
Ying Wang | 4c68174 | 2010-07-20 11:08:47 -0700 | [diff] [blame] | 640 | TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest |
Julien Desprez | 188a1dd | 2016-04-12 10:22:06 +0100 | [diff] [blame] | 641 | TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest |
Steven Moreland | cbfba70 | 2017-07-11 14:59:30 -0700 | [diff] [blame] | 642 | TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_TEST_SUFFIX) |
| 643 | TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX) |
Ying Wang | 4b1c95d | 2014-07-08 17:07:36 -0700 | [diff] [blame] | 644 | endif |
Nelson Li | 1f8357f | 2019-03-14 01:04:05 +0000 | [diff] [blame] | 645 | MODULE_CLASS_FAKE := fake_packages |
Tsu Chiang Chuang | 40da883 | 2012-07-13 13:47:09 -0700 | [diff] [blame] | 646 | TARGET_OUT_DATA_FAKE := $(TARGET_OUT_DATA)/fake_packages |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 647 | .KATI_READONLY := \ |
| 648 | TARGET_OUT_DATA \ |
| 649 | TARGET_OUT_DATA_EXECUTABLES \ |
| 650 | TARGET_OUT_DATA_SHARED_LIBRARIES \ |
| 651 | TARGET_OUT_DATA_JAVA_LIBRARIES \ |
| 652 | TARGET_OUT_DATA_APPS \ |
| 653 | TARGET_OUT_DATA_KEYLAYOUT \ |
| 654 | TARGET_OUT_DATA_KEYCHARS \ |
| 655 | TARGET_OUT_DATA_ETC \ |
| 656 | TARGET_OUT_DATA_NATIVE_TESTS \ |
| 657 | TARGET_OUT_DATA_METRIC_TESTS \ |
| 658 | TARGET_OUT_VENDOR_NATIVE_TESTS \ |
| 659 | TARGET_OUT_VENDOR_METRIC_TESTS \ |
Nelson Li | 1f8357f | 2019-03-14 01:04:05 +0000 | [diff] [blame] | 660 | TARGET_OUT_DATA_FAKE \ |
| 661 | MODULE_CLASS_APPS \ |
| 662 | MODULE_CLASS_EXECUTABLES \ |
| 663 | MODULE_CLASS_JAVA_LIBRARIES \ |
| 664 | MODULE_CLASS_NATIVE_TESTS \ |
| 665 | MODULE_CLASS_METRIC_TESTS \ |
| 666 | MODULE_CLASS_FAKE |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 667 | |
Ying Wang | e3d0679 | 2014-01-23 15:09:04 -0800 | [diff] [blame] | 668 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_DATA_EXECUTABLES) |
| 669 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES) |
Colin Cross | d957446 | 2014-01-24 13:37:07 -0800 | [diff] [blame] | 670 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA_APPS) |
Ying Wang | 4b1c95d | 2014-07-08 17:07:36 -0700 | [diff] [blame] | 671 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest |
Julien Desprez | 188a1dd | 2016-04-12 10:22:06 +0100 | [diff] [blame] | 672 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest |
Steven Moreland | cbfba70 | 2017-07-11 14:59:30 -0700 | [diff] [blame] | 673 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_TEST_SUFFIX) |
| 674 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 675 | .KATI_READONLY := \ |
| 676 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES \ |
| 677 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES \ |
| 678 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS \ |
| 679 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS \ |
| 680 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS \ |
| 681 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_NATIVE_TESTS \ |
| 682 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_METRIC_TESTS \ |
Ying Wang | e3d0679 | 2014-01-23 15:09:04 -0800 | [diff] [blame] | 683 | |
Ying Wang | 9f8e8db | 2011-11-04 11:37:01 -0700 | [diff] [blame] | 684 | TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 685 | .KATI_READONLY := TARGET_OUT_CACHE |
Ying Wang | 9f8e8db | 2011-11-04 11:37:01 -0700 | [diff] [blame] | 686 | |
Ying Wang | 2b6aaa3 | 2011-10-27 15:18:39 -0700 | [diff] [blame] | 687 | TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 688 | .KATI_READONLY := TARGET_OUT_VENDOR |
Ivan Krasin | 74b32b8 | 2015-09-18 11:54:43 -0700 | [diff] [blame] | 689 | ifneq ($(filter address,$(SANITIZE_TARGET)),) |
Anton Hansson | ae9f105 | 2018-10-02 13:16:05 +0100 | [diff] [blame] | 690 | target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_VENDOR) |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 691 | ifeq ($(SANITIZE_LITE),true) |
| 692 | # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not |
| 693 | # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. |
Anton Hansson | ae9f105 | 2018-10-02 13:16:05 +0100 | [diff] [blame] | 694 | target_out_vendor_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_VENDOR) |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 695 | else |
| 696 | target_out_vendor_app_base := $(TARGET_OUT_VENDOR) |
| 697 | endif |
Evgenii Stepanov | bf14097 | 2015-06-30 14:02:02 -0700 | [diff] [blame] | 698 | else |
| 699 | target_out_vendor_shared_libraries_base := $(TARGET_OUT_VENDOR) |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 700 | target_out_vendor_app_base := $(TARGET_OUT_VENDOR) |
Evgenii Stepanov | bf14097 | 2015-06-30 14:02:02 -0700 | [diff] [blame] | 701 | endif |
| 702 | |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 703 | TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR)/bin |
| 704 | TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES := $(TARGET_OUT_VENDOR)/xbin |
Ying Wang | 4b1c95d | 2014-07-08 17:07:36 -0700 | [diff] [blame] | 705 | ifeq ($(TARGET_IS_64_BIT),true) |
Evgenii Stepanov | bf14097 | 2015-06-30 14:02:02 -0700 | [diff] [blame] | 706 | TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib64 |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 707 | else |
Evgenii Stepanov | bf14097 | 2015-06-30 14:02:02 -0700 | [diff] [blame] | 708 | TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 709 | endif |
Miao Wang | 57be564 | 2017-03-01 19:39:19 -0800 | [diff] [blame] | 710 | TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE := $(TARGET_OUT_VENDOR_SHARED_LIBRARIES) |
Ying Wang | c634974 | 2014-01-13 16:14:20 -0800 | [diff] [blame] | 711 | TARGET_OUT_VENDOR_JAVA_LIBRARIES := $(TARGET_OUT_VENDOR)/framework |
Andreas Gampe | 4ed21d1 | 2017-06-16 10:24:54 -0700 | [diff] [blame] | 712 | TARGET_OUT_VENDOR_APPS := $(target_out_vendor_app_base)/app |
| 713 | TARGET_OUT_VENDOR_APPS_PRIVILEGED := $(target_out_vendor_app_base)/priv-app |
Ying Wang | 8f77936 | 2011-09-13 13:57:26 -0700 | [diff] [blame] | 714 | TARGET_OUT_VENDOR_ETC := $(TARGET_OUT_VENDOR)/etc |
Cole Faust | 976a52c | 2023-10-03 12:58:27 -0700 | [diff] [blame] | 715 | TARGET_OUT_VENDOR_FAKE := $(PRODUCT_OUT)/vendor_fake_packages |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 716 | .KATI_READONLY := \ |
| 717 | TARGET_OUT_VENDOR_EXECUTABLES \ |
| 718 | TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES \ |
| 719 | TARGET_OUT_VENDOR_SHARED_LIBRARIES \ |
| 720 | TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE \ |
| 721 | TARGET_OUT_VENDOR_JAVA_LIBRARIES \ |
| 722 | TARGET_OUT_VENDOR_APPS \ |
| 723 | TARGET_OUT_VENDOR_APPS_PRIVILEGED \ |
Cole Faust | 976a52c | 2023-10-03 12:58:27 -0700 | [diff] [blame] | 724 | TARGET_OUT_VENDOR_ETC \ |
| 725 | TARGET_OUT_VENDOR_FAKE |
Ying Wang | 8f77936 | 2011-09-13 13:57:26 -0700 | [diff] [blame] | 726 | |
Ying Wang | e3d0679 | 2014-01-23 15:09:04 -0800 | [diff] [blame] | 727 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR_EXECUTABLES) |
Andreas Gampe | cf6268f | 2016-06-30 20:20:38 -0700 | [diff] [blame] | 728 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(target_out_vendor_shared_libraries_base)/lib |
Miao Wang | 57be564 | 2017-03-01 19:39:19 -0800 | [diff] [blame] | 729 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES) |
Colin Cross | d957446 | 2014-01-24 13:37:07 -0800 | [diff] [blame] | 730 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR_APPS) |
Hung-ying Tyan | 665e740 | 2016-07-20 17:51:56 +0800 | [diff] [blame] | 731 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED := $(TARGET_OUT_VENDOR_APPS_PRIVILEGED) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 732 | .KATI_READONLY := \ |
| 733 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES \ |
| 734 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES \ |
| 735 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_RENDERSCRIPT_BITCODE \ |
| 736 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS \ |
| 737 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS_PRIVILEGED |
Ying Wang | 61d499b | 2014-01-15 16:02:16 -0800 | [diff] [blame] | 738 | |
Ying Wang | b888843 | 2014-03-11 17:13:27 -0700 | [diff] [blame] | 739 | TARGET_OUT_OEM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_OEM) |
Ying Wang | f15250e | 2014-06-26 14:12:35 -0700 | [diff] [blame] | 740 | TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM)/bin |
Ying Wang | 4540a85 | 2015-03-12 18:30:39 -0700 | [diff] [blame] | 741 | ifeq ($(TARGET_IS_64_BIT),true) |
Ying Wang | f15250e | 2014-06-26 14:12:35 -0700 | [diff] [blame] | 742 | TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib64 |
| 743 | else |
| 744 | TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib |
| 745 | endif |
Ying Wang | b888843 | 2014-03-11 17:13:27 -0700 | [diff] [blame] | 746 | # We don't expect Java libraries in the oem.img. |
| 747 | # TARGET_OUT_OEM_JAVA_LIBRARIES:= $(TARGET_OUT_OEM)/framework |
Ying Wang | f15250e | 2014-06-26 14:12:35 -0700 | [diff] [blame] | 748 | TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM)/app |
Ying Wang | b888843 | 2014-03-11 17:13:27 -0700 | [diff] [blame] | 749 | TARGET_OUT_OEM_ETC := $(TARGET_OUT_OEM)/etc |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 750 | .KATI_READONLY := \ |
| 751 | TARGET_OUT_OEM \ |
| 752 | TARGET_OUT_OEM_EXECUTABLES \ |
| 753 | TARGET_OUT_OEM_SHARED_LIBRARIES \ |
| 754 | TARGET_OUT_OEM_APPS \ |
| 755 | TARGET_OUT_OEM_ETC |
Ying Wang | b888843 | 2014-03-11 17:13:27 -0700 | [diff] [blame] | 756 | |
Ying Wang | f15250e | 2014-06-26 14:12:35 -0700 | [diff] [blame] | 757 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM_EXECUTABLES) |
| 758 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib |
| 759 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM_APPS) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 760 | .KATI_READONLY := \ |
| 761 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES \ |
| 762 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES \ |
| 763 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS \ |
Ying Wang | f15250e | 2014-06-26 14:12:35 -0700 | [diff] [blame] | 764 | |
Ying Wang | 4540a85 | 2015-03-12 18:30:39 -0700 | [diff] [blame] | 765 | TARGET_OUT_ODM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ODM) |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 766 | ifneq ($(filter address,$(SANITIZE_TARGET)),) |
Anton Hansson | ae9f105 | 2018-10-02 13:16:05 +0100 | [diff] [blame] | 767 | target_out_odm_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_OEM) |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 768 | ifeq ($(SANITIZE_LITE),true) |
| 769 | # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not |
| 770 | # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. |
Anton Hansson | ae9f105 | 2018-10-02 13:16:05 +0100 | [diff] [blame] | 771 | target_out_odm_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_OEM) |
Ying Wang | 4540a85 | 2015-03-12 18:30:39 -0700 | [diff] [blame] | 772 | else |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 773 | target_out_odm_app_base := $(TARGET_OUT_ODM) |
Ying Wang | 4540a85 | 2015-03-12 18:30:39 -0700 | [diff] [blame] | 774 | endif |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 775 | else |
| 776 | target_out_odm_shared_libraries_base := $(TARGET_OUT_ODM) |
| 777 | target_out_odm_app_base := $(TARGET_OUT_ODM) |
| 778 | endif |
| 779 | |
| 780 | TARGET_OUT_ODM_EXECUTABLES := $(TARGET_OUT_ODM)/bin |
| 781 | TARGET_OUT_ODM_OPTIONAL_EXECUTABLES := $(TARGET_OUT_ODM)/xbin |
| 782 | ifeq ($(TARGET_IS_64_BIT),true) |
| 783 | TARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib64 |
| 784 | else |
| 785 | TARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib |
| 786 | endif |
| 787 | TARGET_OUT_ODM_RENDERSCRIPT_BITCODE := $(TARGET_OUT_ODM_SHARED_LIBRARIES) |
| 788 | TARGET_OUT_ODM_JAVA_LIBRARIES := $(TARGET_OUT_ODM)/framework |
| 789 | TARGET_OUT_ODM_APPS := $(target_out_odm_app_base)/app |
| 790 | TARGET_OUT_ODM_APPS_PRIVILEGED := $(target_out_odm_app_base)/priv-app |
Ying Wang | 4540a85 | 2015-03-12 18:30:39 -0700 | [diff] [blame] | 791 | TARGET_OUT_ODM_ETC := $(TARGET_OUT_ODM)/etc |
Alexander Koskovich | d65b625 | 2024-03-18 15:37:41 -0400 | [diff] [blame^] | 792 | TARGET_OUT_ODM_FAKE := $(PRODUCT_OUT)/odm_fake_packages |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 793 | .KATI_READONLY := \ |
| 794 | TARGET_OUT_ODM \ |
| 795 | TARGET_OUT_ODM_EXECUTABLES \ |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 796 | TARGET_OUT_ODM_OPTIONAL_EXECUTABLES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 797 | TARGET_OUT_ODM_SHARED_LIBRARIES \ |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 798 | TARGET_OUT_ODM_RENDERSCRIPT_BITCODE \ |
| 799 | TARGET_OUT_ODM_JAVA_LIBRARIES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 800 | TARGET_OUT_ODM_APPS \ |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 801 | TARGET_OUT_ODM_APPS_PRIVILEGED \ |
Alexander Koskovich | d65b625 | 2024-03-18 15:37:41 -0400 | [diff] [blame^] | 802 | TARGET_OUT_ODM_ETC \ |
| 803 | TARGET_OUT_ODM_FAKE |
Ying Wang | 4540a85 | 2015-03-12 18:30:39 -0700 | [diff] [blame] | 804 | |
| 805 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_EXECUTABLES := $(TARGET_OUT_ODM_EXECUTABLES) |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 806 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES := $(target_out_odm_shared_libraries_base)/lib |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 807 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES) |
Ying Wang | 4540a85 | 2015-03-12 18:30:39 -0700 | [diff] [blame] | 808 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS := $(TARGET_OUT_ODM_APPS) |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 809 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS_PRIVILEGED := $(TARGET_OUT_ODM_APPS_PRIVILEGED) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 810 | .KATI_READONLY := \ |
| 811 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_EXECUTABLES \ |
| 812 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_SHARED_LIBRARIES \ |
Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 813 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_RENDERSCRIPT_BITCODE \ |
| 814 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS \ |
| 815 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_APPS_PRIVILEGED |
Ying Wang | 4540a85 | 2015-03-12 18:30:39 -0700 | [diff] [blame] | 816 | |
Yifan Hong | cfb917a | 2020-05-07 14:58:20 -0700 | [diff] [blame] | 817 | TARGET_OUT_VENDOR_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_DLKM) |
| 818 | |
| 819 | TARGET_OUT_VENDOR_DLKM_ETC := $(TARGET_OUT_VENDOR_DLKM)/etc |
| 820 | .KATI_READONLY := \ |
| 821 | TARGET_OUT_VENDOR_DLKM_ETC |
| 822 | |
| 823 | # Unlike other partitions, vendor_dlkm should only contain kernel modules. |
| 824 | TARGET_OUT_VENDOR_DLKM_EXECUTABLES := |
| 825 | TARGET_OUT_VENDOR_DLKM_OPTIONAL_EXECUTABLES := |
| 826 | TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES := |
| 827 | TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE := |
| 828 | TARGET_OUT_VENDOR_DLKM_JAVA_LIBRARIES := |
| 829 | TARGET_OUT_VENDOR_DLKM_APPS := |
| 830 | TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED := |
| 831 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_EXECUTABLES := |
| 832 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES := |
| 833 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE := |
| 834 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS := |
| 835 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED := |
| 836 | $(KATI_obsolete_var \ |
| 837 | TARGET_OUT_VENDOR_DLKM_EXECUTABLES \ |
| 838 | TARGET_OUT_VENDOR_DLKM_OPTIONAL_EXECUTABLES \ |
| 839 | TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES \ |
| 840 | TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE \ |
| 841 | TARGET_OUT_VENDOR_DLKM_JAVA_LIBRARIES \ |
| 842 | TARGET_OUT_VENDOR_DLKM_APPS \ |
| 843 | TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED \ |
| 844 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_EXECUTABLES \ |
| 845 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_SHARED_LIBRARIES \ |
| 846 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_RENDERSCRIPT_BITCODE \ |
| 847 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS \ |
| 848 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_DLKM_APPS_PRIVILEGED \ |
| 849 | , vendor_dlkm should not contain any executables, libraries, or apps) |
| 850 | |
Yifan Hong | f496f1b | 2020-07-15 16:52:59 -0700 | [diff] [blame] | 851 | TARGET_OUT_ODM_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ODM_DLKM) |
| 852 | |
| 853 | TARGET_OUT_ODM_DLKM_ETC := $(TARGET_OUT_ODM_DLKM)/etc |
| 854 | .KATI_READONLY := \ |
| 855 | TARGET_OUT_ODM_DLKM_ETC |
| 856 | |
| 857 | # Unlike other partitions, odm_dlkm should only contain kernel modules. |
| 858 | TARGET_OUT_ODM_DLKM_EXECUTABLES := |
| 859 | TARGET_OUT_ODM_DLKM_OPTIONAL_EXECUTABLES := |
| 860 | TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES := |
| 861 | TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE := |
| 862 | TARGET_OUT_ODM_DLKM_JAVA_LIBRARIES := |
| 863 | TARGET_OUT_ODM_DLKM_APPS := |
| 864 | TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED := |
| 865 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_EXECUTABLES := |
| 866 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES := |
| 867 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE := |
| 868 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS := |
| 869 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED := |
| 870 | $(KATI_obsolete_var \ |
| 871 | TARGET_OUT_ODM_DLKM_EXECUTABLES \ |
| 872 | TARGET_OUT_ODM_DLKM_OPTIONAL_EXECUTABLES \ |
| 873 | TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES \ |
| 874 | TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE \ |
| 875 | TARGET_OUT_ODM_DLKM_JAVA_LIBRARIES \ |
| 876 | TARGET_OUT_ODM_DLKM_APPS \ |
| 877 | TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED \ |
| 878 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_EXECUTABLES \ |
| 879 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_SHARED_LIBRARIES \ |
| 880 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_RENDERSCRIPT_BITCODE \ |
| 881 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS \ |
| 882 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_ODM_DLKM_APPS_PRIVILEGED \ |
| 883 | , odm_dlkm should not contain any executables, libraries, or apps) |
| 884 | |
Ramji Jiyani | 13a4137 | 2022-01-27 07:05:08 +0000 | [diff] [blame] | 885 | TARGET_OUT_SYSTEM_DLKM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_DLKM) |
| 886 | |
| 887 | # Unlike other partitions, system_dlkm should only contain kernel modules. |
| 888 | TARGET_OUT_SYSTEM_DLKM_EXECUTABLES := |
| 889 | TARGET_OUT_SYSTEM_DLKM_OPTIONAL_EXECUTABLES := |
| 890 | TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES := |
| 891 | TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE := |
| 892 | TARGET_OUT_SYSTEM_DLKM_JAVA_LIBRARIES := |
| 893 | TARGET_OUT_SYSTEM_DLKM_APPS := |
| 894 | TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED := |
| 895 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_EXECUTABLES := |
| 896 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES := |
| 897 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE := |
| 898 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS := |
| 899 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED := |
| 900 | $(KATI_obsolete_var \ |
| 901 | TARGET_OUT_SYSTEM_DLKM_EXECUTABLES \ |
| 902 | TARGET_OUT_SYSTEM_DLKM_OPTIONAL_EXECUTABLES \ |
| 903 | TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES \ |
| 904 | TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE \ |
| 905 | TARGET_OUT_SYSTEM_DLKM_JAVA_LIBRARIES \ |
| 906 | TARGET_OUT_SYSTEM_DLKM_APPS \ |
| 907 | TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED \ |
| 908 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_EXECUTABLES \ |
| 909 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_SHARED_LIBRARIES \ |
| 910 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_RENDERSCRIPT_BITCODE \ |
| 911 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS \ |
| 912 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_DLKM_APPS_PRIVILEGED \ |
| 913 | , system_dlkm should not contain any executables, libraries, or apps) |
| 914 | |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 915 | TARGET_OUT_PRODUCT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_PRODUCT) |
Doheon Lee | 09d9b90 | 2018-06-25 10:56:01 +0900 | [diff] [blame] | 916 | TARGET_OUT_PRODUCT_EXECUTABLES := $(TARGET_OUT_PRODUCT)/bin |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 917 | .KATI_READONLY := TARGET_OUT_PRODUCT |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 918 | ifneq ($(filter address,$(SANITIZE_TARGET)),) |
Anton Hansson | ae9f105 | 2018-10-02 13:16:05 +0100 | [diff] [blame] | 919 | target_out_product_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT) |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 920 | ifeq ($(SANITIZE_LITE),true) |
| 921 | # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not |
| 922 | # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. |
Anton Hansson | ae9f105 | 2018-10-02 13:16:05 +0100 | [diff] [blame] | 923 | target_out_product_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT) |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 924 | else |
| 925 | target_out_product_app_base := $(TARGET_OUT_PRODUCT) |
| 926 | endif |
| 927 | else |
Inseob Kim | 47c1352 | 2018-05-04 11:20:43 +0900 | [diff] [blame] | 928 | target_out_product_shared_libraries_base := $(TARGET_OUT_PRODUCT) |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 929 | target_out_product_app_base := $(TARGET_OUT_PRODUCT) |
| 930 | endif |
| 931 | |
| 932 | ifeq ($(TARGET_IS_64_BIT),true) |
| 933 | TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib64 |
| 934 | else |
| 935 | TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib |
| 936 | endif |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 937 | TARGET_OUT_PRODUCT_JAVA_LIBRARIES := $(TARGET_OUT_PRODUCT)/framework |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 938 | TARGET_OUT_PRODUCT_APPS := $(target_out_product_app_base)/app |
| 939 | TARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(target_out_product_app_base)/priv-app |
| 940 | TARGET_OUT_PRODUCT_ETC := $(TARGET_OUT_PRODUCT)/etc |
Alexander Koskovich | d65b625 | 2024-03-18 15:37:41 -0400 | [diff] [blame^] | 941 | TARGET_OUT_PRODUCT_FAKE := $(TARGET_OUT_PRODUCT)/product_fake_packages |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 942 | .KATI_READONLY := \ |
Doheon Lee | 09d9b90 | 2018-06-25 10:56:01 +0900 | [diff] [blame] | 943 | TARGET_OUT_PRODUCT_EXECUTABLES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 944 | TARGET_OUT_PRODUCT_SHARED_LIBRARIES \ |
| 945 | TARGET_OUT_PRODUCT_JAVA_LIBRARIES \ |
| 946 | TARGET_OUT_PRODUCT_APPS \ |
| 947 | TARGET_OUT_PRODUCT_APPS_PRIVILEGED \ |
Alexander Koskovich | d65b625 | 2024-03-18 15:37:41 -0400 | [diff] [blame^] | 948 | TARGET_OUT_PRODUCT_ETC \ |
| 949 | TARGET_OUT_PRODUCT_FAKE |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 950 | |
Doheon Lee | 09d9b90 | 2018-06-25 10:56:01 +0900 | [diff] [blame] | 951 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_EXECUTABLES := $(TARGET_OUT_PRODUCT_EXECUTABLES) |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 952 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES := $(target_out_product_shared_libraries_base)/lib |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 953 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS := $(TARGET_OUT_PRODUCT_APPS) |
| 954 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(TARGET_OUT_PRODUCT_APPS_PRIVILEGED) |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 955 | .KATI_READONLY := \ |
Doheon Lee | 09d9b90 | 2018-06-25 10:56:01 +0900 | [diff] [blame] | 956 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_EXECUTABLES \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 957 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_SHARED_LIBRARIES \ |
| 958 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS \ |
| 959 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED |
Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 960 | |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 961 | TARGET_OUT_SYSTEM_EXT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_EXT) |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 962 | ifneq ($(filter address,$(SANITIZE_TARGET)),) |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 963 | target_out_system_ext_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_EXT) |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 964 | ifeq ($(SANITIZE_LITE),true) |
| 965 | # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not |
| 966 | # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 967 | target_out_system_ext_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_SYSTEM_EXT) |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 968 | else |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 969 | target_out_system_ext_app_base := $(TARGET_OUT_SYSTEM_EXT) |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 970 | endif |
| 971 | else |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 972 | target_out_system_ext_shared_libraries_base := $(TARGET_OUT_SYSTEM_EXT) |
| 973 | target_out_system_ext_app_base := $(TARGET_OUT_SYSTEM_EXT) |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 974 | endif |
| 975 | |
| 976 | ifeq ($(TARGET_IS_64_BIT),true) |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 977 | TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib64 |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 978 | else |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 979 | TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 980 | endif |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 981 | TARGET_OUT_SYSTEM_EXT_JAVA_LIBRARIES:= $(TARGET_OUT_SYSTEM_EXT)/framework |
| 982 | TARGET_OUT_SYSTEM_EXT_APPS := $(target_out_system_ext_app_base)/app |
| 983 | TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED := $(target_out_system_ext_app_base)/priv-app |
| 984 | TARGET_OUT_SYSTEM_EXT_ETC := $(TARGET_OUT_SYSTEM_EXT)/etc |
Jeongik Cha | 6a5e9a2 | 2019-08-20 19:24:43 +0900 | [diff] [blame] | 985 | TARGET_OUT_SYSTEM_EXT_EXECUTABLES := $(TARGET_OUT_SYSTEM_EXT)/bin |
Alexander Koskovich | d65b625 | 2024-03-18 15:37:41 -0400 | [diff] [blame^] | 986 | TARGET_OUT_SYSTEM_EXT_FAKE := $(PRODUCT_OUT)/system_ext_fake_packages |
Jeongik Cha | 6a5e9a2 | 2019-08-20 19:24:43 +0900 | [diff] [blame] | 987 | .KATI_READONLY := \ |
| 988 | TARGET_OUT_SYSTEM_EXT_EXECUTABLES \ |
| 989 | TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES \ |
| 990 | TARGET_OUT_SYSTEM_EXT_JAVA_LIBRARIES \ |
| 991 | TARGET_OUT_SYSTEM_EXT_APPS \ |
| 992 | TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED \ |
Alexander Koskovich | d65b625 | 2024-03-18 15:37:41 -0400 | [diff] [blame^] | 993 | TARGET_OUT_SYSTEM_EXT_ETC \ |
| 994 | TARGET_OUT_SYSTEM_EXT_FAKE |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 995 | |
Jeongik Cha | 6a5e9a2 | 2019-08-20 19:24:43 +0900 | [diff] [blame] | 996 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_EXECUTABLES := $(TARGET_OUT_SYSTEM_EXT_EXECUTABLES) |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 997 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES := $(target_out_system_ext_shared_libraries_base)/lib |
Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 998 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS := $(TARGET_OUT_SYSTEM_EXT_APPS) |
| 999 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED := $(TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED) |
Jeongik Cha | 6a5e9a2 | 2019-08-20 19:24:43 +0900 | [diff] [blame] | 1000 | .KATI_READONLY := \ |
| 1001 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_EXECUTABLES \ |
| 1002 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES \ |
| 1003 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS \ |
| 1004 | $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED |
Dario Freni | 5f681e1 | 2018-05-29 13:09:01 +0100 | [diff] [blame] | 1005 | |
Steve Fung | dfbab49 | 2015-09-24 18:12:33 -0700 | [diff] [blame] | 1006 | TARGET_OUT_BREAKPAD := $(PRODUCT_OUT)/breakpad |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1007 | .KATI_READONLY := TARGET_OUT_BREAKPAD |
Steve Fung | dfbab49 | 2015-09-24 18:12:33 -0700 | [diff] [blame] | 1008 | |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1009 | TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols |
| 1010 | TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin |
| 1011 | TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/lib |
Colin Cross | a58f8e0 | 2014-06-20 13:33:36 -0700 | [diff] [blame] | 1012 | TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/$(TARGET_COPY_OUT_VENDOR)/lib |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1013 | TARGET_ROOT_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED) |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1014 | TARGET_ROOT_OUT_BIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/bin |
Ryan Campbell | 737bc02 | 2016-09-15 17:32:13 -0700 | [diff] [blame] | 1015 | TARGET_OUT_COVERAGE := $(PRODUCT_OUT)/coverage |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1016 | .KATI_READONLY := \ |
| 1017 | TARGET_OUT_UNSTRIPPED \ |
| 1018 | TARGET_OUT_EXECUTABLES_UNSTRIPPED \ |
| 1019 | TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED \ |
| 1020 | TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED \ |
| 1021 | TARGET_ROOT_OUT_UNSTRIPPED \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1022 | TARGET_ROOT_OUT_BIN_UNSTRIPPED \ |
| 1023 | TARGET_OUT_COVERAGE |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1024 | |
Tom Cherry | d14b895 | 2018-08-09 14:26:00 -0700 | [diff] [blame] | 1025 | TARGET_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RAMDISK) |
| 1026 | TARGET_RAMDISK_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED) |
Bowgo Tsai | 0013f55 | 2019-03-20 17:59:52 +0800 | [diff] [blame] | 1027 | TARGET_DEBUG_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DEBUG_RAMDISK) |
Bowgo Tsai | 6a68367 | 2020-02-14 19:00:15 +0800 | [diff] [blame] | 1028 | TARGET_VENDOR_DEBUG_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_DEBUG_RAMDISK) |
Bowgo Tsai | 5c40c71 | 2019-10-08 10:22:19 +0800 | [diff] [blame] | 1029 | TARGET_TEST_HARNESS_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_TEST_HARNESS_RAMDISK) |
Tom Cherry | d14b895 | 2018-08-09 14:26:00 -0700 | [diff] [blame] | 1030 | |
Ramji Jiyani | 1065523 | 2022-01-20 06:43:09 +0000 | [diff] [blame] | 1031 | TARGET_SYSTEM_DLKM_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_DLKM) |
| 1032 | .KATI_READONLY := TARGET_SYSTEM_DLKM_OUT |
| 1033 | |
Steve Muckle | e1b1086 | 2019-07-10 10:49:37 -0700 | [diff] [blame] | 1034 | TARGET_VENDOR_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_RAMDISK) |
Lucas Wei | f57333f | 2022-02-24 10:30:15 +0800 | [diff] [blame] | 1035 | TARGET_VENDOR_KERNEL_RAMDISK_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR_KERNEL_RAMDISK) |
Steve Muckle | e1b1086 | 2019-07-10 10:49:37 -0700 | [diff] [blame] | 1036 | |
Ying Wang | 2b6aaa3 | 2011-10-27 15:18:39 -0700 | [diff] [blame] | 1037 | TARGET_ROOT_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ROOT) |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1038 | TARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1039 | TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc |
| 1040 | TARGET_ROOT_OUT_USR := $(TARGET_ROOT_OUT)/usr |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1041 | .KATI_READONLY := \ |
| 1042 | TARGET_ROOT_OUT \ |
| 1043 | TARGET_ROOT_OUT_BIN \ |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1044 | TARGET_ROOT_OUT_ETC \ |
| 1045 | TARGET_ROOT_OUT_USR |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1046 | |
Ying Wang | 2b6aaa3 | 2011-10-27 15:18:39 -0700 | [diff] [blame] | 1047 | TARGET_RECOVERY_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RECOVERY) |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1048 | TARGET_RECOVERY_ROOT_OUT := $(TARGET_RECOVERY_OUT)/root |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1049 | .KATI_READONLY := \ |
| 1050 | TARGET_RECOVERY_OUT \ |
| 1051 | TARGET_RECOVERY_ROOT_OUT |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1052 | |
| 1053 | TARGET_SYSLOADER_OUT := $(PRODUCT_OUT)/sysloader |
| 1054 | TARGET_SYSLOADER_ROOT_OUT := $(TARGET_SYSLOADER_OUT)/root |
| 1055 | TARGET_SYSLOADER_SYSTEM_OUT := $(TARGET_SYSLOADER_OUT)/root/system |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1056 | .KATI_READONLY := \ |
| 1057 | TARGET_SYSLOADER_OUT \ |
| 1058 | TARGET_SYSLOADER_ROOT_OUT \ |
| 1059 | TARGET_SYSLOADER_SYSTEM_OUT |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1060 | |
| 1061 | TARGET_INSTALLER_OUT := $(PRODUCT_OUT)/installer |
| 1062 | TARGET_INSTALLER_DATA_OUT := $(TARGET_INSTALLER_OUT)/data |
| 1063 | TARGET_INSTALLER_ROOT_OUT := $(TARGET_INSTALLER_OUT)/root |
| 1064 | TARGET_INSTALLER_SYSTEM_OUT := $(TARGET_INSTALLER_OUT)/root/system |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1065 | .KATI_READONLY := \ |
| 1066 | TARGET_INSTALLER_OUT \ |
| 1067 | TARGET_INSTALLER_DATA_OUT \ |
| 1068 | TARGET_INSTALLER_ROOT_OUT \ |
| 1069 | TARGET_INSTALLER_SYSTEM_OUT |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1070 | |
Dan Willemsen | 8447b81 | 2020-06-08 21:00:18 -0700 | [diff] [blame] | 1071 | COMMON_MODULE_CLASSES := TARGET_NOTICE_FILES HOST_NOTICE_FILES HOST_JAVA_LIBRARIES |
Ivan Lozano | d62e712 | 2019-08-27 11:23:35 -0700 | [diff] [blame] | 1072 | PER_ARCH_MODULE_CLASSES := SHARED_LIBRARIES STATIC_LIBRARIES EXECUTABLES GYP RENDERSCRIPT_BITCODE NATIVE_TESTS HEADER_LIBRARIES RLIB_LIBRARIES DYLIB_LIBRARIES |
Dan Willemsen | 11677ed | 2018-03-28 14:33:10 -0700 | [diff] [blame] | 1073 | .KATI_READONLY := COMMON_MODULE_CLASSES PER_ARCH_MODULE_CLASSES |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1074 | |
Dan Willemsen | 20f99a6 | 2017-10-12 01:35:14 -0700 | [diff] [blame] | 1075 | ifeq ($(CALLED_FROM_SETUP),true) |
Dan Willemsen | 0d25529 | 2017-02-18 10:32:13 -0800 | [diff] [blame] | 1076 | PRINT_BUILD_CONFIG ?= true |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1077 | endif |