diff options
Diffstat (limited to 'core/java.mk')
-rw-r--r-- | core/java.mk | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/core/java.mk b/core/java.mk index 6b8d04d..0765363 100644 --- a/core/java.mk +++ b/core/java.mk @@ -32,6 +32,16 @@ else LOCAL_JAVA_LIBRARIES := core core-junit ext framework $(LOCAL_JAVA_LIBRARIES) endif endif + +proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES)) +ifneq ($(proto_sources),) +ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro) + LOCAL_STATIC_JAVA_LIBRARIES += libprotobuf-java-2.3.0-micro +else + LOCAL_STATIC_JAVA_LIBRARIES += libprotobuf-java-2.3.0-lite +endif +endif + LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES)) LOCAL_BUILT_MODULE_STEM := $(strip $(LOCAL_BUILT_MODULE_STEM)) @@ -113,6 +123,40 @@ LOCAL_INTERMEDIATE_TARGETS += \ LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src +############################################################### +## .rs files: RenderScript sources to .java files and .bc files +############################################################### +renderscript_sources := $(filter %.rs,$(LOCAL_SRC_FILES)) +# Because names of the java files from RenderScript are unknown until the +# .rs file(s) are compiled, we have to depend on a timestamp file. +RenderScript_file_stamp := +ifneq ($(renderscript_sources),) +renderscript_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(renderscript_sources)) +RenderScript_file_stamp := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/RenderScript.stamp +renderscript_intermediate := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/renderscript + +# prepend the RenderScript system include path +LOCAL_RENDERSCRIPT_INCLUDES := $(TOPDIR)frameworks/base/libs/rs/scriptc \ + $(LOCAL_RENDERSCRIPT_INCLUDES) + +$(RenderScript_file_stamp): PRIVATE_RS_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES) +$(RenderScript_file_stamp): PRIVATE_RS_SOURCE_FILES := $(renderscript_sources_fullpath) +# By putting the generated java files into $(LOCAL_INTERMEDIATE_SOURCE_DIR), they will be +# automatically found by the java compiling function transform-java-to-classes.jar. +$(RenderScript_file_stamp): PRIVATE_RS_OUTPUT_DIR := $(renderscript_intermediate) +$(RenderScript_file_stamp): $(renderscript_sources_fullpath) $(LLVM_RS_CC) $(LLVM_RS_LINK) + $(transform-renderscripts-to-java-and-bc) + +# include the dependency files (.d) generated by llvm-rs-cc. +renderscript_generated_dep_files := $(addprefix $(renderscript_intermediate)/, \ + $(patsubst %.rs,%.d, $(notdir $(renderscript_sources)))) +-include $(renderscript_generated_dep_files) + +LOCAL_INTERMEDIATE_TARGETS += $(RenderScript_file_stamp) +# Make sure the generated resource will be added to the apk. +LOCAL_RESOURCE_DIR := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/renderscript/res $(LOCAL_RESOURCE_DIR) +endif + # TODO: It looks like the only thing we need from base_rules is # all_java_sources. See if we can get that by adding a # common_java.mk, and moving the include of base_rules.mk to @@ -167,7 +211,8 @@ ALL_MODULES.$(LOCAL_MODULE).STUBS := $(full_classes_stubs_jar) # Deps for generated source files must be handled separately, # via deps on the target that generates the sources. $(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) -$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) $(jar_manifest_file) +$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) $(jar_manifest_file) \ + $(RenderScript_file_stamp) $(proto_java_sources_file_stamp) $(transform-java-to-classes.jar) # All of the rules after full_classes_compiled_jar are very unlikely |