ifneq ($(filter 4.%,$(GCCVERSION)),) GCC4=1 endif LDFLAGS += -Wl,--warn-common CFLAGS := -g # Use pipes and not temp files. CFLAGS += -pipe # optimize even more CFLAGS += -O2 # let the type char be unsigned by default CFLAGS += -funsigned-char CFLAGS += -fstrict-aliasing # turn on all common warnings CFLAGS += -Wall # turn on extra warnings CFLAGS += $(if $(GCC4),-Wextra,-W) # treat warnings as errors #CFLAGS += -Werror CFLAGS += -Wchar-subscripts # warn about undefined preprocessor identifiers CFLAGS += -Wundef # warn about local variable shadowing another local variable CFLAGS += -Wshadow # warn about casting of pointers to increased alignment requirements CFLAGS += -Wcast-align # make string constants const CFLAGS += -Wwrite-strings # warn about implicit conversions with side effects # fgets, calloc and friends take an int, not size_t... #CFLAGS += -Wconversion # warn about comparisons between signed and unsigned values CFLAGS += -Wsign-compare # warn about unused declared stuff CFLAGS += -Wunused # don not warn about unused return value CFLAGS += -Wno-unused-value # warn about variable use before initialization CFLAGS += -Wuninitialized # warn about pointer arithmetic on void* and function pointers CFLAGS += -Wpointer-arith # warn about multiple declarations CFLAGS += -Wredundant-decls # warn if the format string is not a string literal CFLAGS += -Wformat-nonliteral