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