openrc/mk/cc.mk

34 lines
1.0 KiB
Makefile
Raw Normal View History

2009-05-01 19:41:40 +05:30
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# Setup some good default CFLAGS
2008-02-20 16:04:11 +05:30
CFLAGS?= -O2
2008-02-20 16:04:11 +05:30
# Default to using the C99 standard
2008-02-19 22:19:28 +05:30
CSTD?= c99
ifneq (${CSTD},)
CFLAGS+= -std=${CSTD}
endif
2008-02-19 22:19:28 +05:30
# Try and use some good cc flags if we're building from git
# We don't use -pedantic as it will warn about our perfectly valid
# use of %m in our logger.
_CCFLAGS= -Wall -Wextra -Wimplicit -Wshadow -Wformat=2 \
-Wmissing-prototypes -Wmissing-declarations \
-Wmissing-noreturn -Wmissing-format-attribute \
-Wnested-externs \
-Winline -Wwrite-strings -Wcast-align -Wcast-qual \
-Wpointer-arith \
-Wdeclaration-after-statement -Wsequence-point
# We should be using -Wredundant-decls, but our library hidden proto stuff
# gives loads of warnings. I don't fully understand it (the hidden proto,
# not the warning) so we just silence the warning.
_CC_FLAGS_SH= for f in ${_CCFLAGS}; do \
if echo "int main(void) { return 0;} " | \
${CC} $$f -S -xc -o /dev/null - ; \
2008-02-20 16:04:11 +05:30
then printf "%s" "$$f "; fi \
done;
_CC_FLAGS:= $(shell ${_CC_FLAGS_SH})
CFLAGS+= ${_CC_FLAGS}