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
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], [
7 if test -z "$ansi"; then
8 msg="for C compiler warning flags"
10 msg="for C compiler warning and ANSI conformance flags"
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; }
19 if test "$GCC" = "yes"; then
20 if test -z "$ansi"; then
21 vl_cv_prog_cc_warnings="-Wall"
23 vl_cv_prog_cc_warnings="-Wall -ansi -pedantic"
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
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"
42 vl_cv_prog_cc_warnings="-v -Xc"
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"
52 vl_cv_prog_cc_warnings="-verbose -w0 -warnprotos -std1"
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"
62 vl_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd -qlanglvl=ansi"
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"
72 vl_cv_prog_cc_warnings="-fullwarn -ansi -ansiE"
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"
82 vl_cv_prog_cc_warnings="+w1 -Aa"
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"
92 vl_cv_prog_cc_warnings="-pvctl[,]fullmsg -Xc"
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"
102 vl_cv_prog_cc_warnings="-h msglevel 2 -h conform"
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"
112 vl_cv_prog_cc_warnings="-Wall -wd981,1418,193 -Xc"
118 if test -n "$vl_cv_prog_cc_warnings"; then
119 VL_WARN_CFLAGS="$vl_cv_prog_cc_warnings"
121 vl_cv_prog_cc_warnings="unknown"