Fix flag that clang knows nothing about.
[awesomized/libmemcached] / m4 / pandora_warnings.m4
index 7ef435ff23b329d257b15407fe776cc51aabebd1..91343dc84b8194d246ad2b14f1d15d153c363fac 100644 (file)
@@ -27,7 +27,6 @@ AC_DEFUN([PANDORA_WARNINGS],[
     ]) 
   ])
 
-  AC_REQUIRE([PANDORA_BUILDING_FROM_VC])
   m4_if(PW_WARN_ALWAYS_ON, [yes],
     [ac_cv_warnings_as_errors=yes],
     AS_IF([test "$pandora_building_from_vc" = "yes"],
@@ -75,8 +74,11 @@ AC_DEFUN([PANDORA_WARNINGS],[
 
 
         
-    AS_IF([test "$ac_cv_warnings_as_errors" = "yes"],
-          [W_FAIL="-Werror"])
+    AS_IF([test "$ac_cv_warnings_as_errors" = "yes"],[
+      W_FAIL="-Werror"
+      SPHINX_WARNINGS="-W -n"
+      INTLTOOL_WARNINGS="yes"
+    ])
 
     AC_CACHE_CHECK([whether it is safe to use -fdiagnostics-show-option],
       [ac_cv_safe_to_use_fdiagnostics_show_option_],
@@ -96,7 +98,7 @@ AC_DEFUN([PANDORA_WARNINGS],[
     AC_CACHE_CHECK([whether it is safe to use -floop-parallelize-all],
       [ac_cv_safe_to_use_floop_parallelize_all_],
       [save_CFLAGS="$CFLAGS"
-       CFLAGS="-floop-parallelize-all ${AM_CFLAGS} ${CFLAGS}"
+       CFLAGS="-Werror -floop-parallelize-all ${AM_CFLAGS} ${CFLAGS}"
        AC_COMPILE_IFELSE(
          [AC_LANG_PROGRAM([],[])],
          [ac_cv_safe_to_use_floop_parallelize_all_=yes],
@@ -127,7 +129,7 @@ AC_DEFUN([PANDORA_WARNINGS],[
       
     ],[
       m4_if(PW_LESS_WARNINGS,[no],[
-        BASE_WARNINGS_FULL="${W_CONVERSION} -Wstrict-aliasing"
+        BASE_WARNINGS_FULL="${W_CONVERSION} -Wstrict-aliasing -Wswitch-enum "
         CC_WARNINGS_FULL="-Wswitch-default -Wswitch-enum -Wwrite-strings"
         CXX_WARNINGS_FULL=""
         NO_OLD_STYLE_CAST="-Wno-old-style-cast"
@@ -153,7 +155,7 @@ AC_DEFUN([PANDORA_WARNINGS],[
         [ac_cv_safe_to_use_Wextra_=no])
       CFLAGS="$save_CFLAGS"])
 
-      BASE_WARNINGS="${W_FAIL} -pedantic -Wall -Wswitch-enum -Wundef -Wshadow ${NO_UNUSED} ${F_DIAGNOSTICS_SHOW_OPTION} ${F_LOOP_PARALLELIZE_ALL} ${BASE_WARNINGS_FULL}"
+      BASE_WARNINGS="${W_FAIL} -pedantic -Wall -Wundef -Wshadow -Wparentheses ${NO_UNUSED} ${F_DIAGNOSTICS_SHOW_OPTION} ${F_LOOP_PARALLELIZE_ALL} ${BASE_WARNINGS_FULL}"
       AS_IF([test "$ac_cv_safe_to_use_Wextra_" = "yes"],
             [BASE_WARNINGS="${BASE_WARNINGS} -Wextra"],
             [BASE_WARNINGS="${BASE_WARNINGS} -W"])
@@ -182,8 +184,8 @@ foo();
            [ac_cv_safe_to_use_wformat_=no])
          CFLAGS="$save_CFLAGS"])
       AS_IF([test "$ac_cv_safe_to_use_wformat_" = "yes"],[
-        BASE_WARNINGS="${BASE_WARNINGS} -Wformat -Wno-format-nonliteral -Wno-format-security"
-        BASE_WARNINGS_FULL="${BASE_WARNINGS_FULL} -Wformat=2 -Wno-format-nonliteral -Wno-format-security"
+        BASE_WARNINGS="${BASE_WARNINGS} -Wformat -Wno-format-nonliteral -Wformat-security"
+        BASE_WARNINGS_FULL="${BASE_WARNINGS_FULL} -Wformat=2 -Wno-format-nonliteral -Wformat-security"
         ],[
         BASE_WARNINGS="${BASE_WARNINGS} -Wno-format"
         BASE_WARNINGS_FULL="${BASE_WARNINGS_FULL} -Wno-format"
@@ -234,8 +236,8 @@ uint16_t x= htons(80);
               [NO_CONVERSION="-Wno-conversion"])
       ])
 
-      CC_WARNINGS="${BASE_WARNINGS} -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align ${CC_WARNINGS_FULL}"
-      CXX_WARNINGS="${BASE_WARNINGS} -Woverloaded-virtual -Wnon-virtual-dtor -Wctor-dtor-privacy -Wno-long-long ${CXX_WARNINGS_FULL}"
+      CC_WARNINGS="${BASE_WARNINGS} -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wsign-compare ${CC_WARNINGS_FULL}"
+      CXX_WARNINGS="${BASE_WARNINGS} -Woverloaded-virtual -Wnon-virtual-dtor -Wctor-dtor-privacy -Wno-long-long -Wsign-compare ${CXX_WARNINGS_FULL}"
 
       AC_CACHE_CHECK([whether it is safe to use -Wmissing-declarations from C++],
         [ac_cv_safe_to_use_Wmissing_declarations_],
@@ -275,22 +277,6 @@ uint16_t x= htons(80);
       AS_IF([test "$ac_cv_safe_to_use_Wframe_larger_than_" = "yes"],
             [CXX_WARNINGS="${CXX_WARNINGS} -Wframe-larger-than=32768"])
   
-      AC_CACHE_CHECK([whether it is safe to use -Wlogical-op],
-        [ac_cv_safe_to_use_Wlogical_op_],
-        [save_CFLAGS="$CFLAGS"
-         CFLAGS="${W_FAIL} -pedantic -Wlogical-op ${AM_CFLAGS} ${CFLAGS}"
-         AC_COMPILE_IFELSE([
-           AC_LANG_PROGRAM(
-           [[
-#include <stdio.h>
-           ]], [[]])
-        ],
-        [ac_cv_safe_to_use_Wlogical_op_=yes],
-        [ac_cv_safe_to_use_Wlogical_op_=no])
-      CFLAGS="$save_CFLAGS"])
-      AS_IF([test "$ac_cv_safe_to_use_Wlogical_op_" = "yes"],
-            [CC_WARNINGS="${CC_WARNINGS} -Wlogical-op"])
-  
       AC_CACHE_CHECK([whether it is safe to use -Wredundant-decls from C++],
         [ac_cv_safe_to_use_Wredundant_decls_],
         [AC_LANG_PUSH(C++)
@@ -372,6 +358,7 @@ inline const EnumDescriptor* GetEnumDescriptor<Table_TableOptions_RowType>() {
       PROTOSKIP_WARNINGS="-Wno-effc++ -Wno-shadow -Wno-missing-braces ${NO_ATTRIBUTES}"
       NO_WERROR="-Wno-error"
       PERMISSIVE_WARNINGS="-Wno-error -Wno-unused-function -fpermissive"
+      PERMISSIVE_C_WARNINGS="-Wno-error -Wno-redundant-decls"
       AS_IF([test "$host_vendor" = "apple"],[
         BOOSTSKIP_WARNINGS="-Wno-uninitialized"
       ])
@@ -434,7 +421,10 @@ inline const EnumDescriptor* GetEnumDescriptor<Table_TableOptions_RowType>() {
   AC_SUBST(INNOBASE_SKIP_WARNINGS)
   AC_SUBST(BOOSTSKIP_WARNINGS)
   AC_SUBST(PERMISSIVE_WARNINGS)
+  AC_SUBST(PERMISSIVE_C_WARNINGS)
   AC_SUBST(NO_WERROR)
   AC_SUBST([GCOV_LIBS])
+  AC_SUBST([SPHINX_WARNINGS])
+  AC_SUBST([INTLTOOL_WARNINGS])
 
 ])