Use the GIT_CC_CHECK_FLAGS_APPEND autoconf macro for add in a portable way the new configure option --enable-gcc-warnings (default off). Signed-off-by: Elia Pinto <gitter.spiros@xxxxxxxxx> --- Makefile | 12 ++++++-- configure.ac | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 103 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 23485f1..9db34e2 100644 --- a/Makefile +++ b/Makefile @@ -344,11 +344,9 @@ GIT-VERSION-FILE: FORCE @$(SHELL_PATH) ./GIT-VERSION-GEN -include GIT-VERSION-FILE -GIT_CFLAGS = -GIT_LDFLAGS = # CFLAGS and LDFLAGS are for the users to override from the command line. -CFLAGS = -g -O2 -Wall $(GIT_CFLAGS) +CFLAGS = -g -O2 -Wall LDFLAGS = $(GIT_LDFLAGS) ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS) ALL_LDFLAGS = $(LDFLAGS) @@ -1517,6 +1515,14 @@ ifdef DEFAULT_HELP_FORMAT BASIC_CFLAGS += -DDEFAULT_HELP_FORMAT='"$(DEFAULT_HELP_FORMAT)"' endif +ifdef GIT_CFLAGS +BASIC_CFLAGS += $(GIT_CFLAGS) +endif + +ifdef GIT_LDFLAGS +BASIC_LDFLAGS += $(GIT_LDFLAGS) +endif + ALL_CFLAGS += $(BASIC_CFLAGS) ALL_LDFLAGS += $(BASIC_LDFLAGS) diff --git a/configure.ac b/configure.ac index c67ca60..95d5d10 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# -*- Autoconf -*- +# -*- Autoconf -*- \ # Process this file with autoconf to produce a configure script. ## Definitions of private macros. @@ -433,7 +433,99 @@ AS_HELP_STRING([],[ARG is the full path to the Tcl/Tk interpreter.]) AS_HELP_STRING([],[Bare --with-tcltk will make the GUI part only if]) AS_HELP_STRING([],[Tcl/Tk interpreter will be found in a system.]), GIT_PARSE_WITH(tcltk)) -# + + +# Turn gcc warning + +AC_ARG_ENABLE([gcc-warnings], + [AS_HELP_STRING([--enable-gcc-warnings], + [turn on GCC warnings (for developers)@<:@default=no@:>@])], + [case $enableval in + yes|no) ;; + *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;; + esac + git_gcc_warnings=$enableval], + [git_gcc_warnings=no] +) + +AS_IF([test "x$git_gcc_warnings" = xyes ],[ +# Add/Delete as needed +GIT_CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ + -Wall \ + -Wextra \ + -Wformat-y2k \ + -fdiagnostics-show-option \ + -funit-at-a-time \ + -fstrict-aliasing \ + -Wstrict-overflow \ + -fstrict-overflow \ + -Wpointer-arith \ + -Wundef \ + -Wformat-security \ + -Winit-self \ + -Wmissing-include-dirs \ + -Wunused \ + -Wunknown-pragmas \ + -Wstrict-aliasing \ + -Wshadow \ + -Wbad-function-cast \ + -Wcast-align \ + -Wwrite-strings \ + -Wlogical-op \ + -Waggregate-return \ + -Wstrict-prototypes \ + -Wold-style-definition \ + -Wmissing-prototypes \ + -Wmissing-declarations \ + -Wmissing-noreturn \ + -Wmissing-format-attribute \ + -Wredundant-decls \ + -Wnested-externs \ + -Winline \ + -Winvalid-pch \ + -Wvolatile-register-var \ + -Wdisabled-optimization \ + -Wbuiltin-macro-redefined \ + -Wmudflap \ + -Wpacked-bitfield-compat \ + -Wsync-nand \ + -Wattributes \ + -Wcoverage-mismatch \ + -Wmultichar \ + -Wcpp \ + -Wdeprecated-declarations \ + -Wdiv-by-zero \ + -Wdouble-promotion \ + -Wendif-labels \ + -Wformat-contains-nul \ + -Wformat-extra-args \ + -Wformat-zero-length \ + -Wformat=2 \ + -Wmultichar \ + -Wnormalized=nfc \ + -Woverflow \ + -Wpointer-to-int-cast \ + -Wpragmas \ + -Wsuggest-attribute=const \ + -Wsuggest-attribute=noreturn \ + -Wsuggest-attribute=pure \ + -Wtrampolines \ + -Wno-missing-field-initializers \ + -Wno-sign-compare \ + -Wjump-misses-init \ + -Wno-format-nonliteral \ + -fstack-protector-all \ + -fasynchronous-unwind-tables \ + -fdiagnostics-show-option \ + -funit-at-a-time \ + -fipa-pure-const \ + -Wno-aggregate-return \ + -Wno-redundant-decls \ + -Wdeclaration-after-statement ]) + +GIT_CONF_SUBST([GIT_CFLAGS],[$with_cflags]) +]) + ## Checks for programs. -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html