blob: 884f698cd9fc8f070c13762ea73085b4aeeda43d [file] [log] [blame]
Brian Carlstrom16192862011-09-12 17:50:06 -07001#
2# Copyright (C) 2011 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
Brian Carlstrom27ec9612011-09-19 20:20:38 -070017########################################################################
Brian Carlstrom7ab763c2013-12-09 00:38:02 -080018# Rules to build a smaller "core" image to support core libraries
19# (that is, non-Android frameworks) testing on the host and target
20#
21# The main rules to build the default "boot" image are in
22# build/core/dex_preopt_libart.mk
Brian Carlstrom16192862011-09-12 17:50:06 -070023
Nicolas Geoffray611e1db2014-10-09 17:34:45 +010024include art/build/Android.common_build.mk
Dave Allison70202782013-10-22 17:52:19 -070025
Andreas Gampe4d2ef332015-08-05 09:24:45 -070026LOCAL_DEX2OAT_HOST_INSTRUCTION_SET_FEATURES_OPTION :=
Ian Rogersd582fa42014-11-05 23:46:43 -080027ifeq ($(DEX2OAT_HOST_INSTRUCTION_SET_FEATURES),)
Andreas Gampe4d2ef332015-08-05 09:24:45 -070028 LOCAL_DEX2OAT_HOST_INSTRUCTION_SET_FEATURES_OPTION := --instruction-set-features=default
29else
30 LOCAL_DEX2OAT_HOST_INSTRUCTION_SET_FEATURES_OPTION := --instruction-set-features=$(DEX2OAT_HOST_INSTRUCTION_SET_FEATURES)
Ian Rogersd582fa42014-11-05 23:46:43 -080031endif
Andreas Gampe4d2ef332015-08-05 09:24:45 -070032LOCAL_$(HOST_2ND_ARCH_VAR_PREFIX)DEX2OAT_HOST_INSTRUCTION_SET_FEATURES_OPTION :=
Ian Rogersd582fa42014-11-05 23:46:43 -080033ifeq ($($(HOST_2ND_ARCH_VAR_PREFIX)DEX2OAT_HOST_INSTRUCTION_SET_FEATURES),)
Andreas Gampe4d2ef332015-08-05 09:24:45 -070034 LOCAL_$(HOST_2ND_ARCH_VAR_PREFIX)DEX2OAT_HOST_INSTRUCTION_SET_FEATURES_OPTION := --instruction-set-features=default
35else
36 LOCAL_$(HOST_2ND_ARCH_VAR_PREFIX)DEX2OAT_HOST_INSTRUCTION_SET_FEATURES_OPTION := --instruction-set-features=$($(HOST_2ND_ARCH_VAR_PREFIX)DEX2OAT_HOST_INSTRUCTION_SET_FEATURES)
Ian Rogersd582fa42014-11-05 23:46:43 -080037endif
38
Nicolas Geoffray1db132d2014-03-26 10:56:24 +000039# Use dex2oat debug version for better error reporting
Igor Murashkin7617abd2015-07-10 18:27:47 -070040# $(1): compiler - default, optimizing, jit, interpreter or interpreter-access-checks.
Andreas Gampec23c9c92014-10-28 14:47:25 -070041# $(2): pic/no-pic
42# $(3): 2ND_ or undefined, 2ND_ for 32-bit host builds.
Andreas Gampe088b16e2014-12-03 21:59:27 -080043# $(4): wrapper, e.g., valgrind.
44# $(5): dex2oat suffix, e.g, valgrind requires 32 right now.
Jeff Haodcdc85b2015-12-04 14:06:18 -080045# $(6): multi-image.
Alex Light1ef4ce82014-08-27 11:13:47 -070046# NB depending on HOST_CORE_DEX_LOCATIONS so we are sure to have the dex files in frameworks for
47# run-test --no-image
Ian Rogersafd9acc2014-06-17 08:21:54 -070048define create-core-oat-host-rules
Andreas Gampe63fc30e2014-10-24 21:58:16 -070049 core_compile_options :=
50 core_image_name :=
51 core_oat_name :=
52 core_infix :=
Andreas Gampec23c9c92014-10-28 14:47:25 -070053 core_pic_infix :=
Nicolas Geoffraya136ab52014-10-31 10:48:25 +000054 core_dex2oat_dependency := $(DEX2OAT_DEPENDENCY)
Andreas Gampe63fc30e2014-10-24 21:58:16 -070055
Nicolas Geoffray6427df12014-12-17 12:34:15 +000056 ifeq ($(1),default)
57 core_compile_options += --compiler-backend=Quick
58 endif
Andreas Gampe63fc30e2014-10-24 21:58:16 -070059 ifeq ($(1),optimizing)
Nicolas Geoffraya136ab52014-10-31 10:48:25 +000060 core_compile_options += --compiler-backend=Optimizing
Nicolas Geoffrayc13f13a2015-10-06 12:39:17 +010061 core_dex2oat_dependency := $(DEX2OAT)
Andreas Gampe63fc30e2014-10-24 21:58:16 -070062 core_infix := -optimizing
63 endif
64 ifeq ($(1),interpreter)
65 core_compile_options += --compiler-filter=interpret-only
66 core_infix := -interpreter
67 endif
Andreas Gampe825570c2015-07-26 10:26:03 -070068 ifeq ($(1),interp-ac)
Igor Murashkin7617abd2015-07-10 18:27:47 -070069 core_compile_options += --compiler-filter=verify-at-runtime --runtime-arg -Xverify:softfail
Andreas Gampe825570c2015-07-26 10:26:03 -070070 core_infix := -interp-ac
Igor Murashkin7617abd2015-07-10 18:27:47 -070071 endif
Andreas Gampe8a159fd2015-09-21 15:14:38 -070072 ifeq ($(1),jit)
73 core_compile_options += --compiler-filter=verify-at-runtime
74 core_infix := -jit
75 endif
Andreas Gampe63fc30e2014-10-24 21:58:16 -070076 ifeq ($(1),default)
77 # Default has no infix, no compile options.
78 endif
Andreas Gampe825570c2015-07-26 10:26:03 -070079 ifneq ($(filter-out default interpreter interp-ac jit optimizing,$(1)),)
Andreas Gampe63fc30e2014-10-24 21:58:16 -070080 #Technically this test is not precise, but hopefully good enough.
Igor Murashkin7617abd2015-07-10 18:27:47 -070081 $$(error found $(1) expected default, interpreter, interpreter-access-checks, jit or optimizing)
Andreas Gampe63fc30e2014-10-24 21:58:16 -070082 endif
Andreas Gampec23c9c92014-10-28 14:47:25 -070083
84 ifeq ($(2),pic)
85 core_compile_options += --compile-pic
86 core_pic_infix := -pic
87 endif
88 ifeq ($(2),no-pic)
89 # No change for non-pic
90 endif
91 ifneq ($(filter-out pic no-pic,$(2)),)
92 # Technically this test is not precise, but hopefully good enough.
93 $$(error found $(2) expected pic or no-pic)
94 endif
95
Jeff Haodcdc85b2015-12-04 14:06:18 -080096 # If $(6) is true, generate a multi-image.
97 ifeq ($(6),true)
98 core_multi_infix := -multi
99 core_multi_param := --multi-image --no-inline-from=core-oj-hostdex.jar
100 core_multi_group := _multi
101 else
102 core_multi_infix :=
103 core_multi_param :=
104 core_multi_group :=
105 endif
106
107 core_image_name := $($(3)HOST_CORE_IMG_OUT_BASE)$$(core_infix)$$(core_pic_infix)$$(core_multi_infix)$(4)$(CORE_IMG_SUFFIX)
108 core_oat_name := $($(3)HOST_CORE_OAT_OUT_BASE)$$(core_infix)$$(core_pic_infix)$$(core_multi_infix)$(4)$(CORE_OAT_SUFFIX)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700109
110 # Using the bitness suffix makes it easier to add as a dependency for the run-test mk.
Andreas Gampec23c9c92014-10-28 14:47:25 -0700111 ifeq ($(3),)
Jeff Haodcdc85b2015-12-04 14:06:18 -0800112 $(4)HOST_CORE_IMAGE_$(1)_$(2)$$(core_multi_group)_64 := $$(core_image_name)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700113 else
Jeff Haodcdc85b2015-12-04 14:06:18 -0800114 $(4)HOST_CORE_IMAGE_$(1)_$(2)$$(core_multi_group)_32 := $$(core_image_name)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700115 endif
Andreas Gampe088b16e2014-12-03 21:59:27 -0800116 $(4)HOST_CORE_IMG_OUTS += $$(core_image_name)
117 $(4)HOST_CORE_OAT_OUTS += $$(core_oat_name)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700118
Andreas Gampe088b16e2014-12-03 21:59:27 -0800119 # If we have a wrapper, make the target phony.
120 ifneq ($(4),)
121.PHONY: $$(core_image_name)
122 endif
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700123$$(core_image_name): PRIVATE_CORE_COMPILE_OPTIONS := $$(core_compile_options)
124$$(core_image_name): PRIVATE_CORE_IMG_NAME := $$(core_image_name)
125$$(core_image_name): PRIVATE_CORE_OAT_NAME := $$(core_oat_name)
Jeff Haodcdc85b2015-12-04 14:06:18 -0800126$$(core_image_name): PRIVATE_CORE_MULTI_PARAM := $$(core_multi_param)
Nicolas Geoffraya136ab52014-10-31 10:48:25 +0000127$$(core_image_name): $$(HOST_CORE_DEX_LOCATIONS) $$(core_dex2oat_dependency)
Shinichiro Hamajic5d29052015-12-18 15:51:51 +0900128 @echo "host dex2oat: $$@"
Ian Rogersafd9acc2014-06-17 08:21:54 -0700129 @mkdir -p $$(dir $$@)
Andreas Gampe088b16e2014-12-03 21:59:27 -0800130 $$(hide) $(4) $$(DEX2OAT)$(5) --runtime-arg -Xms$(DEX2OAT_IMAGE_XMS) \
131 --runtime-arg -Xmx$(DEX2OAT_IMAGE_XMX) \
Ian Rogersafd9acc2014-06-17 08:21:54 -0700132 --image-classes=$$(PRELOADED_CLASSES) $$(addprefix --dex-file=,$$(HOST_CORE_DEX_FILES)) \
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700133 $$(addprefix --dex-location=,$$(HOST_CORE_DEX_LOCATIONS)) --oat-file=$$(PRIVATE_CORE_OAT_NAME) \
134 --oat-location=$$(PRIVATE_CORE_OAT_NAME) --image=$$(PRIVATE_CORE_IMG_NAME) \
Andreas Gampec23c9c92014-10-28 14:47:25 -0700135 --base=$$(LIBART_IMG_HOST_BASE_ADDRESS) --instruction-set=$$($(3)ART_HOST_ARCH) \
Andreas Gampe4d2ef332015-08-05 09:24:45 -0700136 $$(LOCAL_$(3)DEX2OAT_HOST_INSTRUCTION_SET_FEATURES_OPTION) \
David Srbecky461d72a2015-06-11 01:27:56 +0100137 --host --android-root=$$(HOST_OUT) --include-patch-information --generate-debug-info \
Jeff Haodcdc85b2015-12-04 14:06:18 -0800138 $$(PRIVATE_CORE_MULTI_PARAM) $$(PRIVATE_CORE_COMPILE_OPTIONS)
Brian Carlstrom27ec9612011-09-19 20:20:38 -0700139
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700140$$(core_oat_name): $$(core_image_name)
Ian Rogersafd9acc2014-06-17 08:21:54 -0700141
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700142 # Clean up locally used variables.
Nicolas Geoffraya136ab52014-10-31 10:48:25 +0000143 core_dex2oat_dependency :=
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700144 core_compile_options :=
145 core_image_name :=
146 core_oat_name :=
147 core_infix :=
Andreas Gampec23c9c92014-10-28 14:47:25 -0700148 core_pic_infix :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700149endef # create-core-oat-host-rules
150
Igor Murashkin7617abd2015-07-10 18:27:47 -0700151# $(1): compiler - default, optimizing, jit, interpreter or interpreter-access-checks.
Andreas Gampe088b16e2014-12-03 21:59:27 -0800152# $(2): wrapper.
153# $(3): dex2oat suffix.
Jeff Haodcdc85b2015-12-04 14:06:18 -0800154# $(4): multi-image.
Andreas Gampec23c9c92014-10-28 14:47:25 -0700155define create-core-oat-host-rule-combination
Jeff Haodcdc85b2015-12-04 14:06:18 -0800156 $(call create-core-oat-host-rules,$(1),no-pic,,$(2),$(3),$(4))
157 $(call create-core-oat-host-rules,$(1),pic,,$(2),$(3),$(4))
Andreas Gampec23c9c92014-10-28 14:47:25 -0700158
159 ifneq ($(HOST_PREFER_32_BIT),true)
Jeff Haodcdc85b2015-12-04 14:06:18 -0800160 $(call create-core-oat-host-rules,$(1),no-pic,2ND_,$(2),$(3),$(4))
161 $(call create-core-oat-host-rules,$(1),pic,2ND_,$(2),$(3),$(4))
Andreas Gampec23c9c92014-10-28 14:47:25 -0700162 endif
163endef
164
Jeff Haodcdc85b2015-12-04 14:06:18 -0800165$(eval $(call create-core-oat-host-rule-combination,default,,,false))
166$(eval $(call create-core-oat-host-rule-combination,optimizing,,,false))
167$(eval $(call create-core-oat-host-rule-combination,interpreter,,,false))
168$(eval $(call create-core-oat-host-rule-combination,interp-ac,,,false))
169$(eval $(call create-core-oat-host-rule-combination,jit,,,false))
170$(eval $(call create-core-oat-host-rule-combination,default,,,true))
171$(eval $(call create-core-oat-host-rule-combination,optimizing,,,true))
172$(eval $(call create-core-oat-host-rule-combination,interpreter,,,true))
173$(eval $(call create-core-oat-host-rule-combination,interp-ac,,,true))
174$(eval $(call create-core-oat-host-rule-combination,jit,,,true))
Andreas Gampec23c9c92014-10-28 14:47:25 -0700175
Andreas Gampe088b16e2014-12-03 21:59:27 -0800176valgrindHOST_CORE_IMG_OUTS :=
177valgrindHOST_CORE_OAT_OUTS :=
Jeff Haodcdc85b2015-12-04 14:06:18 -0800178$(eval $(call create-core-oat-host-rule-combination,default,valgrind,32,false))
179$(eval $(call create-core-oat-host-rule-combination,optimizing,valgrind,32,false))
180$(eval $(call create-core-oat-host-rule-combination,interpreter,valgrind,32,false))
181$(eval $(call create-core-oat-host-rule-combination,interp-ac,valgrind,32,false))
182$(eval $(call create-core-oat-host-rule-combination,jit,valgrind,32,false))
Andreas Gampe088b16e2014-12-03 21:59:27 -0800183
184valgrind-test-art-host-dex2oat-host: $(valgrindHOST_CORE_IMG_OUTS)
Brian Carlstrom2b7cdf42011-10-13 11:18:28 -0700185
Jeff Haodcdc85b2015-12-04 14:06:18 -0800186test-art-host-dex2oat-host: $(HOST_CORE_IMG_OUTS)
187
Ian Rogersafd9acc2014-06-17 08:21:54 -0700188define create-core-oat-target-rules
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700189 core_compile_options :=
190 core_image_name :=
191 core_oat_name :=
192 core_infix :=
Andreas Gampec23c9c92014-10-28 14:47:25 -0700193 core_pic_infix :=
Nicolas Geoffraya136ab52014-10-31 10:48:25 +0000194 core_dex2oat_dependency := $(DEX2OAT_DEPENDENCY)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700195
Nicolas Geoffray6427df12014-12-17 12:34:15 +0000196 ifeq ($(1),default)
197 core_compile_options += --compiler-backend=Quick
198 endif
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700199 ifeq ($(1),optimizing)
Serban Constantinescu010cf912014-12-04 18:12:21 +0000200 core_compile_options += --compiler-backend=Optimizing
Nicolas Geoffray7701d102015-10-05 09:51:36 +0100201 # With the optimizing compiler, we want to rerun dex2oat whenever there is
202 # a dex2oat change to catch regressions early.
203 core_dex2oat_dependency := $(DEX2OAT)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700204 core_infix := -optimizing
205 endif
206 ifeq ($(1),interpreter)
207 core_compile_options += --compiler-filter=interpret-only
208 core_infix := -interpreter
209 endif
Andreas Gampe825570c2015-07-26 10:26:03 -0700210 ifeq ($(1),interp-ac)
Igor Murashkin7617abd2015-07-10 18:27:47 -0700211 core_compile_options += --compiler-filter=verify-at-runtime --runtime-arg -Xverify:softfail
Andreas Gampe825570c2015-07-26 10:26:03 -0700212 core_infix := -interp-ac
Igor Murashkin7617abd2015-07-10 18:27:47 -0700213 endif
Andreas Gampe8a159fd2015-09-21 15:14:38 -0700214 ifeq ($(1),jit)
215 core_compile_options += --compiler-filter=verify-at-runtime
216 core_infix := -jit
217 endif
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700218 ifeq ($(1),default)
219 # Default has no infix, no compile options.
220 endif
Andreas Gampe825570c2015-07-26 10:26:03 -0700221 ifneq ($(filter-out default interpreter interp-ac jit optimizing,$(1)),)
Andreas Gampec23c9c92014-10-28 14:47:25 -0700222 # Technically this test is not precise, but hopefully good enough.
Igor Murashkin7617abd2015-07-10 18:27:47 -0700223 $$(error found $(1) expected default, interpreter, interpreter-access-checks, jit or optimizing)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700224 endif
Andreas Gampec23c9c92014-10-28 14:47:25 -0700225
226 ifeq ($(2),pic)
227 core_compile_options += --compile-pic
228 core_pic_infix := -pic
229 endif
230 ifeq ($(2),no-pic)
231 # No change for non-pic
232 endif
233 ifneq ($(filter-out pic no-pic,$(2)),)
234 #Technically this test is not precise, but hopefully good enough.
235 $$(error found $(2) expected pic or no-pic)
236 endif
237
Andreas Gampe088b16e2014-12-03 21:59:27 -0800238 core_image_name := $($(3)TARGET_CORE_IMG_OUT_BASE)$$(core_infix)$$(core_pic_infix)$(4)$(CORE_IMG_SUFFIX)
239 core_oat_name := $($(3)TARGET_CORE_OAT_OUT_BASE)$$(core_infix)$$(core_pic_infix)$(4)$(CORE_OAT_SUFFIX)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700240
241 # Using the bitness suffix makes it easier to add as a dependency for the run-test mk.
Andreas Gampec23c9c92014-10-28 14:47:25 -0700242 ifeq ($(3),)
243 ifdef TARGET_2ND_ARCH
Andreas Gampe088b16e2014-12-03 21:59:27 -0800244 $(4)TARGET_CORE_IMAGE_$(1)_$(2)_64 := $$(core_image_name)
Andreas Gampec23c9c92014-10-28 14:47:25 -0700245 else
Andreas Gampe088b16e2014-12-03 21:59:27 -0800246 $(4)TARGET_CORE_IMAGE_$(1)_$(2)_32 := $$(core_image_name)
Andreas Gampec23c9c92014-10-28 14:47:25 -0700247 endif
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700248 else
Andreas Gampe088b16e2014-12-03 21:59:27 -0800249 $(4)TARGET_CORE_IMAGE_$(1)_$(2)_32 := $$(core_image_name)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700250 endif
Andreas Gampe088b16e2014-12-03 21:59:27 -0800251 $(4)TARGET_CORE_IMG_OUTS += $$(core_image_name)
252 $(4)TARGET_CORE_OAT_OUTS += $$(core_oat_name)
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700253
Andreas Gampe088b16e2014-12-03 21:59:27 -0800254 # If we have a wrapper, make the target phony.
255 ifneq ($(4),)
256.PHONY: $$(core_image_name)
257 endif
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700258$$(core_image_name): PRIVATE_CORE_COMPILE_OPTIONS := $$(core_compile_options)
259$$(core_image_name): PRIVATE_CORE_IMG_NAME := $$(core_image_name)
260$$(core_image_name): PRIVATE_CORE_OAT_NAME := $$(core_oat_name)
Nicolas Geoffraya136ab52014-10-31 10:48:25 +0000261$$(core_image_name): $$(TARGET_CORE_DEX_FILES) $$(core_dex2oat_dependency)
Shinichiro Hamajic5d29052015-12-18 15:51:51 +0900262 @echo "target dex2oat: $$@"
Andreas Gampeafbaa1a2014-03-25 18:09:32 -0700263 @mkdir -p $$(dir $$@)
Andreas Gampe088b16e2014-12-03 21:59:27 -0800264 $$(hide) $(4) $$(DEX2OAT)$(5) --runtime-arg -Xms$(DEX2OAT_IMAGE_XMS) \
265 --runtime-arg -Xmx$(DEX2OAT_IMAGE_XMX) \
Ian Rogersafd9acc2014-06-17 08:21:54 -0700266 --image-classes=$$(PRELOADED_CLASSES) $$(addprefix --dex-file=,$$(TARGET_CORE_DEX_FILES)) \
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700267 $$(addprefix --dex-location=,$$(TARGET_CORE_DEX_LOCATIONS)) --oat-file=$$(PRIVATE_CORE_OAT_NAME) \
268 --oat-location=$$(PRIVATE_CORE_OAT_NAME) --image=$$(PRIVATE_CORE_IMG_NAME) \
Andreas Gampec23c9c92014-10-28 14:47:25 -0700269 --base=$$(LIBART_IMG_TARGET_BASE_ADDRESS) --instruction-set=$$($(3)TARGET_ARCH) \
Douglas Leung3d12ead2015-03-18 11:29:14 -0700270 --instruction-set-variant=$$($(3)DEX2OAT_TARGET_CPU_VARIANT) \
Ian Rogersd582fa42014-11-05 23:46:43 -0800271 --instruction-set-features=$$($(3)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES) \
David Srbecky461d72a2015-06-11 01:27:56 +0100272 --android-root=$$(PRODUCT_OUT)/system --include-patch-information --generate-debug-info \
Nicolas Geoffray130bd1b2014-11-03 16:23:48 +0000273 $$(PRIVATE_CORE_COMPILE_OPTIONS) || (rm $$(PRIVATE_CORE_OAT_NAME); exit 1)
Andreas Gampeafbaa1a2014-03-25 18:09:32 -0700274
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700275$$(core_oat_name): $$(core_image_name)
Andreas Gampe2fe07922014-04-21 07:50:39 -0700276
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700277 # Clean up locally used variables.
Nicolas Geoffraya136ab52014-10-31 10:48:25 +0000278 core_dex2oat_dependency :=
Andreas Gampe63fc30e2014-10-24 21:58:16 -0700279 core_compile_options :=
280 core_image_name :=
281 core_oat_name :=
282 core_infix :=
Andreas Gampec23c9c92014-10-28 14:47:25 -0700283 core_pic_infix :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700284endef # create-core-oat-target-rules
Andreas Gampeafbaa1a2014-03-25 18:09:32 -0700285
Igor Murashkin7617abd2015-07-10 18:27:47 -0700286# $(1): compiler - default, optimizing, jit, interpreter or interpreter-access-checks.
Andreas Gampe088b16e2014-12-03 21:59:27 -0800287# $(2): wrapper.
288# $(3): dex2oat suffix.
Andreas Gampec23c9c92014-10-28 14:47:25 -0700289define create-core-oat-target-rule-combination
Andreas Gampe088b16e2014-12-03 21:59:27 -0800290 $(call create-core-oat-target-rules,$(1),no-pic,,$(2),$(3))
291 $(call create-core-oat-target-rules,$(1),pic,,$(2),$(3))
Andreas Gampec23c9c92014-10-28 14:47:25 -0700292
293 ifdef TARGET_2ND_ARCH
Andreas Gampe088b16e2014-12-03 21:59:27 -0800294 $(call create-core-oat-target-rules,$(1),no-pic,2ND_,$(2),$(3))
295 $(call create-core-oat-target-rules,$(1),pic,2ND_,$(2),$(3))
Andreas Gampec23c9c92014-10-28 14:47:25 -0700296 endif
297endef
298
Andreas Gampe088b16e2014-12-03 21:59:27 -0800299$(eval $(call create-core-oat-target-rule-combination,default,,))
300$(eval $(call create-core-oat-target-rule-combination,optimizing,,))
301$(eval $(call create-core-oat-target-rule-combination,interpreter,,))
Andreas Gampe825570c2015-07-26 10:26:03 -0700302$(eval $(call create-core-oat-target-rule-combination,interp-ac,,))
Andreas Gampe8a159fd2015-09-21 15:14:38 -0700303$(eval $(call create-core-oat-target-rule-combination,jit,,))
Andreas Gampe088b16e2014-12-03 21:59:27 -0800304
305valgrindTARGET_CORE_IMG_OUTS :=
306valgrindTARGET_CORE_OAT_OUTS :=
307$(eval $(call create-core-oat-target-rule-combination,default,valgrind,32))
308$(eval $(call create-core-oat-target-rule-combination,optimizing,valgrind,32))
309$(eval $(call create-core-oat-target-rule-combination,interpreter,valgrind,32))
Andreas Gampe825570c2015-07-26 10:26:03 -0700310$(eval $(call create-core-oat-target-rule-combination,interp-ac,valgrind,32))
Andreas Gampe8a159fd2015-09-21 15:14:38 -0700311$(eval $(call create-core-oat-target-rule-combination,jit,valgrind,32))
Andreas Gampe088b16e2014-12-03 21:59:27 -0800312
313valgrind-test-art-host-dex2oat-target: $(valgrindTARGET_CORE_IMG_OUTS)
314
315valgrind-test-art-host-dex2oat: valgrind-test-art-host-dex2oat-host valgrind-test-art-host-dex2oat-target