]> git.donarmstrong.com Git - deb_pkgs/spamass-milter.git/blobdiff - ac_vl_prog_cc_warnings.m4
Imported Upstream version 0.4.0
[deb_pkgs/spamass-milter.git] / ac_vl_prog_cc_warnings.m4
diff --git a/ac_vl_prog_cc_warnings.m4 b/ac_vl_prog_cc_warnings.m4
new file mode 100644 (file)
index 0000000..a2cc153
--- /dev/null
@@ -0,0 +1,124 @@
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/vl_prog_cc_warnings.html
+dnl
+dnl $Id: ac_vl_prog_cc_warnings.m4,v 1.1 2003/06/07 19:43:20 dnelson Exp $
+AC_DEFUN([VL_PROG_CC_WARNINGS], [
+  ansi=$1
+  if test -z "$ansi"; then
+    msg="for C compiler warning flags"
+  else
+    msg="for C compiler warning and ANSI conformance flags"
+  fi
+  AC_CACHE_CHECK($msg, vl_cv_prog_cc_warnings, [
+    if test -n "$CC"; then
+      cat > conftest.c <<EOF
+int main(int argc, char **argv) { return 0; }
+EOF
+
+      dnl GCC
+      if test "$GCC" = "yes"; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="-Wall"
+        else
+          vl_cv_prog_cc_warnings="-Wall -ansi -pedantic"
+        fi
+
+      dnl Most compilers print some kind of a version string with some command
+      dnl line options (often "-V").  The version string should be checked
+      dnl before doing a test compilation run with compiler-specific flags.
+      dnl This is because some compilers (like the Cray compiler) only
+      dnl produce a warning message for unknown flags instead of returning
+      dnl an error, resulting in a false positive.  Also, compilers may do
+      dnl erratic things when invoked with flags meant for a different
+      dnl compiler.
+
+      dnl Solaris C compiler
+      elif $CC -V 2>&1 | grep -i "WorkShop" > /dev/null 2>&1 &&
+           $CC -c -v -Xc conftest.c > /dev/null 2>&1 &&
+           test -f conftest.o; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="-v"
+        else
+          vl_cv_prog_cc_warnings="-v -Xc"
+        fi
+
+      dnl Digital Unix C compiler
+      elif $CC -V 2>&1 | grep -i "Digital UNIX Compiler" > /dev/null 2>&1 &&
+           $CC -c -verbose -w0 -warnprotos -std1 conftest.c > /dev/null 2>&1 &&
+           test -f conftest.o; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="-verbose -w0 -warnprotos"
+        else
+          vl_cv_prog_cc_warnings="-verbose -w0 -warnprotos -std1"
+        fi
+
+      dnl C for AIX Compiler
+      elif $CC 2>&1 | grep -i "C for AIX Compiler" > /dev/null 2>&1 &&
+           $CC -c -qlanglvl=ansi -qinfo=all conftest.c > /dev/null 2>&1 &&
+           test -f conftest.o; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd"
+        else
+          vl_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd -qlanglvl=ansi"
+        fi
+
+      dnl IRIX C compiler
+      elif $CC -version 2>&1 | grep -i "MIPSpro Compilers" > /dev/null 2>&1 &&
+           $CC -c -fullwarn -ansi -ansiE conftest.c > /dev/null 2>&1 &&
+           test -f conftest.o; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="-fullwarn"
+        else
+          vl_cv_prog_cc_warnings="-fullwarn -ansi -ansiE"
+        fi
+
+      dnl HP-UX C compiler
+      elif what $CC 2>&1 | grep -i "HP C Compiler" > /dev/null 2>&1 &&
+           $CC -c -Aa +w1 conftest.c > /dev/null 2>&1 &&
+           test -f conftest.o; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="+w1"
+        else
+          vl_cv_prog_cc_warnings="+w1 -Aa"
+        fi
+
+      dnl The NEC SX-5 (Super-UX 10) C compiler
+      elif $CC -V 2>&1 | grep "/SX" > /dev/null 2>&1 &&
+           $CC -c -pvctl[,]fullmsg -Xc conftest.c > /dev/null 2>&1 &&
+           test -f conftest.o; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="-pvctl[,]fullmsg"
+        else
+          vl_cv_prog_cc_warnings="-pvctl[,]fullmsg -Xc"
+        fi
+
+      dnl The Cray C compiler (Unicos)
+      elif $CC -V 2>&1 | grep -i "Cray" > /dev/null 2>&1 &&
+           $CC -c -h msglevel 2 conftest.c > /dev/null 2>&1 &&
+           test -f conftest.o; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="-h msglevel 2"
+        else
+          vl_cv_prog_cc_warnings="-h msglevel 2 -h conform"
+        fi
+
+      dnl Intel's C Compler (icc)
+      elif $CC -V 2>&1 | grep -i "Intel(R) C++ Compiler" > /dev/null 2>&1 &&
+           $CC -c -Wall -wd981,1418,193 conftest.c > /dev/null 2>&1 &&
+           test -f conftest.o; then
+        if test -z "$ansi"; then
+          vl_cv_prog_cc_warnings="-Wall -wd981,1418,193"
+        else
+          vl_cv_prog_cc_warnings="-Wall -wd981,1418,193 -Xc"
+        fi
+      
+      fi
+      rm -f conftest.*
+    fi
+    if test -n "$vl_cv_prog_cc_warnings"; then
+      VL_WARN_CFLAGS="$vl_cv_prog_cc_warnings"
+    else
+      vl_cv_prog_cc_warnings="unknown"
+    fi
+  ])
+])dnl