gcc: make installation of shared libraries multi-project safe
authorHans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Thu, 2 Oct 2008 15:02:38 +0000 (15:02 -0000)
committerHans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Thu, 2 Oct 2008 15:02:38 +0000 (15:02 -0000)
This patch modifies the rule for installing the shared libraries into the
project_foo/.../autotools-stamps directory. This will make the installation of
GCC shared libraries be multi-project safe.

Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
toolchain/gcc/gcc-uclibc-3.x.mk
toolchain/gcc/gcc-uclibc-4.x.mk

index 2c2b192c5ec21bdd6f16c274ef1f6b029d6a3486..3a8d9d3bb32d035ccab90bc0d47501dbe14e4bde 100644 (file)
@@ -330,7 +330,7 @@ endif
        mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
        touch $@
 
-$(GCC_BUILD_DIR2)/.libs_installed: $(GCC_BUILD_DIR2)/.installed
+$(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
        # These are in /lib, so...
        rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
@@ -355,10 +355,12 @@ ifeq ($(BR2_INSTALL_LIBGCJ),y)
        cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security \
                $(TARGET_DIR)/usr/lib/security/
 endif
+       mkdir -p $(@D)
        touch $@
 
 cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
-cross_compiler gcc: gcc-config $(GCC_BUILD_DIR2)/.installed $(GCC_BUILD_DIR2)/.libs_installed \
+cross_compiler gcc: gcc-config $(GCC_BUILD_DIR2)/.installed \
+       $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed \
        $(GCC_TARGETS)
 
 gcc-source: $(DL_DIR)/$(GCC_SOURCE)
@@ -383,7 +385,7 @@ gcc-dirclean: gcc_initial-dirclean
 #############################################################
 GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target
 
-$(GCC_BUILD_DIR3)/.prepared: $(GCC_BUILD_DIR2)/.libs_installed $(GCC_TARGET_PREREQ)
+$(GCC_BUILD_DIR3)/.prepared: $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed $(GCC_TARGET_PREREQ)
        mkdir -p $(GCC_BUILD_DIR3)
        touch $@
 
index 668e9fc1fcaebf9fcffda1c6b495268083e4b9d9..08e5ed6c8765a58d9315ccba5f11ff5117317a37 100644 (file)
@@ -359,7 +359,7 @@ endif
        mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
        touch $@
 
-$(GCC_BUILD_DIR2)/.libs_installed: $(GCC_BUILD_DIR2)/.installed
+$(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
        # These are in /lib, so...
        rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
@@ -385,12 +385,13 @@ ifeq ($(BR2_INSTALL_LIBGCJ),y)
        cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security \
                $(TARGET_DIR)/usr/lib/security/
 endif
+       mkdir -p $(@D)
        touch $@
 
 cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
 cross_compiler gcc: uclibc-configured binutils gcc_initial \
-       $(LIBFLOAT_TARGET) uclibc \
-       $(GCC_BUILD_DIR2)/.installed $(GCC_BUILD_DIR2)/.libs_installed \
+       $(LIBFLOAT_TARGET) uclibc $(GCC_BUILD_DIR2)/.installed \
+       $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed \
        $(GCC_TARGETS)
 
 gcc-source: $(DL_DIR)/$(GCC_SOURCE)
@@ -412,7 +413,7 @@ gcc-dirclean: gcc_initial-dirclean
 #############################################################
 GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target
 
-$(GCC_BUILD_DIR3)/.prepared: $(GCC_BUILD_DIR2)/.libs_installed $(GCC_TARGET_PREREQ)
+$(GCC_BUILD_DIR3)/.prepared: $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed $(GCC_TARGET_PREREQ)
        mkdir -p $(GCC_BUILD_DIR3)
        touch $@