From ae38562d764e4c3541b2c07732274f0c1115fe48 Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Thu, 14 May 2009 17:23:35 +0200 Subject: [PATCH] Fix bad dependency between generated shared libraries and the corresponding installed module. Also fixes the "make clean" target by the way. --- build/core/build-shared-library.mk | 18 ++++++++++++++---- build/core/build-static-library.mk | 2 +- build/core/main.mk | 17 ++++++++++++----- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/build/core/build-shared-library.mk b/build/core/build-shared-library.mk index f07ed80..7cf9841 100644 --- a/build/core/build-shared-library.mk +++ b/build/core/build-shared-library.mk @@ -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 diff --git a/build/core/build-static-library.mk b/build/core/build-static-library.mk index d36f004..3bbf75e 100644 --- a/build/core/build-static-library.mk +++ b/build/core/build-static-library.mk @@ -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 diff --git a/build/core/main.mk b/build/core/main.mk index a82e77e..7f67fb0 100644 --- a/build/core/main.mk +++ b/build/core/main.mk @@ -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) -- 2.11.0