1ifeq '' '$(findstring clang,$(shell $(GF_CC) --version))'
2 GF_CC_IS_GCC = 1
3 GF_CC_VER := $(shell { $(GF_CC) -dumpfullversion 2>/dev/null; echo; $(GF_CC) -dumpversion; } | awk -F. '/./ { printf("%02d%02d%02d", $$1, $$2, $$3); exit }')
4else
5 GF_CC_IS_CLANG = 1
6 ifeq '' '$(findstring Apple,$(shell $(GF_CC) --version))'
7 GF_CC_IS_LLVM_CLANG = 1
8 else
9 GF_CC_IS_APPLE_CLANG = 1
10 endif
11 GF_CC_VER := \
12 $(shell $(GF_CC) --version | sed -n 's/^.* version \([0-9.]*\).*$$/\1/p' \
13 | awk -F. '{ printf("%02d%02d%02d", $$1, $$2, $$3) }')
14endif
15
16ifeq ($(GF_CC_IS_CLANG), 1)
17 # clang options
18 GF_CFLAGS = -Wunreachable-code-break -Wunreachable-code-return
19 GF_CXXFLAGS = -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi
20
21 ifneq '' '$(and $(GF_CC_IS_LLVM_CLANG),$(filter 1,$(shell expr $(GF_CC_VER) \>= 030800)))'
22 GF_CFLAGS += -Wdouble-promotion
23 endif
24 ifneq '' '$(and $(GF_CC_IS_APPLE_CLANG),$(filter 1,$(shell expr $(GF_CC_VER) \>= 070300)))'
25 GF_CFLAGS += -Wdouble-promotion
26 endif
27else
28 # gcc options
29 GF_CFLAGS = -Wdouble-promotion
30 GF_CXXFLAGS = -Wno-array-bounds
31
32 ifeq ($(shell expr $(GF_CC_VER) \>= 070100), 1)
33 GF_CXXFLAGS += -Wno-format-truncation
34 endif
35 ifeq ($(shell expr $(GF_CC_VER) \>= 080100), 1)
36 GF_CXXFLAGS += -Wextra-semi
37 endif
38endif