From 388abc8da65c364bab5d669cc9e369942e34db69 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Fri, 18 May 2012 18:59:25 +0200 Subject: [PATCH] build: by default compile with most warnings enabled and -Werror --- configure.ac | 3 +++ m4/compiler-warnings.m4 | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 m4/compiler-warnings.m4 diff --git a/configure.ac b/configure.ac index be71f79..43e67a8 100644 --- a/configure.ac +++ b/configure.ac @@ -23,6 +23,9 @@ dnl Initialize libtool LT_PREREQ([2.2]) LT_INIT +dnl Specific warnings to always use +LIBQMI_GLIB_COMPILER_WARNINGS + dnl General dependencies PKG_CHECK_MODULES(LIBQMI_GLIB, glib-2.0 >= 2.28 diff --git a/m4/compiler-warnings.m4 b/m4/compiler-warnings.m4 new file mode 100644 index 0000000..5cc3a38 --- /dev/null +++ b/m4/compiler-warnings.m4 @@ -0,0 +1,31 @@ +AC_DEFUN([LIBQMI_GLIB_COMPILER_WARNINGS], +[AC_ARG_ENABLE(more-warnings, + AS_HELP_STRING([--enable-more-warnings], [Maximum compiler warnings]), + set_more_warnings="$enableval",set_more_warnings=yes) +AC_MSG_CHECKING(for more warnings, including -Werror) +if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + AC_MSG_RESULT(yes) + CFLAGS="-Wall -Werror -std=gnu89 $CFLAGS" + + for option in -Wmissing-declarations -Wmissing-prototypes \ + -Wdeclaration-after-statement -Wstrict-prototypes \ + -fno-strict-aliasing -Wno-deprecated-declarations \ + -Wint-to-pointer-cast; do + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + if test $has_option = no; then + CFLAGS="$SAVE_CFLAGS" + fi + AC_MSG_RESULT($has_option) + unset has_option + unset SAVE_CFLAGS + done + unset option +else + AC_MSG_RESULT(no) +fi +])