diff options
author | Tim Deegan <Tim.Deegan@citrix.com> | 2011-03-08 10:23:52 +0000 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@citrix.com> | 2011-03-08 10:23:52 +0000 |
commit | 87c604dae49a97875c69069fb2ad5d15a5bade7e (patch) | |
tree | f4ef9ba3e38a3529a4873fc1ac4903989f2ba04a | |
parent | 07d9f1dd0d623acc309c8c1f1731e62d141b029b (diff) | |
download | xen-87c604dae49a97875c69069fb2ad5d15a5bade7e.tar.gz xen-87c604dae49a97875c69069fb2ad5d15a5bade7e.tar.bz2 xen-87c604dae49a97875c69069fb2ad5d15a5bade7e.zip |
Tidy makefiles to use CFLAGS-$(foo) idiom instead of ifeq.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
-rw-r--r-- | Config.mk | 16 | ||||
-rw-r--r-- | config/StdGNU.mk | 8 | ||||
-rw-r--r-- | xen/Rules.mk | 3 | ||||
-rw-r--r-- | xen/arch/x86/Rules.mk | 6 |
4 files changed, 17 insertions, 16 deletions
@@ -23,6 +23,15 @@ DESTDIR ?= / # Allow phony attribute to be listed as dependency rather than fake target .PHONY: .phony +# Use Clang/LLVM instead of GCC? +clang ?= n +ifeq ($(clang),n) +gcc := y +else +gcc := n +endif + + include $(XEN_ROOT)/config/$(XEN_OS).mk include $(XEN_ROOT)/config/$(XEN_TARGET_ARCH).mk @@ -148,12 +157,9 @@ CFLAGS += -Wall -Wstrict-prototypes # result of any casted expression causes a warning. CFLAGS += -Wno-unused-value -ifeq ($(clang),y) # Clang complains about macros that expand to 'if ( ( foo == bar ) ) ...' -CFLAGS += -Wno-parentheses -# And is over-zealous with the printf format lint -CFLAGS += -Wno-format -endif +# and is over-zealous with the printf format lint +CFLAGS-$(clang) += -Wno-parentheses -Wno-format $(call cc-option-add,HOSTCFLAGS,HOSTCC,-Wdeclaration-after-statement) $(call cc-option-add,CFLAGS,CC,-Wdeclaration-after-statement) diff --git a/config/StdGNU.mk b/config/StdGNU.mk index 786efd7e20..25aeb4d819 100644 --- a/config/StdGNU.mk +++ b/config/StdGNU.mk @@ -76,14 +76,10 @@ CFLAGS += -O2 -fomit-frame-pointer else # Less than -O1 produces bad code and large stack frames CFLAGS += -O1 -fno-omit-frame-pointer -ifneq ($(clang),y) -CFLAGS += -fno-optimize-sibling-calls -endif +CFLAGS-$(gcc) += -fno-optimize-sibling-calls endif ifeq ($(lto),y) CFLAGS += -flto -ifeq ($(clang),y) -LDFLAGS += -plugin LLVMgold.so -endif +LDFLAGS-$(clang) += -plugin LLVMgold.so endif diff --git a/xen/Rules.mk b/xen/Rules.mk index 9a9829bcb3..c39706a6c7 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -9,7 +9,6 @@ perfc_arrays ?= n lock_profile ?= n crash_debug ?= n frame_pointer ?= n -clang ?= n lto ?= n XEN_ROOT=$(BASEDIR)/.. @@ -83,6 +82,8 @@ AFLAGS += $(AFLAGS-y) $(filter-out -std=gnu%,$(filter-out -flto,$(CFLAGS))) # LDFLAGS are only passed directly to $(LD) LDFLAGS += $(LDFLAGS_DIRECT) +LDFLAGS += $(LDFLAGS-y) + include Makefile # Ensure each subdirectory has exactly one trailing slash. diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk index f951398b60..df7cf34cce 100644 --- a/xen/arch/x86/Rules.mk +++ b/xen/arch/x86/Rules.mk @@ -14,9 +14,7 @@ supervisor_mode_kernel ?= n # Solaris grabs stdarg.h and friends from the system include directory. # Clang likewise. ifneq ($(XEN_OS),SunOS) -ifneq ($(clang),y) -CFLAGS += -nostdinc -endif +CFLAGS-$(gcc) += -nostdinc endif CFLAGS += -fno-builtin -fno-common -Wredundant-decls @@ -52,7 +50,7 @@ x86_32 := n x86_64 := y endif -ifneq ($(clang),y) +ifeq ($(gcc),y) # Require GCC v3.4+ (to avoid issues with alignment constraints in Xen headers) $(call cc-ver-check,CC,0x030400,"Xen requires at least gcc-3.4") endif |