summaryrefslogtreecommitdiffstats
path: root/jack/Android.mk
diff options
context:
space:
mode:
authorYohann Roussel <yroussel@google.com>2014-03-19 16:25:37 +0100
committerYohann Roussel <yroussel@google.com>2014-03-20 15:13:33 +0100
commit4eceb95409e844fdc33c9c706e1dc307bfd40303 (patch)
treeee9f4f3fc79f757c79081c336bce4f1782c6ccd8 /jack/Android.mk
parent3d2402901b1a6462e2cf47a6fd09711f327961c3 (diff)
downloadtoolchain_jack-4eceb95409e844fdc33c9c706e1dc307bfd40303.zip
toolchain_jack-4eceb95409e844fdc33c9c706e1dc307bfd40303.tar.gz
toolchain_jack-4eceb95409e844fdc33c9c706e1dc307bfd40303.tar.bz2
Initial Jack import.
Change-Id: I953cf0a520195a7187d791b2885848ad0d5a9b43
Diffstat (limited to 'jack/Android.mk')
-rw-r--r--jack/Android.mk177
1 files changed, 177 insertions, 0 deletions
diff --git a/jack/Android.mk b/jack/Android.mk
new file mode 100644
index 0000000..adaab5b
--- /dev/null
+++ b/jack/Android.mk
@@ -0,0 +1,177 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH:= $(call my-dir)
+
+#
+# Build Jack
+#
+
+include $(CLEAR_VARS)
+
+JACK_BASE_VERSION_NAME := 0.1
+JACK_BASE_VERSION_CODE := 001
+
+LOCAL_MODULE := jack
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := EXECUTABLES
+
+antlr_intermediates := \
+ $(call local-intermediates-dir,COMMON)/grammar/com/android/jack/shrob/proguard
+
+GEN := $(addprefix $(antlr_intermediates)/, \
+ ProguardLexer.java \
+ ProguardParser.java \
+)
+
+ANTLR_JACK_JAR = $(call java-lib-deps,antlr-jack,true)
+
+$(GEN): $(ANTLR_JACK_JAR)
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = java -jar $(ANTLR_JACK_JAR) -fo $(dir $@) $<
+$(GEN): $(LOCAL_PATH)/src/com/android/jack/shrob/proguard/Proguard.g
+ $(transform-generated-source)
+
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+LOCAL_SRC_FILES := $(filter-out %/ProguardLexer.java %/ProguardParser.java, \
+ $(call all-java-files-under, src))
+
+LOCAL_JAVA_RESOURCE_DIRS := rsc
+LOCAL_JAR_MANIFEST := etc/manifest.txt
+LOCAL_JAVACFLAGS := -processor com.android.sched.build.SchedAnnotationProcessor
+
+JACK_STATIC_JAVA_LIBRARIES := \
+ ecj-jack \
+ guava-jack \
+ jsr305lib-jack \
+ dx-jack \
+ schedlib \
+ freemarker-jack \
+ watchmaker-jack \
+ maths-jack \
+ args4j-jack \
+ antlr-runtime-jack
+
+LOCAL_JAVA_LIBRARIES := \
+ sched-build \
+ allocation-jack \
+ $(JACK_STATIC_JAVA_LIBRARIES)
+
+ifneq "" "$(filter eng.%,$(BUILD_NUMBER))"
+ JACK_VERSION_NAME_TAG := eng.$(USER)
+else
+ JACK_VERSION_NAME_TAG := $(BUILD_NUMBER)
+endif
+
+JACK_VERSION_NAME := "$(JACK_BASE_VERSION_NAME).$(JACK_BASE_VERSION_CODE).$(JACK_VERSION_NAME_TAG)"
+
+intermediates := $(call local-intermediates-dir,COMMON)
+$(intermediates)/rsc/jack.properties:
+ $(hide) mkdir -p $(dir $@)
+ $(hide) echo "jack.version=$(JACK_VERSION_NAME)" > $@
+
+LOCAL_JAVA_RESOURCE_FILES := $(intermediates)/rsc/jack.properties
+
+include $(BUILD_HOST_JAVA_LIBRARY)
+
+# Merge with sched lib support
+$(LOCAL_BUILT_MODULE): PRIVATE_JACK := $(full_classes_compiled_jar)
+$(LOCAL_BUILT_MODULE): $(PRIVATE_JACK) $(call java-lib-deps,$(JACK_STATIC_JAVA_LIBRARIES),true) $(call java-lib-deps,sched-build,true)
+ java -jar $(call java-lib-deps,sched-build,true) $(PRIVATE_JACK) $(call java-lib-deps,$(JACK_STATIC_JAVA_LIBRARIES),true) $@
+
+# Include this library in the build server's output directory
+$(call dist-for-goals, dist_files, $(LOCAL_BUILT_MODULE):jack.jar)
+
+#
+# Build Jack tests
+#
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, tests)
+
+LOCAL_MODULE := libjackunittests
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_JAVACFLAGS := -processor com.android.sched.build.SchedAnnotationProcessor
+
+TEST_STATIC_JAVA_LIBRARIES := \
+ jack \
+ junit4-jack \
+ dexlib-jack \
+ dx \
+ dexcomparator
+
+LOCAL_JAVA_LIBRARIES := \
+ sched-build \
+ $(TEST_STATIC_JAVA_LIBRARIES)
+
+LOCAL_REQUIRED_MODULES:= \
+ core \
+ bouncycastle \
+ ext \
+ core-junit \
+ framework \
+ telephony-common \
+ android.policy \
+ hamcrest-core-jack
+
+include $(BUILD_HOST_JAVA_LIBRARY)
+
+# Merge with sched lib support
+$(LOCAL_BUILT_MODULE): PRIVATE_JACK := $(full_classes_compiled_jar)
+$(LOCAL_BUILT_MODULE): $(PRIVATE_JACK) $(call java-lib-deps,$(TEST_STATIC_JAVA_LIBRARIES),true) $(call java-lib-deps,sched-build,true)
+ java -jar $(call java-lib-deps,sched-build,true) $(PRIVATE_JACK) $(call java-lib-deps,$(TEST_STATIC_JAVA_LIBRARIES),true) $@
+
+#
+# Test targets
+#
+
+LIB_JACK_UNIT_TESTS := $(LOCAL_BUILT_MODULE)
+
+local_unit_libs := $(call java-lib-files,core-hostdex junit4-hostdex-jack,true)
+.PHONY: test-jack-unit
+test-jack-unit: PRIVATE_RUN_TESTS := ./run-jack-unit-tests
+test-jack-unit: PRIVATE_PATH := $(LOCAL_PATH)
+test-jack-unit: $(LIB_JACK_UNIT_TESTS) $(LOCAL_PATH)/run-jack-unit-tests $(local_unit_libs) $(JACK_JAR)
+ $(hide) cd $(PRIVATE_PATH) && $(PRIVATE_RUN_TESTS) com.android.jack.PreSubmitTests
+
+local_long_libs := $(call java-lib-files,core bouncycastle core-junit ext framework guava services \
+ libarity google-play-services-first-party telephony-common,)
+.PHONY: test-jack-long
+test-jack-long: PRIVATE_RUN_TESTS := ./run-jack-unit-tests
+test-jack-long: PRIVATE_PATH := $(LOCAL_PATH)
+test-jack-long: $(LIB_JACK_UNIT_TESTS) $(LOCAL_PATH)/run-jack-unit-tests $(local_long_libs) $(JACK_JAR)
+ $(hide) cd $(PRIVATE_PATH) && $(PRIVATE_RUN_TESTS) com.android.jack.LongLastingTests
+
+.PHONY: test-jack-unit-all
+test-jack-unit-all: PRIVATE_RUN_TESTS := ./run-jack-unit-tests
+test-jack-unit-all: PRIVATE_PATH := $(LOCAL_PATH)
+test-jack-unit-all: $(LIB_JACK_UNIT_TESTS) $(LOCAL_PATH)/run-jack-unit-tests $(local_unit_libs) $(local_long_libs) $(JACK_JAR)
+ $(hide) cd $(PRIVATE_PATH) && $(PRIVATE_RUN_TESTS) com.android.jack.AllTests
+
+.PHONY: clean-jack-files
+clean-jack-files:
+ $(hide) find $(OUT_DIR) -name "*.jack" | xargs rm -f
+ $(hide) for i in `find $(OUT_DIR) -name "*.jar"` ; do ((unzip -l $$i 2> /dev/null | \
+ grep -q "\.jack$$" && rm -f $$i) || continue ) ; done
+ @echo "All jack files and archives containing jack files have been removed."
+
+.PHONY: clean-dex-files
+clean-dex-files:
+ $(hide) find $(OUT_DIR) -name "*.dex" | xargs rm -f
+ $(hide) for i in `find $(OUT_DIR) -name "*.jar" -o -name "*.apk"` ; do ((unzip -l $$i 2> /dev/null | \
+ grep -q "\.dex$$" && rm -f $$i) || continue ) ; done
+ @echo "All dex files and archives containing dex files have been removed."