2 dnl We create a function for detecting which compiler we use and then set as
3 dnl pendantic compiler options as possible for that particular compiler. The
4 dnl options are only used for debug-builds.
6 dnl This is a copy of the original found in curl's configure script. Don't
7 dnl modify this one, edit the one in curl and copy it back here when that one
10 AC_DEFUN([CURL_CC_DEBUG_OPTS],
12 if test "$GCC" = "yes"; then
14 dnl figure out gcc version!
15 AC_MSG_CHECKING([gcc version])
16 gccver=`$CC -dumpversion`
17 num1=`echo $gccver | cut -d . -f1`
18 num2=`echo $gccver | cut -d . -f2`
19 gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
20 AC_MSG_RESULT($gccver)
22 AC_MSG_CHECKING([if this is icc in disguise])
23 AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER],
24 dnl action if the text is found, this it has not been replaced by the
28 dnl the text was not found, it was replaced by the cpp
33 if test "$ICC" = "yes"; then
34 dnl this is icc, not gcc.
36 dnl ICC warnings we ignore:
37 dnl * 279 warns on static conditions in while expressions
38 dnl * 269 warns on our "%Od" printf formatters for curl_off_t output:
39 dnl "invalid format string conversion"
43 if test "$gccnum" -gt "600"; then
44 dnl icc 6.0 and older doesn't have the -Wall flag
49 WARN="-W -Wall -Wwrite-strings -pedantic -Wno-long-long -Wundef -Wpointer-arith -Wnested-externs -Winline -Wmissing-declarations -Wmissing-prototypes -Wsign-compare"
51 dnl -Wcast-align is a bit too annoying ;-)
53 if test "$gccnum" -ge "296"; then
55 WARN="$WARN -Wfloat-equal"
57 if test "$gccnum" -gt "296"; then
58 dnl this option does not exist in 2.96
59 WARN="$WARN -Wno-format-nonliteral"
62 dnl -Wunreachable-code seems totally unreliable on my gcc 3.3.2 on
63 dnl on i686-Linux as it gives us heaps with false positives
64 if test "$gccnum" -ge "303"; then
66 WARN="$WARN -Wendif-labels -Wstrict-prototypes"
70 for flag in $CPPFLAGS; do
74 add=`echo $flag | sed 's/^-I/-isystem /g'`
82 CFLAGS="$CFLAGS $WARN"
86 dnl strip off optimizer flags
88 for flag in $CFLAGS; do
91 dnl echo "cut off $flag"
94 NEWFLAGS="$NEWFLAGS $flag"
100 ]) dnl end of AC_DEFUN()