Skip to content
Snippets Groups Projects
configure.ac 73.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • #***************************************************************************
    #                                  _   _ ____  _
    #  Project                     ___| | | |  _ \| |
    #                             / __| | | | |_) | |
    #                            | (__| |_| |  _ <| |___
    #                             \___|\___/|_| \_\_____|
    #
    
    # Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
    
    #
    # This software is licensed as described in the file COPYING, which
    # you should have received as part of this distribution. The terms
    # are also available at http://curl.haxx.se/docs/copyright.html.
    #
    # You may opt to use, copy, modify, merge, publish, distribute and/or sell
    # copies of the Software, and permit persons to whom the Software is
    # furnished to do so, under the terms of the COPYING file.
    #
    # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
    # KIND, either express or implied.
    #
    # $Id$
    
    #***************************************************************************
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    dnl Process this file with autoconf to produce a configure script.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    AC_PREREQ(2.57)
    
    Dan Fandrich's avatar
    Dan Fandrich committed
    dnl We don't know the version number "statically" so we use a dash here
    
    AC_INIT([curl], [-], [a suitable curl mailing list => http://curl.haxx.se/mail/])
    
    CURL_OVERRIDE_AUTOCONF
    
    
    AC_COPYRIGHT([Copyright (c) 1998 - 2009 Daniel Stenberg, <daniel@haxx.se>
    
    Guenter Knauf's avatar
    Guenter Knauf committed
    This configure script may be copied, distributed and modified under the
    
    terms of the curl license; see COPYING for more details])
    
    
    AC_CONFIG_SRCDIR([lib/urldata.h])
    
    AM_CONFIG_HEADER(lib/curl_config.h src/curl_config.h include/curl/curlbuild.h)
    
    CURL_CHECK_OPTION_OPTIMIZE
    
    CURL_CHECK_OPTION_WARNINGS
    
    CURL_CHECK_PATH_SEPARATOR_REQUIRED
    
    #
    # save the configure arguments
    #
    CONFIGURE_OPTIONS="\"$ac_configure_args\""
    AC_SUBST(CONFIGURE_OPTIONS)
    
    
    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],
    
      [$PATH:/usr/bin:/usr/local/bin])
    
    if test -z "$SED" || test "$SED" = "not_found"; then
      AC_MSG_ERROR([sed not found in PATH. Cannot continue without sed.])
    
    dnl GREP is mandatory for configure process and libtool.
    
    dnl Set it now, allowing it to be changed later.
    
    AC_PATH_PROG([GREP], [grep], [not_found],
    
      [$PATH:/usr/bin:/usr/local/bin])
    
    if test -z "$GREP" || test "$GREP" = "not_found"; then
      AC_MSG_ERROR([grep not found in PATH. Cannot continue without grep.])
    fi
    
    
    dnl EGREP is mandatory for configure process and libtool.
    
    dnl Set it now, allowing it to be changed later.
    
    if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then
      AC_MSG_CHECKING([for egrep])
      EGREP="$GREP -E"
      AC_MSG_RESULT([$EGREP])
    else
      AC_PATH_PROG([EGREP], [egrep], [not_found],
        [$PATH:/usr/bin:/usr/local/bin])
    
    if test -z "$EGREP" || test "$EGREP" = "not_found"; then
      AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.])
    fi
    
    dnl AR is mandatory for configure process and libtool.
    
    Yang Tse's avatar
    Yang Tse committed
    dnl This is target dependent, so check it as a tool.
    
    AC_PATH_TOOL([AR], [ar], [not_found],
      [$PATH:/usr/bin:/usr/local/bin])
    if test -z "$AR" || test "$AR" = "not_found"; then
      AC_MSG_ERROR([ar not found in PATH. Cannot continue without ar.])
    
    AC_SUBST(libext)
    
    dnl figure out the libcurl version
    
    VERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h`
    
    AC_MSG_CHECKING([curl version])
    AC_MSG_RESULT($VERSION)
    
    dnl
    dnl we extract the numerical version for curl-config only
    
    VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h`
    
    dnl Solaris pkgadd support definitions
    PKGADD_PKG="HAXXcurl"
    PKGADD_NAME="cURL - a client that groks URLs"
    PKGADD_VENDOR="curl.haxx.se"
    AC_SUBST(PKGADD_PKG)
    AC_SUBST(PKGADD_NAME)
    AC_SUBST(PKGADD_VENDOR)
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    dnl
    
    dnl initialize all the info variables
    
        curl_ssl_msg="no      (--with-ssl / --with-gnutls / --with-nss)"
    
        curl_ssh_msg="no      (--with-libssh2)"
    
       curl_zlib_msg="no      (--with-zlib)"
       curl_krb4_msg="no      (--with-krb4*)"
        curl_gss_msg="no      (--with-gssapi)"
     curl_spnego_msg="no      (--with-spnego)"
       curl_ares_msg="no      (--enable-ares)"
       curl_ipv6_msg="no      (--enable-ipv6)"
        curl_idn_msg="no      (--with-libidn)"
     curl_manual_msg="no      (--enable-manual)"
    curl_verbose_msg="enabled (--disable-verbose)"
    
       curl_ldap_msg="no      (--enable-ldap / --with-ldap-lib / --with-lber-lib)"
    
      curl_ldaps_msg="no      (--enable-ldaps)"
    
    dnl
    dnl Save anything in $LIBS for later
    dnl
    ALL_LIBS=$LIBS
    
    
    dnl
    dnl Detect the canonical host and target build environment
    dnl
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    
    AC_CANONICAL_HOST
    
    dnl Get system canonical name
    
    AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
    
    dnl Our curl_off_t internal and external configure settings
    CURL_CONFIGURE_CURL_OFF_T
    
    
    dnl This defines _ALL_SOURCE for AIX
    CURL_CHECK_AIX_ALL_SOURCE
    
    
    dnl Our configure and build reentrant settings
    
    Yang Tse's avatar
     
    Yang Tse committed
    CURL_CONFIGURE_THREAD_SAFE
    
    dnl check for how to do large files
    
    AC_SYS_LARGEFILE
    
    dnl support building of Windows DLLs
    
    dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD
    AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)])
    
      x86_64*linux*|amd64*freebsd*|ia64*freebsd*)
    
        AC_MSG_RESULT([yes])
        with_pic=yes
        ;;
      *)
        AC_MSG_RESULT([no])
        ;;
    esac
    
    
    AC_MSG_CHECKING([if we need -mimpure-text])
    
    case $host in
      *-*-solaris2*)
        if test "$GCC" = "yes"; then
          mimpure="yes"
        fi
        ;;
      *)
        ;;
    esac
    AC_MSG_RESULT($mimpure)
    AM_CONDITIONAL(MIMPURE, test x$mimpure = xyes)
    
    AC_MSG_CHECKING([if we need BUILDING_LIBCURL])
    case $host in
      *-*-mingw*)
        AC_DEFINE(BUILDING_LIBCURL, 1, [when building libcurl itself])
        AC_MSG_RESULT(yes)
    
        AC_MSG_CHECKING([if we need CURL_STATICLIB])
    
        if test "X$enable_shared" = "Xno"
        then
          AC_DEFINE(CURL_STATICLIB, 1, [when not building a shared library])
          AC_MSG_RESULT(yes)
    
    # Determine whether all dependent libraries must be specified when linking
    if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno"
    then
        REQUIRE_LIB_DEPS=no
    else
        REQUIRE_LIB_DEPS=yes
    fi
    AC_SUBST(REQUIRE_LIB_DEPS)
    
    
    dnl The install stuff has already been taken care of by the automake stuff
    dnl AC_PROG_INSTALL
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    AC_PROG_MAKE_SET
    
    
    dnl check if there's a way to force code inline
    AC_C_INLINE
    
    
    dnl **********************************************************************
    dnl platform/compiler/architecture specific checks/flags
    dnl **********************************************************************
    
    
    CURL_SET_COMPILER_BASIC_OPTS
    CURL_SET_COMPILER_DEBUG_OPTS
    CURL_SET_COMPILER_OPTIMIZE_OPTS
    CURL_SET_COMPILER_WARNING_OPTS
    
    case $host in
      #
      x86_64*linux*|amd64*freebsd*|ia64*freebsd*)
        #
    
        if test "$compiler_id" = "INTEL_UNIX_C"; then
    
          if test "$compiler_num" -ge "900" &&
            test "$compiler_num" -lt "1000"; then
    
            CFLAGS="$CFLAGS -i-dynamic"
    
          if test "$compiler_num" -ge "1000"; then
    
            CFLAGS="$CFLAGS -shared-intel"
    
    CURL_CHECK_COMPILER_HALT_ON_ERROR
    CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
    
    
    CURL_CHECK_NO_UNDEFINED
    AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes)
    
    CURL_CHECK_CURLDEBUG
    AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes)
    
    
    dnl **********************************************************************
    dnl Compilation based checks should not be done before this point.
    dnl **********************************************************************
    
    dnl **********************************************************************
    dnl Make sure that our checks for headers windows.h winsock.h winsock2.h
    dnl and ws2tcpip.h take precedence over any other further checks which
    dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for
    dnl this specific header files. And do them before its results are used.
    dnl **********************************************************************
    
    CURL_CHECK_HEADER_WINDOWS
    CURL_CHECK_NATIVE_WINDOWS
    case X-"$ac_cv_native_windows" in
      X-yes)
        CURL_CHECK_HEADER_WINSOCK
        CURL_CHECK_HEADER_WINSOCK2
        CURL_CHECK_HEADER_WS2TCPIP
        CURL_CHECK_HEADER_WINLDAP
        CURL_CHECK_HEADER_WINBER
        ;;
      *)
        ac_cv_header_winsock_h="no"
        ac_cv_header_winsock2_h="no"
        ac_cv_header_ws2tcpip_h="no"
        ac_cv_header_winldap_h="no"
        ac_cv_header_winber_h="no"
        ;;
    esac
    
    dnl ************************************************************
    dnl switch off particular protocols
    dnl
    AC_MSG_CHECKING([whether to support http])
    AC_ARG_ENABLE(http,
    
    AC_HELP_STRING([--enable-http],[Enable HTTP support])
    AC_HELP_STRING([--disable-http],[Disable HTTP support]),
    
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
    
           AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP])
    
           AC_MSG_WARN([disable HTTP disables FTP over proxy])
    
           ;;
      *)   AC_MSG_RESULT(yes)
           ;;
      esac ],
           AC_MSG_RESULT(yes)
    )
    AC_MSG_CHECKING([whether to support ftp])
    AC_ARG_ENABLE(ftp,
    
    AC_HELP_STRING([--enable-ftp],[Enable FTP support])
    AC_HELP_STRING([--disable-ftp],[Disable FTP support]),
    
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
    
           AC_DEFINE(CURL_DISABLE_FTP, 1, [to disable FTP])
    
           ;;
      *)   AC_MSG_RESULT(yes)
           ;;
      esac ],
           AC_MSG_RESULT(yes)
    )
    AC_MSG_CHECKING([whether to support file])
    AC_ARG_ENABLE(file,
    
    AC_HELP_STRING([--enable-file],[Enable FILE support])
    AC_HELP_STRING([--disable-file],[Disable FILE support]),
    
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
    
           AC_DEFINE(CURL_DISABLE_FILE, 1, [to disable FILE])
    
           ;;
      *)   AC_MSG_RESULT(yes)
           ;;
      esac ],
           AC_MSG_RESULT(yes)
    )
    AC_MSG_CHECKING([whether to support ldap])
    AC_ARG_ENABLE(ldap,
    
    AC_HELP_STRING([--enable-ldap],[Enable LDAP support])
    AC_HELP_STRING([--disable-ldap],[Disable LDAP support]),
    
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
    
           AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
    
      *)
           case $host in
             *-*-cygwin*)
               # Force no ldap. config/build process is broken for cygwin
               AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
               AC_SUBST(CURL_DISABLE_LDAP, [1])
               AC_MSG_RESULT(no)
               ;;
             *)
               AC_MSG_RESULT(yes)
           esac
    
      esac ],[
           case $host in
             *-*-cygwin*)
               # Force no ldap. config/build process is broken for cygwin
               AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
               AC_SUBST(CURL_DISABLE_LDAP, [1])
               AC_MSG_RESULT(no)
               ;;
             *)
               AC_MSG_RESULT(yes)
           esac ]
    
    AC_MSG_CHECKING([whether to support ldaps])
    AC_ARG_ENABLE(ldaps,
    AC_HELP_STRING([--enable-ldaps],[Enable LDAPS support])
    AC_HELP_STRING([--disable-ldaps],[Disable LDAPS support]),
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
           AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
           AC_SUBST(CURL_DISABLE_LDAPS, [1])
           ;;
      *)   if test x$CURL_DISABLE_LDAP = x1 ; then
                   AC_MSG_RESULT(LDAP support needs to be enabled in order to enable LDAPS support!)
                   AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
                   AC_SUBST(CURL_DISABLE_LDAPS, [1])
           else
                   AC_MSG_RESULT(yes)
                   AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
                   curl_ldaps_msg="enabled"
           fi
           ;;
      esac ],
           AC_MSG_RESULT(no)
           AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
           AC_SUBST(CURL_DISABLE_LDAPS, [1])
    )
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    AC_MSG_CHECKING([whether to support proxies])
    
    AC_ARG_ENABLE(proxy,
    AC_HELP_STRING([--enable-proxy],[Enable proxy support])
    AC_HELP_STRING([--disable-proxy],[Disable proxy support]),
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
           AC_DEFINE(CURL_DISABLE_PROXY, 1, [to disable proxies])
           AC_SUBST(CURL_DISABLE_PROXY, [1])
           ;;
      *)   AC_MSG_RESULT(yes)
           ;;
      esac ],
           AC_MSG_RESULT(yes)
    )
    
    
    AC_MSG_CHECKING([whether to support dict])
    AC_ARG_ENABLE(dict,
    
    AC_HELP_STRING([--enable-dict],[Enable DICT support])
    AC_HELP_STRING([--disable-dict],[Disable DICT support]),
    
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
    
           AC_DEFINE(CURL_DISABLE_DICT, 1, [to disable DICT])
    
           ;;
      *)   AC_MSG_RESULT(yes)
           ;;
      esac ],
           AC_MSG_RESULT(yes)
    )
    AC_MSG_CHECKING([whether to support telnet])
    AC_ARG_ENABLE(telnet,
    
    AC_HELP_STRING([--enable-telnet],[Enable TELNET support])
    AC_HELP_STRING([--disable-telnet],[Disable TELNET support]),
    
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
    
           AC_DEFINE(CURL_DISABLE_TELNET, 1, [to disable TELNET])
    
           ;;
      *)   AC_MSG_RESULT(yes)
           ;;
      esac ],
           AC_MSG_RESULT(yes)
    )
    
    AC_MSG_CHECKING([whether to support tftp])
    AC_ARG_ENABLE(tftp,
    AC_HELP_STRING([--enable-tftp],[Enable TFTP support])
    AC_HELP_STRING([--disable-tftp],[Disable TFTP support]),
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
           AC_DEFINE(CURL_DISABLE_TFTP, 1, [to disable TFTP])
           AC_SUBST(CURL_DISABLE_TFTP, [1])
           ;;
      *)   AC_MSG_RESULT(yes)
           ;;
      esac ],
           AC_MSG_RESULT(yes)
    )
    
    dnl **********************************************************************
    dnl Check for built-in manual
    dnl **********************************************************************
    
    AC_MSG_CHECKING([whether to provide built-in manual])
    AC_ARG_ENABLE(manual,
    AC_HELP_STRING([--enable-manual],[Enable built-in manual])
    AC_HELP_STRING([--disable-manual],[Disable built-in manual]),
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
           ;;
      *)   AC_MSG_RESULT(yes)
           USE_MANUAL="1"
           ;;
      esac ],
           AC_MSG_RESULT(yes)
           USE_MANUAL="1"
    )
    dnl The actual use of the USE_MANUAL variable is done much later in this
    dnl script to allow other actions to disable it as well.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    dnl **********************************************************************
    dnl Checks for libraries.
    dnl **********************************************************************
    
    
    dnl gethostbyname without lib or in the nsl lib?
    AC_CHECK_FUNC(gethostbyname,
                  [HAVE_GETHOSTBYNAME="1"
                  ],
                  [ AC_CHECK_LIB(nsl, gethostbyname,
                                 [HAVE_GETHOSTBYNAME="1"
                                 LIBS="$LIBS -lnsl"
                                 ])
                  ])
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
    
      AC_CHECK_LIB(socket, gethostbyname,
                   [HAVE_GETHOSTBYNAME="1"
                   LIBS="$LIBS -lsocket"
                   ])
    
    dnl At least one system has been identified to require BOTH nsl and socket
    dnl libs at the same time to link properly.
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
    
      AC_MSG_CHECKING([for gethostbyname with both nsl and socket libs])
    
      my_ac_save_LIBS=$LIBS
      LIBS="-lnsl -lsocket $LIBS"
    
      AC_LINK_IFELSE([
        AC_LANG_PROGRAM([[
        ]],[[
          gethostbyname();
        ]])
      ],[
        AC_MSG_RESULT([yes])
        HAVE_GETHOSTBYNAME="1"
      ],[
        AC_MSG_RESULT([no])
        LIBS=$my_ac_save_LIBS
      ])
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
    
      dnl This is for winsock systems
      if test "$ac_cv_header_windows_h" = "yes"; then
        if test "$ac_cv_header_winsock_h" = "yes"; then
    
          case $host in
            *-*-mingw32ce*)
              winsock_LIB="-lwinsock"
              ;;
            *)
              winsock_LIB="-lwsock32"
              ;;
          esac
    
        fi
        if test "$ac_cv_header_winsock2_h" = "yes"; then
          winsock_LIB="-lws2_32"
        fi
        if test ! -z "$winsock_LIB"; then
          my_ac_save_LIBS=$LIBS
          LIBS="$winsock_LIB $LIBS"
          AC_MSG_CHECKING([for gethostbyname in $winsock_LIB])
    
          AC_LINK_IFELSE([
            AC_LANG_PROGRAM([[
    
    #ifdef HAVE_WINDOWS_H
    #ifndef WIN32_LEAN_AND_MEAN
    #define WIN32_LEAN_AND_MEAN
    #endif
    #include <windows.h>
    #ifdef HAVE_WINSOCK2_H
    #include <winsock2.h>
    #else
    #ifdef HAVE_WINSOCK_H
    #include <winsock.h>
    #endif
    #endif
    #endif
    
              gethostbyname("www.dummysite.com");
    
            ]])
          ],[
            AC_MSG_RESULT([yes])
            HAVE_GETHOSTBYNAME="1"
          ],[
            AC_MSG_RESULT([no])
            winsock_LIB=""
            LIBS=$my_ac_save_LIBS
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
      dnl This is for Minix 3.1
      AC_MSG_CHECKING([for gethostbyname for Minix 3])
    
      AC_LINK_IFELSE([
        AC_LANG_PROGRAM([[
    
    /* Older Minix versions may need <net/gen/netdb.h> here instead */
    
    #include <netdb.h>
        ]],[[
          gethostbyname("www.dummysite.com");
        ]])
      ],[
        AC_MSG_RESULT([yes])
        HAVE_GETHOSTBYNAME="1"
      ],[
        AC_MSG_RESULT([no])
      ])
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
      dnl This is for eCos with a stubbed DNS implementation
      AC_MSG_CHECKING([for gethostbyname for eCos])
    
      AC_LINK_IFELSE([
        AC_LANG_PROGRAM([[
    
    #include <netdb.h>
        ]],[[
          gethostbyname("www.dummysite.com");
        ]])
      ],[
        AC_MSG_RESULT([yes])
        HAVE_GETHOSTBYNAME="1"
      ],[
        AC_MSG_RESULT([no])
      ])
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
      dnl gethostbyname in the network lib - for Haiku OS
      AC_CHECK_LIB(network, gethostbyname,
                   [HAVE_GETHOSTBYNAME="1"
                   LIBS="$LIBS -lnetwork"
                   ])
    fi
    
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
      dnl gethostbyname in the net lib - for BeOS
      AC_CHECK_LIB(net, gethostbyname,
                   [HAVE_GETHOSTBYNAME="1"
                   LIBS="$LIBS -lnet"
                   ])
    fi
    
    
    
    if test "$HAVE_GETHOSTBYNAME" != "1"; then
    
      AC_MSG_ERROR([couldn't find libraries for gethostbyname()])
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    dnl resolve lib?
    
    AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ])
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    
    if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then
      AC_CHECK_LIB(resolve, strcasecmp,
                  [LIBS="-lresolve $LIBS"],
                   ,
                   -lnsl)
    fi
    
    Yang Tse's avatar
    Yang Tse committed
    ac_cv_func_strcasecmp="no"
    
    Yang Tse's avatar
     
    Yang Tse committed
    CURL_CHECK_LIBS_CONNECT
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    
    dnl **********************************************************************
    
    dnl In case that function clock_gettime with monotonic timer is available,
    dnl check for additional required libraries.
    
    dnl **********************************************************************
    
    CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC
    
    dnl **********************************************************************
    dnl The preceding library checks are all potentially useful for test
    dnl servers (for providing networking support).  Save the list of required
    dnl libraries at this point for use while linking those test servers.
    dnl **********************************************************************
    TEST_SERVER_LIBS=$LIBS
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    
    dnl **********************************************************************
    
    AC_MSG_CHECKING([whether to use libgcc])
    AC_ARG_ENABLE(libgcc,
    AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]),
    [ case "$enableval" in
      yes)
    
           AC_MSG_RESULT(yes)
           ;;
      *)   AC_MSG_RESULT(no)
           ;;
      esac ],
           AC_MSG_RESULT(no)
    )
    
    
    dnl **********************************************************************
    
    dnl **********************************************************************
    
    LDAPLIBNAME=""
    AC_ARG_WITH(ldap-lib,
    
    AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of ldap lib file]),
    
     [LDAPLIBNAME="$withval"])
    
    LBERLIBNAME=""
    AC_ARG_WITH(lber-lib,
    
    AC_HELP_STRING([--with-lber-lib=libname],[Specify name of lber lib file]),
    
     [LBERLIBNAME="$withval"])
    
    if test x$CURL_DISABLE_LDAP != x1 ; then
    
    
      CURL_CHECK_HEADER_LBER
      CURL_CHECK_HEADER_LDAP
      CURL_CHECK_HEADER_LDAPSSL
      CURL_CHECK_HEADER_LDAP_SSL
    
      if test -z "$LDAPLIBNAME" ; then
        case $host in
    
            dnl Windows uses a single and unique OpenLDAP DLL name
    
        AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [
          AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled])
          AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
          AC_SUBST(CURL_DISABLE_LDAP, [1])])
    
          AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
          AC_SUBST(CURL_DISABLE_LDAPS, [1])
    
        dnl Try to find the right ldap libraries for this system
        CURL_CHECK_LIBS_LDAP
        case X-"$curl_cv_ldap_LIBS" in
          X-unknown)
            AC_MSG_WARN([Cannot find libraries for LDAP support: LDAP disabled])
            AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
            AC_SUBST(CURL_DISABLE_LDAP, [1])
    
            AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
            AC_SUBST(CURL_DISABLE_LDAPS, [1])
    
        dnl If name is "no" then don't define this library at all
    
        dnl (it's only needed if libldap.so's dependencies are broken).
    
    Guenter Knauf's avatar
    Guenter Knauf committed
        if test "$LBERLIBNAME" != "no" ; then
    
          AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [
            AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled])
            AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
            AC_SUBST(CURL_DISABLE_LDAP, [1])])
    
            AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
            AC_SUBST(CURL_DISABLE_LDAPS, [1])
    
      fi
    fi
    
    if test x$CURL_DISABLE_LDAP != x1 ; then
      AC_CHECK_FUNCS([ldap_url_parse])
    
      if test "$LDAPLIBNAME" = "wldap32"; then
    
        curl_ldap_msg="enabled (winldap)"
    
        AC_DEFINE(CURL_LDAP_WIN, 1, [Use W$ LDAP implementation])
        case $host in
    
          *-*-cygwin* | *-*-pw32*)
    
            AC_DEFINE(CURL_LDAP_HYBRID, 1, [W$ LDAP with non-W$ compiler])
            ;;
        esac
      else
    
        curl_ldap_msg="enabled (OpenLDAP)"
    
    dnl **********************************************************************
    dnl Checks for IPv6
    dnl **********************************************************************
    
    AC_MSG_CHECKING([whether to enable ipv6])
    AC_ARG_ENABLE(ipv6,
    AC_HELP_STRING([--enable-ipv6],[Enable ipv6 (with ipv4) support])
    AC_HELP_STRING([--disable-ipv6],[Disable ipv6 support]),
    [ case "$enableval" in
      no)
           AC_MSG_RESULT(no)
           ipv6=no
           ;;
      *)   AC_MSG_RESULT(yes)
           ipv6=yes
           ;;
      esac ],
    
      AC_TRY_RUN([ /* is AF_INET6 available? */
    #include <sys/types.h>
    #include <sys/socket.h>
    main()
    {
     if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
       exit(1);
     else
       exit(0);
    }
    ],
      AC_MSG_RESULT(yes)
      ipv6=yes,
      AC_MSG_RESULT(no)
      ipv6=no,
      AC_MSG_RESULT(no)
      ipv6=no
    ))
    
    if test "$ipv6" = "yes"; then
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      curl_ipv6_msg="enabled"
    
    # Check if struct sockaddr_in6 have sin6_scope_id member
    if test "$ipv6" = yes; then
      AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
      AC_TRY_COMPILE([
    #include <sys/types.h>
    #include <netinet/in.h>] ,
      struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
      if test "$have_sin6_scope_id" = yes; then
    
        AC_MSG_RESULT([yes])
        AC_DEFINE(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID, 1, [Define to 1 if struct sockaddr_in6 has the sin6_scope_id member])
    
    dnl **********************************************************************
    dnl Check if the operating system allows programs to write to their own argv[]
    dnl **********************************************************************
    
    AC_MSG_CHECKING([if argv can be written to])
    
    AC_CACHE_VAL(curl_cv_writable_argv, [
    
    Guenter Knauf's avatar
    Guenter Knauf committed
            argv[0][0] = ' ';
            return (argv[0][0] == ' ')?0:1;
    
    Guenter Knauf's avatar
    Guenter Knauf committed
            ]],
            curl_cv_writable_argv=yes,
            curl_cv_writable_argv=no,
            curl_cv_writable_argv=cross)
    
    Guenter Knauf's avatar
    Guenter Knauf committed
            AC_DEFINE(HAVE_WRITABLE_ARGV, 1, [Define this symbol if your OS supports changing the contents of argv])
            AC_MSG_RESULT(yes)
            ;;
    
    Guenter Knauf's avatar
    Guenter Knauf committed
            AC_MSG_RESULT(no)
            ;;
    
            AC_MSG_RESULT(no)
            AC_MSG_WARN([the previous check could not be made default was used])
    
    dnl **********************************************************************
    dnl Check for the presence of Kerberos4 libraries and headers
    dnl **********************************************************************
    
    AC_ARG_WITH(krb4-includes,
    
    AC_HELP_STRING([--with-krb4-includes=DIR],
                   [Specify location of kerberos4 headers]),[
    
     CPPFLAGS="$CPPFLAGS -I$withval"
     KRB4INC="$withval"
     want_krb4=yes
     ])
    
    AC_ARG_WITH(krb4-libs,
    
    AC_HELP_STRING([--with-krb4-libs=DIR],[Specify location of kerberos4 libs]),[
    
     LDFLAGS="$LDFLAGS -L$withval"
     KRB4LIB="$withval"
     want_krb4=yes
     ])
    
    
    OPT_KRB4=off
    AC_ARG_WITH(krb4,dnl
    
    AC_HELP_STRING([--with-krb4=DIR],[where to look for Kerberos4]),[
    
      if test X"$OPT_KRB4" != Xno; then
        want_krb4="yes"
        if test X"$OPT_KRB4" != Xyes; then
          LDFLAGS="$LDFLAGS -L$OPT_KRB4/lib$libsuff"
          KRB4LIB="$OPT_KRB4/lib$libsuff"
          CPPFLAGS="$CPPFLAGS -I$OPT_KRB4/include"
          KRB4INC="$OPT_KRB4/include"
        fi
    
      fi
     ])
    
    AC_MSG_CHECKING([if Kerberos4 support is requested])
    
    if test "$want_krb4" = yes
    then
    
      if test "$ipv6" = "yes"; then
        echo krb4 is not compatible with IPv6
        exit 1
      fi
    
      AC_MSG_RESULT(yes)
    
      dnl Check for & handle argument to --with-krb4
    
      AC_MSG_CHECKING(where to look for Kerberos4)
      if test X"$OPT_KRB4" = Xyes
      then
        AC_MSG_RESULT([defaults])
      else
        AC_MSG_RESULT([libs in $KRB4LIB, headers in $KRB4INC])
      fi
    
      dnl Check for DES library
      AC_CHECK_LIB(des, des_pcbc_encrypt,
      [
        AC_CHECK_HEADERS(des.h)
    
        dnl resolv lib?
    
        AC_CHECK_FUNC(res_search, , [AC_CHECK_LIB(resolv, res_search)])
    
    
        dnl Check for the Kerberos4 library
        AC_CHECK_LIB(krb, krb_net_read,
        [
          dnl Check for header files
          AC_CHECK_HEADERS(krb.h)
    
          dnl we found the required libraries, add to LIBS
    
    
          dnl Check for function krb_get_our_ip_for_realm
          dnl this is needed for NAT networks
          AC_CHECK_FUNCS(krb_get_our_ip_for_realm)
    
          dnl add define KRB4
    
          AC_DEFINE(HAVE_KRB4, 1,
    
          [if you have the Kerberos4 libraries (including -ldes)])
    
          dnl substitute it too!
          KRB4_ENABLED=1
          AC_SUBST(KRB4_ENABLED)
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
          curl_krb4_msg="enabled"
    
    
          dnl the krb4 stuff needs a strlcpy()
          AC_CHECK_FUNCS(strlcpy)
    
        ])
      ])
    else
      AC_MSG_RESULT(no)
    fi
    
    
    dnl **********************************************************************
    dnl Check for FBopenssl(SPNEGO) libraries
    dnl **********************************************************************
    
    AC_ARG_WITH(spnego,
      AC_HELP_STRING([--with-spnego=DIR],
    
                     [Specify location of SPNEGO library fbopenssl]), [
      SPNEGO_ROOT="$withval"
      if test x"$SPNEGO_ROOT" != xno; then
        want_spnego="yes"
      fi
    ])
    
    
    AC_MSG_CHECKING([if SPNEGO support is requested])
    if test x"$want_spnego" = xyes; then
    
    
      if test X"$SPNEGO_ROOT" = Xyes; then
         AC_MSG_ERROR([FBOpenSSL libs and/or directories were not found where specified!])
         AC_MSG_RESULT(no)
    
         if test -z "$SPNEGO_LIB_DIR"; then
    
            LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
         AC_DEFINE(HAVE_SPNEGO, 1,
                   [Define this if you have the SPNEGO library fbopenssl])
         curl_spnego_msg="enabled"
    
    dnl **********************************************************************
    dnl Check for GSS-API libraries
    dnl **********************************************************************