summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/lf_warnings.m442
-rw-r--r--configure.ac18
2 files changed, 28 insertions, 32 deletions
diff --git a/config/lf_warnings.m4 b/config/lf_warnings.m4
index 4e2ca9111..e18288013 100644
--- a/config/lf_warnings.m4
+++ b/config/lf_warnings.m4
@@ -97,32 +97,32 @@ EOF
])
# ----------------------------------------------------------------------
-# Provide the configure script with an --with-warnings option that
-# turns on warnings. Call this command AFTER you have configured ALL your
+# Enable compiler warnings. Conditionally enable -Werror.
+# Call this command AFTER you have configured ALL your
# compilers.
# ----------------------------------------------------------------------
AC_DEFUN([LF_SET_WARNINGS],[
- dnl Check for --with-warnings
- AC_MSG_CHECKING([whether user wants warnings])
- AC_ARG_WITH(warnings,
- [ --with-warnings Turn on warnings],
- [ lf_warnings=yes ], [ lf_warnings=no ])
- lf_warnings=yes # hard code for now -eb
- AC_MSG_RESULT($lf_warnings)
-
+ lf_warnings_as_errors=""
+ AC_ARG_ENABLE([warnings-as-errors],
+ AC_HELP_STRING([--enable-warnings-as-errors], [Treat compiler warnings as errors (no)]),
+ [case "$enableval" in
+ (no) ;;
+ (yes) lf_warnings_as_errors="-Werror" ;;
+ (*) AC_MSG_ERROR([Invalid argument ($enableval) to --enable-warnings-as-errors]) ;;
+ esac],
+ [])
+
dnl Warnings for the two main compilers
- cc_warning_flags="-Wall"
- cxx_warning_flags="-Wall -Woverloaded-virtual"
- if test $lf_warnings = yes
+ dnl add -Wextra when you're got time to fix a bunch of them ;-)
+ cc_warning_flags="-Wall $lf_warnings_as_errors"
+ cxx_warning_flags="-Wall -Woverloaded-virtual $lf_warnings_as_errors"
+ if test -n "${CC}"
then
- if test -n "${CC}"
- then
- LF_CHECK_CC_FLAG($cc_warning_flags)
- fi
- if test -n "${CXX}"
- then
- LF_CHECK_CXX_FLAG($cxx_warning_flags)
- fi
+ LF_CHECK_CC_FLAG($cc_warning_flags)
+ fi
+ if test -n "${CXX}"
+ then
+ LF_CHECK_CXX_FLAG($cxx_warning_flags)
fi
])
diff --git a/configure.ac b/configure.ac
index 003e6e3a1..bae9f344f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,13 +40,6 @@ LF_CONFIGURE_CC
LF_CONFIGURE_CXX
GR_LIB64 dnl check for lib64 suffix after choosing compilers
-cxx_warnings_as_errors=""
-AC_ARG_ENABLE(
- [warnings-as-errors],
- [--enable-warnings-as-errors Treat compiler warnings as errors],
- [cxx_warnings_as_errors="-Werror"]
-)
-
dnl The three macros above are known to override CXXFLAGS if the user
dnl didn't specify them. Though I'm sure somebody thought this was
dnl a good idea, it makes it hard to use other than -g -O2 when compiling
@@ -57,16 +50,15 @@ dnl the output of swig use use -O1 if we're using g++.
dnl See Makefile.common for the rest of the magic.
if test "$user_set_cxxflags" != yes; then
autoconf_default_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS=$cxx_warnings_as_errors
if test "$GXX" = yes; then
case "$host_cpu" in
powerpc*)
dnl "-O1" is broken on the PPC for some reason
dnl (at least as of g++ 4.1.1)
- swig_CXXFLAGS="-g1 -O2 -Wno-strict-aliasing"
+ swig_CXXFLAGS="-g1 -O2 -Wno-strict-aliasing -Wno-parentheses"
;;
*)
- swig_CXXFLAGS="-g -O1 -Wno-strict-aliasing"
+ swig_CXXFLAGS="-g -O1 -Wno-strict-aliasing -Wno-parentheses"
;;
esac
fi
@@ -84,7 +76,6 @@ fi
export PKG_CONFIG_PATH
-LF_SET_WARNINGS
GR_SET_GPROF
GR_SET_PROF
AM_PROG_AS
@@ -336,6 +327,11 @@ AC_CONFIG_FILES([\
dnl run_tests.sh is created from run_tests.sh.in . Make it executable.
AC_CONFIG_COMMANDS([run_tests_build], [chmod +x run_tests.sh])
+dnl Enable warnings as the last thing before generating output, since
+dnl this may add -Werror to CFLAGS which can cause various configure
+dnl checks to fail.
+LF_SET_WARNINGS
+
AC_OUTPUT
echo