base-files: return success on lib-copying with external toolchain
[openwrt.git] / package / base-files / Makefile
index 61296b0..e56774f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2010 OpenWrt.org
+# Copyright (C) 2007-2011 OpenWrt.org
 # Copyright (C) 2010 Vertical Communications
 #
 # This is free software, licensed under the GNU General Public License v2.
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=66
+PKG_RELEASE:=68
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 PKG_BUILD_DEPENDS:=opkg/host
@@ -326,9 +326,14 @@ endef
 
 LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a)
 LIBGCC_MAP=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map)
-BUILD_LIBGCC:=$(if $(CONFIG_avr32)$(CONFIG_m68k),,$(PKG_BUILD_DIR)/libgcc_s.so.*)
-
+LIBGCC_SO=$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*)
 ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
+  ifneq ($(if $(CONFIG_USE_UCLIBC),$(CONFIG_GCC_VERSION_LINARO)),)
+    BUILD_LIBGCC:=$(if $(CONFIG_avr32)$(CONFIG_m68k)$(CONFIG_powerpc),,$(PKG_BUILD_DIR)/libgcc_s.so.*)
+  endif
+endif
+
+ifneq ($(BUILD_LIBGCC),)
   define Build/Compile/uClibc
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
@@ -357,17 +362,29 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread_so.a)" \
                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread-*.so))" \
                -Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal \
-               $(BUILD_LIBGCC) \
+               -ldl -lc $(BUILD_LIBGCC) \
                -Wl,-soname=libpthread.so.0
   endef
-  ifneq ($(BUILD_LIBGCC),)
-    define Build/Compile/libgcc
+  define Build/Compile/libgcc
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
-               "$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*)" \
+               "$(LIBGCC_SO)" \
                "$(LIBGCC_A)" \
-               "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*))" \
+               "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(LIBGCC_SO))" \
                -Wl,--version-script=$(LIBGCC_MAP) -Wl,-soname=libgcc_s.so.1
+  endef
+else
+  define Build/Compile/uClibc
+       $(CP) \
+               $(TOOLCHAIN_DIR)/lib/libuClibc-*.so \
+               $(TOOLCHAIN_DIR)/lib/libcrypt-*.so \
+               $(TOOLCHAIN_DIR)/lib/libm-*.so \
+               $(TOOLCHAIN_DIR)/lib/libpthread-*.so \
+               $(PKG_BUILD_DIR)/
+  endef
+  ifneq ($(LIBGCC_SO),)
+    define Build/Compile/libgcc
+       $(CP) $(LIBGCC_SO) $(PKG_BUILD_DIR)/
     endef
   endif
 endif
@@ -470,10 +487,11 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
                $(TOOLCHAIN_DIR)/lib/ld-$(LIBC_SO_VERSION).so \
                $(1)/lib/
        for file in libanl libc libcidn libcrypt libdl libm $(use_libnsl) $(use_nsswitch) libresolv $(use_libutil); do \
-               $(CP) \
-                       $(TOOLCHAIN_DIR)/lib/$$$$file.so.* \
-                       $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so \
-                       $(1)/lib/; \
+               for file in $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so; do \
+                       if [ -e "$$$$file" ]; then \
+                               $(CP) $$$$file $(1)/lib/; \
+                       fi; \
+               done; \ 
        done
   endef
 
@@ -522,7 +540,10 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
        $(INSTALL_DIR) $(1)/lib
        $(CP) \
                $(TOOLCHAIN_DIR)/lib/libpthread.so.* \
-               $(PKG_BUILD_DIR)/libpthread-$(LIBC_SO_VERSION).so \
+               $(if $(BUILD_LIBGCC),\
+                       $(PKG_BUILD_DIR)/libpthread-$(LIBC_SO_VERSION).so, \
+                       $(TOOLCHAIN_DIR)/lib/libpthread-$(LIBC_SO_VERSION).so \
+               ) \
                $(1)/lib/
   endef
 
@@ -555,7 +576,8 @@ else
                dir=`dirname $$$$file` ; \
                $(INSTALL_DIR) $(1)/$$$$dir ; \
                $(CP) $(call qstrip,$(CONFIG_LIBGCC_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
-       done
+       done ; \
+       exit 0
   endef
 
   define Package/libssp/install
@@ -563,7 +585,8 @@ else
                dir=`dirname $$$$file` ; \
                $(INSTALL_DIR) $(1)/$$$$dir ; \
                $(CP) $(call qstrip,$(CONFIG_LIBSSP_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
-       done
+       done ; \
+       exit 0
   endef
 
   define Package/libstdcpp/install
@@ -571,7 +594,8 @@ else
                dir=`dirname $$$$file` ; \
                $(INSTALL_DIR) $(1)/$$$$dir ; \
                $(CP) $(call qstrip,$(CONFIG_LIBSTDCPP_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
-       done
+       done ; \
+       exit 0
   endef
 
   define Package/libc/install
@@ -579,7 +603,8 @@ else
                dir=`dirname $$$$file` ; \
                $(INSTALL_DIR) $(1)/$$$$dir ; \
                $(CP) $(call qstrip,$(CONFIG_LIBC_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
-       done
+       done ; \
+       exit 0
   endef
 
   define Package/libpthread/install
@@ -587,7 +612,8 @@ else
                dir=`dirname $$$$file` ; \
                $(INSTALL_DIR) $(1)/$$$$dir ; \
                $(CP) $(call qstrip,$(CONFIG_LIBPTHREAD_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
-       done
+       done ; \
+       exit 0
   endef
 
   define Package/librt/install
@@ -595,7 +621,8 @@ else
                dir=`dirname $$$$file` ; \
                $(INSTALL_DIR) $(1)/$$$$dir ; \
                $(CP) $(call qstrip,$(CONFIG_LIBRT_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
-       done
+       done ; \
+       exit 0
   endef
 
   define Package/ldd/install
@@ -603,7 +630,8 @@ else
                dir=`dirname $$$$file` ; \
                $(INSTALL_DIR) $(1)/$$$$dir ; \
                $(CP) $(call qstrip,$(CONFIG_LDD_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
-       done
+       done ; \
+       exit 0
   endef
 
   define Package/ldconfig/install
@@ -611,7 +639,8 @@ else
                dir=`dirname $$$$file` ; \
                $(INSTALL_DIR) $(1)/$$$$dir ; \
                $(CP) $(call qstrip,$(CONFIG_LDCONFIG_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
-       done
+       done ; \
+       exit 0
   endef
 
 endif
This page took 0.025463 seconds and 4 git commands to generate.