summaryrefslogtreecommitdiffstats
path: root/build/Android.common.mk
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2014-03-25 18:09:32 -0700
committerAndreas Gampe <agampe@google.com>2014-04-01 13:58:32 -0700
commitafbaa1aab02cfe519d00336870b1bcd24b61378d (patch)
treeec33583d52a42ee49082f4bce404e8c434cfd8f5 /build/Android.common.mk
parent8ce67ac16abcd25b376be622cbd20a34aec4a59d (diff)
downloadart-afbaa1aab02cfe519d00336870b1bcd24b61378d.zip
art-afbaa1aab02cfe519d00336870b1bcd24b61378d.tar.gz
art-afbaa1aab02cfe519d00336870b1bcd24b61378d.tar.bz2
Build changes to build multilib tests
Test files will be emitted into directories for both first and second target architectures. Going with the naming scheme for binaries, single-architecture and 32b cases have the standard name, and 64b goes into a directory with "64" suffix. In multi-architecture setups, the default concrete test targets are extended with a "32" and "64" suffix, e.g., test-art-target-oat-JniTest64. The suffix-less form is linked to the primary architecture target (usually 64). That means running combined targets, e.g., test-art-target-oat, will only test the primary architecture right now. Fixed target run tests calling the right dalvikvm. Fixed library search path for tests derived from CommonRuntimeTest. Missing in this work-in-progress is correct handling of dex2oat for the secondary architecture. To make it work on 64b, comment out line 101 in build/Android.executable.mk Change-Id: I3d260994e6efe8b73b56c71994053cc9392943a9
Diffstat (limited to 'build/Android.common.mk')
-rw-r--r--build/Android.common.mk44
1 files changed, 40 insertions, 4 deletions
diff --git a/build/Android.common.mk b/build/Android.common.mk
index d80d039..b9a297b 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -127,12 +127,48 @@ endif
ART_DALVIK_CACHE_DIR := /data/dalvik-cache
# directory used for gtests on device
-ART_NATIVETEST_DIR := /data/nativetest/art
-ART_NATIVETEST_OUT := $(TARGET_OUT_DATA_NATIVE_TESTS)/art
+ART_BASE_NATIVETEST_DIR := /data/nativetest/art
+ART_BASE_NATIVETEST_OUT := $(TARGET_OUT_DATA_NATIVE_TESTS)/art
# directory used for tests on device
-ART_TEST_DIR := /data/art-test
-ART_TEST_OUT := $(TARGET_OUT_DATA)/art-test
+ART_BASE_TEST_DIR := /data/art-test
+ART_BASE_TEST_OUT := $(TARGET_OUT_DATA)/art-test
+
+# Primary vs. secondary
+2ND_TARGET_ARCH := $(TARGET_2ND_ARCH)
+ART_PHONY_TEST_TARGET_SUFFIX :=
+2ND_ART_PHONY_TEST_TARGET_SUFFIX :=
+ART_TARGET_BINARY_SUFFIX :=
+2ND_ART_TARGET_BINARY_SUFFIX :=
+ifdef TARGET_2ND_ARCH
+ art_test_primary_suffix :=
+ art_test_secondary_suffix :=
+ ifneq ($(filter %64,$(TARGET_ARCH)),)
+ art_test_primary_suffix := 64
+ ART_PHONY_TEST_TARGET_SUFFIX := 64
+ 2ND_ART_PHONY_TEST_TARGET_SUFFIX := 32
+ ART_TARGET_BINARY_SUFFIX := 64
+ else
+ # TODO: ???
+ $(error Do not know what to do with this multi-target configuration!)
+ endif
+ # Primary with primary suffix
+ ART_NATIVETEST_DIR := $(ART_BASE_NATIVETEST_DIR)$(art_test_primary_suffix)
+ ART_NATIVETEST_OUT := $(ART_BASE_NATIVETEST_OUT)$(art_test_primary_suffix)
+ ART_TEST_DIR := $(ART_BASE_TEST_DIR)$(art_test_primary_suffix)
+ ART_TEST_OUT := $(ART_BASE_TEST_OUT)$(art_test_primary_suffix)
+ # Secondary with 2ND_ prefix and secondary suffix
+ 2ND_ART_NATIVETEST_DIR := $(ART_BASE_NATIVETEST_DIR)$(art_test_secondary_suffix)
+ 2ND_ART_NATIVETEST_OUT := $(ART_BASE_NATIVETEST_OUT)$(art_test_secondary_suffix)
+ 2ND_ART_TEST_DIR := $(ART_BASE_TEST_DIR)$(art_test_secondary_suffix)
+ 2ND_ART_TEST_OUT := $(ART_BASE_TEST_OUT)$(art_test_secondary_suffix)
+else
+ ART_NATIVETEST_DIR := $(ART_BASE_NATIVETEST_DIR)
+ ART_NATIVETEST_OUT := $(ART_BASE_NATIVETEST_OUT)
+ ART_TEST_DIR := $(ART_BASE_TEST_DIR)
+ ART_TEST_OUT := $(ART_BASE_TEST_OUT)
+ # No secondary
+endif
ART_CPP_EXTENSION := .cc