X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/d08229790289e2bbf1e285275dd1bf3189cad078..dfba2f5fb19c96511b4f389a65492be66b908f07:/package/base-files/Makefile diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 27916f3e6..95ab5a7c1 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -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 @@ -324,13 +324,16 @@ define Build/Prepare mkdir -p $(PKG_BUILD_DIR) endef -define Build/Compile/Default -endef - LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a) LIBGCC_MAP=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map) - +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)" \ @@ -338,20 +341,20 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) "$(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a)" \ "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libuClibc-*.so))" \ -Wl,-init,__uClibc_init -Wl,-soname=libc.so.0 \ - $(PKG_BUILD_DIR)/libgcc_s.so.* + $(BUILD_LIBGCC) $(SCRIPT_DIR)/relink-lib.sh \ "$(TARGET_CROSS)" \ "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so)" \ "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt_pic.a)" \ "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so))" \ - $(PKG_BUILD_DIR)/libgcc_s.so.* \ + $(BUILD_LIBGCC) \ -Wl,-soname=libcrypt.so.0 $(SCRIPT_DIR)/relink-lib.sh \ "$(TARGET_CROSS)" \ "$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so)" \ "$(wildcard $(TOOLCHAIN_DIR)/lib/libm_pic.a)" \ "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so))" \ - $(PKG_BUILD_DIR)/libgcc_s.so.* \ + $(BUILD_LIBGCC) \ -Wl,-soname=libm.so.0 $(SCRIPT_DIR)/relink-lib.sh \ "$(TARGET_CROSS)" \ @@ -359,25 +362,38 @@ 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 \ - $(PKG_BUILD_DIR)/libgcc_s.so.* \ + -ldl -lc $(BUILD_LIBGCC) \ -Wl,-soname=libpthread.so.0 endef - 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 -define Build/Compile - $(call Build/Compile/Default) +define Build/Compile/Default $(call Build/Compile/libgcc) $(call Build/Compile/$(LIBC)) endef +Build/Compile = $(Build/Compile/Default) define Package/base-files/install $(CP) ./files/* $(1)/ @@ -471,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 @@ -523,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 @@ -556,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 @@ -564,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 @@ -572,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 @@ -580,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 @@ -588,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 @@ -596,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 @@ -604,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 @@ -612,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