2 # Copyright (C) 2011 The Android Open Source Project
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
8 # http://www.apache.org/licenses/LICENSE-2.0
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.
17 ifndef ART_ANDROID_COMMON_MK
18 ART_ANDROID_COMMON_MK = true
20 ART_TARGET_SUPPORTED_ARCH := arm arm64 mips mips64 x86 x86_64
21 ART_HOST_SUPPORTED_ARCH := x86 x86_64
23 ifneq ($(HOST_OS),darwin)
24 ART_HOST_SUPPORTED_ARCH := x86 x86_64
26 # Mac OS doesn't support low-4GB allocation in a 64-bit process. So we won't be able to create
28 ART_HOST_SUPPORTED_ARCH := x86
33 ifeq ($(ART_COVERAGE),true)
34 # https://gcc.gnu.org/onlinedocs/gcc/Cross-profiling.html
35 GCOV_PREFIX := /data/local/tmp/gcov
36 # GCOV_PREFIX_STRIP is an integer that defines how many levels should be
37 # stripped off the beginning of the path. We want the paths in $GCOV_PREFIX to
38 # be relative to $ANDROID_BUILD_TOP so we can just adb pull from the top and not
39 # have to worry about placing things ourselves.
40 GCOV_PREFIX_STRIP := $(shell echo $(ANDROID_BUILD_TOP) | grep -o / | wc -l)
41 GCOV_ENV := GCOV_PREFIX=$(GCOV_PREFIX) GCOV_PREFIX_STRIP=$(GCOV_PREFIX_STRIP)
46 ifeq (,$(filter $(TARGET_ARCH),$(ART_TARGET_SUPPORTED_ARCH)))
47 $(warning unsupported TARGET_ARCH=$(TARGET_ARCH))
49 ifeq (,$(filter $(HOST_ARCH),$(ART_HOST_SUPPORTED_ARCH)))
50 $(warning unsupported HOST_ARCH=$(HOST_ARCH))
53 # Primary vs. secondary
54 2ND_TARGET_ARCH := $(TARGET_2ND_ARCH)
55 TARGET_INSTRUCTION_SET_FEATURES := $(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
56 2ND_TARGET_INSTRUCTION_SET_FEATURES := $($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
58 ifneq ($(filter %64,$(TARGET_ARCH)),)
59 ART_PHONY_TEST_TARGET_SUFFIX := 64
60 2ND_ART_PHONY_TEST_TARGET_SUFFIX := 32
63 $(warning Do not know what to do with this multi-target configuration!)
64 ART_PHONY_TEST_TARGET_SUFFIX := 32
65 2ND_ART_PHONY_TEST_TARGET_SUFFIX :=
68 ifneq ($(filter %64,$(TARGET_ARCH)),)
69 ART_PHONY_TEST_TARGET_SUFFIX := 64
70 2ND_ART_PHONY_TEST_TARGET_SUFFIX :=
72 ART_PHONY_TEST_TARGET_SUFFIX := 32
73 2ND_ART_PHONY_TEST_TARGET_SUFFIX :=
77 ART_HOST_SHLIB_EXTENSION := $(HOST_SHLIB_SUFFIX)
78 ART_HOST_SHLIB_EXTENSION ?= .so
79 ifeq ($(HOST_PREFER_32_BIT),true)
80 ART_PHONY_TEST_HOST_SUFFIX := 32
81 2ND_ART_PHONY_TEST_HOST_SUFFIX :=
85 ART_HOST_OUT_SHARED_LIBRARIES := $(2ND_HOST_OUT_SHARED_LIBRARIES)
86 2ND_ART_HOST_OUT_SHARED_LIBRARIES :=
88 ART_PHONY_TEST_HOST_SUFFIX := 64
89 2ND_ART_PHONY_TEST_HOST_SUFFIX := 32
90 ART_HOST_ARCH := x86_64
91 2ND_ART_HOST_ARCH := x86
93 ART_HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT_SHARED_LIBRARIES)
94 2ND_ART_HOST_OUT_SHARED_LIBRARIES := $(2ND_HOST_OUT_SHARED_LIBRARIES)
97 endif # ART_ANDROID_COMMON_MK