1#
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
17ifndef ANDROID_COMMON_MK
18ANDROID_COMMON_MK = true
19
20ART_TARGET_SUPPORTED_ARCH := arm arm64 mips x86 x86_64
21ART_HOST_SUPPORTED_ARCH := x86 x86_64
22
23ifeq (,$(filter $(TARGET_ARCH),$(ART_TARGET_SUPPORTED_ARCH)))
24$(warning unsupported TARGET_ARCH=$(TARGET_ARCH))
25endif
26ifeq (,$(filter $(HOST_ARCH),$(ART_HOST_SUPPORTED_ARCH)))
27$(warning unsupported HOST_ARCH=$(HOST_ARCH))
28endif
29
30# Primary vs. secondary
312ND_TARGET_ARCH := $(TARGET_2ND_ARCH)
32TARGET_INSTRUCTION_SET_FEATURES := $(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
332ND_TARGET_INSTRUCTION_SET_FEATURES := $($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
34ifdef TARGET_2ND_ARCH
35  ifneq ($(filter %64,$(TARGET_ARCH)),)
36    ART_PHONY_TEST_TARGET_SUFFIX := 64
37    2ND_ART_PHONY_TEST_TARGET_SUFFIX := 32
38    ART_TARGET_ARCH_32 := $(TARGET_2ND_ARCH)
39    ART_TARGET_ARCH_64 := $(TARGET_ARCH)
40  else
41    # TODO: ???
42    $(error Do not know what to do with this multi-target configuration!)
43  endif
44else
45  ART_PHONY_TEST_TARGET_SUFFIX := 32
46  2ND_ART_PHONY_TEST_TARGET_SUFFIX :=
47  ART_TARGET_ARCH_32 := $(TARGET_ARCH)
48  ART_TARGET_ARCH_64 :=
49endif
50
51ART_HOST_SHLIB_EXTENSION := $(HOST_SHLIB_SUFFIX)
52ART_HOST_SHLIB_EXTENSION ?= .so
53ifeq ($(HOST_PREFER_32_BIT),true)
54  ART_PHONY_TEST_HOST_SUFFIX := 32
55  2ND_ART_PHONY_TEST_HOST_SUFFIX :=
56  ART_HOST_ARCH_32 := x86
57  ART_HOST_ARCH_64 :=
58  ART_HOST_ARCH := x86
59  2ND_ART_HOST_ARCH :=
60  2ND_HOST_ARCH :=
61  ART_HOST_LIBRARY_PATH := $(HOST_LIBRARY_PATH)
62  ART_HOST_OUT_SHARED_LIBRARIES := $(2ND_HOST_OUT_SHARED_LIBRARIES)
63  2ND_ART_HOST_OUT_SHARED_LIBRARIES :=
64else
65  ART_PHONY_TEST_HOST_SUFFIX := 64
66  2ND_ART_PHONY_TEST_HOST_SUFFIX := 32
67  ART_HOST_ARCH_32 := x86
68  ART_HOST_ARCH_64 := x86_64
69  ART_HOST_ARCH := x86_64
70  2ND_ART_HOST_ARCH := x86
71  2ND_HOST_ARCH := x86
72  ART_HOST_LIBRARY_PATH := $(HOST_LIBRARY_PATH)
73  ART_HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT_SHARED_LIBRARIES)
74  2ND_ART_HOST_OUT_SHARED_LIBRARIES := $(2ND_HOST_OUT_SHARED_LIBRARIES)
75endif
76
77endif # ANDROID_COMMON_MK
78