Android.mk 17.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#
# Copyright (C) 2011 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

LOCAL_PATH := $(call my-dir)

19
art_path := $(LOCAL_PATH)
Brian Carlstrom's avatar
Brian Carlstrom committed
20

21
########################################################################
Ian Rogers's avatar
Ian Rogers committed
22
# clean-oat rules
23 24
#

Ian Rogers's avatar
Ian Rogers committed
25
include $(art_path)/build/Android.common_path.mk
26
include $(art_path)/build/Android.oat.mk
Ian Rogers's avatar
Ian Rogers committed
27

28
# Following the example of build's dont_bother for clean targets.
Ian Rogers's avatar
Ian Rogers committed
29
art_dont_bother := false
30 31
ifneq (,$(filter clean-oat%,$(MAKECMDGOALS)))
  art_dont_bother := true
32
endif
33

34
# Don't bother with tests unless there is a test-art*, build-art*, or related target.
35
art_test_bother := false
36
ifneq (,$(filter %tests test-art% valgrind-test-art% build-art%,$(MAKECMDGOALS)))
37
  art_test_bother := true
38 39 40 41 42 43 44
endif

.PHONY: clean-oat
clean-oat: clean-oat-host clean-oat-target

.PHONY: clean-oat-host
clean-oat-host:
45
	find $(OUT_DIR) -name "*.oat" -o -name "*.odex" -o -name "*.art" | xargs rm -f
46 47 48 49
ifneq ($(TMPDIR),)
	rm -rf $(TMPDIR)/$(USER)/test-*/dalvik-cache/*
	rm -rf $(TMPDIR)/android-data/dalvik-cache/*
else
50
	rm -rf /tmp/$(USER)/test-*/dalvik-cache/*
51
	rm -rf /tmp/android-data/dalvik-cache/*
52
endif
53 54 55

.PHONY: clean-oat-target
clean-oat-target:
56 57
	adb root
	adb wait-for-device remount
58 59 60 61 62
	adb shell rm -rf $(ART_TARGET_NATIVETEST_DIR)
	adb shell rm -rf $(ART_TARGET_TEST_DIR)
	adb shell rm -rf $(ART_TARGET_DALVIK_CACHE_DIR)/*/*
	adb shell rm -rf $(DEXPREOPT_BOOT_JAR_DIR)/$(DEX2OAT_TARGET_ARCH)
	adb shell rm -rf system/app/$(DEX2OAT_TARGET_ARCH)
Brian Carlstrom's avatar
Brian Carlstrom committed
63
ifdef TARGET_2ND_ARCH
64 65
	adb shell rm -rf $(DEXPREOPT_BOOT_JAR_DIR)/$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_ARCH)
	adb shell rm -rf system/app/$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_ARCH)
Brian Carlstrom's avatar
Brian Carlstrom committed
66
endif
67
	adb shell rm -rf data/run-test/test-*/dalvik-cache/*
68 69 70

ifneq ($(art_dont_bother),true)

71
########################################################################
Ian Rogers's avatar
Ian Rogers committed
72 73 74 75 76 77 78
# cpplint rules to style check art source files

include $(art_path)/build/Android.cpplint.mk

########################################################################
# product rules

79 80 81
include $(art_path)/runtime/Android.mk
include $(art_path)/compiler/Android.mk
include $(art_path)/dex2oat/Android.mk
Ian Rogers's avatar
Ian Rogers committed
82
include $(art_path)/disassembler/Android.mk
83
include $(art_path)/oatdump/Android.mk
84
include $(art_path)/imgdiag/Android.mk
Alex Light's avatar
Alex Light committed
85
include $(art_path)/patchoat/Android.mk
86
include $(art_path)/dalvikvm/Android.mk
87
include $(art_path)/tools/Android.mk
88
include $(art_path)/tools/dexfuzz/Android.mk
89 90
include $(art_path)/sigchainlib/Android.mk

91

92
# ART_HOST_DEPENDENCIES depends on Android.executable.mk above for ART_HOST_EXECUTABLES
Brian Carlstrom's avatar
Brian Carlstrom committed
93 94 95
ART_HOST_DEPENDENCIES := \
	$(ART_HOST_EXECUTABLES) \
	$(HOST_OUT_JAVA_LIBRARIES)/core-libart-hostdex.jar \
96
	$(ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION)
Brian Carlstrom's avatar
Brian Carlstrom committed
97 98 99
ART_TARGET_DEPENDENCIES := \
	$(ART_TARGET_EXECUTABLES) \
	$(TARGET_OUT_JAVA_LIBRARIES)/core-libart.jar \
Ian Rogers's avatar
Ian Rogers committed
100
	$(TARGET_OUT_SHARED_LIBRARIES)/libjavacore.so
101 102 103
ifdef TARGET_2ND_ARCH
ART_TARGET_DEPENDENCIES += $(2ND_TARGET_OUT_SHARED_LIBRARIES)/libjavacore.so
endif
104 105 106
ifdef HOST_2ND_ARCH
ART_HOST_DEPENDENCIES += $(2ND_HOST_OUT_SHARED_LIBRARIES)/libjavacore.so
endif
107

108
########################################################################
Ian Rogers's avatar
Ian Rogers committed
109
# test rules
110

111 112
ifeq ($(art_test_bother),true)

Ian Rogers's avatar
Ian Rogers committed
113 114
# All the dependencies that must be built ahead of sync-ing them onto the target device.
TEST_ART_TARGET_SYNC_DEPS :=
115

Ian Rogers's avatar
Ian Rogers committed
116 117 118
include $(art_path)/build/Android.common_test.mk
include $(art_path)/build/Android.gtest.mk
include $(art_path)/test/Android.run-test.mk
119

Ian Rogers's avatar
Ian Rogers committed
120 121
# Sync test files to the target, depends upon all things that must be pushed to the target.
.PHONY: test-art-target-sync
122
ifeq ($(ART_TEST_ANDROID_ROOT),)
Ian Rogers's avatar
Ian Rogers committed
123
test-art-target-sync: $(TEST_ART_TARGET_SYNC_DEPS)
124 125
	adb root
	adb wait-for-device remount
Ian Rogers's avatar
Ian Rogers committed
126
	adb sync
127 128 129 130 131 132
else
test-art-target-sync: $(TEST_ART_TARGET_SYNC_DEPS)
	adb root
	adb wait-for-device push $(ANDROID_PRODUCT_OUT)/system $(ART_TEST_ANDROID_ROOT)
	adb push $(ANDROID_PRODUCT_OUT)/data /data
endif
133

Ian Rogers's avatar
Ian Rogers committed
134 135
# Undefine variable now its served its purpose.
TEST_ART_TARGET_SYNC_DEPS :=
136

137 138 139
# "mm test-art" to build and run all tests on host and device
.PHONY: test-art
test-art: test-art-host test-art-target
Ian Rogers's avatar
Ian Rogers committed
140
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
141

Brian Carlstrom's avatar
Brian Carlstrom committed
142
.PHONY: test-art-gtest
143
test-art-gtest: test-art-host-gtest test-art-target-gtest
Ian Rogers's avatar
Ian Rogers committed
144
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
Elliott Hughes's avatar
Elliott Hughes committed
145

146
.PHONY: test-art-run-test
147
test-art-run-test: test-art-host-run-test test-art-target-run-test
Ian Rogers's avatar
Ian Rogers committed
148
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
149

150
########################################################################
Ian Rogers's avatar
Ian Rogers committed
151
# host test rules
152

153 154 155
VIXL_TEST_DEPENDENCY :=
# We can only run the vixl tests on 64-bit hosts (vixl testing issue) when its a
# top-level build (to declare the vixl test rule).
Ian Rogers's avatar
Ian Rogers committed
156
ifneq ($(HOST_PREFER_32_BIT),true)
157 158
ifeq ($(ONE_SHOT_MAKEFILE),)
VIXL_TEST_DEPENDENCY := run-vixl-tests
159
endif
160 161
endif

Ian Rogers's avatar
Ian Rogers committed
162
.PHONY: test-art-host-vixl
163
test-art-host-vixl: $(VIXL_TEST_DEPENDENCY)
164

Ian Rogers's avatar
Ian Rogers committed
165
# "mm test-art-host" to build and run all host tests.
166
.PHONY: test-art-host
167
test-art-host: test-art-host-gtest test-art-host-run-test test-art-host-vixl
Ian Rogers's avatar
Ian Rogers committed
168
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
169

Ian Rogers's avatar
Ian Rogers committed
170 171
# All host tests that run solely with the default compiler.
.PHONY: test-art-host-default
172
test-art-host-default: test-art-host-run-test-default
Ian Rogers's avatar
Ian Rogers committed
173
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
174

Ian Rogers's avatar
Ian Rogers committed
175 176
# All host tests that run solely with the optimizing compiler.
.PHONY: test-art-host-optimizing
177
test-art-host-optimizing: test-art-host-run-test-optimizing
Ian Rogers's avatar
Ian Rogers committed
178
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
179

Ian Rogers's avatar
Ian Rogers committed
180 181
# All host tests that run solely on the interpreter.
.PHONY: test-art-host-interpreter
182
test-art-host-interpreter: test-art-host-run-test-interpreter
Ian Rogers's avatar
Ian Rogers committed
183 184
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

185 186 187 188 189
# All host tests that run solely on the jit.
.PHONY: test-art-host-jit
test-art-host-jit: test-art-host-run-test-jit
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

Ian Rogers's avatar
Ian Rogers committed
190 191 192
# Primary host architecture variants:
.PHONY: test-art-host$(ART_PHONY_TEST_HOST_SUFFIX)
test-art-host$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-gtest$(ART_PHONY_TEST_HOST_SUFFIX) \
193
    test-art-host-run-test$(ART_PHONY_TEST_HOST_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
194 195 196
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-host-default$(ART_PHONY_TEST_HOST_SUFFIX)
197
test-art-host-default$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-default$(ART_PHONY_TEST_HOST_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
198 199 200
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-host-optimizing$(ART_PHONY_TEST_HOST_SUFFIX)
201
test-art-host-optimizing$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-optimizing$(ART_PHONY_TEST_HOST_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
202 203 204
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-host-interpreter$(ART_PHONY_TEST_HOST_SUFFIX)
205
test-art-host-interpreter$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-interpreter$(ART_PHONY_TEST_HOST_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
206 207
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

208 209 210 211
.PHONY: test-art-host-jit$(ART_PHONY_TEST_HOST_SUFFIX)
test-art-host-jit$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-jit$(ART_PHONY_TEST_HOST_SUFFIX)
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

Ian Rogers's avatar
Ian Rogers committed
212 213 214 215
# Secondary host architecture variants:
ifneq ($(HOST_PREFER_32_BIT),true)
.PHONY: test-art-host$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
test-art-host$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-gtest$(2ND_ART_PHONY_TEST_HOST_SUFFIX) \
216
    test-art-host-run-test$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
217 218 219
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-host-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
220
test-art-host-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
221 222 223
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-host-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
224
test-art-host-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
225 226 227
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-host-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
228
test-art-host-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
229
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
230 231 232 233

.PHONY: test-art-host-jit$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
test-art-host-jit$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-jit$(2ND_ART_PHONY_TEST_HOST_SUFFIX)
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
Ian Rogers's avatar
Ian Rogers committed
234
endif
235

Andreas Gampe's avatar
Andreas Gampe committed
236 237 238 239 240
# Valgrind. Currently only 32b gtests.
.PHONY: valgrind-test-art-host
valgrind-test-art-host: valgrind-test-art-host-gtest32
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

241
########################################################################
Ian Rogers's avatar
Ian Rogers committed
242 243 244 245
# target test rules

# "mm test-art-target" to build and run all target tests.
.PHONY: test-art-target
246
test-art-target: test-art-target-gtest test-art-target-run-test
Ian Rogers's avatar
Ian Rogers committed
247 248 249 250
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

# All target tests that run solely with the default compiler.
.PHONY: test-art-target-default
251
test-art-target-default: test-art-target-run-test-default
Ian Rogers's avatar
Ian Rogers committed
252 253 254 255
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

# All target tests that run solely with the optimizing compiler.
.PHONY: test-art-target-optimizing
256
test-art-target-optimizing: test-art-target-run-test-optimizing
Ian Rogers's avatar
Ian Rogers committed
257 258 259 260
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

# All target tests that run solely on the interpreter.
.PHONY: test-art-target-interpreter
261
test-art-target-interpreter: test-art-target-run-test-interpreter
Ian Rogers's avatar
Ian Rogers committed
262 263
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

Mathieu Chartier's avatar
Mathieu Chartier committed
264 265 266 267 268
# All target tests that run solely on the jit.
.PHONY: test-art-target-jit
test-art-target-jit: test-art-target-run-test-jit
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

Ian Rogers's avatar
Ian Rogers committed
269 270 271
# Primary target architecture variants:
.PHONY: test-art-target$(ART_PHONY_TEST_TARGET_SUFFIX)
test-art-target$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-gtest$(ART_PHONY_TEST_TARGET_SUFFIX) \
272
    test-art-target-run-test$(ART_PHONY_TEST_TARGET_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
273 274 275
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-target-default$(ART_PHONY_TEST_TARGET_SUFFIX)
276
test-art-target-default$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-default$(ART_PHONY_TEST_TARGET_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
277 278 279
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-target-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX)
280
test-art-target-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
281 282 283
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-target-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX)
284
test-art-target-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
285 286
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

Mathieu Chartier's avatar
Mathieu Chartier committed
287 288 289 290
.PHONY: test-art-target-jit$(ART_PHONY_TEST_TARGET_SUFFIX)
test-art-target-jit$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-jit$(ART_PHONY_TEST_TARGET_SUFFIX)
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

Ian Rogers's avatar
Ian Rogers committed
291 292 293 294
# Secondary target architecture variants:
ifdef TARGET_2ND_ARCH
.PHONY: test-art-target$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
test-art-target$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-gtest$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) \
295
    test-art-target-run-test$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
296 297 298
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-target-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
299
test-art-target-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
300 301 302
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-target-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
303
test-art-target-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
304 305 306
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)

.PHONY: test-art-target-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
307
test-art-target-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
Ian Rogers's avatar
Ian Rogers committed
308
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
Mathieu Chartier's avatar
Mathieu Chartier committed
309 310 311 312

.PHONY: test-art-target-jit$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
test-art-target-jit$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-jit$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
	$(hide) $(call ART_TEST_PREREQ_FINISHED,$@)
313
endif
Brian Carlstrom's avatar
Brian Carlstrom committed
314

315 316
endif  # art_test_bother

317
########################################################################
Ian Rogers's avatar
Ian Rogers committed
318
# oat-target and oat-target-sync rules
319

Ian Rogers's avatar
Ian Rogers committed
320
OAT_TARGET_RULES :=
Brian Carlstrom's avatar
Brian Carlstrom committed
321

Brian Carlstrom's avatar
Brian Carlstrom committed
322 323
# $(1): input jar or apk target location
define declare-oat-target-target
324
OUT_OAT_FILE := $(PRODUCT_OUT)/$(basename $(1)).odex
325 326

ifeq ($(ONE_SHOT_MAKEFILE),)
327 328 329
# ONE_SHOT_MAKEFILE is empty for a top level build and we don't want
# to define the oat-target-* rules there because they will conflict
# with the build/core/dex_preopt.mk defined rules.
Brian Carlstrom's avatar
Brian Carlstrom committed
330
.PHONY: oat-target-$(1)
331
oat-target-$(1):
332 333 334

else
.PHONY: oat-target-$(1)
335
oat-target-$(1): $$(OUT_OAT_FILE)
336

337
$$(OUT_OAT_FILE): $(PRODUCT_OUT)/$(1) $(DEFAULT_DEX_PREOPT_BUILT_IMAGE) $(DEX2OAT_DEPENDENCY)
338
	@mkdir -p $$(dir $$@)
339
	$(DEX2OAT) --runtime-arg -Xms$(DEX2OAT_XMS) --runtime-arg -Xmx$(DEX2OAT_XMX) \
340 341 342
		--boot-image=$(DEFAULT_DEX_PREOPT_BUILT_IMAGE) --dex-file=$(PRODUCT_OUT)/$(1) \
		--dex-location=/$(1) --oat-file=$$@ \
		--instruction-set=$(DEX2OAT_TARGET_ARCH) \
343
		--instruction-set-variant=$(DEX2OAT_TARGET_CPU_VARIANT) \
344
		--instruction-set-features=$(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES) \
345 346
		--android-root=$(PRODUCT_OUT)/system --include-patch-information \
		--runtime-arg -Xnorelocate
347 348

endif
349

Ian Rogers's avatar
Ian Rogers committed
350
OAT_TARGET_RULES += oat-target-$(1)
Brian Carlstrom's avatar
Brian Carlstrom committed
351
endef
352

Brian Carlstrom's avatar
Brian Carlstrom committed
353 354
$(foreach file,\
  $(filter-out\
355
    $(addprefix $(TARGET_OUT_JAVA_LIBRARIES)/,$(addsuffix .jar,$(LIBART_TARGET_BOOT_JARS))),\
Brian Carlstrom's avatar
Brian Carlstrom committed
356
    $(wildcard $(TARGET_OUT_APPS)/*.apk) $(wildcard $(TARGET_OUT_JAVA_LIBRARIES)/*.jar)),\
Brian Carlstrom's avatar
Brian Carlstrom committed
357 358 359
  $(eval $(call declare-oat-target-target,$(subst $(PRODUCT_OUT)/,,$(file)))))

.PHONY: oat-target
Ian Rogers's avatar
Ian Rogers committed
360
oat-target: $(ART_TARGET_DEPENDENCIES) $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE) $(OAT_TARGET_RULES)
361

362
.PHONY: oat-target-sync
Brian Carlstrom's avatar
Brian Carlstrom committed
363
oat-target-sync: oat-target
364 365
	adb root
	adb wait-for-device remount
Brian Carlstrom's avatar
Brian Carlstrom committed
366 367
	adb sync

368 369 370 371 372 373
########################################################################
# "m build-art" for quick minimal build
.PHONY: build-art
build-art: build-art-host build-art-target

.PHONY: build-art-host
374
build-art-host:   $(HOST_OUT_EXECUTABLES)/art $(ART_HOST_DEPENDENCIES) $(HOST_CORE_IMG_OUTS)
375 376

.PHONY: build-art-target
377
build-art-target: $(TARGET_OUT_EXECUTABLES)/art $(ART_TARGET_DEPENDENCIES) $(TARGET_CORE_IMG_OUTS)
378

379 380 381 382 383
########################################################################
# targets to switch back and forth from libdvm to libart

.PHONY: use-art
use-art:
384 385
	adb root
	adb wait-for-device shell stop
386
	adb shell setprop persist.sys.dalvik.vm.lib.2 libart.so
387
	adb shell start
388 389 390

.PHONY: use-artd
use-artd:
391 392
	adb root
	adb wait-for-device shell stop
393
	adb shell setprop persist.sys.dalvik.vm.lib.2 libartd.so
394
	adb shell start
395 396 397

.PHONY: use-dalvik
use-dalvik:
398 399
	adb root
	adb wait-for-device shell stop
400
	adb shell setprop persist.sys.dalvik.vm.lib.2 libdvm.so
401 402 403 404
	adb shell start

.PHONY: use-art-full
use-art-full:
405 406
	adb root
	adb wait-for-device shell stop
407 408 409
	adb shell rm -rf $(ART_TARGET_DALVIK_CACHE_DIR)/*
	adb shell setprop dalvik.vm.dex2oat-filter \"\"
	adb shell setprop dalvik.vm.image-dex2oat-filter \"\"
410
	adb shell setprop persist.sys.dalvik.vm.lib.2 libart.so
411 412
	adb shell start

Hiroshi Yamauchi's avatar
Hiroshi Yamauchi committed
413 414
.PHONY: use-artd-full
use-artd-full:
415 416
	adb root
	adb wait-for-device shell stop
417 418 419
	adb shell rm -rf $(ART_TARGET_DALVIK_CACHE_DIR)/*
	adb shell setprop dalvik.vm.dex2oat-filter \"\"
	adb shell setprop dalvik.vm.image-dex2oat-filter \"\"
420
	adb shell setprop persist.sys.dalvik.vm.lib.2 libartd.so
Hiroshi Yamauchi's avatar
Hiroshi Yamauchi committed
421 422
	adb shell start

Mathieu Chartier's avatar
Mathieu Chartier committed
423 424
.PHONY: use-art-verify-at-runtime
use-art-verify-at-runtime:
425 426
	adb root
	adb wait-for-device shell stop
427
	adb shell rm -rf $(ART_TARGET_DALVIK_CACHE_DIR)/*
Mathieu Chartier's avatar
Mathieu Chartier committed
428 429
	adb shell setprop dalvik.vm.dex2oat-filter "verify-at-runtime"
	adb shell setprop dalvik.vm.image-dex2oat-filter "verify-at-runtime"
430
	adb shell setprop persist.sys.dalvik.vm.lib.2 libart.so
431 432 433 434
	adb shell start

.PHONY: use-art-interpret-only
use-art-interpret-only:
435 436
	adb root
	adb wait-for-device shell stop
437
	adb shell rm -rf $(ART_TARGET_DALVIK_CACHE_DIR)/*
438 439
	adb shell setprop dalvik.vm.dex2oat-filter "interpret-only"
	adb shell setprop dalvik.vm.image-dex2oat-filter "interpret-only"
440
	adb shell setprop persist.sys.dalvik.vm.lib.2 libart.so
441
	adb shell start
442

443 444
.PHONY: use-artd-interpret-only
use-artd-interpret-only:
445 446
	adb root
	adb wait-for-device shell stop
447
	adb shell rm -rf $(ART_TARGET_DALVIK_CACHE_DIR)/*
448 449
	adb shell setprop dalvik.vm.dex2oat-filter "interpret-only"
	adb shell setprop dalvik.vm.image-dex2oat-filter "interpret-only"
450 451 452
	adb shell setprop persist.sys.dalvik.vm.lib.2 libartd.so
	adb shell start

Jeff Hao's avatar
Jeff Hao committed
453 454
.PHONY: use-art-verify-none
use-art-verify-none:
455 456
	adb root
	adb wait-for-device shell stop
457
	adb shell rm -rf $(ART_TARGET_DALVIK_CACHE_DIR)/*
458 459
	adb shell setprop dalvik.vm.dex2oat-filter "verify-none"
	adb shell setprop dalvik.vm.image-dex2oat-filter "verify-none"
460
	adb shell setprop persist.sys.dalvik.vm.lib.2 libart.so
Jeff Hao's avatar
Jeff Hao committed
461 462
	adb shell start

463 464
########################################################################

465
endif # !art_dont_bother
466 467 468 469

# Clear locally used variables.
art_dont_bother :=
art_test_bother :=