OSDN Git Service

Fix dependency of prebuilt target non-static Java libraries.
authorYing Wang <wangying@google.com>
Tue, 1 Feb 2011 20:57:45 +0000 (12:57 -0800)
committerYing Wang <wangying@google.com>
Wed, 23 Mar 2011 19:01:49 +0000 (12:01 -0700)
Cherry-picked from Honeycomb to fix a dependency issue when building
prebuilt shared library.

Change-Id: I0a9cd3835b50dcc130a5f211e89d6bd22478fd42

core/prebuilt.mk

index b4717e0..f5eebc8 100644 (file)
@@ -45,10 +45,20 @@ endif
 ifeq ($(LOCAL_IS_HOST_MODULE)$(LOCAL_MODULE_CLASS),JAVA_LIBRARIES)
 # for target java libraries, the LOCAL_BUILT_MODULE is in a product-specific dir,
 # while the deps should be in the common dir, so we make a copy in the common dir.
-common_library_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MODULE),,COMMON)/$(notdir $(LOCAL_BUILT_MODULE))
-$(common_library_jar) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) | $(ACP)
+# For nonstatic library, $(common_javalib_jar) is the dependency file,
+# while $(common_classes_jar) is used to link.
+common_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MODULE),,COMMON)/classes.jar
+common_javalib_jar := $(dir $(common_classes_jar))javalib.jar
+
+$(common_classes_jar) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) | $(ACP)
        $(transform-prebuilt-to-target)
-endif
+
+$(common_javalib_jar) : $(common_classes_jar) | $(ACP)
+       $(transform-prebuilt-to-target)
+
+# make sure the classes.jar and javalib.jar are built before $(LOCAL_BUILT_MODULE)
+$(LOCAL_BUILT_MODULE) : $(common_javalib_jar)
+endif # TARGET JAVA_LIBRARIES
 
 ifeq ($(LOCAL_CERTIFICATE),EXTERNAL)
   # The magic string "EXTERNAL" means this package will be signed with