xref: /aosp_15_r20/art/tools/ahat/Android.mk (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Worker#
2*795d594fSAndroid Build Coastguard Worker# Copyright (C) 2015 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 Workerinclude art/build/Android.common_path.mk
20*795d594fSAndroid Build Coastguard Worker
21*795d594fSAndroid Build Coastguard Worker# The ahat tests rely on running ART to generate a heap dump for test, but ART
22*795d594fSAndroid Build Coastguard Worker# doesn't run on darwin. Only build and run the tests for linux.
23*795d594fSAndroid Build Coastguard Worker# There are also issues with running under instrumentation.
24*795d594fSAndroid Build Coastguard Workerifeq ($(HOST_OS),linux)
25*795d594fSAndroid Build Coastguard Workerifneq ($(EMMA_INSTRUMENT),true)
26*795d594fSAndroid Build Coastguard Worker
27*795d594fSAndroid Build Coastguard Worker# Determine the location of the test-dump.jar, test-dump.hprof, and proguard
28*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_JAR := $(call intermediates-dir-for,JAVA_LIBRARIES,ahat-test-dump)/javalib.jar
29*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_COMMON := $(call intermediates-dir-for,JAVA_LIBRARIES,ahat-test-dump,,COMMON)
30*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_JNI := $(ART_HOST_OUT_SHARED_LIBRARIES)/libahat-test-jni$(ART_HOST_SHLIB_EXTENSION)
31*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_HPROF := $(AHAT_TEST_DUMP_COMMON)/test-dump.hprof
32*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_BASE_HPROF := $(AHAT_TEST_DUMP_COMMON)/test-dump-base.hprof
33*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_PROGUARD_MAP := $(AHAT_TEST_DUMP_COMMON)/test-dump.map
34*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_PROGUARD_DICTIONARY := $(AHAT_TEST_DUMP_COMMON)/proguard_dictionary
35*795d594fSAndroid Build Coastguard Worker
36*795d594fSAndroid Build Coastguard Worker# Directories to use for ANDROID_DATA when generating the test dumps to
37*795d594fSAndroid Build Coastguard Worker# ensure we don't pollute the source tree with any artifacts from running
38*795d594fSAndroid Build Coastguard Worker# dalvikvm.
39*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_ANDROID_DATA := $(AHAT_TEST_DUMP_COMMON)/test-dump-android_data
40*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_BASE_ANDROID_DATA := $(AHAT_TEST_DUMP_COMMON)/test-dump-base-android_data
41*795d594fSAndroid Build Coastguard Worker
42*795d594fSAndroid Build Coastguard Worker# Generate the proguard map in the desired location by copying it from
43*795d594fSAndroid Build Coastguard Worker# wherever the build system generates it by default.
44*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_PROGUARD_MAP): PRIVATE_AHAT_SOURCE_PROGUARD_MAP := $(AHAT_TEST_DUMP_PROGUARD_DICTIONARY)
45*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_PROGUARD_MAP): $(AHAT_TEST_DUMP_PROGUARD_DICTIONARY)
46*795d594fSAndroid Build Coastguard Worker	cp $(PRIVATE_AHAT_SOURCE_PROGUARD_MAP) $@
47*795d594fSAndroid Build Coastguard Worker
48*795d594fSAndroid Build Coastguard Workerifeq (true,$(HOST_PREFER_32_BIT))
49*795d594fSAndroid Build Coastguard Worker  AHAT_TEST_DALVIKVM_DEP := $(HOST_OUT_EXECUTABLES)/dalvikvm32
50*795d594fSAndroid Build Coastguard Worker  AHAT_TEST_DALVIKVM_ARG := --32
51*795d594fSAndroid Build Coastguard Workerelse
52*795d594fSAndroid Build Coastguard Worker  AHAT_TEST_DALVIKVM_DEP := $(HOST_OUT_EXECUTABLES)/dalvikvm64
53*795d594fSAndroid Build Coastguard Worker  AHAT_TEST_DALVIKVM_ARG := --64
54*795d594fSAndroid Build Coastguard Workerendif
55*795d594fSAndroid Build Coastguard Worker
56*795d594fSAndroid Build Coastguard Worker# Run ahat-test-dump.jar to generate test-dump.hprof and test-dump-base.hprof
57*795d594fSAndroid Build Coastguard Worker# The scripts below are run with --no-compile to avoid dependency on dex2oat.
58*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_DEPENDENCIES := \
59*795d594fSAndroid Build Coastguard Worker  $(AHAT_TEST_DALVIKVM_DEP) \
60*795d594fSAndroid Build Coastguard Worker  $(AHAT_TEST_DUMP_JNI) \
61*795d594fSAndroid Build Coastguard Worker  $(ART_HOST_SHARED_LIBRARY_DEPENDENCIES) \
62*795d594fSAndroid Build Coastguard Worker  $(ART_HOST_SHARED_LIBRARY_DEBUG_DEPENDENCIES) \
63*795d594fSAndroid Build Coastguard Worker  $(ART_HOST_DEX_DEPENDENCIES) \
64*795d594fSAndroid Build Coastguard Worker  $(HOST_OUT_EXECUTABLES)/art \
65*795d594fSAndroid Build Coastguard Worker  $(HOST_CORE_IMG_OUTS)
66*795d594fSAndroid Build Coastguard Worker
67*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_ART := $(HOST_OUT_EXECUTABLES)/art
68*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_DUMP_JAR := $(AHAT_TEST_DUMP_JAR)
69*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_ANDROID_DATA := $(AHAT_TEST_DUMP_ANDROID_DATA)
70*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_DALVIKVM_ARG := $(AHAT_TEST_DALVIKVM_ARG)
71*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_HPROF): $(AHAT_TEST_DUMP_JAR) $(AHAT_TEST_DUMP_DEPENDENCIES)
72*795d594fSAndroid Build Coastguard Worker	rm -rf $(PRIVATE_AHAT_TEST_ANDROID_DATA)
73*795d594fSAndroid Build Coastguard Worker	mkdir -p $(PRIVATE_AHAT_TEST_ANDROID_DATA)
74*795d594fSAndroid Build Coastguard Worker	ANDROID_DATA=$(PRIVATE_AHAT_TEST_ANDROID_DATA) \
75*795d594fSAndroid Build Coastguard Worker	  $(PRIVATE_AHAT_TEST_ART) --no-compile -d $(PRIVATE_AHAT_TEST_DALVIKVM_ARG) \
76*795d594fSAndroid Build Coastguard Worker	  -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@
77*795d594fSAndroid Build Coastguard Worker
78*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_ART := $(HOST_OUT_EXECUTABLES)/art
79*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_DUMP_JAR := $(AHAT_TEST_DUMP_JAR)
80*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_ANDROID_DATA := $(AHAT_TEST_DUMP_BASE_ANDROID_DATA)
81*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_DALVIKVM_ARG := $(AHAT_TEST_DALVIKVM_ARG)
82*795d594fSAndroid Build Coastguard Worker$(AHAT_TEST_DUMP_BASE_HPROF): $(AHAT_TEST_DUMP_JAR) $(AHAT_TEST_DUMP_DEPENDENCIES)
83*795d594fSAndroid Build Coastguard Worker	rm -rf $(PRIVATE_AHAT_TEST_ANDROID_DATA)
84*795d594fSAndroid Build Coastguard Worker	mkdir -p $(PRIVATE_AHAT_TEST_ANDROID_DATA)
85*795d594fSAndroid Build Coastguard Worker	ANDROID_DATA=$(PRIVATE_AHAT_TEST_ANDROID_DATA) \
86*795d594fSAndroid Build Coastguard Worker	  $(PRIVATE_AHAT_TEST_ART) --no-compile -d $(PRIVATE_AHAT_TEST_DALVIKVM_ARG) \
87*795d594fSAndroid Build Coastguard Worker	  -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@ --base
88*795d594fSAndroid Build Coastguard Worker
89*795d594fSAndroid Build Coastguard Worker
90*795d594fSAndroid Build Coastguard Worker# Determine the location of the ri-test-dump.jar and ri-test-dump.hprof.
91*795d594fSAndroid Build Coastguard WorkerAHAT_RI_TEST_DUMP_JAR := $(call intermediates-dir-for,JAVA_LIBRARIES,ahat-ri-test-dump,HOST)/javalib.jar
92*795d594fSAndroid Build Coastguard WorkerAHAT_RI_TEST_DUMP_COMMON := $(call intermediates-dir-for,JAVA_LIBRARIES,ahat-ri-test-dump,HOST,COMMON)
93*795d594fSAndroid Build Coastguard WorkerAHAT_RI_TEST_DUMP_HPROF := $(AHAT_RI_TEST_DUMP_COMMON)/ri-test-dump.hprof
94*795d594fSAndroid Build Coastguard Worker
95*795d594fSAndroid Build Coastguard Worker# Run ahat-ri-test-dump.jar to generate ri-test-dump.hprof
96*795d594fSAndroid Build Coastguard Worker$(AHAT_RI_TEST_DUMP_HPROF): PRIVATE_AHAT_RI_TEST_DUMP_JAR := $(AHAT_RI_TEST_DUMP_JAR)
97*795d594fSAndroid Build Coastguard Worker$(AHAT_RI_TEST_DUMP_HPROF): $(AHAT_RI_TEST_DUMP_JAR)
98*795d594fSAndroid Build Coastguard Worker	rm -rf $@
99*795d594fSAndroid Build Coastguard Worker	java -cp $(PRIVATE_AHAT_RI_TEST_DUMP_JAR) Main $@
100*795d594fSAndroid Build Coastguard Worker
101*795d594fSAndroid Build Coastguard Worker# --- ahat-tests.jar --------------
102*795d594fSAndroid Build Coastguard Worker# To run these tests, use: atest ahat-tests --host
103*795d594fSAndroid Build Coastguard Workerinclude $(CLEAR_VARS)
104*795d594fSAndroid Build Coastguard WorkerLOCAL_SRC_FILES := $(call all-java-files-under, src/test)
105*795d594fSAndroid Build Coastguard WorkerLOCAL_JAR_MANIFEST := etc/ahat-tests.mf
106*795d594fSAndroid Build Coastguard WorkerLOCAL_JAVA_RESOURCE_FILES := \
107*795d594fSAndroid Build Coastguard Worker  $(AHAT_TEST_DUMP_HPROF) \
108*795d594fSAndroid Build Coastguard Worker  $(AHAT_TEST_DUMP_BASE_HPROF) \
109*795d594fSAndroid Build Coastguard Worker  $(AHAT_TEST_DUMP_PROGUARD_MAP) \
110*795d594fSAndroid Build Coastguard Worker  $(AHAT_RI_TEST_DUMP_HPROF) \
111*795d594fSAndroid Build Coastguard Worker  $(LOCAL_PATH)/etc/L.hprof \
112*795d594fSAndroid Build Coastguard Worker  $(LOCAL_PATH)/etc/O.hprof \
113*795d594fSAndroid Build Coastguard Worker  $(LOCAL_PATH)/etc/RI.hprof
114*795d594fSAndroid Build Coastguard WorkerLOCAL_STATIC_JAVA_LIBRARIES := ahat junit-host
115*795d594fSAndroid Build Coastguard WorkerLOCAL_IS_HOST_MODULE := true
116*795d594fSAndroid Build Coastguard WorkerLOCAL_MODULE_TAGS := tests
117*795d594fSAndroid Build Coastguard WorkerLOCAL_MODULE := ahat-tests
118*795d594fSAndroid Build Coastguard WorkerLOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
119*795d594fSAndroid Build Coastguard WorkerLOCAL_LICENSE_CONDITIONS := notice
120*795d594fSAndroid Build Coastguard WorkerLOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../NOTICE
121*795d594fSAndroid Build Coastguard WorkerLOCAL_TEST_CONFIG := ahat-tests.xml
122*795d594fSAndroid Build Coastguard WorkerLOCAL_COMPATIBILITY_SUITE := general-tests
123*795d594fSAndroid Build Coastguard Workerinclude $(BUILD_HOST_JAVA_LIBRARY)
124*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_JAR := $(LOCAL_BUILT_MODULE)
125*795d594fSAndroid Build Coastguard Worker
126*795d594fSAndroid Build Coastguard Workerendif # EMMA_INSTRUMENT
127*795d594fSAndroid Build Coastguard Workerendif # linux
128*795d594fSAndroid Build Coastguard Worker
129*795d594fSAndroid Build Coastguard Worker# Clean up local variables.
130*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_JAR :=
131*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_JAR :=
132*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_JNI :=
133*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_COMMON :=
134*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_HPROF :=
135*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_BASE_HPROF :=
136*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_PROGUARD_MAP :=
137*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_DEPENDENCIES :=
138*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_ANDROID_DATA :=
139*795d594fSAndroid Build Coastguard WorkerAHAT_TEST_DUMP_BASE_ANDROID_DATA :=
140*795d594fSAndroid Build Coastguard Worker
141*795d594fSAndroid Build Coastguard WorkerAHAT_RI_TEST_DUMP_JAR :=
142*795d594fSAndroid Build Coastguard WorkerAHAT_RI_TEST_DUMP_COMMON :=
143*795d594fSAndroid Build Coastguard WorkerAHAT_RI_TEST_DUMP_HPROF :=
144