Support to build host dex.

Change-Id: I55df5e4051dbeb89a70d6d7b89fb6110f133d9d7
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index c7343e5..c046c69 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -96,6 +96,7 @@
 LOCAL_PROGUARD_FLAGS:=
 LOCAL_EMMA_COVERAGE_FILTER:=
 LOCAL_MANIFEST_FILE:=
+LOCAL_BUILD_HOST_DEX:=
 
 # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to
 # iterate over thousands of entries every time.
diff --git a/core/host_java_library.mk b/core/host_java_library.mk
index 1977115..7a5ee37 100644
--- a/core/host_java_library.mk
+++ b/core/host_java_library.mk
@@ -25,6 +25,30 @@
 
 include $(BUILD_SYSTEM)/base_rules.mk
 
+ifeq ($(LOCAL_BUILD_HOST_DEX),true)
+full_classes_jar := $(intermediates.COMMON)/classes.jar
+built_dex := $(intermediates.COMMON)/classes.dex
+
+$(full_classes_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
+$(full_classes_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps)
+	$(transform-host-java-to-package)
+
+$(built_dex): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON)
+$(built_dex): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS)
+$(built_dex): $(full_classes_jar) $(DX)
+	$(transform-classes.jar-to-dex)
+
+$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex)
+$(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources) | $(AAPT)
+	@echo "Host Jar: $(PRIVATE_MODULE) ($@)"
+	$(create-empty-package)
+	$(add-dex-to-package)
+ifneq ($(extra_jar_args),)
+	$(add-java-resources-to-package)
+endif
+
+else
 $(LOCAL_BUILT_MODULE): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
 $(LOCAL_BUILT_MODULE): $(java_sources) $(java_resource_sources) $(full_java_lib_deps)
 	$(transform-host-java-to-package)
+endif  # LOCAL_BUILD_HOST_DEX