aboutsummaryrefslogtreecommitdiff
path: root/mk/cc.mk
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-01-10 16:35:59 +0000
committerRoy Marples <roy@marples.name>2008-01-10 16:35:59 +0000
commit43147845209873b0776bd75d363913fe25611f49 (patch)
treeab3295c30664476d8d05b0fe5fe9ace702ade5ea /mk/cc.mk
parent2643f2e605f102d2c2fa098d0cf5400d3795ed4a (diff)
Allow for OS and SUBOS folders so we can introduce NetBSD scripts whilst keeping BSD for all BSD's.
Diffstat (limited to 'mk/cc.mk')
-rw-r--r--mk/cc.mk27
1 files changed, 27 insertions, 0 deletions
diff --git a/mk/cc.mk b/mk/cc.mk
new file mode 100644
index 00000000..18eae7ee
--- /dev/null
+++ b/mk/cc.mk
@@ -0,0 +1,27 @@
+# Copyright 2008 Roy Marples <roy@marples.name>
+
+# Setup some good default CFLAGS
+
+CFLAGS?= -O2 -pipe
+CSTD?= c99
+
+# GNU Make way of detecting gcc flags we can use
+check_gcc=$(shell if ${CC} $(1) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
+ then echo "$(1)"; else echo "$(2)"; fi)
+
+# pmake check for extra cflags
+WEXTRA!= for x in -Wdeclaration-after-statement -Wsequence-point -Wextra; do \
+ if ${CC} $$x -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
+ then echo -n "$$x "; fi \
+ done
+
+# Loads of nice flags to ensure our code is good
+CFLAGS+= -pedantic -std=${CSTD} \
+ -Wall -Wunused -Wimplicit -Wshadow -Wformat=2 \
+ -Wmissing-declarations -Wno-missing-prototypes -Wwrite-strings \
+ -Wbad-function-cast -Wnested-externs -Wcomment -Winline \
+ -Wchar-subscripts -Wcast-align -Wno-format-nonliteral \
+ $(call check_gcc, -Wdeclaration-after-statement) \
+ $(call check_gcc, -Wsequence-point) \
+ $(call check_gcc, -Wextra) ${WEXTRA}
+