107d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom#
207d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# Copyright (C) 2011 The Android Open Source Project
307d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom#
407d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# Licensed under the Apache License, Version 2.0 (the "License");
507d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# you may not use this file except in compliance with the License.
607d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# You may obtain a copy of the License at
707d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom#
807d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom#      http://www.apache.org/licenses/LICENSE-2.0
907d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom#
1007d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# Unless required by applicable law or agreed to in writing, software
1107d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# distributed under the License is distributed on an "AS IS" BASIS,
1207d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1307d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# See the License for the specific language governing permissions and
1407d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# limitations under the License.
1507d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom#
1607d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom
17afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersLOCAL_PATH := $(call my-dir)
18afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
19afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersinclude art/build/Android.common_build.mk
20afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
2151c2467e8771b56e25ae4f17f66522f979f57a7eBrian CarlstromLIBARTTEST_COMMON_SRC_FILES := \
221c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampe  004-JniTest/jni_test.cc \
231c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampe  004-SignalTest/signaltest.cc \
241c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampe  004-ReferenceMap/stack_walk_refmap_jni.cc \
251c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampe  004-StackWalk/stack_walk_jni.cc \
269c290012b7f505ae1943ab87236f775b97a46e2dNicolas Geoffray  004-UnsafeTest/unsafe_test.cc \
270a112bbbcd761c749c346bfec0ec39c1ef37a590Alex Light  116-nodex2oat/nodex2oat.cc \
28507e6180ad271eb719c67ce7394852c731d975a5Alex Light  117-nopatchoat/nopatchoat.cc \
29507e6180ad271eb719c67ce7394852c731d975a5Alex Light  118-noimage-dex2oat/noimage-dex2oat.cc
3051c2467e8771b56e25ae4f17f66522f979f57a7eBrian Carlstrom
31afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TARGET_LIBARTTEST_$(ART_PHONY_TEST_TARGET_SUFFIX) += $(ART_TARGET_TEST_OUT)/$(TARGET_ARCH)/libarttest.so
320e12bdc49744eb6d5c29b9611a8dbe10bac4cd53Brian Carlstromifdef TARGET_2ND_ARCH
33afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  ART_TARGET_LIBARTTEST_$(2ND_ART_PHONY_TEST_TARGET_SUFFIX) += $(ART_TARGET_TEST_OUT)/$(TARGET_2ND_ARCH)/libarttest.so
340e12bdc49744eb6d5c29b9611a8dbe10bac4cd53Brian Carlstromendif
350e12bdc49744eb6d5c29b9611a8dbe10bac4cd53Brian Carlstrom
3607d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom# $(1): target or host
3707d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstromdefine build-libarttest
380796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom  ifneq ($(1),target)
390796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom    ifneq ($(1),host)
400796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom      $$(error expected target or host for argument 1, received $(1))
410796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom    endif
420796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom  endif
430796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom
440796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom  art_target_or_host := $(1)
450796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom
4607d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom  include $(CLEAR_VARS)
4707d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom  LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION)
4807d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom  LOCAL_MODULE := libarttest
49871599a0289b6b81f83caafae7ba755718186205Brian Carlstrom  ifeq ($$(art_target_or_host),target)
50871599a0289b6b81f83caafae7ba755718186205Brian Carlstrom    LOCAL_MODULE_TAGS := tests
51871599a0289b6b81f83caafae7ba755718186205Brian Carlstrom  endif
5207d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom  LOCAL_SRC_FILES := $(LIBARTTEST_COMMON_SRC_FILES)
53025218c7e4330a4942b14f9a8f1f68bd3390261cElliott Hughes  LOCAL_SHARED_LIBRARIES += libartd
547940e44f4517de5e2634a7e07d58d0fb26160513Brian Carlstrom  LOCAL_C_INCLUDES += $(ART_C_INCLUDES) art/runtime
55afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk
56afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.libarttest.mk
572a0e954ecf7c60e6ec62d64b9382cc4ee447e224Dan Albert  include external/libcxx/libcxx.mk
580796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom  ifeq ($$(art_target_or_host),target)
59afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    $(call set-target-local-clang-vars)
60afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    $(call set-target-local-cflags-vars,debug)
61b3733086ab415088b97fac20b3eea24433a7d2c5Hiroshi Yamauchi    LOCAL_SHARED_LIBRARIES += libdl libcutils
629407c60800c95902fba0b3c3265520d47c1e7052Shih-wei Liao    LOCAL_STATIC_LIBRARIES := libgtest
63afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe    LOCAL_MULTILIB := both
64afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    LOCAL_MODULE_PATH_32 := $(ART_TARGET_TEST_OUT)/$(ART_TARGET_ARCH_32)
65afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    LOCAL_MODULE_PATH_64 := $(ART_TARGET_TEST_OUT)/$(ART_TARGET_ARCH_64)
66dc781a13ddb4dabf646bb45d0c53b65cab948e5bColin Cross    LOCAL_MODULE_TARGET_ARCH := $(ART_SUPPORTED_ARCH)
670796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom    include $(BUILD_SHARED_LIBRARY)
680796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom  else # host
69cd5d0422ac07b03220970a3606f8b402a3636528Ian Rogers    LOCAL_CLANG := $(ART_HOST_CLANG)
708692721dd8a3679ca874c3d1be0cecb62ff148f6Brian Carlstrom    LOCAL_CFLAGS := $(ART_HOST_CFLAGS) $(ART_HOST_DEBUG_CFLAGS)
71b3733086ab415088b97fac20b3eea24433a7d2c5Hiroshi Yamauchi    LOCAL_STATIC_LIBRARIES := libcutils
722a0e954ecf7c60e6ec62d64b9382cc4ee447e224Dan Albert    LOCAL_LDLIBS += -ldl -lpthread
73ad6c9c3dbf7541340f22ccbb333f08556ad7e000Elliott Hughes    ifeq ($(HOST_OS),linux)
74ad6c9c3dbf7541340f22ccbb333f08556ad7e000Elliott Hughes      LOCAL_LDLIBS += -lrt
75ad6c9c3dbf7541340f22ccbb333f08556ad7e000Elliott Hughes    endif
76bd5ea6a2f7c61c4cd7b66fead1bedd96e938369dIan Rogers    LOCAL_IS_HOST_MODULE := true
77afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    LOCAL_MULTILIB := both
7807d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom    include $(BUILD_HOST_SHARED_LIBRARY)
7907d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom  endif
80afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
81afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  # Clear locally used variables.
82afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  art_target_or_host :=
8307d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstromendef
8407d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstrom
854b620ffb1b4d0c96a94bb3afe314f35d53990ec6Brian Carlstromifeq ($(ART_BUILD_TARGET),true)
864b620ffb1b4d0c96a94bb3afe314f35d53990ec6Brian Carlstrom  $(eval $(call build-libarttest,target))
874b620ffb1b4d0c96a94bb3afe314f35d53990ec6Brian Carlstromendif
88c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogersifeq ($(ART_BUILD_HOST),true)
89c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogers  $(eval $(call build-libarttest,host))
9007d579faa0abc835e8db970ff48b6f79cdc67f8fBrian Carlstromendif
91afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
92afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Clear locally used variables.
93afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersLOCAL_PATH :=
94afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersLIBARTTEST_COMMON_SRC_FILES :=
95