X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=rules.mk;h=b778a2e84e86fd87277c6d3bb5b51f617824be4b;hp=e07b06c2e59708fdf66beb74240b272f70827a40;hb=560ae67c671a9aeaac302dcd980686601d9f610d;hpb=064e7c8f00ebc1721553c0fcb312f809b00e179a diff --git a/rules.mk b/rules.mk index e07b06c2e5..b778a2e84e 100644 --- a/rules.mk +++ b/rules.mk @@ -28,6 +28,10 @@ merge=$(subst $(space),,$(1)) 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))))) @@ -47,21 +51,20 @@ else FPIC:=-fpic endif +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) @@ -107,7 +110,10 @@ TARGET_PATH:=$(STAGING_DIR_HOST)/bin:$(PATH) TARGET_CFLAGS:=$(TARGET_OPTIMIZATION)$(if $(CONFIG_DEBUG), -g3) 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)/usr/lib/gcc/*/*/libgcc.a)) +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 ifndef DUMP ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) @@ -160,7 +166,7 @@ HOST_LDFLAGS:=-L$(STAGING_DIR_HOST)/lib TARGET_CC:=$(TARGET_CROSS)gcc TARGET_CXX:=$(if $(CONFIG_INSTALL_LIBSTDCPP),$(TARGET_CROSS)g++,no) -PATCH:=$(SCRIPT_DIR)/patch-kernel.sh +KPATCH:=$(SCRIPT_DIR)/patch-kernel.sh SED:=$(STAGING_DIR_HOST)/bin/sed -i -e CP:=cp -fpR LN:=ln -sf @@ -222,12 +228,6 @@ else 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 @@ -247,6 +247,16 @@ define include_mk $(eval -include $(if $(DUMP),,$(STAGING_DIR)/mk/$(strip $(1)))) endef +# Execute commands under flock +# $(1) => The shell expression. +# $(2) => The lock name. If not given, the global lock will be used. +define locked + SHELL= \ + $(STAGING_DIR_HOST)/bin/flock \ + $(TMP_DIR)/.$(if $(2),$(strip $(2)),global).flock \ + -c '$(subst ','\'',$(1))' +endef + # file extension ext=$(word $(words $(subst ., ,$(1))),$(subst ., ,$(1))) @@ -254,4 +264,16 @@ all: FORCE: ; .PHONY: FORCE +val.%: + @$(if $(filter undefined,$(origin $*)),\ + echo "$* undefined" >&2, \ + echo '$(subst ','"'"',$($*))' \ + ) + +var.%: + @$(if $(filter undefined,$(origin $*)),\ + echo "$* undefined" >&2, \ + echo "$*='"'$(subst ','"'\"'\"'"',$($*))'"'" \ + ) + endif #__rules_inc