summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2016-08-25 11:51:00 +0100
committerRichard Hughes <richard@hughsie.com>2016-08-25 12:35:00 +0100
commit179a82be50cbedcd32e36841a1c80fd6c288bcfa (patch)
treef555214ba160d777b4bb3831dca3f0a79592788a
parent72ccf9f3b2f45dcb75590f9eb8b4d2cdfbfd676d (diff)
downloadappstream-glib-179a82be50cbedcd32e36841a1c80fd6c288bcfa.tar.gz
Do not use the deprecated GNOME_COMPILE_WARNINGS
-rw-r--r--configure.ac56
-rw-r--r--m4/gnome-compiler-flags.m4184
2 files changed, 39 insertions, 201 deletions
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]])