From 179a82be50cbedcd32e36841a1c80fd6c288bcfa Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Thu, 25 Aug 2016 11:51:00 +0100 Subject: Do not use the deprecated GNOME_COMPILE_WARNINGS --- configure.ac | 56 +++++++++----- m4/gnome-compiler-flags.m4 | 184 --------------------------------------------- 2 files changed, 39 insertions(+), 201 deletions(-) delete mode 100644 m4/gnome-compiler-flags.m4 diff --git a/configure.ac b/configure.ac index e87ddcd..77e53ef 100644 --- a/configure.ac +++ b/configure.ac @@ -65,30 +65,52 @@ AC_HEADER_STDC LT_INIT AM_PROG_CC_C_O -GNOME_COMPILE_WARNINGS([maximum],[ - -Wmissing-declarations +WARN_CFLAGS_EXTRA=" + -Waggregate-return + -Warray-bounds -Wcast-align - -Wwrite-strings - -Wreturn-type - -Wformat-nonliteral - -Wmissing-format-attribute -Wclobbered + -Wconversion + -Wdeclaration-after-statement -Wempty-body + -Wextra + -Wformat=2 + -Wformat-nonliteral + -Wformat-security + -Wformat-signedness -Wignored-qualifiers - -Wsign-compare - -Wtype-limits - -Wuninitialized - -Waggregate-return - -Wdeclaration-after-statement - -Wshadow - -Wno-strict-aliasing + -Wimplicit-function-declaration + -Winit-self -Winline + -Wmissing-declarations + -Wmissing-format-attribute + -Wmissing-include-dirs + -Wmissing-noreturn -Wmissing-parameter-type - -Woverride-init + -Wmissing-prototypes + -Wnested-externs -Wno-discarded-qualifiers - -Wconversion - -Wformat-signedness -]) + -Wno-missing-field-initializers + -Wno-strict-aliasing + -Wno-suggest-attribute=format + -Wno-unused-parameter + -Wold-style-definition + -Woverride-init + -Wpacked + -Wpointer-arith + -Wredundant-decls + -Wreturn-type + -Wshadow + -Wsign-compare + -Wstrict-aliasing + -Wstrict-prototypes + -Wswitch-default + -Wtype-limits + -Wundef + -Wuninitialized + -Wunused-but-set-variable + -Wwrite-strings" +AX_APPEND_COMPILE_FLAGS([$WARN_CFLAGS_EXTRA], [WARN_CFLAGS]) # internationalization AM_GNU_GETTEXT([external]) diff --git a/m4/gnome-compiler-flags.m4 b/m4/gnome-compiler-flags.m4 deleted file mode 100644 index 49ebb95..0000000 --- a/m4/gnome-compiler-flags.m4 +++ /dev/null @@ -1,184 +0,0 @@ -# gnome-compiler-flags.m4 -# -# serial 4 -# - -dnl GNOME_COMPILE_WARNINGS -dnl Turn on many useful compiler warnings and substitute the result into -dnl WARN_CFLAGS -dnl For now, only works on GCC -dnl Pass the default value of the --enable-compile-warnings configure option as -dnl the first argument to the macro, defaulting to 'yes'. -dnl Additional warning/error flags can be passed as an optional second argument. -dnl -dnl For example: GNOME_COMPILE_WARNINGS([maximum],[-Werror=some-flag -Wfoobar]) -AU_DEFUN([GNOME_COMPILE_WARNINGS],[ - dnl ****************************** - dnl More compiler warnings - dnl ****************************** - - AC_ARG_ENABLE(compile-warnings, - AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], - [Turn on compiler warnings]),, - [enable_compile_warnings="m4_default([$1],[yes])"]) - - if test "x$GCC" != xyes; then - enable_compile_warnings=no - fi - - warning_flags= - realsave_CFLAGS="$CFLAGS" - - dnl These are warning flags that aren't marked as fatal. Can be - dnl overridden on a per-project basis with -Wno-foo. - base_warn_flags=" \ - -Wall \ - -Wstrict-prototypes \ - -Wnested-externs \ - " - - dnl These compiler flags typically indicate very broken or suspicious - dnl code. Some of them such as implicit-function-declaration are - dnl just not default because gcc compiles a lot of legacy code. - dnl We choose to make this set into explicit errors. - base_error_flags=" \ - -Werror=missing-prototypes \ - -Werror=implicit-function-declaration \ - -Werror=pointer-arith \ - -Werror=init-self \ - -Werror=format-security \ - -Werror=format=2 \ - -Werror=missing-include-dirs \ - -Werror=return-type \ - " - - dnl Additional warning or error flags provided by the module author to - dnl allow stricter standards to be imposed on a per-module basis. - dnl The author can pass -W or -Werror flags here as they see fit. - additional_flags="m4_default([$2],[])" - - case "$enable_compile_warnings" in - no) - warning_flags="-w" - ;; - minimum) - warning_flags="-Wall" - ;; - yes|maximum|error) - warning_flags="$base_warn_flags $base_error_flags $additional_flags" - ;; - *) - AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) - ;; - esac - - if test "$enable_compile_warnings" = "error" ; then - warning_flags="$warning_flags -Werror" - fi - - dnl Check whether GCC supports the warning options - for option in $warning_flags; do - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $option" - AC_MSG_CHECKING([whether gcc understands $option]) - AC_TRY_COMPILE([], [], - has_option=yes, - has_option=no,) - CFLAGS="$save_CFLAGS" - AC_MSG_RESULT([$has_option]) - if test $has_option = yes; then - tested_warning_flags="$tested_warning_flags $option" - fi - unset has_option - unset save_CFLAGS - done - unset option - CFLAGS="$realsave_CFLAGS" - AC_MSG_CHECKING(what warning flags to pass to the C compiler) - AC_MSG_RESULT($tested_warning_flags) - - AC_ARG_ENABLE(iso-c, - AS_HELP_STRING([--enable-iso-c], - [Try to warn if code is not ISO C ]),, - [enable_iso_c=no]) - - AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) - complCFLAGS= - if test "x$enable_iso_c" != "xno"; then - if test "x$GCC" = "xyes"; then - case " $CFLAGS " in - *[\ \ ]-ansi[\ \ ]*) ;; - *) complCFLAGS="$complCFLAGS -ansi" ;; - esac - case " $CFLAGS " in - *[\ \ ]-pedantic[\ \ ]*) ;; - *) complCFLAGS="$complCFLAGS -pedantic" ;; - esac - fi - fi - AC_MSG_RESULT($complCFLAGS) - - WARN_CFLAGS="$tested_warning_flags $complCFLAGS" - AC_SUBST(WARN_CFLAGS) -], -[[$0: This macro is deprecated. You should use AX_COMPILER_FLAGS instead and -eliminate use of --enable-iso-c. -See: http://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html#ax_compiler_flags]]) - -dnl For C++, do basically the same thing. - -AU_DEFUN([GNOME_CXX_WARNINGS],[ - AC_ARG_ENABLE(cxx-warnings, - AS_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] - [Turn on compiler warnings.]),, - [enable_cxx_warnings="m4_default([$1],[minimum])"]) - - AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) - warnCXXFLAGS= - if test "x$GXX" != xyes; then - enable_cxx_warnings=no - fi - if test "x$enable_cxx_warnings" != "xno"; then - if test "x$GXX" = "xyes"; then - case " $CXXFLAGS " in - *[\ \ ]-Wall[\ \ ]*) ;; - *) warnCXXFLAGS="-Wall -Wno-unused" ;; - esac - - ## -W is not all that useful. And it cannot be controlled - ## with individual -Wno-xxx flags, unlike -Wall - if test "x$enable_cxx_warnings" = "xyes"; then - warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" - fi - fi - fi - AC_MSG_RESULT($warnCXXFLAGS) - - AC_ARG_ENABLE(iso-cxx, - AS_HELP_STRING([--enable-iso-cxx], - [Try to warn if code is not ISO C++ ]),, - [enable_iso_cxx=no]) - - AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) - complCXXFLAGS= - if test "x$enable_iso_cxx" != "xno"; then - if test "x$GXX" = "xyes"; then - case " $CXXFLAGS " in - *[\ \ ]-ansi[\ \ ]*) ;; - *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; - esac - - case " $CXXFLAGS " in - *[\ \ ]-pedantic[\ \ ]*) ;; - *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; - esac - fi - fi - AC_MSG_RESULT($complCXXFLAGS) - - WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" - AC_SUBST(WARN_CXXFLAGS) -], -[[$0: This macro is deprecated. You should use AX_COMPILER_FLAGS instead and -eliminate use of --enable-iso-cxx. -See: http://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html#ax_compiler_flags]]) -- cgit v1.2.1