test that the compiler support -Werror=statement-after-declaration before using it
diff --git a/configure.ac b/configure.ac
index 647de88..c9f54dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1127,8 +1127,6 @@
 # tweak BASECFLAGS based on compiler and platform
 case $GCC in
 yes)
-    BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
-
     # Python doesn't violate C99 aliasing rules, but older versions of
     # GCC produce warnings for legal Python code.  Enable
     # -fno-strict-aliasing on versions of GCC that support but produce
@@ -1186,6 +1184,28 @@
       BASECFLAGS="$BASECFLAGS -Wno-unused-result"
     fi
 
+    AC_MSG_CHECKING(for -Werror=declaration-after-statement)
+     ac_save_cc="$CC"
+     CC="$CC -Werror=declaration-after-statement"
+     save_CFLAGS="$CFLAGS"
+     AC_CACHE_VAL(ac_cv_declaration_after_statement_warning,
+       AC_COMPILE_IFELSE(
+         [
+	   AC_LANG_PROGRAM([[]], [[]])
+	 ],[
+           ac_cv_declaration_after_statement_warning=yes
+	 ],[
+           ac_cv_declaration_after_statement_warning=no
+	 ]))
+     CFLAGS="$save_CFLAGS"
+     CC="$ac_save_cc"
+    AC_MSG_RESULT($ac_cv_declaration_after_statement_warning)
+
+    if test $ac_cv_declaration_after_statement_warning = yes
+    then
+      BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
+    fi
+
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow
     # the standard.