Commit 2245ac2f authored by Yang Tse's avatar Yang Tse
Browse files

Initial attempt to support configure's --(dis|en)able-warnings

option to specify dis(activation) of picky compiler warnings.

If option is specified, it will be honored independant of the
--(dis|en)able-debug option.

If option is not specified, it will follow --(dis|en)able-debug
setting, whose default is disabled if not specified.
parent 1bfaf76d
Loading
Loading
Loading
Loading
+0 −51
Original line number Diff line number Diff line
@@ -2601,57 +2601,6 @@ fi
])


dnl **********************************************************************
dnl CURL_DETECT_ICC ([ACTION-IF-YES])
dnl
dnl check if this is the Intel ICC compiler, and if so run the ACTION-IF-YES
dnl sets the $ICC variable to "yes" or "no"
dnl **********************************************************************
AC_DEFUN([CURL_DETECT_ICC],
[
    ICC="no"
    AC_MSG_CHECKING([for icc in use])
    if test "$GCC" = "yes"; then
       dnl check if this is icc acting as gcc in disguise
       AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER],
         dnl action if the text is found, this it has not been replaced by the
         dnl cpp
         ICC="no",
         dnl the text was not found, it was replaced by the cpp
         ICC="yes"
         AC_MSG_RESULT([yes])
         [$1]
       )
    fi
    if test "$ICC" = "no"; then
        # this is not ICC
        AC_MSG_RESULT([no])
    fi
])

dnl We create a function for detecting which compiler we use and then set as
dnl pendantic compiler options as possible for that particular compiler. The
dnl options are only used for debug-builds.

AC_DEFUN([CURL_CC_DEBUG_OPTS],
[
    dnl strip off optimizer flags
    NEWFLAGS=""
    for flag in $CFLAGS; do
      case "$flag" in
      -O*)
        dnl echo "cut off $flag"
        ;;
      *)
        NEWFLAGS="$NEWFLAGS $flag"
        ;;
      esac
    done
    CFLAGS=$NEWFLAGS
]) # AC-DEFUN



# This is only a temporary fix. This macro is here to replace the broken one
# delivered by the automake project (including the 1.9.6 release). As soon as
# they ship a working version we SHOULD remove this work-around.
+0 −54
Original line number Diff line number Diff line
@@ -1827,60 +1827,6 @@ AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [
])


dnl **********************************************************************
dnl CURL_DETECT_ICC ([ACTION-IF-YES])
dnl
dnl check if this is the Intel ICC compiler, and if so run the ACTION-IF-YES
dnl sets the $ICC variable to "yes" or "no"
dnl **********************************************************************
AC_DEFUN([CURL_DETECT_ICC],
[
    ICC="no"
    AC_MSG_CHECKING([for icc in use])
    if test "$GCC" = "yes"; then
       dnl check if this is icc acting as gcc in disguise
       AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER],
         dnl action if the text is found, this it has not been replaced by the
         dnl cpp
         ICC="no",
         dnl the text was not found, it was replaced by the cpp
         ICC="yes"
         AC_MSG_RESULT([yes])
         [$1]
       )
    fi
    if test "$ICC" = "no"; then
        # this is not ICC
        AC_MSG_RESULT([no])
    fi
])

dnl We create a function for detecting which compiler we use and then set as
dnl pendantic compiler options as possible for that particular compiler. The
dnl options are only used for debug-builds.

dnl This is a copy of the original found in curl's configure script. Don't
dnl modify this one, edit the one in curl and copy it back here when that one
dnl is changed.

AC_DEFUN([CURL_CC_DEBUG_OPTS],
[
    dnl strip off optimizer flags
    NEWFLAGS=""
    for flag in $CFLAGS; do
      case "$flag" in
      -O*)
        dnl echo "cut off $flag"
        ;;
      *)
        NEWFLAGS="$NEWFLAGS $flag"
        ;;
      esac
    done
    CFLAGS=$NEWFLAGS
])


dnl This macro determines if the specified struct exists in the specified file
dnl Syntax:
dnl CARES_CHECK_STRUCT(headers, struct name, if found, [if not found])
+14 −180
Original line number Diff line number Diff line
@@ -8,6 +8,9 @@ AC_CONFIG_SRCDIR([ares_ipv6.h])
AM_CONFIG_HEADER([config.h])
AM_MAINTAINER_MODE

CARES_CHECK_OPTION_DEBUG
CARES_CHECK_OPTION_WARNINGS

dnl SED is mandatory for configure process and libtool.
dnl Set it now, allowing it to be changed later.
AC_PATH_PROG([SED], [sed], [not_found],
@@ -86,43 +89,10 @@ esac
dnl support building of Windows DLLs
AC_LIBTOOL_WIN32_DLL

dnl ************************************************************
dnl Option to switch on debug options. This makes an assumption that
dnl this is built as an 'ares' subdir in the curl source tree. Subject for
dnl improval in the future!
dnl
AC_MSG_CHECKING([whether to enable debug options])
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug],[Enable pedantic debug options])
AC_HELP_STRING([--disable-debug],[Disable debug options]),
[ case "$enableval" in
  no)
       AC_MSG_RESULT(no)
       ;;
  *)   AC_MSG_RESULT(yes)

    dnl when doing the debug stuff, use static library only
    AC_DISABLE_SHARED

    debugbuild="yes"

    dnl the entire --enable-debug is a hack that lives and runs on top of
    dnl libcurl stuff so this BUILDING_LIBCURL is not THAT much uglier
    AC_DEFINE(BUILDING_LIBCURL, 1, [when building as static part of libcurl])
CARES_PROCESS_DEBUG_BUILD_OPTS

    CPPFLAGS="$CPPFLAGS -DCURLDEBUG -I$srcdir/../include"
    CFLAGS="$CFLAGS -g" 

    dnl set compiler "debug" options to become more picky, and remove
    dnl optimize options from CFLAGS
    CURL_CC_DEBUG_OPTS

       ;;
  esac ],
       AC_MSG_RESULT(no)
)
AM_CONDITIONAL(DEBUGBUILD, test x$debugbuild = xyes)
AM_CONDITIONAL(CURLDEBUG, test x$debugbuild = xyes)
AM_CONDITIONAL(DEBUGBUILD, test x$want_debug = xyes)
AM_CONDITIONAL(CURLDEBUG, test x$want_debug = xyes)

dnl skip libtool C++ and Fortran compiler checks
m4_ifdef([AC_PROG_CXX], [m4_undefine([AC_PROG_CXX])])
@@ -171,160 +141,24 @@ dnl **********************************************************************
dnl platform/compiler/architecture specific checks/flags
dnl **********************************************************************

ac_cv_compiler="unknown"
ac_cv_compiler_num="unknown"

AC_MSG_CHECKING([whether we are using the IBM C compiler])
CURL_CHECK_DEF([__IBMC__], [], [silent])
if test "$curl_cv_have_def___IBMC__" = "yes"; then
  AC_MSG_RESULT([yes])
  ac_cv_compiler="IBMC"
  dnl Ensure that compiler optimizations are always thread-safe.
  CFLAGS="$CFLAGS -qthreaded"
  dnl Disable type based strict aliasing optimizations, using worst
  dnl case aliasing assumptions when compiling. Type based aliasing
  dnl would restrict the lvalues that could be safely used to access
  dnl a data object.
  CFLAGS="$CFLAGS -qnoansialias"
  dnl Force compiler to stop after the compilation phase, without
  dnl generating an object code file when compilation has errors.
  CFLAGS="$CFLAGS -qhalt=e"
else
  AC_MSG_RESULT([no])
fi

AC_MSG_CHECKING([whether we are using the Intel C compiler])
CURL_CHECK_DEF([__INTEL_COMPILER], [], [silent])
if test "$curl_cv_have_def___INTEL_COMPILER" = "yes"; then
  AC_MSG_RESULT([yes])
  ac_cv_compiler="ICC"
  ac_cv_compiler_num="$curl_cv_def___INTEL_COMPILER"
  dnl On unix this compiler uses gcc's header files, so
  dnl we select ANSI C89 dialect plus GNU extensions.
  CPPFLAGS="$CPPFLAGS -std=gnu89"
  if test "$ac_cv_compiler_num" -gt "600"; then
    dnl Show errors, warnings, and remarks
    CPPFLAGS="$CPPFLAGS -Wall"
    dnl Perform extra compile-time code checking
    CPPFLAGS="$CPPFLAGS -Wcheck"
  fi
  dnl Change some warnings into errors
  dnl #140: too many arguments in function call
  dnl #147: declaration is incompatible with 'previous one'
  dnl #165: too few arguments in function call
  dnl #266: function declared implicitly
  CPPFLAGS="$CPPFLAGS -we 140,147,165,266"
  dnl Disable some remarks
  dnl #279: controlling expression is constant
  dnl #981: operands are evaluated in unspecified order
  dnl #1469: "cc" clobber ignored
  if test "$ac_cv_compiler_num" -lt "910"; then
    CPPFLAGS="$CPPFLAGS -wd 279"
  fi
  CPPFLAGS="$CPPFLAGS -wd 981,1469"
  dnl Disable use of ANSI C aliasing rules in optimizations
  CFLAGS="$CFLAGS -no-ansi-alias"
  dnl Disable floating point optimizations
  CFLAGS="$CFLAGS -fp-model precise -mp"
else
  AC_MSG_RESULT([no])
fi

AC_MSG_CHECKING([whether we are using the DEC/Compaq C compiler])
CURL_CHECK_DEF([__DECC], [], [silent])
CURL_CHECK_DEF([__DECC_VER], [], [silent])
if test "$curl_cv_have_def___DECC" = "yes" &&
  test "$curl_cv_have_def___DECC_VER" = "yes"; then
  AC_MSG_RESULT([yes])
  ac_cv_compiler="DECC"
  dnl Select strict ANSI C compiler mode
  CFLAGS="$CFLAGS -std1"
  dnl Turn off optimizer ANSI C aliasing rules
  CFLAGS="$CFLAGS -noansi_alias"
  dnl Select a higher warning level than default level2
  CFLAGS="$CFLAGS -msg_enable level3"
  dnl Generate warnings for missing function prototypes
  CFLAGS="$CFLAGS -warnprotos"
  dnl Change some warnings into fatal errors
  CFLAGS="$CFLAGS -msg_fatal toofewargs,toomanyargs"
else
  AC_MSG_RESULT([no])
fi

AC_MSG_CHECKING([whether we are using the GNU C compiler])
CURL_CHECK_DEF([__GNUC__], [], [silent])
if test "$curl_cv_have_def___GNUC__" = "yes" &&
  test "$ac_cv_compiler" = "unknown"; then
  AC_MSG_RESULT([yes])
  ac_cv_compiler="GNUC"
  gccver=`$CC -dumpversion`
  gccvhi=`echo $gccver | cut -d . -f1`
  gccvlo=`echo $gccver | cut -d . -f2`
  gccnum=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
  ac_cv_compiler_num="$gccnum"
  dnl this is a set of options we believe *ALL* gcc versions support:
  WARN="-W -Wall -Wwrite-strings -pedantic -Wpointer-arith -Wnested-externs -Winline -Wmissing-prototypes"
  dnl -Wcast-align is a bit too annoying on all gcc versions ;-)
  if test "$ac_cv_compiler_num" -ge "207"; then
    dnl gcc 2.7 or later
    WARN="$WARN -Wmissing-declarations"
  fi
  if test "$ac_cv_compiler_num" -gt "295"; then
    dnl only if the compiler is newer than 2.95 since we got lots of
    dnl "`_POSIX_C_SOURCE' is not defined" in system headers with
    dnl gcc 2.95.4 on FreeBSD 4.9!
    WARN="$WARN -Wundef -Wno-long-long -Wsign-compare -Wshadow -Wno-multichar"
  fi
  if test "$ac_cv_compiler_num" -ge "296"; then
    dnl gcc 2.96 or later
    WARN="$WARN -Wfloat-equal"
  fi
  if test "$ac_cv_compiler_num" -gt "296"; then
    dnl this option does not exist in 2.96
    WARN="$WARN -Wno-format-nonliteral"
  fi
  dnl -Wunreachable-code seems totally unreliable on my gcc 3.3.2 on
  dnl on i686-Linux as it gives us heaps with false positives.
  dnl Also, on gcc 4.0.X it is totally unbearable and complains all
  dnl over making it unusable for generic purposes. Let's not use it.
  if test "$ac_cv_compiler_num" -ge "303"; then
    dnl gcc 3.3 and later
    WARN="$WARN -Wendif-labels -Wstrict-prototypes"
  fi
  if test "$ac_cv_compiler_num" -ge "304"; then
    # try these on gcc 3.4
    WARN="$WARN -Wdeclaration-after-statement"
  fi
  for flag in $CPPFLAGS; do
    case "$flag" in
      -I*)
        dnl Include path, provide a -isystem option for the same dir
        dnl to prevent warnings in those dirs. The -isystem was not very
        dnl reliable on earlier gcc versions.
        add=`echo $flag | sed 's/^-I/-isystem /g'`
        WARN="$WARN $add"
        ;;
    esac
  done
  CFLAGS="$CFLAGS $WARN"
  AC_MSG_NOTICE([Added this set of compiler options: $WARN])
else
  AC_MSG_RESULT([no])
fi
CARES_CHECK_COMPILER
CARES_PROCESS_CC_BASIC_OPTS
CARES_PROCESS_CC_DEBUG_OPTS
CARES_PROCESS_CC_WARNING_OPTS

case $host in
  #
  x86_64*linux*|amd64*freebsd*|ia64*freebsd*)
    #
    if test "$ac_cv_compiler" = "ICC"; then
    if test "$compiler_id" = "ICC_unix"; then
      #
      if test "$ac_cv_compiler_num" -ge "900" &&
        test "$ac_cv_compiler_num" -lt "1000"; then
      if test "$compiler_num" -ge "900" &&
        test "$compiler_num" -lt "1000"; then
        dnl icc 9.X specific
        CFLAGS="$CFLAGS -i-dynamic"
      fi
      #
      if test "$ac_cv_compiler_num" -ge "1000"; then
      if test "$compiler_num" -ge "1000"; then
        dnl icc 10.X or later
        CFLAGS="$CFLAGS -shared-intel"
      fi
+319 −0
Original line number Diff line number Diff line
#***************************************************************************
# $Id$
#
# Copyright (C) 2008 by Daniel Stenberg et al
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, provided
# that the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission.  M.I.T. makes no representations about the
# suitability of this software for any purpose.  It is provided "as is"
# without express or implied warranty.
#
#***************************************************************************

# File version for 'aclocal' use. Keep it a single number.
# serial 1


dnl CARES_CHECK_COMPILER
dnl -------------------------------------------------
dnl Verify if the C compiler being used is known.

AC_DEFUN([CARES_CHECK_COMPILER], [
  #
  compiler_id="unknown"
  compiler_num="0"
  #
  CARES_CHECK_COMPILER_DEC
  CARES_CHECK_COMPILER_IBM
  CARES_CHECK_COMPILER_INTEL
  CARES_CHECK_COMPILER_GNU
  #
])


dnl CARES_CHECK_COMPILER_DEC
dnl -------------------------------------------------
dnl Verify if the C compiler being used is DEC's.

AC_DEFUN([CARES_CHECK_COMPILER_DEC], [
  AC_MSG_CHECKING([whether we are using the DEC/Compaq C compiler])
  CURL_CHECK_DEF([__DECC], [], [silent])
  CURL_CHECK_DEF([__DECC_VER], [], [silent])
  if test "$curl_cv_have_def___DECC" = "yes" &&
    test "$curl_cv_have_def___DECC_VER" = "yes"; then
    AC_MSG_RESULT([yes])
    compiler_id="DECC"
  else
    AC_MSG_RESULT([no])
  fi
])


dnl CARES_CHECK_COMPILER_GNU
dnl -------------------------------------------------
dnl Verify if the C compiler being used is GNU's.

AC_DEFUN([CARES_CHECK_COMPILER_GNU], [
  AC_REQUIRE([CARES_CHECK_COMPILER_INTEL])dnl
  #
  AC_MSG_CHECKING([whether we are using the GNU C compiler])
  CURL_CHECK_DEF([__GNUC__], [], [silent])
  if test "$curl_cv_have_def___GNUC__" = "yes" &&
    test "$compiler_id" = "unknown"; then
    AC_MSG_RESULT([yes])
    compiler_id="GNUC"
    gccver=`$CC -dumpversion`
    gccvhi=`echo $gccver | cut -d . -f1`
    gccvlo=`echo $gccver | cut -d . -f2`
    compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
  else
    AC_MSG_RESULT([no])
  fi
])


dnl CARES_CHECK_COMPILER_IBM
dnl -------------------------------------------------
dnl Verify if the C compiler being used is IBM's.

AC_DEFUN([CARES_CHECK_COMPILER_IBM], [
  AC_MSG_CHECKING([whether we are using the IBM C compiler])
  CURL_CHECK_DEF([__IBMC__], [], [silent])
  if test "$curl_cv_have_def___IBMC__" = "yes"; then
    AC_MSG_RESULT([yes])
    compiler_id="IBMC"
  else
    AC_MSG_RESULT([no])
  fi
])


dnl CARES_CHECK_COMPILER_INTEL
dnl -------------------------------------------------
dnl Verify if the C compiler being used is Intel's.

AC_DEFUN([CARES_CHECK_COMPILER_INTEL], [
  AC_BEFORE([$0],[CARES_CHECK_COMPILER_GNU])dnl
  AC_MSG_CHECKING([whether we are using the Intel C compiler])
  CURL_CHECK_DEF([__INTEL_COMPILER], [], [silent])
  if test "$curl_cv_have_def___INTEL_COMPILER" = "yes"; then
    AC_MSG_RESULT([yes])
    CURL_CHECK_DEF([__unix__], [], [silent])
    if test "$curl_cv_have_def___unix__" = "yes"; then
      compiler_id="ICC_unix"
    else
      compiler_id="ICC_windows"
    fi
    compiler_num="$curl_cv_def___INTEL_COMPILER"
  else
    AC_MSG_RESULT([no])
  fi
])


dnl CARES_PROCESS_CC_BASIC_OPTS
dnl -------------------------------------------------
dnl Sets compiler options/flags which are independant
dnl of configure's debug or warnings options.

AC_DEFUN([CARES_PROCESS_CC_BASIC_OPTS], [
  AC_REQUIRE([CARES_CHECK_COMPILER])dnl
  #
  if test "$compiler_id" = "DECC"; then
    dnl Select strict ANSI C compiler mode
    CFLAGS="$CFLAGS -std1"
    dnl Turn off optimizer ANSI C aliasing rules
    CFLAGS="$CFLAGS -noansi_alias"
    dnl Generate warnings for missing function prototypes
    CFLAGS="$CFLAGS -warnprotos"
    dnl Change some warnings into fatal errors
    CFLAGS="$CFLAGS -msg_fatal toofewargs,toomanyargs"
  fi
  #
  if test "$compiler_id" = "IBMC"; then
    dnl Ensure that compiler optimizations are always thread-safe.
    CFLAGS="$CFLAGS -qthreaded"
    dnl Disable type based strict aliasing optimizations, using worst
    dnl case aliasing assumptions when compiling. Type based aliasing
    dnl would restrict the lvalues that could be safely used to access
    dnl a data object.
    CFLAGS="$CFLAGS -qnoansialias"
    dnl Force compiler to stop after the compilation phase, without
    dnl generating an object code file when compilation has errors.
    CFLAGS="$CFLAGS -qhalt=e"
  fi
  #
  if test "$compiler_id" = "ICC_unix"; then
    dnl On unix this compiler uses gcc's header files, so
    dnl we select ANSI C89 dialect plus GNU extensions.
    CPPFLAGS="$CPPFLAGS -std=gnu89"
    dnl Change some warnings into errors
    dnl #140: too many arguments in function call
    dnl #147: declaration is incompatible with 'previous one'
    dnl #165: too few arguments in function call
    dnl #266: function declared implicitly
    CPPFLAGS="$CPPFLAGS -we 140,147,165,266"
    dnl Disable some remarks
    dnl #279: controlling expression is constant
    dnl #981: operands are evaluated in unspecified order
    dnl #1469: "cc" clobber ignored
    if test "$compiler_num" -lt "910"; then
      CPPFLAGS="$CPPFLAGS -wd 279"
    fi
    CPPFLAGS="$CPPFLAGS -wd 981,1469"
    dnl Disable use of ANSI C aliasing rules in optimizations
    CFLAGS="$CFLAGS -no-ansi-alias"
    dnl Disable floating point optimizations
    CFLAGS="$CFLAGS -fp-model precise"
  fi
])


dnl CARES_PROCESS_CC_DEBUG_OPTS
dnl -------------------------------------------------
dnl Sets compiler options/flags and other settings
dnl which depend on configure's debug given option.

AC_DEFUN([CARES_PROCESS_CC_DEBUG_OPTS], [
  AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl
  AC_REQUIRE([CARES_CHECK_COMPILER])dnl
  #
  if test "$want_debug" = "yes"; then
    CFLAGS="$CFLAGS -g"
  fi
  #
  if test "$want_debug" = "no"; then
    dnl strip off optimizer flags
    NEWFLAGS=""
    for flag in $CFLAGS; do
      case "$flag" in
        -O*)
          dnl echo "cut off $flag"
          ;;
        *)
          NEWFLAGS="$NEWFLAGS $flag"
          ;;
      esac
    done
    CFLAGS=$NEWFLAGS
  fi
  #
])


dnl CARES_PROCESS_CC_WARNING_OPTS
dnl -------------------------------------------------
dnl Sets compiler options/flags which depend on
dnl configure's warnings given option.

AC_DEFUN([CARES_PROCESS_CC_WARNING_OPTS], [
  AC_REQUIRE([CARES_CHECK_OPTION_WARNINGS])dnl
  AC_REQUIRE([CARES_CHECK_COMPILER])dnl
  #
  if test "$compiler_id" = "DECC"; then
    if test "$want_warnings" = "yes"; then
      dnl Select a higher warning level than default level2
      CFLAGS="$CFLAGS -msg_enable level3"
    fi
  fi
  #
  if test "$compiler_id" = "ICC_unix"; then
    if test "$want_warnings" = "yes"; then
      if test "$compiler_num" -gt "600"; then
        dnl Show errors, warnings, and remarks
        CPPFLAGS="$CPPFLAGS -Wall"
        dnl Perform extra compile-time code checking
        CPPFLAGS="$CPPFLAGS -Wcheck"
      fi
    fi
  fi
  #
  if test "$compiler_id" = "GNUC"; then
    #
    # FIXME: Some of these warnings should be changed into errors
    #        and moved to CARES-PROCESS-CC-BASIC-OPTS
    #
    if test "$want_warnings" = "yes"; then
      dnl this is a set of options we believe *ALL* gcc versions support:
      WARN="-W -Wall -Wwrite-strings -pedantic -Wpointer-arith -Wnested-externs -Winline -Wmissing-prototypes"
      dnl -Wcast-align is a bit too annoying on all gcc versions ;-)
      if test "$compiler_num" -ge "207"; then
        dnl gcc 2.7 or later
        WARN="$WARN -Wmissing-declarations"
      fi
      if test "$compiler_num" -gt "295"; then
        dnl only if the compiler is newer than 2.95 since we got lots of
        dnl "`_POSIX_C_SOURCE' is not defined" in system headers with
        dnl gcc 2.95.4 on FreeBSD 4.9!
        WARN="$WARN -Wundef -Wno-long-long -Wsign-compare -Wshadow -Wno-multichar"
      fi
      if test "$compiler_num" -ge "296"; then
        dnl gcc 2.96 or later
        WARN="$WARN -Wfloat-equal"
      fi
      if test "$compiler_num" -gt "296"; then
        dnl this option does not exist in 2.96
        WARN="$WARN -Wno-format-nonliteral"
      fi
      dnl -Wunreachable-code seems totally unreliable on my gcc 3.3.2 on
      dnl on i686-Linux as it gives us heaps with false positives.
      dnl Also, on gcc 4.0.X it is totally unbearable and complains all
      dnl over making it unusable for generic purposes. Let's not use it.
      if test "$compiler_num" -ge "303"; then
        dnl gcc 3.3 and later
        WARN="$WARN -Wendif-labels -Wstrict-prototypes"
      fi
      if test "$compiler_num" -ge "304"; then
        # try these on gcc 3.4
        WARN="$WARN -Wdeclaration-after-statement"
      fi
      for flag in $CPPFLAGS; do
        case "$flag" in
          -I*)
            dnl Include path, provide a -isystem option for the same dir
            dnl to prevent warnings in those dirs. The -isystem was not very
            dnl reliable on earlier gcc versions.
            add=`echo $flag | sed 's/^-I/-isystem /g'`
            WARN="$WARN $add"
            ;;
        esac
      done
      CFLAGS="$CFLAGS $WARN"
      AC_MSG_NOTICE([Added this set of compiler options: $WARN])
    fi
  fi
  #
])


dnl CARES_PROCESS_DEBUG_BUILD_OPTS
dnl -------------------------------------------------
dnl Settings which depend on configure's debug given
dnl option, and further configure the build process.

AC_DEFUN([CARES_PROCESS_DEBUG_BUILD_OPTS], [
  AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl
  AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl
  #
  if test "$want_debug" = "yes"; then

    dnl when doing the debug stuff, use static library only
    AC_DISABLE_SHARED

    debugbuild="yes"

    dnl the entire --enable-debug is a hack that lives and runs on top of
    dnl libcurl stuff so this BUILDING_LIBCURL is not THAT much uglier
    AC_DEFINE(BUILDING_LIBCURL, 1, [when building as static part of libcurl])

    CPPFLAGS="$CPPFLAGS -DCURLDEBUG -I$srcdir/../include"
  fi
  #
])

+86 −0
Original line number Diff line number Diff line
#***************************************************************************
# $Id$
#
# Copyright (C) 2008 by Daniel Stenberg et al
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, provided
# that the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission.  M.I.T. makes no representations about the
# suitability of this software for any purpose.  It is provided "as is"
# without express or implied warranty.
#
#***************************************************************************

# File version for 'aclocal' use. Keep it a single number.
# serial 1


dnl CARES_CHECK_OPTION_DEBUG
dnl -------------------------------------------------
dnl Verify if configure has been invoked with option
dnl --enable-debug or --disable-debug, and set shell
dnl variable want_debug value as appropriate.

AC_DEFUN([CARES_CHECK_OPTION_DEBUG], [
  AC_BEFORE([$0],[CARES_CHECK_OPTION_WARNINGS])dnl
  AC_BEFORE([$0],[AC_PROG_CC])dnl
  AC_MSG_CHECKING([whether to enable debug build options])
  OPT_DEBUG_BUILD="default"
  AC_ARG_ENABLE(debug,
    AC_HELP_STRING([--enable-debug],[Enable debug build options])
    AC_HELP_STRING([--disable-debug],[Disable debug build options]),
    OPT_DEBUG_BUILD=$enableval)
  case "$OPT_DEBUG_BUILD" in
    no)
      dnl --disable-debug option used
      want_debug="no"
      ;;
    default)
      dnl configure option not specified
      want_debug="no"
      ;;
    *)
      dnl --enable-debug option used
      want_debug="yes"
      ;;
  esac
  AC_MSG_RESULT([$want_debug])
])


dnl CARES_CHECK_OPTION_WARNINGS
dnl -------------------------------------------------
dnl Verify if configure has been invoked with option
dnl --enable-warnings or --disable-warnings, and set
DNL shell variable want_warnings as appropriate.

AC_DEFUN([CARES_CHECK_OPTION_WARNINGS], [
  AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl
  AC_BEFORE([$0],[AC_PROG_CC])dnl
  AC_MSG_CHECKING([whether to enable strict compiler warnings])
  OPT_COMPILER_WARNINGS="default"
  AC_ARG_ENABLE(warnings,
    AC_HELP_STRING([--enable-warnings],[Enable strict compiler warnings])
    AC_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]),
    OPT_COMPILER_WARNINGS=$enableval)
  case "$OPT_COMPILER_WARNINGS" in
    no)
      dnl --disable-warnings option used
      want_warnings="no"
      ;;
    default)
      dnl configure option not specified, so
      dnl use same setting as --enable-debug
      want_warnings="$want_debug"
      ;;
    *)
      dnl --enable-warnings option used
      want_warnings="yes"
      ;;
  esac
  AC_MSG_RESULT([$want_warnings])
])
Loading