1563e9846711aa1830bc7a34499204091032349fbMathieu Chartier#
2563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# Copyright (C) 2015 The Android Open Source Project
3563e9846711aa1830bc7a34499204091032349fbMathieu Chartier#
4563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# Licensed under the Apache License, Version 2.0 (the "License");
5563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# you may not use this file except in compliance with the License.
6563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# You may obtain a copy of the License at
7563e9846711aa1830bc7a34499204091032349fbMathieu Chartier#
8563e9846711aa1830bc7a34499204091032349fbMathieu Chartier#      http://www.apache.org/licenses/LICENSE-2.0
9563e9846711aa1830bc7a34499204091032349fbMathieu Chartier#
10563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# Unless required by applicable law or agreed to in writing, software
11563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# distributed under the License is distributed on an "AS IS" BASIS,
12563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# See the License for the specific language governing permissions and
14563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# limitations under the License.
15563e9846711aa1830bc7a34499204091032349fbMathieu Chartier#
16563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
17563e9846711aa1830bc7a34499204091032349fbMathieu ChartierLOCAL_PATH := $(call my-dir)
18563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
19563e9846711aa1830bc7a34499204091032349fbMathieu Chartierinclude art/build/Android.common_build.mk
20563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
21563e9846711aa1830bc7a34499204091032349fbMathieu ChartierLIBARTBENCHMARK_COMMON_SRC_FILES := \
2214f8b13d2593770b7f5387a33f6a8400c20aaa8eMathieu Chartier  jobject-benchmark/jobject_benchmark.cc \
23563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  jni-perf/perf_jni.cc \
24563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  scoped-primitive-array/scoped_primitive_array.cc
25563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
26563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# $(1): target or host
27563e9846711aa1830bc7a34499204091032349fbMathieu Chartierdefine build-libartbenchmark
28563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  ifneq ($(1),target)
29563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    ifneq ($(1),host)
30563e9846711aa1830bc7a34499204091032349fbMathieu Chartier      $$(error expected target or host for argument 1, received $(1))
31563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    endif
32563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  endif
33563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
34563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  art_target_or_host := $(1)
35563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
36563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  include $(CLEAR_VARS)
37563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION)
38563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  LOCAL_MODULE := libartbenchmark
39563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  ifeq ($$(art_target_or_host),target)
40563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_MODULE_TAGS := tests
41563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  endif
42563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  LOCAL_SRC_FILES := $(LIBARTBENCHMARK_COMMON_SRC_FILES)
43563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  LOCAL_SHARED_LIBRARIES += libart libbacktrace libnativehelper
44563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  LOCAL_C_INCLUDES += $(ART_C_INCLUDES) art/runtime
45563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk
46563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
47563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  ifeq ($$(art_target_or_host),target)
48563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    $(call set-target-local-clang-vars)
49563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    $(call set-target-local-cflags-vars,debug)
50563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_SHARED_LIBRARIES += libdl
51563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_MULTILIB := both
52563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    # LOCAL_MODULE_PATH_32 := $(ART_TARGET_OUT)/$(ART_TARGET_ARCH_32)
53563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    # LOCAL_MODULE_PATH_64 := $(ART_TARGET_OUT)/$(ART_TARGET_ARCH_64)
54563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_MODULE_TARGET_ARCH := $(ART_SUPPORTED_ARCH)
55563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    include $(BUILD_SHARED_LIBRARY)
56563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  else # host
57563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_CLANG := $(ART_HOST_CLANG)
58563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_CFLAGS := $(ART_HOST_CFLAGS) $(ART_HOST_DEBUG_CFLAGS)
59563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_ASFLAGS := $(ART_HOST_ASFLAGS)
60563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_LDLIBS := $(ART_HOST_LDLIBS) -ldl -lpthread
61563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_IS_HOST_MODULE := true
62563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    LOCAL_MULTILIB := both
63563e9846711aa1830bc7a34499204091032349fbMathieu Chartier    include $(BUILD_HOST_SHARED_LIBRARY)
64563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  endif
65563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
66563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  # Clear locally used variables.
67563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  art_target_or_host :=
68563e9846711aa1830bc7a34499204091032349fbMathieu Chartierendef
69563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
70563e9846711aa1830bc7a34499204091032349fbMathieu Chartierifeq ($(ART_BUILD_TARGET),true)
71563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  $(eval $(call build-libartbenchmark,target))
72563e9846711aa1830bc7a34499204091032349fbMathieu Chartierendif
73563e9846711aa1830bc7a34499204091032349fbMathieu Chartierifeq ($(ART_BUILD_HOST),true)
74563e9846711aa1830bc7a34499204091032349fbMathieu Chartier  $(eval $(call build-libartbenchmark,host))
75563e9846711aa1830bc7a34499204091032349fbMathieu Chartierendif
76563e9846711aa1830bc7a34499204091032349fbMathieu Chartier
77563e9846711aa1830bc7a34499204091032349fbMathieu Chartier# Clear locally used variables.
78563e9846711aa1830bc7a34499204091032349fbMathieu ChartierLOCAL_PATH :=
79563e9846711aa1830bc7a34499204091032349fbMathieu ChartierLIBARTBENCHMARK_COMMON_SRC_FILES :=
80