Module: sip-router Branch: master Commit: 0b2d2c6e99dac2bd171f1c24bfa6f285f6539273 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0b2d2c6e...
Author: Andrei Pelinescu-Onciul andrei@iptel.org Committer: Andrei Pelinescu-Onciul andrei@iptel.org Date: Wed Mar 10 17:30:39 2010 +0100
make: fix CPU reset in some conditions
In some cases like trying to build a package with debug config (e.g. make cfg mode=debug; .... ; make deb), the CPU make variable was reset resulting in a build failure. This happens because in the debug config CPU is not set and hence is saved as empty. Trying to build a package will start a sub-make which will try to re-do the config without debugging (make cfg), but the CPU variable with and empty value will be inherited from the environment and thus the CPU?=something lines won't have any effect. The fix replaces CPU?=something with $(call set_if_empty,CPU,something) This works around having an empty CPU in the environment.
Reported-by: Jan Janak jan@iptel.org
---
Makefile.defs | 45 ++++++++++++++++++++++++--------------------- 1 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/Makefile.defs b/Makefile.defs index a775bd9..1eb19f5 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -115,8 +115,11 @@ ifeq ($(quiet),verbose) $(info normal Makefile.defs exec) endif # verbose
+# usage: $(call set_if_empty,VAR,value) +set_if_empty=$(if $($(1)),,$(eval override $(1)=$(2))) + # flavour: sip-router, ser or kamailio -FLAVOUR?=sip-router +$(call set_if_empty,FLAVOUR,sip-router)
#prefix for various configs and scripts #config name/name-prefix for distributed configs @@ -816,7 +819,7 @@ ifeq ($(CC_NAME), gcc) CFLAGS=-g -O9 -funroll-loops -Wcast-align $(PROFILE) #if gcc 4.2+ ifeq ($(CC_SHORTVER), 4.2+) - CPU ?= athlon64 +$(call set_if_empty,CPU,athlon64) CFLAGS+=-m32 -minline-all-stringops \ -falign-loops \ -ftree-vectorize \ @@ -826,7 +829,7 @@ ifeq ($(CC_SHORTVER), 4.2+) else #if gcc 4.0+ ifeq ($(CC_SHORTVER), 4.x) - CPU ?= athlon64 +$(call set_if_empty,CPU,athlon64) CFLAGS+=-m32 -minline-all-stringops \ -falign-loops \ -ftree-vectorize \ @@ -835,7 +838,7 @@ ifeq ($(CC_SHORTVER), 4.x) else #if gcc 3.4+ ifeq ($(CC_SHORTVER), 3.4) - CPU ?= athlon +$(call set_if_empty,CPU,athlon) CFLAGS+=-m32 -minline-all-stringops \ -falign-loops \ -mtune=$(CPU) @@ -843,7 +846,7 @@ ifeq ($(CC_SHORTVER), 3.4) else #if gcc 3.0+ ifeq ($(CC_SHORTVER), 3.0) - CPU ?= athlon +$(call set_if_empty,CPU,athlon) CFLAGS+=-minline-all-stringops \ -falign-loops \ -mcpu=$(CPU) @@ -891,7 +894,7 @@ ifeq ($(CC_NAME), gcc) CFLAGS=-g -O9 -funroll-loops -Wcast-align $(PROFILE) #if gcc 4.2+ ifeq ($(CC_SHORTVER), 4.2+) - CPU ?= opteron +$(call set_if_empty,CPU,opteron) CFLAGS+=-m64 -minline-all-stringops \ -falign-loops \ -ftree-vectorize \ @@ -901,7 +904,7 @@ ifeq ($(CC_SHORTVER), 4.2+) else #if gcc 4.0+ ifeq ($(CC_SHORTVER), 4.x) - CPU ?= opteron +$(call set_if_empty,CPU,opteron) CFLAGS+=-m64 -minline-all-stringops \ -falign-loops \ -ftree-vectorize \ @@ -910,14 +913,14 @@ ifeq ($(CC_SHORTVER), 4.x) else #if gcc 3.4 ifeq ($(CC_SHORTVER), 3.4) - CPU ?= athlon64 +$(call set_if_empty,CPU,athlon64) CFLAGS+=-m64 -minline-all-stringops \ -falign-loops LDFLAGS+=-m64 else #if gcc 3.0 ifeq ($(CC_SHORTVER), 3.0) - CPU ?= athlon64 +$(call set_if_empty,CPU,athlon64) CFLAGS+=-minline-all-stringops \ -falign-loops #-mcpu=$(CPU) \ # not working on all x86_64 gccs @@ -968,7 +971,7 @@ ifeq ($(CC_NAME), gcc) #-Wmissing-prototypes #if gcc 4.2+ ifeq ($(CC_SHORTVER), 4.2+) - CPU ?= ultrasparc +$(call set_if_empty,CPU,ultrasparc) #use 32bit for now CFLAGS+=-m64 -mcpu=ultrasparc \ -mtune=$(CPU) \ @@ -982,7 +985,7 @@ ifeq ($(CC_SHORTVER), 4.2+) else #if gcc 4.x ifeq ($(CC_SHORTVER), 4.x) - CPU ?= ultrasparc +$(call set_if_empty,CPU,ultrasparc) #use 32bit for now CFLAGS+=-m64 -mcpu=ultrasparc \ -mtune=$(CPU) \ @@ -991,14 +994,14 @@ ifeq ($(CC_SHORTVER), 4.x) else #if gcc 3.4 ifeq ($(CC_SHORTVER), 3.4) - CPU ?= ultrasparc +$(call set_if_empty,CPU,ultrasparc) #use 32bit for now CFLAGS+=-m64 -mcpu=ultrasparc -mtune=$(CPU) LDFLAGS+=-m64 else #if gcc 3.0 ifeq ($(CC_SHORTVER), 3.0) - CPU ?= ultrasparc +$(call set_if_empty,CPU,ultrasparc) #use 32bit for now CFLAGS+=-m64 -mcpu=ultrasparc -mtune=$(CPU) \ # -mcpu=v9 or ultrasparc? # -mtune implied by -mcpu @@ -1059,7 +1062,7 @@ ifeq ($(CC_NAME), gcc) #-Wmissing-prototypes #if gcc 4.2+ ifeq ($(CC_SHORTVER), 4.2+) - CPU ?= v8 +$(call set_if_empty,CPU,v8) #use 32bit for now CFLAGS+= -mtune=$(CPU) \ -fno-strict-overflow \ @@ -1067,20 +1070,20 @@ ifeq ($(CC_SHORTVER), 4.2+) else #if gcc 4.x ifeq ($(CC_SHORTVER), 4.x) - CPU ?= v8 +$(call set_if_empty,CPU,v8) #use 32bit for now CFLAGS+= -mtune=$(CPU) \ -ftree-vectorize else #if gcc 3.4 ifeq ($(CC_SHORTVER), 3.4) - CPU ?= v8 +$(call set_if_empty,CPU,v8) #use 32bit for now CFLAGS+= -mtune=$(CPU) else #if gcc 3.0 ifeq ($(CC_SHORTVER), 3.0) - CPU ?= v8 +$(call set_if_empty,CPU,v8) #use 32bit for now CFLAGS+= -mtune=$(CPU) \ #-mno-epilogue #try to inline function exit code @@ -1400,14 +1403,14 @@ ifeq ($(CC_NAME), gcc) CFLAGS= -O9 -funroll-loops -fsigned-char $(PROFILE) #if gcc 4.2+ ifeq ($(CC_SHORTVER), 4.2+) - CPU ?= powerpc +$(call set_if_empty,CPU,powerpc) CFLAGS+=-ftree-vectorize \ -fno-strict-overflow \ -mtune=$(CPU) -maltivec else #if gcc 4.0+ ifeq ($(CC_SHORTVER), 4.x) - CPU ?= powerpc +$(call set_if_empty,CPU,powerpc) CFLAGS+=-ftree-vectorize \ -mtune=$(CPU) -maltivec else @@ -1449,14 +1452,14 @@ ifeq ($(CC_NAME), gcc) CFLAGS= -O9 -funroll-loops -fsigned-char $(PROFILE) #if gcc 4.2+ ifeq ($(CC_SHORTVER), 4.2+) - CPU ?= powerpc64 +$(call set_if_empty,CPU,powerpc64) CFLAGS+=-ftree-vectorize \ -fno-strict-overflow \ -mtune=$(CPU) -maltivec else #if gcc 4.0+ ifeq ($(CC_SHORTVER), 4.x) - CPU ?= powerpc64 +$(call set_if_empty,CPU,powerpc64) CFLAGS+=-ftree-vectorize \ -mtune=$(CPU) -maltivec else