diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2014-09-08 10:21:18 +0200 |
---|---|---|
committer | Tobias Klauser <tklauser@distanz.ch> | 2014-09-08 10:21:18 +0200 |
commit | 5b8ec08d57fa932b769e590ecfe6a471910c05ec (patch) | |
tree | 1e3aff5cacbf09e1bdaf35bec229b50566944dcd | |
parent | ee339c1af78312527312a812dce579266a9ba5bc (diff) |
build: Detect compiler (gcc or clang) and filter out compiler flags
Create a make variable $(COMPILER) which is set to either `gcc' or
`clang' depending on the compiler used. Use this variable to filter out
command line options not supported by clang (for now only
-fno-delete-null-pointer-checks).
Compiler detection snippet extracted from the Linux kernel Makefile.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
-rw-r--r-- | Makefile | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -52,6 +52,16 @@ else DEBUG := 0 endif +# Compiler detection +ifneq ($(CC),) +ifeq ($(shell $(CC) -v 2>&1 | grep -c "clang version"), 1) +COMPILER := clang +else +COMPILER := gcc +endif +export COMPILER +endif + # For packaging purposes, you might want to call your own: # make CFLAGS="<flags>" CFLAGS_DEF = -std=gnu99 @@ -83,7 +93,9 @@ endif CFLAGS_DEF += -fomit-frame-pointer CFLAGS_DEF += -fno-strict-aliasing CFLAGS_DEF += -fasynchronous-unwind-tables +ifneq ($(COMPILER), clang) CFLAGS_DEF += -fno-delete-null-pointer-checks +endif CFLAGS_MIN = -D_REENTRANT CFLAGS_MIN += -D_LARGEFILE_SOURCE |