blob: 6e82b26e36d6b0ca0f7c334a12d5b5f13d8eeb78 [file] [log] [blame]
Carl Shapiro008e4122011-06-23 17:27:46 -07001#
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
Brian Carlstrom8ecd08c2011-07-27 17:50:51 -070017ART_HOST_TEST_EXECUTABLES :=
18ART_TARGET_TEST_EXECUTABLES :=
19
Brian Carlstrom07d579f2011-07-27 13:31:51 -070020# $(1): target or host
21# $(2): file name with .cc or .cc.arm extension
22define build-art-test
23 include $(CLEAR_VARS)
24 ifeq ($(1),target)
25 include external/stlport/libstlport.mk
26 endif
27 LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION)
28 LOCAL_MODULE := $(notdir $(basename $(2:%.arm=%)))
29 LOCAL_MODULE_TAGS := tests
30 LOCAL_SRC_FILES := $(2)
Brian Carlstromb0460ea2011-07-29 10:08:05 -070031 LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
Brian Carlstrom8ecd08c2011-07-27 17:50:51 -070032 LOCAL_SHARED_LIBRARIES := libarttest libartd
Brian Carlstrom07d579f2011-07-27 13:31:51 -070033 ifeq ($(1),target)
Brian Carlstrom86927212011-09-15 11:31:11 -070034 LOCAL_CFLAGS := $(ART_TARGET_CFLAGS) $(ART_TARGET_DEBUG_CFLAGS)
Elliott Hughes18c07532011-08-18 15:50:51 -070035 LOCAL_SHARED_LIBRARIES += libdl libicuuc libicui18n libnativehelper libstlport libz
Brian Carlstrom07d579f2011-07-27 13:31:51 -070036 LOCAL_STATIC_LIBRARIES := libgtest libgtest_main
37 else
Brian Carlstrom86927212011-09-15 11:31:11 -070038 LOCAL_CFLAGS := $(ART_HOST_CFLAGS) $(ART_HOST_DEBUG_CFLAGS)
Elliott Hughes18c07532011-08-18 15:50:51 -070039 LOCAL_SHARED_LIBRARIES += libicuuc-host libicui18n-host libnativehelper libz-host
Brian Carlstrom07d579f2011-07-27 13:31:51 -070040 LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_host libgtest_main_host
41 endif
42 ifeq ($(1),target)
43 include $(BUILD_EXECUTABLE)
44 else
45 include $(BUILD_HOST_EXECUTABLE)
46 endif
Brian Carlstrom8ecd08c2011-07-27 17:50:51 -070047 ifeq ($(1),target)
48 ART_TARGET_TEST_EXECUTABLES += $(TARGET_OUT_EXECUTABLES)/$$(LOCAL_MODULE)
49 else
50 ART_HOST_TEST_EXECUTABLES += $(HOST_OUT_EXECUTABLES)/$$(LOCAL_MODULE)
51 endif
Brian Carlstrom07d579f2011-07-27 13:31:51 -070052endef
Carl Shapiro008e4122011-06-23 17:27:46 -070053
Brian Carlstrom4b620ff2011-09-11 01:11:01 -070054ifeq ($(ART_BUILD_TARGET),true)
55 $(foreach file,$(TEST_TARGET_SRC_FILES), $(eval $(call build-art-test,target,$(file))))
56endif
57ifeq ($(ART_BUILD_HOST),true)
Brian Carlstrom07d579f2011-07-27 13:31:51 -070058 $(foreach file,$(TEST_HOST_SRC_FILES), $(eval $(call build-art-test,host,$(file))))
59endif
Brian Carlstrom9f30b382011-08-28 22:41:38 -070060
61ART_TEST_DEX_FILES :=
62
63# $(1): directory
64define build-art-test-dex
65 include $(CLEAR_VARS)
66 LOCAL_MODULE := art-test-dex-$(1)
67 LOCAL_MODULE_TAGS := optional
68 LOCAL_SRC_FILES := $(call all-java-files-under, test/$(1))
Brian Carlstrom881dd562011-08-30 09:09:07 -070069 LOCAL_JAVA_LIBRARIES := core
70 LOCAL_NO_STANDARD_LIBRARIES := true
Brian Carlstrom9f30b382011-08-28 22:41:38 -070071 include $(BUILD_JAVA_LIBRARY)
72 ART_TEST_DEX_FILES += $(TARGET_OUT_JAVA_LIBRARIES)/$$(LOCAL_MODULE).jar
73endef
74$(foreach dir,$(TEST_DEX_DIRECTORIES), $(eval $(call build-art-test-dex,$(dir))))
Brian Carlstrom16192862011-09-12 17:50:06 -070075
76ART_TEST_OAT_FILES :=
77
78# $(1): directory
79define build-art-test-oat
80# TODO: change DEX2OATD to order-only prerequisite when output is stable
81$(TARGET_OUT_JAVA_LIBRARIES)/art-test-dex-$(1).oat: $(TARGET_OUT_JAVA_LIBRARIES)/art-test-dex-$(1).jar $(TARGET_BOOT_OAT) $(DEX2OAT)
82 @echo "target dex2oat: $$@ ($$<)"
83 $(hide) $(DEX2OAT) $(addprefix --boot-dex-file=,$(TARGET_BOOT_DEX)) --boot=$(TARGET_BOOT_OAT) $(addprefix --dex-file=,$$<) --image=$$@ --strip-prefix=$(PRODUCT_OUT)
84
85ART_TEST_OAT_FILES += $(TARGET_OUT_JAVA_LIBRARIES)/art-test-dex-$(1).oat
86endef
87$(foreach dir,$(TEST_DEX_DIRECTORIES), $(eval $(call build-art-test-oat,$(dir))))