done
])
+ # Disable strict-aliasing optimizations
+ AMANDA_DISABLE_GCC_FEATURE(strict-aliasing)
+
# Warn for just about everything
- AMANDA_TEST_GCC_WARNING_FLAG(-Wall, [
- AMANDA_ADD_WARNING_CFLAG(-Wall)
- ])
+ AMANDA_ENABLE_GCC_WARNING(all)
# And add any extra warnings too
- AMANDA_TEST_GCC_WARNING_FLAG(-Wextra, [
+ AMANDA_TEST_GCC_FLAG(-Wextra, [
AMANDA_ADD_WARNING_CFLAG(-Wextra)
], [
- AMANDA_TEST_GCC_WARNING_FLAG(-W, [
+ AMANDA_TEST_GCC_FLAG(-W, [
AMANDA_ADD_WARNING_CFLAG(-W)
])
])
[LIBS="$1 $LIBS"]
)
+# SYNOPSIS
+#
+# AMANDA_DISABLE_GCC_FEATURE(feature)
+#
+# OVERVIEW
+#
+# Disable feature 'feature' by adding flag -Wno-'feature' to
+# AMANDA_FEATURE_CFLAGS.
+#
+AC_DEFUN([AMANDA_DISABLE_GCC_FEATURE],
+[
+ # test for -W'feature', then add the 'no-' version.
+ AMANDA_TEST_GCC_FLAG(-f$1,
+ [
+ AMANDA_ADD_CFLAGS(-fno-$1)
+ AMANDA_ADD_CPPFLAGS(-fno-$1)
+ ])
+])
+
# SYNOPSIS
#
# AMANDA_ADD_WARNING_CFLAG(flag)
#
AC_DEFUN([AMANDA_ENABLE_GCC_WARNING],
[
- AMANDA_TEST_GCC_WARNING_FLAG(-W$1,
+ AMANDA_TEST_GCC_FLAG(-W$1,
[
AMANDA_ADD_WARNING_CFLAG(-W$1)
])
AC_DEFUN([AMANDA_DISABLE_GCC_WARNING],
[
# test for -W'warning', then add the 'no-' version.
- AMANDA_TEST_GCC_WARNING_FLAG(-W$1,
+ AMANDA_TEST_GCC_FLAG(-W$1,
[
AMANDA_ADD_WARNING_CFLAG(-Wno-$1)
])
# SYNOPSIS
#
-# AMANDA_TEST_GCC_WARNING_FLAG(flag, action-if-found, action-if-not-found)
+# AMANDA_TEST_GCC_FLAG(flag, action-if-found, action-if-not-found)
#
# OVERVIEW
#
#
# Intended for internal use in this file.
#
-AC_DEFUN([AMANDA_TEST_GCC_WARNING_FLAG],
+AC_DEFUN([AMANDA_TEST_GCC_FLAG],
[
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_EGREP])
AC_MSG_CHECKING(for gcc flag $1)
if test "x$GCC" = "xyes"; then
changequote(,)dnl
- $CC -v --help 2>&1 | $EGREP -- '[^[:alnum:]]$1[^[:alnum:]-]' 2>&1 > /dev/null
+ (gcc --help={target,optimizers,warnings,undocumented,params,c} 2>&1 ||
+ $CC -v --help 2>&1) |
+ $EGREP -- '[^[:alnum:]]$1[^[:alnum:]-]' 2>&1 > /dev/null
changequote([,])dnl
if test $? -eq 0; then
found_warning=yes