diff options
author | Yohann Roussel <yroussel@google.com> | 2014-03-19 16:25:37 +0100 |
---|---|---|
committer | Yohann Roussel <yroussel@google.com> | 2014-03-20 15:13:33 +0100 |
commit | 4eceb95409e844fdc33c9c706e1dc307bfd40303 (patch) | |
tree | ee9f4f3fc79f757c79081c336bce4f1782c6ccd8 /jack/Android.mk | |
parent | 3d2402901b1a6462e2cf47a6fd09711f327961c3 (diff) | |
download | toolchain_jack-4eceb95409e844fdc33c9c706e1dc307bfd40303.tar.gz toolchain_jack-4eceb95409e844fdc33c9c706e1dc307bfd40303.tar.bz2 toolchain_jack-4eceb95409e844fdc33c9c706e1dc307bfd40303.zip |
Initial Jack import.
Change-Id: I953cf0a520195a7187d791b2885848ad0d5a9b43
Diffstat (limited to 'jack/Android.mk')
-rw-r--r-- | jack/Android.mk | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/jack/Android.mk b/jack/Android.mk new file mode 100644 index 00000000..adaab5b4 --- /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." |