fixed --enable-warnings-as-errors
authoreb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>
Sun, 31 Aug 2008 23:00:30 +0000 (23:00 +0000)
committereb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>
Sun, 31 Aug 2008 23:00:30 +0000 (23:00 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9474 221aa14e-8319-0410-a670-987f0aec2ac5

config/lf_warnings.m4
configure.ac

index 4e2ca9111736a862f029f9e21d3117f16325f945..e18288013e0373c7ca8089de072cdde1d27f7d71 100644 (file)
@@ -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
 ])
index 003e6e3a17781b627867068172202ee5449a9631..bae9f344fa58936b7b99ce92d2dc30dcccd411f9 100644 (file)
@@ -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