build: refactor compiler_warnings.m4 macro

NM_COMPILER_WARNINGS still works the same, but
rename variables to have a CFLAGS_* prefix.

Also cleanup the construction of CFLAGS by appending
to CFLAGS_MORE_WARNINGS variable instead of appending
to CFLAGS, and resetting to SAVE_CFLAGS.

Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
Thomas Haller
2014-10-29 11:52:47 +01:00
parent b77567b225
commit dd243ceefe

View File

@@ -5,24 +5,22 @@ AC_DEFUN([NM_COMPILER_WARNINGS],
AC_MSG_CHECKING(for more warnings) AC_MSG_CHECKING(for more warnings)
if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
AC_MSG_RESULT(yes) 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 clang only warns about unknown warnings, unless
dnl called with "-Werror=unknown-warning-option" dnl called with "-Werror=unknown-warning-option"
dnl Test if the compiler supports that, and if it does dnl Test if the compiler supports that, and if it does
dnl attach it to the CFLAGS. dnl attach it to the CFLAGS.
SAVE_CFLAGS="$CFLAGS" CFLAGS_EXTRA="-Werror=unknown-warning-option"
EXTRA_CFLAGS="-Werror=unknown-warning-option" CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS_EXTRA $CFLAGS_SAVED"
CFLAGS="$SAVE_CFLAGS $EXTRA_CFLAGS"
AC_TRY_COMPILE([], [], AC_TRY_COMPILE([], [],
has_option=yes, has_option=yes,
has_option=no,) has_option=no,)
if test $has_option = no; then if test $has_option = no; then
EXTRA_CFLAGS= CFLAGS_EXTRA=
fi fi
CFLAGS="$SAVE_CFLAGS"
unset has_option unset has_option
unset SAVE_CFLAGS
for option in -Wshadow -Wmissing-declarations -Wmissing-prototypes \ for option in -Wshadow -Wmissing-declarations -Wmissing-prototypes \
-Wdeclaration-after-statement -Wformat-security \ -Wdeclaration-after-statement -Wformat-security \
@@ -31,26 +29,24 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
-Wundef -Wimplicit-function-declaration \ -Wundef -Wimplicit-function-declaration \
-Wpointer-arith -Winit-self \ -Wpointer-arith -Winit-self \
-Wmissing-include-dirs -Waggregate-return; do -Wmissing-include-dirs -Waggregate-return; do
SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS_EXTRA $option $CFLAGS_SAVED"
CFLAGS="$CFLAGS $EXTRA_CFLAGS $option"
AC_MSG_CHECKING([whether gcc understands $option]) AC_MSG_CHECKING([whether gcc understands $option])
AC_TRY_COMPILE([], [], AC_TRY_COMPILE([], [],
has_option=yes, has_option=yes,
has_option=no,) has_option=no,)
if test $has_option = no; then if test $has_option != no; then
CFLAGS="$SAVE_CFLAGS" CFLAGS_MORE_WARNINGS="$CFLAGS_MORE_WARNINGS $option"
else
CFLAGS="$SAVE_CFLAGS $option"
fi fi
AC_MSG_RESULT($has_option) AC_MSG_RESULT($has_option)
unset has_option unset has_option
unset SAVE_CFLAGS
done done
unset option unset option
unset EXTRA_CFLAGS unset CFLAGS_EXTRA
if test "x$set_more_warnings" = xerror; then if test "x$set_more_warnings" = xerror; then
CFLAGS="$CFLAGS -Werror" CFLAGS_MORE_WARNINGS="$CFLAGS_MORE_WARNINGS -Werror"
fi fi
CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS_SAVED"
unset CFLAGS_SAVED
else else
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
fi fi