bump standards version; extra is now optional
[deb_pkgs/spamass-milter.git] / ac_vl_prog_cc_warnings.m4
1 dnl Available from the GNU Autoconf Macro Archive at:
2 dnl http://www.gnu.org/software/ac-archive/htmldoc/vl_prog_cc_warnings.html
3 dnl
4 dnl $Id: ac_vl_prog_cc_warnings.m4,v 1.1 2003/06/07 19:43:20 dnelson Exp $
5 AC_DEFUN([VL_PROG_CC_WARNINGS], [
6   ansi=$1
7   if test -z "$ansi"; then
8     msg="for C compiler warning flags"
9   else
10     msg="for C compiler warning and ANSI conformance flags"
11   fi
12   AC_CACHE_CHECK($msg, vl_cv_prog_cc_warnings, [
13     if test -n "$CC"; then
14       cat > conftest.c <<EOF
15 int main(int argc, char **argv) { return 0; }
16 EOF
17
18       dnl GCC
19       if test "$GCC" = "yes"; then
20         if test -z "$ansi"; then
21           vl_cv_prog_cc_warnings="-Wall"
22         else
23           vl_cv_prog_cc_warnings="-Wall -ansi -pedantic"
24         fi
25
26       dnl Most compilers print some kind of a version string with some command
27       dnl line options (often "-V").  The version string should be checked
28       dnl before doing a test compilation run with compiler-specific flags.
29       dnl This is because some compilers (like the Cray compiler) only
30       dnl produce a warning message for unknown flags instead of returning
31       dnl an error, resulting in a false positive.  Also, compilers may do
32       dnl erratic things when invoked with flags meant for a different
33       dnl compiler.
34
35       dnl Solaris C compiler
36       elif $CC -V 2>&1 | grep -i "WorkShop" > /dev/null 2>&1 &&
37            $CC -c -v -Xc conftest.c > /dev/null 2>&1 &&
38            test -f conftest.o; then
39         if test -z "$ansi"; then
40           vl_cv_prog_cc_warnings="-v"
41         else
42           vl_cv_prog_cc_warnings="-v -Xc"
43         fi
44
45       dnl Digital Unix C compiler
46       elif $CC -V 2>&1 | grep -i "Digital UNIX Compiler" > /dev/null 2>&1 &&
47            $CC -c -verbose -w0 -warnprotos -std1 conftest.c > /dev/null 2>&1 &&
48            test -f conftest.o; then
49         if test -z "$ansi"; then
50           vl_cv_prog_cc_warnings="-verbose -w0 -warnprotos"
51         else
52           vl_cv_prog_cc_warnings="-verbose -w0 -warnprotos -std1"
53         fi
54
55       dnl C for AIX Compiler
56       elif $CC 2>&1 | grep -i "C for AIX Compiler" > /dev/null 2>&1 &&
57            $CC -c -qlanglvl=ansi -qinfo=all conftest.c > /dev/null 2>&1 &&
58            test -f conftest.o; then
59         if test -z "$ansi"; then
60           vl_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd"
61         else
62           vl_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd -qlanglvl=ansi"
63         fi
64
65       dnl IRIX C compiler
66       elif $CC -version 2>&1 | grep -i "MIPSpro Compilers" > /dev/null 2>&1 &&
67            $CC -c -fullwarn -ansi -ansiE conftest.c > /dev/null 2>&1 &&
68            test -f conftest.o; then
69         if test -z "$ansi"; then
70           vl_cv_prog_cc_warnings="-fullwarn"
71         else
72           vl_cv_prog_cc_warnings="-fullwarn -ansi -ansiE"
73         fi
74
75       dnl HP-UX C compiler
76       elif what $CC 2>&1 | grep -i "HP C Compiler" > /dev/null 2>&1 &&
77            $CC -c -Aa +w1 conftest.c > /dev/null 2>&1 &&
78            test -f conftest.o; then
79         if test -z "$ansi"; then
80           vl_cv_prog_cc_warnings="+w1"
81         else
82           vl_cv_prog_cc_warnings="+w1 -Aa"
83         fi
84
85       dnl The NEC SX-5 (Super-UX 10) C compiler
86       elif $CC -V 2>&1 | grep "/SX" > /dev/null 2>&1 &&
87            $CC -c -pvctl[,]fullmsg -Xc conftest.c > /dev/null 2>&1 &&
88            test -f conftest.o; then
89         if test -z "$ansi"; then
90           vl_cv_prog_cc_warnings="-pvctl[,]fullmsg"
91         else
92           vl_cv_prog_cc_warnings="-pvctl[,]fullmsg -Xc"
93         fi
94
95       dnl The Cray C compiler (Unicos)
96       elif $CC -V 2>&1 | grep -i "Cray" > /dev/null 2>&1 &&
97            $CC -c -h msglevel 2 conftest.c > /dev/null 2>&1 &&
98            test -f conftest.o; then
99         if test -z "$ansi"; then
100           vl_cv_prog_cc_warnings="-h msglevel 2"
101         else
102           vl_cv_prog_cc_warnings="-h msglevel 2 -h conform"
103         fi
104
105       dnl Intel's C Compler (icc)
106       elif $CC -V 2>&1 | grep -i "Intel(R) C++ Compiler" > /dev/null 2>&1 &&
107            $CC -c -Wall -wd981,1418,193 conftest.c > /dev/null 2>&1 &&
108            test -f conftest.o; then
109         if test -z "$ansi"; then
110           vl_cv_prog_cc_warnings="-Wall -wd981,1418,193"
111         else
112           vl_cv_prog_cc_warnings="-Wall -wd981,1418,193 -Xc"
113         fi
114       
115       fi
116       rm -f conftest.*
117     fi
118     if test -n "$vl_cv_prog_cc_warnings"; then
119       VL_WARN_CFLAGS="$vl_cv_prog_cc_warnings"
120     else
121       vl_cv_prog_cc_warnings="unknown"
122     fi
123   ])
124 ])dnl