Fix bad dependency between generated shared libraries and the corresponding installed module.

Also fixes the "make clean" target by the way.
This commit is contained in:
David 'Digit' Turner
2009-05-14 17:23:35 +02:00
parent 20d4ecf2d7
commit 0d2d3b95ec
3 changed files with 27 additions and 10 deletions

View File

@@ -54,19 +54,29 @@ $(LOCAL_BUILT_MODULE): PRIVATE_LDFLAGS := $(TARGET_LDFLAGS) $(LOCAL_LDFLAGS)
$(LOCAL_BUILT_MODULE): PRIVATE_LDLIBS := $(LOCAL_LDLIBS) $(TARGET_LDLIBS)
$(LOCAL_BUILT_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE))
$(LOCAL_BUILT_MODULE): PRIVATE_DEST := $(NDK_APP_DEST)
$(LOCAL_BUILT_MODULE): PRIVATE_SRC := $(LOCAL_BUILT_MODULE)
$(LOCAL_BUILT_MODULE): PRIVATE_DST := $(PRIVATE_DEST)/$(PRIVATE_NAME)
$(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
@ mkdir -p $(dir $@)
@ echo "SharedLibrary : $(PRIVATE_NAME)"
$(hide) $(cmd-build-shared-library)
ALL_SHARED_LIBRARIES += $(LOCAL_BUILT_MODULE)
# Installed module handling
#
LOCAL_INSTALLED_MODULE := $(NDK_APP_DEST)/$(notdir $(LOCAL_BUILT_MODULE))
$(LOCAL_INSTALLED_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE))
$(LOCAL_INSTALLED_MODULE): PRIVATE_SRC := $(LOCAL_BUILT_MODULE)
$(LOCAL_INSTALLED_MODULE): PRIVATE_DEST := $(NDK_APP_DEST)
$(LOCAL_INSTALLED_MODULE): PRIVATE_DST := $(LOCAL_INSTALLED_MODULE)
$(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE)
@ echo "Install : $(PRIVATE_NAME) => $(PRIVATE_DEST)"
$(hide) mkdir -p $(PRIVATE_DEST)
$(hide) install -p $(PRIVATE_SRC) $(PRIVATE_DST)
$(hide) $(call cmd-strip, $(PRIVATE_DST))
ALL_EXECUTABLES += $(LOCAL_BUILT_MODULE)
ALL_INSTALLED_MODULES += $(LOCAL_INSTALLED_MODULE)
endif # filter LOCAL_MODULE in NDK_APP_MODULES

View File

@@ -59,6 +59,6 @@ $(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
$(hide) rm -rf $@
$(hide) $(cmd-build-static-library)
ALL_EXECUTABLES += $(LOCAL_BUILT_MODULE)
ALL_STATIC_LIBRARIES += $(LOCAL_BUILT_MODULE)
endif # filter LOCAL_MODULE in NDK_APP_MODULES

View File

@@ -193,9 +193,11 @@ $(call __ndk_info,Building for application '$(NDK_APPS)')
# These phony targets are used to control various stages of the build
.PHONY: all \
host_libraries host_executables \
installed_modules \
executables libraries static_libraries shared_libraries \
clean clean-config clean-objs-dir \
clean-executables clean-libraries
clean-executables clean-libraries \
clean-installed-modules
# These macros are used in Android.mk to include the corresponding
# build script that will parse the LOCAL_XXX variable definitions.
@@ -228,9 +230,10 @@ ALL_HOST_STATIC_LIBRARIES :=
ALL_STATIC_LIBRARIES :=
ALL_SHARED_LIBRARIES :=
ALL_EXECUTABLES :=
ALL_INSTALLED_MODULES :=
# the first rule
all: libraries executables
all: installed_modules host_libraries host_executables
# ====================================================================
#
@@ -260,10 +263,11 @@ include build/core/setup-toolchain.mk
#
# ====================================================================
clean: clean-intermediates
clean: clean-intermediates clean-installed-modules
distclean: clean clean-config
installed_modules: libraries $(ALL_INSTALLED_MODULES)
host_libraries: $(HOST_STATIC_LIBRARIES)
host_executables: $(HOST_EXECUTABLES)
@@ -274,10 +278,13 @@ executables: $(EXECUTABLES)
libraries: static_libraries shared_libraries
clean-host-intermediates:
$(hide) rm -rf $(NDK_HOST_OUT)/objs $(HOST_EXECUTABLES) $(HOST_STATIC_LIBRARIES)
$(hide) rm -rf $(HOST_EXECUTABLES) $(HOST_STATIC_LIBRARIES)
clean-intermediates: clean-host-intermediates
$(hide) rm -rf $(NDK_HOST_OUT)/objs $(EXECUTABLES) $(STATIC_LIBRARIES) $(SHARED_LIBRARIES)
$(hide) rm -rf $(EXECUTABLES) $(STATIC_LIBRARIES) $(SHARED_LIBRARIES)
clean-installed-modules:
$(hide) rm -rf $(ALL_INSTALLED_MODULES)
clean-config:
$(hide) rm -f $(CONFIG_MAKE) $(CONFIG_H)