summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-02-26 03:30:06 -0500
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2009-02-27 20:38:55 +0200
commita2d010f8fca904fffa3c6e5a5d148cc96a37a08a (patch)
treee27779a22c717dede2a714d87c248e77b7f15edd
parent48e82adf39ba4c93068bc22237a2725a68a8f6c6 (diff)
make sure compiler supports warning flags
Some compilers (like gcc-3.3) don't support all the newer -W flags that we are using. So import the compiler check found in the kernel and test each flag we add. The := is important so we only do the compiler tests once per `make` rather than every time we compile a file. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r--common.mk12
1 files changed, 11 insertions, 1 deletions
diff --git a/common.mk b/common.mk
index 0e8c62b..5e92b07 100644
--- a/common.mk
+++ b/common.mk
@@ -1,8 +1,18 @@
CC := $(CROSS)gcc
AR := $(CROSS)ar
RANLIB := $(CROSS)ranlib
+
+# Stolen from Linux build system
+try-run = $(shell set -e; ($(1)) >/dev/null 2>&1 && echo "$(2)" || echo "$(3)")
+cc-option = $(call try-run, $(CC) $(1) -c -xc /dev/null -o /dev/null,$(1),$(2))
+
CFLAGS ?= -O2 -g
-CFLAGS += -Wall -Wextra -Wwrite-strings -Wno-sign-compare -D_FILE_OFFSET_BITS=64
+WFLAGS := -Wall \
+ $(call cc-option,-Wextra) \
+ $(call cc-option,-Wwrite-strings) \
+ $(call cc-option,-Wno-sign-compare)
+CFLAGS += $(WFLAGS)
+CPPFLAGS += -D_FILE_OFFSET_BITS=64
DESTDIR ?= /usr/local
PREFIX=/usr