1*795d594fSAndroid Build Coastguard Worker# 2*795d594fSAndroid Build Coastguard Worker# Copyright (C) 2011 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker# 4*795d594fSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker# You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker# 8*795d594fSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker# 10*795d594fSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker# limitations under the License. 15*795d594fSAndroid Build Coastguard Worker# 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard WorkerLOCAL_PATH := $(call my-dir) 18*795d594fSAndroid Build Coastguard Worker 19*795d594fSAndroid Build Coastguard Workerart_path := $(LOCAL_PATH) 20*795d594fSAndroid Build Coastguard Worker 21*795d594fSAndroid Build Coastguard Workerinclude $(art_path)/build/Android.common_path.mk 22*795d594fSAndroid Build Coastguard Worker 23*795d594fSAndroid Build Coastguard Worker######################################################################## 24*795d594fSAndroid Build Coastguard Worker# cpplint rules to style check art source files 25*795d594fSAndroid Build Coastguard Worker 26*795d594fSAndroid Build Coastguard Workerinclude $(art_path)/build/Android.cpplint.mk 27*795d594fSAndroid Build Coastguard Worker 28*795d594fSAndroid Build Coastguard Worker######################################################################## 29*795d594fSAndroid Build Coastguard Worker# product rules 30*795d594fSAndroid Build Coastguard Worker 31*795d594fSAndroid Build Coastguard Workerinclude $(art_path)/tools/ahat/Android.mk 32*795d594fSAndroid Build Coastguard Worker 33*795d594fSAndroid Build Coastguard WorkerART_HOST_DEPENDENCIES := \ 34*795d594fSAndroid Build Coastguard Worker $(ART_HOST_EXECUTABLES) \ 35*795d594fSAndroid Build Coastguard Worker $(ART_HOST_DEX_DEPENDENCIES) \ 36*795d594fSAndroid Build Coastguard Worker $(ART_HOST_SHARED_LIBRARY_DEPENDENCIES) 37*795d594fSAndroid Build Coastguard Worker 38*795d594fSAndroid Build Coastguard Workerifeq ($(ART_BUILD_HOST_DEBUG),true) 39*795d594fSAndroid Build Coastguard WorkerART_HOST_DEPENDENCIES += $(ART_HOST_SHARED_LIBRARY_DEBUG_DEPENDENCIES) 40*795d594fSAndroid Build Coastguard Workerendif 41*795d594fSAndroid Build Coastguard Worker 42*795d594fSAndroid Build Coastguard WorkerART_TARGET_DEPENDENCIES := \ 43*795d594fSAndroid Build Coastguard Worker $(ART_TARGET_DEX_DEPENDENCIES) 44*795d594fSAndroid Build Coastguard Worker 45*795d594fSAndroid Build Coastguard Worker######################################################################## 46*795d594fSAndroid Build Coastguard Worker# test rules 47*795d594fSAndroid Build Coastguard Worker 48*795d594fSAndroid Build Coastguard Worker# All the dependencies that must be built ahead of sync-ing them onto the target device. 49*795d594fSAndroid Build Coastguard WorkerTEST_ART_TARGET_SYNC_DEPS := $(ADB_EXECUTABLE) 50*795d594fSAndroid Build Coastguard Worker 51*795d594fSAndroid Build Coastguard Workerinclude $(art_path)/build/Android.common_test.mk 52*795d594fSAndroid Build Coastguard Workerinclude $(art_path)/build/Android.gtest.mk 53*795d594fSAndroid Build Coastguard Workerinclude $(art_path)/test/Android.run-test.mk 54*795d594fSAndroid Build Coastguard Worker 55*795d594fSAndroid Build Coastguard WorkerTEST_ART_TARGET_SYNC_DEPS += $(ART_TEST_TARGET_GTEST_DEPENDENCIES) $(ART_TEST_TARGET_RUN_TEST_DEPENDENCIES) 56*795d594fSAndroid Build Coastguard Worker 57*795d594fSAndroid Build Coastguard Worker# "mm test-art" to build and run all tests on host and device 58*795d594fSAndroid Build Coastguard Worker.PHONY: test-art 59*795d594fSAndroid Build Coastguard Workertest-art: 60*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 61*795d594fSAndroid Build Coastguard Worker 62*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-gtest 63*795d594fSAndroid Build Coastguard Workertest-art-gtest: 64*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 65*795d594fSAndroid Build Coastguard Worker 66*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-run-test 67*795d594fSAndroid Build Coastguard Workertest-art-run-test: 68*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 69*795d594fSAndroid Build Coastguard Worker 70*795d594fSAndroid Build Coastguard Worker######################################################################## 71*795d594fSAndroid Build Coastguard Worker# host test rules 72*795d594fSAndroid Build Coastguard Worker 73*795d594fSAndroid Build Coastguard Workertest-art: test-art-host 74*795d594fSAndroid Build Coastguard Workertest-art-gtest: test-art-host-gtest 75*795d594fSAndroid Build Coastguard Workertest-art-run-test: test-art-host-run-test 76*795d594fSAndroid Build Coastguard Worker 77*795d594fSAndroid Build Coastguard WorkerVIXL_TEST_DEPENDENCY := 78*795d594fSAndroid Build Coastguard Worker# We can only run the vixl tests on 64-bit hosts (vixl testing issue) when its a 79*795d594fSAndroid Build Coastguard Worker# top-level build (to declare the vixl test rule). 80*795d594fSAndroid Build Coastguard Workerifneq ($(HOST_PREFER_32_BIT),true) 81*795d594fSAndroid Build Coastguard Workerifeq ($(ONE_SHOT_MAKEFILE),) 82*795d594fSAndroid Build Coastguard WorkerVIXL_TEST_DEPENDENCY := run-vixl-tests 83*795d594fSAndroid Build Coastguard Workerendif 84*795d594fSAndroid Build Coastguard Workerendif 85*795d594fSAndroid Build Coastguard Worker 86*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-vixl 87*795d594fSAndroid Build Coastguard Workertest-art-host-vixl: $(VIXL_TEST_DEPENDENCY) 88*795d594fSAndroid Build Coastguard Worker 89*795d594fSAndroid Build Coastguard Worker# "mm test-art-host" to build and run all host tests. 90*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host 91*795d594fSAndroid Build Coastguard Workertest-art-host: test-art-host-gtest test-art-host-run-test \ 92*795d594fSAndroid Build Coastguard Worker test-art-host-vixl test-art-host-dexdump 93*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 94*795d594fSAndroid Build Coastguard Worker 95*795d594fSAndroid Build Coastguard Worker# All host tests that run solely with the default compiler. 96*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-default 97*795d594fSAndroid Build Coastguard Workertest-art-host-default: test-art-host-run-test-default 98*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 99*795d594fSAndroid Build Coastguard Worker 100*795d594fSAndroid Build Coastguard Worker# All host tests that run solely with the optimizing compiler. 101*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-optimizing 102*795d594fSAndroid Build Coastguard Workertest-art-host-optimizing: test-art-host-run-test-optimizing 103*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 104*795d594fSAndroid Build Coastguard Worker 105*795d594fSAndroid Build Coastguard Worker# All host tests that run solely on the interpreter. 106*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-interpreter 107*795d594fSAndroid Build Coastguard Workertest-art-host-interpreter: test-art-host-run-test-interpreter 108*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 109*795d594fSAndroid Build Coastguard Worker 110*795d594fSAndroid Build Coastguard Worker# All host tests that run solely on the jit. 111*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-jit 112*795d594fSAndroid Build Coastguard Workertest-art-host-jit: test-art-host-run-test-jit 113*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 114*795d594fSAndroid Build Coastguard Worker 115*795d594fSAndroid Build Coastguard Worker# Primary host architecture variants: 116*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host$(ART_PHONY_TEST_HOST_SUFFIX) 117*795d594fSAndroid Build Coastguard Workertest-art-host$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-gtest$(ART_PHONY_TEST_HOST_SUFFIX) \ 118*795d594fSAndroid Build Coastguard Worker test-art-host-run-test$(ART_PHONY_TEST_HOST_SUFFIX) 119*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 120*795d594fSAndroid Build Coastguard Worker 121*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-default$(ART_PHONY_TEST_HOST_SUFFIX) 122*795d594fSAndroid Build Coastguard Workertest-art-host-default$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-default$(ART_PHONY_TEST_HOST_SUFFIX) 123*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 124*795d594fSAndroid Build Coastguard Worker 125*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-optimizing$(ART_PHONY_TEST_HOST_SUFFIX) 126*795d594fSAndroid Build Coastguard Workertest-art-host-optimizing$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-optimizing$(ART_PHONY_TEST_HOST_SUFFIX) 127*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 128*795d594fSAndroid Build Coastguard Worker 129*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-interpreter$(ART_PHONY_TEST_HOST_SUFFIX) 130*795d594fSAndroid Build Coastguard Workertest-art-host-interpreter$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-interpreter$(ART_PHONY_TEST_HOST_SUFFIX) 131*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 132*795d594fSAndroid Build Coastguard Worker 133*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-jit$(ART_PHONY_TEST_HOST_SUFFIX) 134*795d594fSAndroid Build Coastguard Workertest-art-host-jit$(ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-jit$(ART_PHONY_TEST_HOST_SUFFIX) 135*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 136*795d594fSAndroid Build Coastguard Worker 137*795d594fSAndroid Build Coastguard Worker# Secondary host architecture variants: 138*795d594fSAndroid Build Coastguard Workerifneq ($(HOST_PREFER_32_BIT),true) 139*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 140*795d594fSAndroid Build Coastguard Workertest-art-host$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-gtest$(2ND_ART_PHONY_TEST_HOST_SUFFIX) \ 141*795d594fSAndroid Build Coastguard Worker test-art-host-run-test$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 142*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 143*795d594fSAndroid Build Coastguard Worker 144*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 145*795d594fSAndroid Build Coastguard Workertest-art-host-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 146*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 147*795d594fSAndroid Build Coastguard Worker 148*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 149*795d594fSAndroid Build Coastguard Workertest-art-host-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 150*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 151*795d594fSAndroid Build Coastguard Worker 152*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 153*795d594fSAndroid Build Coastguard Workertest-art-host-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 154*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 155*795d594fSAndroid Build Coastguard Worker 156*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-jit$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 157*795d594fSAndroid Build Coastguard Workertest-art-host-jit$(2ND_ART_PHONY_TEST_HOST_SUFFIX): test-art-host-run-test-jit$(2ND_ART_PHONY_TEST_HOST_SUFFIX) 158*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 159*795d594fSAndroid Build Coastguard Workerendif 160*795d594fSAndroid Build Coastguard Worker 161*795d594fSAndroid Build Coastguard Worker# Dexdump/list regression test. 162*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-host-dexdump 163*795d594fSAndroid Build Coastguard Workertest-art-host-dexdump: $(addprefix $(HOST_OUT_EXECUTABLES)/, dexdump dexlist) 164*795d594fSAndroid Build Coastguard Worker ANDROID_HOST_OUT=$(realpath $(HOST_OUT)) art/test/dexdump/run-all-tests 165*795d594fSAndroid Build Coastguard Worker 166*795d594fSAndroid Build Coastguard Worker######################################################################## 167*795d594fSAndroid Build Coastguard Worker# target test rules 168*795d594fSAndroid Build Coastguard Worker 169*795d594fSAndroid Build Coastguard Workertest-art: test-art-target 170*795d594fSAndroid Build Coastguard Workertest-art-gtest: test-art-target-gtest 171*795d594fSAndroid Build Coastguard Workertest-art-run-test: test-art-target-run-test 172*795d594fSAndroid Build Coastguard Worker 173*795d594fSAndroid Build Coastguard Worker# "mm test-art-target" to build and run all target tests. 174*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target 175*795d594fSAndroid Build Coastguard Workertest-art-target: test-art-target-gtest test-art-target-run-test 176*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 177*795d594fSAndroid Build Coastguard Worker 178*795d594fSAndroid Build Coastguard Worker# All target tests that run solely with the default compiler. 179*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-default 180*795d594fSAndroid Build Coastguard Workertest-art-target-default: test-art-target-run-test-default 181*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 182*795d594fSAndroid Build Coastguard Worker 183*795d594fSAndroid Build Coastguard Worker# All target tests that run solely with the optimizing compiler. 184*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-optimizing 185*795d594fSAndroid Build Coastguard Workertest-art-target-optimizing: test-art-target-run-test-optimizing 186*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 187*795d594fSAndroid Build Coastguard Worker 188*795d594fSAndroid Build Coastguard Worker# All target tests that run solely on the interpreter. 189*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-interpreter 190*795d594fSAndroid Build Coastguard Workertest-art-target-interpreter: test-art-target-run-test-interpreter 191*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 192*795d594fSAndroid Build Coastguard Worker 193*795d594fSAndroid Build Coastguard Worker# All target tests that run solely on the jit. 194*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-jit 195*795d594fSAndroid Build Coastguard Workertest-art-target-jit: test-art-target-run-test-jit 196*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 197*795d594fSAndroid Build Coastguard Worker 198*795d594fSAndroid Build Coastguard Worker# Primary target architecture variants: 199*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target$(ART_PHONY_TEST_TARGET_SUFFIX) 200*795d594fSAndroid Build Coastguard Workertest-art-target$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-gtest$(ART_PHONY_TEST_TARGET_SUFFIX) \ 201*795d594fSAndroid Build Coastguard Worker test-art-target-run-test$(ART_PHONY_TEST_TARGET_SUFFIX) 202*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 203*795d594fSAndroid Build Coastguard Worker 204*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-default$(ART_PHONY_TEST_TARGET_SUFFIX) 205*795d594fSAndroid Build Coastguard Workertest-art-target-default$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-default$(ART_PHONY_TEST_TARGET_SUFFIX) 206*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 207*795d594fSAndroid Build Coastguard Worker 208*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX) 209*795d594fSAndroid Build Coastguard Workertest-art-target-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX) 210*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 211*795d594fSAndroid Build Coastguard Worker 212*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX) 213*795d594fSAndroid Build Coastguard Workertest-art-target-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX) 214*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 215*795d594fSAndroid Build Coastguard Worker 216*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-jit$(ART_PHONY_TEST_TARGET_SUFFIX) 217*795d594fSAndroid Build Coastguard Workertest-art-target-jit$(ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-jit$(ART_PHONY_TEST_TARGET_SUFFIX) 218*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 219*795d594fSAndroid Build Coastguard Worker 220*795d594fSAndroid Build Coastguard Worker# Secondary target architecture variants: 221*795d594fSAndroid Build Coastguard Workerifdef 2ND_ART_PHONY_TEST_TARGET_SUFFIX 222*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 223*795d594fSAndroid Build Coastguard Workertest-art-target$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-gtest$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) \ 224*795d594fSAndroid Build Coastguard Worker test-art-target-run-test$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 225*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 226*795d594fSAndroid Build Coastguard Worker 227*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 228*795d594fSAndroid Build Coastguard Workertest-art-target-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 229*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 230*795d594fSAndroid Build Coastguard Worker 231*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 232*795d594fSAndroid Build Coastguard Workertest-art-target-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 233*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 234*795d594fSAndroid Build Coastguard Worker 235*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 236*795d594fSAndroid Build Coastguard Workertest-art-target-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 237*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 238*795d594fSAndroid Build Coastguard Worker 239*795d594fSAndroid Build Coastguard Worker.PHONY: test-art-target-jit$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 240*795d594fSAndroid Build Coastguard Workertest-art-target-jit$(2ND_ART_PHONY_TEST_TARGET_SUFFIX): test-art-target-run-test-jit$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) 241*795d594fSAndroid Build Coastguard Worker $(hide) $(call ART_TEST_PREREQ_FINISHED,$@) 242*795d594fSAndroid Build Coastguard Workerendif 243*795d594fSAndroid Build Coastguard Worker 244*795d594fSAndroid Build Coastguard Worker####################### 245*795d594fSAndroid Build Coastguard Worker# Reset LOCAL_PATH because previous includes may override its value. 246*795d594fSAndroid Build Coastguard Worker# Keep this after all "include $(art_path)/..." are done, and before any 247*795d594fSAndroid Build Coastguard Worker# "include $(BUILD_...)". 248*795d594fSAndroid Build Coastguard WorkerLOCAL_PATH := $(art_path) 249*795d594fSAndroid Build Coastguard Worker 250*795d594fSAndroid Build Coastguard Worker######################################################################## 251*795d594fSAndroid Build Coastguard Worker# "m build-art" for quick minimal build 252*795d594fSAndroid Build Coastguard Worker.PHONY: build-art 253*795d594fSAndroid Build Coastguard Worker 254*795d594fSAndroid Build Coastguard Workerbuild-art: build-art-host 255*795d594fSAndroid Build Coastguard Worker 256*795d594fSAndroid Build Coastguard Worker# For host, we extract the ICU data from the apex and install it to HOST_OUT/I18N_APEX. 257*795d594fSAndroid Build Coastguard Worker$(HOST_I18N_DATA): $(TARGET_OUT)/apex/$(I18N_APEX).apex $(HOST_OUT)/bin/deapexer 258*795d594fSAndroid Build Coastguard Worker $(call extract-from-apex,$(I18N_APEX)) 259*795d594fSAndroid Build Coastguard Worker rm -rf $(HOST_OUT)/$(I18N_APEX) 260*795d594fSAndroid Build Coastguard Worker mkdir -p $(HOST_OUT)/$(I18N_APEX)/ 261*795d594fSAndroid Build Coastguard Worker cp -R $(TARGET_OUT)/apex/$(I18N_APEX)/etc/ $(HOST_OUT)/$(I18N_APEX)/ 262*795d594fSAndroid Build Coastguard Worker touch $@ 263*795d594fSAndroid Build Coastguard Worker 264*795d594fSAndroid Build Coastguard Worker$(HOST_TZDATA_DATA): $(TARGET_OUT)/apex/$(TZDATA_APEX).apex $(HOST_OUT)/bin/deapexer 265*795d594fSAndroid Build Coastguard Worker $(call extract-from-apex,$(TZDATA_APEX)) 266*795d594fSAndroid Build Coastguard Worker rm -rf $(HOST_OUT)/$(TZDATA_APEX) 267*795d594fSAndroid Build Coastguard Worker mkdir -p $(HOST_OUT)/$(TZDATA_APEX)/ 268*795d594fSAndroid Build Coastguard Worker cp -R $(TARGET_OUT)/apex/$(TZDATA_APEX)/etc/ $(HOST_OUT)/$(TZDATA_APEX)/ 269*795d594fSAndroid Build Coastguard Worker touch $@ 270*795d594fSAndroid Build Coastguard Worker 271*795d594fSAndroid Build Coastguard Worker.PHONY: build-art-host 272*795d594fSAndroid Build Coastguard Workerbuild-art-host: $(HOST_OUT_EXECUTABLES)/art $(ART_HOST_DEPENDENCIES) $(HOST_CORE_IMG_OUTS) $(HOST_I18N_DATA) $(HOST_TZDATA_DATA) 273*795d594fSAndroid Build Coastguard Worker 274*795d594fSAndroid Build Coastguard Workerbuild-art: build-art-target 275*795d594fSAndroid Build Coastguard Worker 276*795d594fSAndroid Build Coastguard Worker.PHONY: build-art-target 277*795d594fSAndroid Build Coastguard Workerbuild-art-target: $(TARGET_OUT_EXECUTABLES)/art $(ART_TARGET_DEPENDENCIES) $(TARGET_CORE_IMG_OUTS) 278*795d594fSAndroid Build Coastguard Worker 279*795d594fSAndroid Build Coastguard WorkerPRIVATE_ART_APEX_DEPENDENCY_FILES := \ 280*795d594fSAndroid Build Coastguard Worker bin/dalvikvm32 \ 281*795d594fSAndroid Build Coastguard Worker bin/dalvikvm64 \ 282*795d594fSAndroid Build Coastguard Worker bin/dalvikvm \ 283*795d594fSAndroid Build Coastguard Worker bin/dex2oat32 \ 284*795d594fSAndroid Build Coastguard Worker bin/dex2oat64 \ 285*795d594fSAndroid Build Coastguard Worker bin/dexdump \ 286*795d594fSAndroid Build Coastguard Worker 287*795d594fSAndroid Build Coastguard WorkerPRIVATE_ART_APEX_DEPENDENCY_LIBS := \ 288*795d594fSAndroid Build Coastguard Worker lib/libadbconnection.so \ 289*795d594fSAndroid Build Coastguard Worker lib/libandroidio.so \ 290*795d594fSAndroid Build Coastguard Worker lib/libartbase.so \ 291*795d594fSAndroid Build Coastguard Worker lib/libart-dexlayout.so \ 292*795d594fSAndroid Build Coastguard Worker lib/libart-disassembler.so \ 293*795d594fSAndroid Build Coastguard Worker lib/libartpalette.so \ 294*795d594fSAndroid Build Coastguard Worker lib/libart.so \ 295*795d594fSAndroid Build Coastguard Worker lib/libdexfile.so \ 296*795d594fSAndroid Build Coastguard Worker lib/libdt_fd_forward.so \ 297*795d594fSAndroid Build Coastguard Worker lib/libdt_socket.so \ 298*795d594fSAndroid Build Coastguard Worker lib/libexpat.so \ 299*795d594fSAndroid Build Coastguard Worker lib/libjavacore.so \ 300*795d594fSAndroid Build Coastguard Worker lib/libjdwp.so \ 301*795d594fSAndroid Build Coastguard Worker lib/liblzma.so \ 302*795d594fSAndroid Build Coastguard Worker lib/libmeminfo.so \ 303*795d594fSAndroid Build Coastguard Worker lib/libnativebridge.so \ 304*795d594fSAndroid Build Coastguard Worker lib/libnativehelper.so \ 305*795d594fSAndroid Build Coastguard Worker lib/libnativeloader.so \ 306*795d594fSAndroid Build Coastguard Worker lib/libnpt.so \ 307*795d594fSAndroid Build Coastguard Worker lib/libopenjdkjvm.so \ 308*795d594fSAndroid Build Coastguard Worker lib/libopenjdkjvmti.so \ 309*795d594fSAndroid Build Coastguard Worker lib/libopenjdk.so \ 310*795d594fSAndroid Build Coastguard Worker lib/libpac.so \ 311*795d594fSAndroid Build Coastguard Worker lib/libprocinfo.so \ 312*795d594fSAndroid Build Coastguard Worker lib/libprofile.so \ 313*795d594fSAndroid Build Coastguard Worker lib/libsigchain.so \ 314*795d594fSAndroid Build Coastguard Worker lib/libunwindstack.so \ 315*795d594fSAndroid Build Coastguard Worker lib64/libadbconnection.so \ 316*795d594fSAndroid Build Coastguard Worker lib64/libandroidio.so \ 317*795d594fSAndroid Build Coastguard Worker lib64/libartbase.so \ 318*795d594fSAndroid Build Coastguard Worker lib64/libart-dexlayout.so \ 319*795d594fSAndroid Build Coastguard Worker lib64/libart-disassembler.so \ 320*795d594fSAndroid Build Coastguard Worker lib64/libartpalette.so \ 321*795d594fSAndroid Build Coastguard Worker lib64/libart.so \ 322*795d594fSAndroid Build Coastguard Worker lib64/libdexfile.so \ 323*795d594fSAndroid Build Coastguard Worker lib64/libdt_fd_forward.so \ 324*795d594fSAndroid Build Coastguard Worker lib64/libdt_socket.so \ 325*795d594fSAndroid Build Coastguard Worker lib64/libexpat.so \ 326*795d594fSAndroid Build Coastguard Worker lib64/libjavacore.so \ 327*795d594fSAndroid Build Coastguard Worker lib64/libjdwp.so \ 328*795d594fSAndroid Build Coastguard Worker lib64/liblzma.so \ 329*795d594fSAndroid Build Coastguard Worker lib64/libmeminfo.so \ 330*795d594fSAndroid Build Coastguard Worker lib64/libnativebridge.so \ 331*795d594fSAndroid Build Coastguard Worker lib64/libnativehelper.so \ 332*795d594fSAndroid Build Coastguard Worker lib64/libnativeloader.so \ 333*795d594fSAndroid Build Coastguard Worker lib64/libnpt.so \ 334*795d594fSAndroid Build Coastguard Worker lib64/libopenjdkjvm.so \ 335*795d594fSAndroid Build Coastguard Worker lib64/libopenjdkjvmti.so \ 336*795d594fSAndroid Build Coastguard Worker lib64/libopenjdk.so \ 337*795d594fSAndroid Build Coastguard Worker lib64/libpac.so \ 338*795d594fSAndroid Build Coastguard Worker lib64/libprocinfo.so \ 339*795d594fSAndroid Build Coastguard Worker lib64/libprofile.so \ 340*795d594fSAndroid Build Coastguard Worker lib64/libsigchain.so \ 341*795d594fSAndroid Build Coastguard Worker lib64/libunwindstack.so \ 342*795d594fSAndroid Build Coastguard Worker 343*795d594fSAndroid Build Coastguard WorkerPRIVATE_RUNTIME_APEX_DEPENDENCY_FILES := \ 344*795d594fSAndroid Build Coastguard Worker bin/linker \ 345*795d594fSAndroid Build Coastguard Worker bin/linker64 \ 346*795d594fSAndroid Build Coastguard Worker lib/bionic/libc.so \ 347*795d594fSAndroid Build Coastguard Worker lib/bionic/libdl.so \ 348*795d594fSAndroid Build Coastguard Worker lib/bionic/libdl_android.so \ 349*795d594fSAndroid Build Coastguard Worker lib/bionic/libm.so \ 350*795d594fSAndroid Build Coastguard Worker lib64/bionic/libc.so \ 351*795d594fSAndroid Build Coastguard Worker lib64/bionic/libdl.so \ 352*795d594fSAndroid Build Coastguard Worker lib64/bionic/libdl_android.so \ 353*795d594fSAndroid Build Coastguard Worker lib64/bionic/libm.so \ 354*795d594fSAndroid Build Coastguard Worker 355*795d594fSAndroid Build Coastguard WorkerPRIVATE_CONSCRYPT_APEX_DEPENDENCY_LIBS := \ 356*795d594fSAndroid Build Coastguard Worker lib/libcrypto.so \ 357*795d594fSAndroid Build Coastguard Worker lib/libjavacrypto.so \ 358*795d594fSAndroid Build Coastguard Worker lib/libssl.so \ 359*795d594fSAndroid Build Coastguard Worker lib64/libcrypto.so \ 360*795d594fSAndroid Build Coastguard Worker lib64/libjavacrypto.so \ 361*795d594fSAndroid Build Coastguard Worker lib64/libssl.so \ 362*795d594fSAndroid Build Coastguard Worker 363*795d594fSAndroid Build Coastguard WorkerPRIVATE_I18N_APEX_DEPENDENCY_LIBS := \ 364*795d594fSAndroid Build Coastguard Worker lib/libicu.so \ 365*795d594fSAndroid Build Coastguard Worker lib/libicui18n.so \ 366*795d594fSAndroid Build Coastguard Worker lib/libicu_jni.so \ 367*795d594fSAndroid Build Coastguard Worker lib/libicuuc.so \ 368*795d594fSAndroid Build Coastguard Worker lib64/libicu.so \ 369*795d594fSAndroid Build Coastguard Worker lib64/libicui18n.so \ 370*795d594fSAndroid Build Coastguard Worker lib64/libicu_jni.so \ 371*795d594fSAndroid Build Coastguard Worker lib64/libicuuc.so \ 372*795d594fSAndroid Build Coastguard Worker 373*795d594fSAndroid Build Coastguard WorkerPRIVATE_STATSD_APEX_DEPENDENCY_LIBS := \ 374*795d594fSAndroid Build Coastguard Worker lib/libstatspull.so \ 375*795d594fSAndroid Build Coastguard Worker lib/libstatssocket.so \ 376*795d594fSAndroid Build Coastguard Worker lib64/libstatspull.so \ 377*795d594fSAndroid Build Coastguard Worker lib64/libstatssocket.so \ 378*795d594fSAndroid Build Coastguard Worker 379*795d594fSAndroid Build Coastguard Worker# Extracts files from an APEX into a location. The APEX can be either a .apex or 380*795d594fSAndroid Build Coastguard Worker# .capex file in $(TARGET_OUT)/apex, or a directory in the same location. Files 381*795d594fSAndroid Build Coastguard Worker# are extracted to $(TARGET_OUT) with the same relative paths as under the APEX 382*795d594fSAndroid Build Coastguard Worker# root. 383*795d594fSAndroid Build Coastguard Worker# $(1): APEX base name 384*795d594fSAndroid Build Coastguard Worker# $(2): List of files to extract, with paths relative to the APEX root 385*795d594fSAndroid Build Coastguard Worker# 386*795d594fSAndroid Build Coastguard Worker# "cp -d" below doesn't work on Darwin, but this is only used for Golem builds 387*795d594fSAndroid Build Coastguard Worker# and won't run on mac anyway. 388*795d594fSAndroid Build Coastguard Workerdefine extract-from-apex 389*795d594fSAndroid Build Coastguard Worker apex_root=$(TARGET_OUT)/apex && \ 390*795d594fSAndroid Build Coastguard Worker apex_file=$$apex_root/$(1).apex && \ 391*795d594fSAndroid Build Coastguard Worker apex_dir=$$apex_root/$(1) && \ 392*795d594fSAndroid Build Coastguard Worker if [ ! -f $$apex_file ]; then \ 393*795d594fSAndroid Build Coastguard Worker apex_file=$$apex_root/$(1).capex; \ 394*795d594fSAndroid Build Coastguard Worker fi && \ 395*795d594fSAndroid Build Coastguard Worker if [ -f $$apex_file ]; then \ 396*795d594fSAndroid Build Coastguard Worker rm -rf $$apex_dir && \ 397*795d594fSAndroid Build Coastguard Worker mkdir -p $$apex_dir && \ 398*795d594fSAndroid Build Coastguard Worker debugfs=$(HOST_OUT)/bin/debugfs_static && \ 399*795d594fSAndroid Build Coastguard Worker fsckerofs=$(HOST_OUT)/bin/fsck.erofs && \ 400*795d594fSAndroid Build Coastguard Worker $(HOST_OUT)/bin/deapexer --debugfs_path $$debugfs \ 401*795d594fSAndroid Build Coastguard Worker --fsckerofs_path $$fsckerofs extract $$apex_file $$apex_dir; \ 402*795d594fSAndroid Build Coastguard Worker fi && \ 403*795d594fSAndroid Build Coastguard Worker for f in $(2); do \ 404*795d594fSAndroid Build Coastguard Worker sf=$$apex_dir/$$f && \ 405*795d594fSAndroid Build Coastguard Worker df=$(TARGET_OUT)/$$f && \ 406*795d594fSAndroid Build Coastguard Worker if [ -f $$sf -o -h $$sf ]; then \ 407*795d594fSAndroid Build Coastguard Worker mkdir -p $$(dirname $$df) && \ 408*795d594fSAndroid Build Coastguard Worker cp -fd $$sf $$df; \ 409*795d594fSAndroid Build Coastguard Worker fi || exit 1; \ 410*795d594fSAndroid Build Coastguard Worker done 411*795d594fSAndroid Build Coastguard Workerendef 412*795d594fSAndroid Build Coastguard Worker 413*795d594fSAndroid Build Coastguard Worker# Copy or extract some required files from APEXes to the `system` (TARGET_OUT) 414*795d594fSAndroid Build Coastguard Worker# directory. This is dangerous as these files could inadvertently stay in this 415*795d594fSAndroid Build Coastguard Worker# directory and be included in a system image. 416*795d594fSAndroid Build Coastguard Worker# 417*795d594fSAndroid Build Coastguard Worker# This target is only used by Golem now. 418*795d594fSAndroid Build Coastguard Worker# 419*795d594fSAndroid Build Coastguard Worker# NB Android build does not use cp from: 420*795d594fSAndroid Build Coastguard Worker# $ANDROID_BUILD_TOP/prebuilts/build-tools/path/{linux-x86,darwin-x86} 421*795d594fSAndroid Build Coastguard Worker# which has a non-standard set of command-line flags. 422*795d594fSAndroid Build Coastguard Worker# 423*795d594fSAndroid Build Coastguard Worker# TODO(b/129332183): Remove this when Golem has full support for the 424*795d594fSAndroid Build Coastguard Worker# ART APEX. 425*795d594fSAndroid Build Coastguard Worker# 426*795d594fSAndroid Build Coastguard Worker# TODO(b/129332183): This approach is flawed: We mix DSOs from prebuilt APEXes 427*795d594fSAndroid Build Coastguard Worker# with source built ones, and some of them don't have stable ABIs. libbase.so in 428*795d594fSAndroid Build Coastguard Worker# particular is such a problematic dependency. When those dependencies 429*795d594fSAndroid Build Coastguard Worker# eventually don't work anymore we don't have much choice but to update all 430*795d594fSAndroid Build Coastguard Worker# prebuilts. 431*795d594fSAndroid Build Coastguard Worker.PHONY: standalone-apex-files 432*795d594fSAndroid Build Coastguard Workerstandalone-apex-files: deapexer \ 433*795d594fSAndroid Build Coastguard Worker $(RELEASE_ART_APEX) \ 434*795d594fSAndroid Build Coastguard Worker $(RUNTIME_APEX) \ 435*795d594fSAndroid Build Coastguard Worker $(CONSCRYPT_APEX) \ 436*795d594fSAndroid Build Coastguard Worker $(I18N_APEX) \ 437*795d594fSAndroid Build Coastguard Worker $(STATSD_APEX) \ 438*795d594fSAndroid Build Coastguard Worker $(TZDATA_APEX) \ 439*795d594fSAndroid Build Coastguard Worker $(HOST_OUT)/bin/generate-boot-image64 \ 440*795d594fSAndroid Build Coastguard Worker $(HOST_OUT)/bin/dex2oat64 \ 441*795d594fSAndroid Build Coastguard Worker libartpalette_fake \ 442*795d594fSAndroid Build Coastguard Worker art_fake_heapprofd_client_api 443*795d594fSAndroid Build Coastguard Worker $(call extract-from-apex,$(RELEASE_ART_APEX),\ 444*795d594fSAndroid Build Coastguard Worker $(PRIVATE_ART_APEX_DEPENDENCY_LIBS) $(PRIVATE_ART_APEX_DEPENDENCY_FILES)) 445*795d594fSAndroid Build Coastguard Worker # The Runtime APEX has the Bionic libs in ${LIB}/bionic subdirectories, 446*795d594fSAndroid Build Coastguard Worker # so we need to move them up a level after extraction. 447*795d594fSAndroid Build Coastguard Worker # Also, copy fake platform libraries. 448*795d594fSAndroid Build Coastguard Worker $(call extract-from-apex,$(RUNTIME_APEX),\ 449*795d594fSAndroid Build Coastguard Worker $(PRIVATE_RUNTIME_APEX_DEPENDENCY_FILES)) && \ 450*795d594fSAndroid Build Coastguard Worker libdir=$(TARGET_OUT)/lib$$(expr $(TARGET_ARCH) : '.*\(64\)' || :) && \ 451*795d594fSAndroid Build Coastguard Worker if [ -d $$libdir/bionic ]; then \ 452*795d594fSAndroid Build Coastguard Worker mv -f $$libdir/bionic/*.so $$libdir; \ 453*795d594fSAndroid Build Coastguard Worker fi && \ 454*795d594fSAndroid Build Coastguard Worker cp $$libdir/art_fake/*.so $$libdir 455*795d594fSAndroid Build Coastguard Worker $(call extract-from-apex,$(CONSCRYPT_APEX),\ 456*795d594fSAndroid Build Coastguard Worker $(PRIVATE_CONSCRYPT_APEX_DEPENDENCY_LIBS)) 457*795d594fSAndroid Build Coastguard Worker $(call extract-from-apex,$(I18N_APEX),\ 458*795d594fSAndroid Build Coastguard Worker $(PRIVATE_I18N_APEX_DEPENDENCY_LIBS)) 459*795d594fSAndroid Build Coastguard Worker $(call extract-from-apex,$(STATSD_APEX),\ 460*795d594fSAndroid Build Coastguard Worker $(PRIVATE_STATSD_APEX_DEPENDENCY_LIBS)) 461*795d594fSAndroid Build Coastguard Worker $(call extract-from-apex,$(TZDATA_APEX),) 462*795d594fSAndroid Build Coastguard Worker rm -rf $(PRODUCT_OUT)/apex/art_boot_images && \ 463*795d594fSAndroid Build Coastguard Worker mkdir -p $(PRODUCT_OUT)/apex/art_boot_images/javalib && \ 464*795d594fSAndroid Build Coastguard Worker $(HOST_OUT)/bin/generate-boot-image64 \ 465*795d594fSAndroid Build Coastguard Worker --output-dir=$(PRODUCT_OUT)/apex/art_boot_images/javalib \ 466*795d594fSAndroid Build Coastguard Worker --compiler-filter=speed \ 467*795d594fSAndroid Build Coastguard Worker --use-profile=false \ 468*795d594fSAndroid Build Coastguard Worker --dex2oat-bin=$(HOST_OUT)/bin/dex2oat64 \ 469*795d594fSAndroid Build Coastguard Worker --android-root=$(TARGET_OUT) \ 470*795d594fSAndroid Build Coastguard Worker --instruction-set=$(TARGET_ARCH) 471*795d594fSAndroid Build Coastguard Worker 472*795d594fSAndroid Build Coastguard Worker######################################################################## 473*795d594fSAndroid Build Coastguard Worker# Phony target for only building what go/lem requires for pushing ART on /data. 474*795d594fSAndroid Build Coastguard Worker 475*795d594fSAndroid Build Coastguard Worker.PHONY: build-art-target-golem 476*795d594fSAndroid Build Coastguard Worker 477*795d594fSAndroid Build Coastguard WorkerART_TARGET_PLATFORM_LIBS := \ 478*795d594fSAndroid Build Coastguard Worker libcutils \ 479*795d594fSAndroid Build Coastguard Worker libprocessgroup \ 480*795d594fSAndroid Build Coastguard Worker libprocinfo \ 481*795d594fSAndroid Build Coastguard Worker libselinux \ 482*795d594fSAndroid Build Coastguard Worker libtombstoned_client \ 483*795d594fSAndroid Build Coastguard Worker libz \ 484*795d594fSAndroid Build Coastguard Worker 485*795d594fSAndroid Build Coastguard WorkerART_TARGET_PLATFORM_DEPENDENCIES := \ 486*795d594fSAndroid Build Coastguard Worker $(TARGET_OUT)/etc/public.libraries.txt \ 487*795d594fSAndroid Build Coastguard Worker $(foreach lib,$(ART_TARGET_PLATFORM_LIBS), $(TARGET_OUT_SHARED_LIBRARIES)/$(lib).so) 488*795d594fSAndroid Build Coastguard Workerifdef TARGET_2ND_ARCH 489*795d594fSAndroid Build Coastguard WorkerART_TARGET_PLATFORM_DEPENDENCIES += \ 490*795d594fSAndroid Build Coastguard Worker $(foreach lib,$(ART_TARGET_PLATFORM_LIBS), $(2ND_TARGET_OUT_SHARED_LIBRARIES)/$(lib).so) 491*795d594fSAndroid Build Coastguard Workerendif 492*795d594fSAndroid Build Coastguard Worker 493*795d594fSAndroid Build Coastguard Worker# Despite `liblz4` being included in the ART apex, Golem benchmarks need another one in /system/ . 494*795d594fSAndroid Build Coastguard WorkerART_TARGET_PLATFORM_DEPENDENCIES_GOLEM= \ 495*795d594fSAndroid Build Coastguard Worker $(TARGET_OUT_SHARED_LIBRARIES)/liblz4.so 496*795d594fSAndroid Build Coastguard Worker 497*795d594fSAndroid Build Coastguard Worker# Also include libartbenchmark, we always include it when running golem. 498*795d594fSAndroid Build Coastguard Worker# libstdc++ is needed when building for ART_TARGET_LINUX. 499*795d594fSAndroid Build Coastguard WorkerART_TARGET_SHARED_LIBRARY_BENCHMARK := $(TARGET_OUT_SHARED_LIBRARIES)/libartbenchmark.so 500*795d594fSAndroid Build Coastguard Worker 501*795d594fSAndroid Build Coastguard Workerbuild-art-target-golem: $(RELEASE_ART_APEX) com.android.runtime $(CONSCRYPT_APEX) \ 502*795d594fSAndroid Build Coastguard Worker $(TARGET_OUT_EXECUTABLES)/art \ 503*795d594fSAndroid Build Coastguard Worker $(TARGET_OUT_EXECUTABLES)/dex2oat_wrapper \ 504*795d594fSAndroid Build Coastguard Worker $(ART_TARGET_PLATFORM_DEPENDENCIES) \ 505*795d594fSAndroid Build Coastguard Worker $(ART_TARGET_PLATFORM_DEPENDENCIES_GOLEM) \ 506*795d594fSAndroid Build Coastguard Worker $(ART_TARGET_SHARED_LIBRARY_BENCHMARK) \ 507*795d594fSAndroid Build Coastguard Worker $(TARGET_OUT_SHARED_LIBRARIES)/libgolemtiagent.so \ 508*795d594fSAndroid Build Coastguard Worker standalone-apex-files 509*795d594fSAndroid Build Coastguard Worker # remove debug libraries from public.libraries.txt because golem builds 510*795d594fSAndroid Build Coastguard Worker # won't have it. 511*795d594fSAndroid Build Coastguard Worker sed -i '/libartd.so/d' $(TARGET_OUT)/etc/public.libraries.txt 512*795d594fSAndroid Build Coastguard Worker sed -i '/libdexfiled.so/d' $(TARGET_OUT)/etc/public.libraries.txt 513*795d594fSAndroid Build Coastguard Worker sed -i '/libprofiled.so/d' $(TARGET_OUT)/etc/public.libraries.txt 514*795d594fSAndroid Build Coastguard Worker sed -i '/libartbased.so/d' $(TARGET_OUT)/etc/public.libraries.txt 515*795d594fSAndroid Build Coastguard Worker 516*795d594fSAndroid Build Coastguard Worker######################################################################## 517*795d594fSAndroid Build Coastguard Worker# Phony target for building what go/lem requires on host. 518*795d594fSAndroid Build Coastguard Worker 519*795d594fSAndroid Build Coastguard Worker.PHONY: build-art-host-golem 520*795d594fSAndroid Build Coastguard Worker# Also include libartbenchmark, we always include it when running golem. 521*795d594fSAndroid Build Coastguard WorkerART_HOST_SHARED_LIBRARY_BENCHMARK := $(ART_HOST_OUT_SHARED_LIBRARIES)/libartbenchmark.so 522*795d594fSAndroid Build Coastguard Workerbuild-art-host-golem: build-art-host \ 523*795d594fSAndroid Build Coastguard Worker $(ART_HOST_SHARED_LIBRARY_BENCHMARK) \ 524*795d594fSAndroid Build Coastguard Worker $(ART_HOST_OUT_SHARED_LIBRARIES)/libgolemtiagent.so \ 525*795d594fSAndroid Build Coastguard Worker $(HOST_OUT_EXECUTABLES)/dex2oat_wrapper 526*795d594fSAndroid Build Coastguard Worker 527*795d594fSAndroid Build Coastguard Worker######################################################################## 528*795d594fSAndroid Build Coastguard Worker# Rules for building all dependencies for tests. 529*795d594fSAndroid Build Coastguard Worker 530*795d594fSAndroid Build Coastguard Worker.PHONY: build-art-host-gtests build-art-host-run-tests build-art-host-tests 531*795d594fSAndroid Build Coastguard Worker 532*795d594fSAndroid Build Coastguard Workerbuild-art-host-gtests: build-art-host $(ART_TEST_HOST_GTEST_DEPENDENCIES) 533*795d594fSAndroid Build Coastguard Worker 534*795d594fSAndroid Build Coastguard Workerbuild-art-host-run-tests: build-art-host \ 535*795d594fSAndroid Build Coastguard Worker $(TEST_ART_RUN_TEST_DEPENDENCIES) \ 536*795d594fSAndroid Build Coastguard Worker $(ART_TEST_HOST_RUN_TEST_DEPENDENCIES) \ 537*795d594fSAndroid Build Coastguard Worker art-run-test-host-data \ 538*795d594fSAndroid Build Coastguard Worker art-run-test-jvm-data 539*795d594fSAndroid Build Coastguard Worker 540*795d594fSAndroid Build Coastguard Workerbuild-art-host-tests: build-art-host-gtests build-art-host-run-tests 541*795d594fSAndroid Build Coastguard Worker 542*795d594fSAndroid Build Coastguard Worker.PHONY: build-art-target-gtests build-art-target-run-tests build-art-target-tests 543*795d594fSAndroid Build Coastguard Worker 544*795d594fSAndroid Build Coastguard Workerbuild-art-target-gtests: build-art-target \ 545*795d594fSAndroid Build Coastguard Worker $(ART_TEST_TARGET_GTEST_DEPENDENCIES) \ 546*795d594fSAndroid Build Coastguard Worker $(ART_TARGET_PLATFORM_DEPENDENCIES) 547*795d594fSAndroid Build Coastguard Worker 548*795d594fSAndroid Build Coastguard Workerbuild-art-target-run-tests: build-art-target \ 549*795d594fSAndroid Build Coastguard Worker $(TEST_ART_RUN_TEST_DEPENDENCIES) \ 550*795d594fSAndroid Build Coastguard Worker $(ART_TEST_TARGET_RUN_TEST_DEPENDENCIES) \ 551*795d594fSAndroid Build Coastguard Worker $(ART_TARGET_PLATFORM_DEPENDENCIES) \ 552*795d594fSAndroid Build Coastguard Worker art-run-test-target-data 553*795d594fSAndroid Build Coastguard Worker 554*795d594fSAndroid Build Coastguard Workerbuild-art-target-tests: build-art-target-gtests build-art-target-run-tests 555*795d594fSAndroid Build Coastguard Worker 556*795d594fSAndroid Build Coastguard Worker######################################################################## 557*795d594fSAndroid Build Coastguard Worker 558*795d594fSAndroid Build Coastguard Worker# Clear locally used variables. 559*795d594fSAndroid Build Coastguard WorkerTEST_ART_TARGET_SYNC_DEPS := 560*795d594fSAndroid Build Coastguard Worker 561*795d594fSAndroid Build Coastguard Worker# These files only exist if this flag is off. WITH_DEXPREOPT_ART_BOOT_IMG_ONLY is the 562*795d594fSAndroid Build Coastguard Worker# minimal dexpreopt mode we use on eng builds for build speed. 563*795d594fSAndroid Build Coastguard Workerifneq ($(WITH_DEXPREOPT_ART_BOOT_IMG_ONLY),true) 564*795d594fSAndroid Build Coastguard Worker 565*795d594fSAndroid Build Coastguard Worker# Helper target that depends on boot image creation. 566*795d594fSAndroid Build Coastguard Worker# 567*795d594fSAndroid Build Coastguard Worker# Can be used, for example, to dump initialization failures: 568*795d594fSAndroid Build Coastguard Worker# m art-boot-image ART_BOOT_IMAGE_EXTRA_ARGS=--dump-init-failures=fails.txt 569*795d594fSAndroid Build Coastguard Worker.PHONY: art-boot-image 570*795d594fSAndroid Build Coastguard Workerart-boot-image: $(DEXPREOPT_IMAGE_boot_$(TARGET_ARCH)) 571*795d594fSAndroid Build Coastguard Worker 572*795d594fSAndroid Build Coastguard Worker.PHONY: art-job-images 573*795d594fSAndroid Build Coastguard Workerart-job-images: \ 574*795d594fSAndroid Build Coastguard Worker art-boot-image \ 575*795d594fSAndroid Build Coastguard Worker $(2ND_DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) \ 576*795d594fSAndroid Build Coastguard Worker $(HOST_OUT_EXECUTABLES)/dex2oats \ 577*795d594fSAndroid Build Coastguard Worker $(HOST_OUT_EXECUTABLES)/dex2oatds \ 578*795d594fSAndroid Build Coastguard Worker $(HOST_OUT_EXECUTABLES)/profman 579*795d594fSAndroid Build Coastguard Worker 580*795d594fSAndroid Build Coastguard Workerendif # TARGET_BUILD_VARIANT == eng 581*795d594fSAndroid Build Coastguard Worker 582*795d594fSAndroid Build Coastguard Worker######################################################################## 583*795d594fSAndroid Build Coastguard Worker 584*795d594fSAndroid Build Coastguard Worker# Build a target that contains dex public SDK stubs for SDK version in the list. 585*795d594fSAndroid Build Coastguard Worker# Zip files structure: 586*795d594fSAndroid Build Coastguard Worker# public-sdk-28-stub.zip 587*795d594fSAndroid Build Coastguard Worker# classes.dex 588*795d594fSAndroid Build Coastguard Worker# public-sdk-29-stub.zip 589*795d594fSAndroid Build Coastguard Worker# classes.dex 590*795d594fSAndroid Build Coastguard Worker# public-sdk-30-stub.zip 591*795d594fSAndroid Build Coastguard Worker# classes.dex 592*795d594fSAndroid Build Coastguard WorkerMIN_SDK_VERSION := 28 593*795d594fSAndroid Build Coastguard WorkerSDK_VERSIONS := $(call numbers_greater_or_equal_to,$(MIN_SDK_VERSION),$(TARGET_AVAIALBLE_SDK_VERSIONS)) 594*795d594fSAndroid Build Coastguard Worker 595*795d594fSAndroid Build Coastguard Worker# Create dex public SDK stubs. 596*795d594fSAndroid Build Coastguard Workerdefine get_public_sdk_stub_dex 597*795d594fSAndroid Build Coastguard Worker$(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/public_sdk_$(1)_stub_intermediates/classes.dex 598*795d594fSAndroid Build Coastguard Workerendef 599*795d594fSAndroid Build Coastguard Worker 600*795d594fSAndroid Build Coastguard Worker# The input is the SDK version. 601*795d594fSAndroid Build Coastguard Workerdefine create_public_sdk_dex 602*795d594fSAndroid Build Coastguard Workerpublic_sdk_$(1)_stub := $$(call get_public_sdk_stub_dex,$(1)) 603*795d594fSAndroid Build Coastguard Worker$$(public_sdk_$(1)_stub): PRIVATE_MIN_SDK_VERSION := $(1) 604*795d594fSAndroid Build Coastguard Worker$$(public_sdk_$(1)_stub): $$(call resolve-prebuilt-sdk-jar-path,$(1)) $$(D8) $$(ZIP2ZIP) 605*795d594fSAndroid Build Coastguard Worker $$(transform-classes.jar-to-dex) 606*795d594fSAndroid Build Coastguard Worker 607*795d594fSAndroid Build Coastguard Worker$$(call declare-1p-target,$$(public_sdk_$(1)_stub),art) 608*795d594fSAndroid Build Coastguard Workerendef 609*795d594fSAndroid Build Coastguard Worker 610*795d594fSAndroid Build Coastguard Worker$(foreach version,$(SDK_VERSIONS),$(eval $(call create_public_sdk_dex,$(version)))) 611*795d594fSAndroid Build Coastguard Worker 612*795d594fSAndroid Build Coastguard Worker# Create dex public SDK stubs zip. 613*795d594fSAndroid Build Coastguard Workerdefine get_public_sdk_stub_zip 614*795d594fSAndroid Build Coastguard Worker$(call intermediates-dir-for,PACKAGING,public_sdk_stub,HOST)/public-sdk-$(1)-stub.zip 615*795d594fSAndroid Build Coastguard Workerendef 616*795d594fSAndroid Build Coastguard Worker 617*795d594fSAndroid Build Coastguard Workerdefine create_public_sdk_zip 618*795d594fSAndroid Build Coastguard WorkerPUBLIC_SDK_$(1)_STUB_ZIP_PATH := $$(call get_public_sdk_stub_zip,$(1)) 619*795d594fSAndroid Build Coastguard Worker$$(PUBLIC_SDK_$(1)_STUB_ZIP_PATH): PRIVATE_SDK_STUBS_DEX_DIR := $$(dir $$(public_sdk_$(1)_stub)) 620*795d594fSAndroid Build Coastguard Worker$$(PUBLIC_SDK_$(1)_STUB_ZIP_PATH): $$(SOONG_ZIP) $$(public_sdk_$(1)_stub) 621*795d594fSAndroid Build Coastguard Worker rm -f $$@ 622*795d594fSAndroid Build Coastguard Worker $$(SOONG_ZIP) -o $$@ -C $$(PRIVATE_SDK_STUBS_DEX_DIR) -D $$(PRIVATE_SDK_STUBS_DEX_DIR) 623*795d594fSAndroid Build Coastguard Worker 624*795d594fSAndroid Build Coastguard Worker$$(call declare-1p-container,$$(PUBLIC_SDK_$(1)_STUB_ZIP_PATH),art) 625*795d594fSAndroid Build Coastguard Worker$$(call declare-container-license-deps,$$(PUBLIC_SDK_$(1)_STUB_ZIP_PATH),$$(public_sdk_$(1)_stub),$$(PUBLIC_SDK_$(1)_STUB_PATH):) 626*795d594fSAndroid Build Coastguard Workerendef 627*795d594fSAndroid Build Coastguard Worker 628*795d594fSAndroid Build Coastguard Worker$(foreach version,$(SDK_VERSIONS),$(eval $(call create_public_sdk_zip,$(version)))) 629*795d594fSAndroid Build Coastguard Worker 630*795d594fSAndroid Build Coastguard Worker# Make the zip files available for prebuilts. 631*795d594fSAndroid Build Coastguard Worker$(foreach version,$(SDK_VERSIONS),$(call dist-for-goals,sdk,$(call get_public_sdk_stub_zip,$(version)))) 632*795d594fSAndroid Build Coastguard Worker 633*795d594fSAndroid Build Coastguard WorkerSTUB_ZIP_FILES = $(foreach version,$(SDK_VERSIONS),$(call get_public_sdk_stub_zip,$(version))) 634*795d594fSAndroid Build Coastguard Worker 635*795d594fSAndroid Build Coastguard Worker.PHONY: public_sdk_stubs 636*795d594fSAndroid Build Coastguard Workerpublic_sdk_stubs: $(STUB_ZIP_FILES) 637*795d594fSAndroid Build Coastguard Worker 638*795d594fSAndroid Build Coastguard WorkerMIN_SDK_VERSION := 639*795d594fSAndroid Build Coastguard WorkerSDK_VERSIONS := 640