diff options
-rw-r--r-- | config/lf_warnings.m4 | 42 | ||||
-rw-r--r-- | configure.ac | 18 |
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 |