confvar=$(call merge,$(foreach v,$(1),$(if $($(v)),y,n)))
strip_last=$(patsubst %.$(lastword $(subst .,$(space),$(1))),%,$(1))
+define sep
+
+endef
+
_SINGLE=export MAKEFLAGS=$(space);
CFLAGS:=
ARCH:=$(subst i486,i386,$(subst i586,i386,$(subst i686,i386,$(call qstrip,$(CONFIG_ARCH)))))
HOST_FPIC:=-fPIC
ARCH_SUFFIX:=
+GCC_ARCH:=
+
+ifneq ($(filter -march=armv%,$(TARGET_OPTIMIZATION)),)
+ ARCH_SUFFIX:=_$(patsubst -march=arm%,%,$(filter -march=armv%,$(TARGET_OPTIMIZATION)))
+ GCC_ARCH:=$(patsubst -march=%,%,$(filter -march=armv%,$(TARGET_OPTIMIZATION)))
+endif
ifneq ($(findstring -mips32r2,$(TARGET_OPTIMIZATION)),)
ARCH_SUFFIX:=_r2
endif
-ifneq ($(findstring -march=armv4,$(TARGET_OPTIMIZATION)),)
- ARCH_SUFFIX:=_v4
-endif
-ifneq ($(findstring -march=armv4t,$(TARGET_OPTIMIZATION)),)
- ARCH_SUFFIX:=_v4t
-endif
-ifneq ($(findstring -march=armv5t,$(TARGET_OPTIMIZATION)),)
- ARCH_SUFFIX:=_v5t
-endif
-ifneq ($(findstring -march=armv5te,$(TARGET_OPTIMIZATION)),)
- ARCH_SUFFIX:=_v5te
+ifdef CONFIG_HAS_SPE_FPU
+ TARGET_SUFFIX:=$(TARGET_SUFFIX)spe
endif
DL_DIR:=$(if $(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(TOPDIR)/dl)
LIBCV:=$(call qstrip,$(CONFIG_LIBC_VERSION))
REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))
GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux
- DIR_SUFFIX:=_$(LIBC)-$(LIBCV)$(if $(CONFIG_EABI_SUPPORT),_eabi)
+ DIR_SUFFIX:=_$(LIBC)-$(LIBCV)$(if $(CONFIG_arm),_eabi)
BUILD_DIR:=$(BUILD_DIR_BASE)/target-$(ARCH)$(ARCH_SUFFIX)$(DIR_SUFFIX)$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX))
STAGING_DIR:=$(TOPDIR)/staging_dir/target-$(ARCH)$(ARCH_SUFFIX)$(DIR_SUFFIX)
BUILD_DIR_TOOLCHAIN:=$(BUILD_DIR_BASE)/toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)$(DIR_SUFFIX)
TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include
TARGET_LDFLAGS:=-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib
LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-L$(TOOLCHAIN_DIR)/lib -lgcc_s,$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a))
+ifdef CONFIG_USE_UCLIBC
+LIBRPC=-lrpc
+endif
+LIBRPC_DEPENDS=+USE_UCLIBC:librpc
ifndef DUMP
ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
INSTALL_CONF:=install -m0600
ifneq ($(CONFIG_CCACHE),)
- # FIXME: move this variable to a better location
- export CCACHE_DIR=$(STAGING_DIR)/ccache
TARGET_CC:= ccache $(TARGET_CC)
TARGET_CXX:= ccache $(TARGET_CXX)
endif
RSTRIP:= \
NM="$(TARGET_CROSS)nm" \
STRIP="$(STRIP)" \
- STRIP_KMOD="$(TARGET_CROSS)strip --strip-unneeded --remove-section=.comment --remove-section=.pdr --remove-section=.mdebug.abi32" \
+ STRIP_KMOD="$(TARGET_CROSS)strip --strip-unneeded --remove-section=.comment --remove-section=.pdr --remove-section=.mdebug.abi32 --remove-section=.note.gnu.build-id" \
$(SCRIPT_DIR)/rstrip.sh
endif
DISABLE_IPV6:=--disable-ipv6
endif
-ifeq ($(CONFIG_LARGEFILE),y)
- DISABLE_LARGEFILE:=
-else
- DISABLE_LARGEFILE:=--disable-largefile
-endif
-
ifeq ($(CONFIG_TAR_VERBOSITY),y)
TAR_OPTIONS:=-xvf -
else
# Execute commands under flock
# $(1) => The shell expression.
# $(2) => The lock name. If not given, the global lock will be used.
-# $(3) => The filedescriptor used for the lock. Defaults to 1023.
define locked
SHELL= \
$(STAGING_DIR_HOST)/bin/flock \