autotools: move -W flags to configure detection
This lets us use the flags with clang, and to add more flags easily.
Change-Id: I51bb53ffd5ab6da769cdfb422a2c88442f1ff9ad
Reviewed-on: https://chromium-review.googlesource.com/441864
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
diff --git a/configure.ac b/configure.ac
index c2dc7b3..8dd855d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,7 +28,7 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-AC_PREREQ(2.57)
+AC_PREREQ(2.64)
AC_INIT(breakpad, 0.1, google-breakpad-dev@googlegroups.com)
dnl Sanity check: the argument is just a file that should exist.
@@ -48,7 +48,6 @@
AC_PROG_CPP
AC_PROG_CXX
AC_PROG_RANLIB
-AM_CONDITIONAL(GCC, test "$GCC" = yes) # let the Makefile know if we're gcc
dnl This must come before all the feature tests below.
AC_ARG_ENABLE(m32,
@@ -77,6 +76,29 @@
AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
+dnl Test supported warning flags.
+WARN_CXXFLAGS=
+dnl This warning flag is used by clang. Its default behavior is to warn when
+dnl given an unknown flag rather than error out.
+AC_LANG_PUSH([C++])
+AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[
+ ax_compiler_flags_test="-Werror=unknown-warning-option"
+],[
+ ax_compiler_flags_test=""
+])
+AX_APPEND_COMPILE_FLAGS(m4_flatten([
+ -Wmissing-braces
+ -Wnon-virtual-dtor
+ -Woverloaded-virtual
+ -Wreorder
+ -Wsign-compare
+ -Wunused-variable
+ -Wvla
+]), [WARN_CXXFLAGS], [${ax_compiler_flags_test}])
+AS_VAR_APPEND([WARN_CXXFLAGS], " -Werror")
+AC_LANG_POP([C++])
+AC_SUBST([WARN_CXXFLAGS])
+
# Only build Linux client libs when compiling for Linux
case $host in
*-*-linux* | *-android* )