aboutsummaryrefslogtreecommitdiffstats
path: root/Config.mk
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-10-18 19:14:34 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-10-18 19:14:34 +0100
commitf9038804d68bc97bfe33ded8e0b3b761689d6530 (patch)
tree78571db4b5c464e9c10be376f807051f52971462 /Config.mk
parent923fbdf607ad3b0a2127c279176bb171a49f4822 (diff)
downloadxen-f9038804d68bc97bfe33ded8e0b3b761689d6530.tar.gz
xen-f9038804d68bc97bfe33ded8e0b3b761689d6530.tar.bz2
xen-f9038804d68bc97bfe33ded8e0b3b761689d6530.zip
Replace test-gcc-flag with Linux-style cc-option.
Improve on Linux implementation by looking for any output on stdout/stderr. This indicates badness. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'Config.mk')
-rw-r--r--Config.mk9
1 files changed, 6 insertions, 3 deletions
diff --git a/Config.mk b/Config.mk
index e626a26283..4cd113d905 100644
--- a/Config.mk
+++ b/Config.mk
@@ -26,7 +26,10 @@ EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
EXTRA_LIB += $(EXTRA_PREFIX)/$(LIBDIR)
endif
-test-gcc-flag = $(shell $(1) -v --help 2>&1 | grep " $(2) " >/dev/null 2>&1 && echo $(2))
+# cc-option
+# Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586)
+cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc \
+ /dev/null 2>&1`"; then echo "$(2)"; else echo "$(3)"; fi ;)
ifneq ($(debug),y)
CFLAGS += -DNDEBUG
@@ -42,8 +45,8 @@ CFLAGS += -Wall -Wstrict-prototypes
# result of any casted expression causes a warning.
CFLAGS += -Wno-unused-value
-HOSTCFLAGS += $(call test-gcc-flag,$(HOSTCC),-Wdeclaration-after-statement)
-CFLAGS += $(call test-gcc-flag,$(CC),-Wdeclaration-after-statement)
+HOSTCFLAGS += $(call cc-option,$(HOSTCC),-Wdeclaration-after-statement,)
+CFLAGS += $(call cc-option,$(CC),-Wdeclaration-after-statement,)
LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i))
CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))