diff options
-rw-r--r-- | m4/compiler_warnings.m4 | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/m4/compiler_warnings.m4 b/m4/compiler_warnings.m4 index 0512ba1e0..79d2cbfe9 100644 --- a/m4/compiler_warnings.m4 +++ b/m4/compiler_warnings.m4 @@ -5,24 +5,22 @@ AC_DEFUN([NM_COMPILER_WARNINGS], AC_MSG_CHECKING(for more warnings) if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then AC_MSG_RESULT(yes) - CFLAGS="-Wall -std=gnu89 $CFLAGS" + CFLAGS_SAVED="$CFLAGS" + CFLAGS_MORE_WARNINGS="-Wall -std=gnu89" dnl clang only warns about unknown warnings, unless dnl called with "-Werror=unknown-warning-option" dnl Test if the compiler supports that, and if it does dnl attach it to the CFLAGS. - SAVE_CFLAGS="$CFLAGS" - EXTRA_CFLAGS="-Werror=unknown-warning-option" - CFLAGS="$SAVE_CFLAGS $EXTRA_CFLAGS" + CFLAGS_EXTRA="-Werror=unknown-warning-option" + CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS_EXTRA $CFLAGS_SAVED" AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) if test $has_option = no; then - EXTRA_CFLAGS= + CFLAGS_EXTRA= fi - CFLAGS="$SAVE_CFLAGS" unset has_option - unset SAVE_CFLAGS for option in -Wshadow -Wmissing-declarations -Wmissing-prototypes \ -Wdeclaration-after-statement -Wformat-security \ @@ -31,26 +29,24 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then -Wundef -Wimplicit-function-declaration \ -Wpointer-arith -Winit-self \ -Wmissing-include-dirs -Waggregate-return; do - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $EXTRA_CFLAGS $option" + CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS_EXTRA $option $CFLAGS_SAVED" 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" - else - CFLAGS="$SAVE_CFLAGS $option" + if test $has_option != no; then + CFLAGS_MORE_WARNINGS="$CFLAGS_MORE_WARNINGS $option" fi AC_MSG_RESULT($has_option) unset has_option - unset SAVE_CFLAGS done unset option - unset EXTRA_CFLAGS + unset CFLAGS_EXTRA if test "x$set_more_warnings" = xerror; then - CFLAGS="$CFLAGS -Werror" + CFLAGS_MORE_WARNINGS="$CFLAGS_MORE_WARNINGS -Werror" fi + CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS_SAVED" + unset CFLAGS_SAVED else AC_MSG_RESULT(no) fi |