1
0

get-flags.mk 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. ifeq '' '$(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 }')
  4. else
  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) }')
  14. endif
  15. ifeq ($(GF_CC_IS_CLANG), 1)
  16. # clang options
  17. GF_CFLAGS = -Wunreachable-code-break -Wunreachable-code-return
  18. GF_CXXFLAGS = -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi
  19. ifneq '' '$(and $(GF_CC_IS_LLVM_CLANG),$(filter 1,$(shell expr $(GF_CC_VER) \>= 030800)))'
  20. GF_CFLAGS += -Wdouble-promotion
  21. endif
  22. ifneq '' '$(and $(GF_CC_IS_APPLE_CLANG),$(filter 1,$(shell expr $(GF_CC_VER) \>= 070300)))'
  23. GF_CFLAGS += -Wdouble-promotion
  24. endif
  25. else
  26. # gcc options
  27. GF_CFLAGS = -Wdouble-promotion
  28. GF_CXXFLAGS = -Wno-array-bounds
  29. ifeq ($(shell expr $(GF_CC_VER) \>= 070100), 1)
  30. GF_CXXFLAGS += -Wno-format-truncation
  31. endif
  32. ifeq ($(shell expr $(GF_CC_VER) \>= 080100), 1)
  33. GF_CXXFLAGS += -Wextra-semi
  34. endif
  35. endif