config.mak.dev 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. ifeq ($(filter no-error,$(DEVOPTS)),)
  2. DEVELOPER_CFLAGS += -Werror
  3. endif
  4. ifneq ($(filter pedantic,$(DEVOPTS)),)
  5. DEVELOPER_CFLAGS += -pedantic
  6. # don't warn for each N_ use
  7. DEVELOPER_CFLAGS += -DUSE_PARENS_AROUND_GETTEXT_N=0
  8. endif
  9. DEVELOPER_CFLAGS += -Wall
  10. DEVELOPER_CFLAGS += -Wdeclaration-after-statement
  11. DEVELOPER_CFLAGS += -Wformat-security
  12. DEVELOPER_CFLAGS += -Wold-style-definition
  13. DEVELOPER_CFLAGS += -Woverflow
  14. DEVELOPER_CFLAGS += -Wpointer-arith
  15. DEVELOPER_CFLAGS += -Wstrict-prototypes
  16. DEVELOPER_CFLAGS += -Wunused
  17. DEVELOPER_CFLAGS += -Wvla
  18. ifndef COMPILER_FEATURES
  19. COMPILER_FEATURES := $(shell ./detect-compiler $(CC))
  20. endif
  21. ifneq ($(filter clang4,$(COMPILER_FEATURES)),)
  22. DEVELOPER_CFLAGS += -Wtautological-constant-out-of-range-compare
  23. endif
  24. ifneq ($(or $(filter gcc6,$(COMPILER_FEATURES)),$(filter clang4,$(COMPILER_FEATURES))),)
  25. DEVELOPER_CFLAGS += -Wextra
  26. # if a function is public, there should be a prototype and the right
  27. # header file should be included. If not, it should be static.
  28. DEVELOPER_CFLAGS += -Wmissing-prototypes
  29. ifeq ($(filter extra-all,$(DEVOPTS)),)
  30. # These are disabled because we have these all over the place.
  31. DEVELOPER_CFLAGS += -Wno-empty-body
  32. DEVELOPER_CFLAGS += -Wno-missing-field-initializers
  33. DEVELOPER_CFLAGS += -Wno-sign-compare
  34. DEVELOPER_CFLAGS += -Wno-unused-parameter
  35. endif
  36. endif
  37. # uninitialized warnings on gcc 4.9.2 in xdiff/xdiffi.c and config.c
  38. # not worth fixing since newer compilers correctly stop complaining
  39. ifneq ($(filter gcc4,$(COMPILER_FEATURES)),)
  40. ifeq ($(filter gcc5,$(COMPILER_FEATURES)),)
  41. DEVELOPER_CFLAGS += -Wno-uninitialized
  42. endif
  43. endif