Skip to content
Snippets Groups Projects
configure.ac 70.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • #***************************************************************************
    #                                  _   _ ____  _
    #  Project                     ___| | | |  _ \| |
    #                             / __| | | | |_) | |
    #                            | (__| |_| |  _ <| |___
    #                             \___|\___/|_| \_\_____|
    #
    
    # Copyright (C) 1998 - 2007, 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)
    
    dnl We don't know the version number "staticly" so we use a dash here
    
    AC_INIT(curl, [-], [a suitable curl mailing list => http://curl.haxx.se/mail/])
    
    AC_COPYRIGHT([Copyright (c) 1998 - 2006 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/config.h src/config.h)
    
    dnl SED is needed by some of the tools
    
    AC_PATH_PROG( SED, sed, sed-was-not-found-by-configure,
                  $PATH:/usr/bin:/usr/local/bin)
    
    AC_SUBST(SED)
    
    
    if test "x$SED" = "xsed-was-not-found-by-configure"; then
      AC_MSG_WARN([sed was not found, this may ruin your chances to build fine])
    fi
    
    
    dnl AR is used by libtool, and try the odd Solaris path too
    
    dnl we use AC_CHECK_TOOL since this should make a library for the target
    dnl platform
    AC_CHECK_TOOL(AR, ar,
    
                  ar-was-not-found-by-configure,
                  $PATH:/usr/bin:/usr/local/bin:/usr/ccs/bin)
    
    if test "x$AR" = "xar-was-not-found-by-configure"; then
      AC_MSG_WARN([ar was not found, this may ruin your chances to build fine])
    fi
    
    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)"
    
        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 Check for AIX weirdos
    AC_AIX
    
    
    dnl Checks for programs.
    AC_PROG_CC
    
    
    dnl check for how to do large files
    
    AC_SYS_LARGEFILE
    
    dnl support building of Windows DLLs
    
    dnl skip libtool C++ and Fortran compiler checks
    
    m4_ifdef([AC_PROG_CXX], [m4_undefine([AC_PROG_CXX])])
    
    m4_defun([AC_PROG_CXX],[])
    
    m4_ifdef([AC_PROG_CXXCPP], [m4_undefine([AC_PROG_CXXCPP])])
    m4_defun([AC_PROG_CXXCPP],[true])
    
    m4_ifdef([AC_PROG_F77], [m4_undefine([AC_PROG_F77])])
    
    m4_defun([AC_PROG_F77],[])
    
    
    dnl skip libtool C++ and Fortran linker checks
    
    m4_ifdef([AC_LIBTOOL_CXX], [m4_undefine([AC_LIBTOOL_CXX])])
    
    m4_defun([AC_LIBTOOL_CXX],[])
    
    m4_ifdef([AC_LIBTOOL_CXXCPP], [m4_undefine([AC_LIBTOOL_CXXCPP])])
    m4_defun([AC_LIBTOOL_CXXCPP],[true])
    
    m4_ifdef([AC_LIBTOOL_F77], [m4_undefine([AC_LIBTOOL_F77])])
    
    m4_defun([AC_LIBTOOL_F77],[])
    
    
    dnl force libtool to build static libraries with PIC on AMD64-linux
    AC_MSG_CHECKING([if arch-OS host is AMD64-linux (to build static libraries with PIC)])
    
      x86_64*linux*)
    
        AC_MSG_RESULT([yes])
        with_pic=yes
        ;;
      *)
        AC_MSG_RESULT([no])
        ;;
    esac
    
    
    AC_MSG_CHECKING([if we need -no-undefined])
    
      *-*-cygwin | *-*-mingw* | *-*-pw32*)
    
    AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes)
    
    
    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 **********************************************************************
    
    Guenter Knauf's avatar
    Guenter Knauf committed
    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_HEADER_WINSOCK
    CURL_CHECK_HEADER_WINSOCK2
    CURL_CHECK_HEADER_WS2TCPIP
    
    
    CURL_CHECK_HEADER_WINLDAP
    CURL_CHECK_HEADER_WINBER
    
    dnl **********************************************************************
    dnl platform/compiler/architecture specific checks/flags
    dnl **********************************************************************
    
    case $host in
      #
      x86_64*linux*)
        #
        dnl find out if icc is being used
        if test "z$ICC" = "z"; then
          CURL_DETECT_ICC
        fi
        #
        if test "$ICC" = "yes"; then
          dnl figure out icc version
    
          AC_MSG_CHECKING([icc version])
    
          iccver=`$CC -dumpversion`
          iccnhi=`echo $iccver | cut -d . -f1`
          iccnlo=`echo $iccver | cut -d . -f2`
          iccnum=`(expr $iccnhi "*" 100 + $iccnlo) 2>/dev/null`
          AC_MSG_RESULT($iccver)
          #
          if test "$iccnum" -ge "900" && test "$iccnum" -lt "1000"; then
            dnl icc 9.X specific
            CFLAGS="$CFLAGS -i-dynamic"
          fi
          #
          if test "$iccnum" -ge "1000"; then
            dnl icc 10.X or later
            CFLAGS="$CFLAGS -shared-intel"
          fi
          #
        fi
        ;;
      #
    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])
    
           ;;
      *)   AC_MSG_RESULT(yes)
           ;;
      esac ],
           AC_MSG_RESULT(yes)
    )
    
    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])
    )
    
    
    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.
    
    
    dnl **********************************************************************
    dnl check if this is the Intel ICC compiler, and if so make it stricter
    dnl (convert warning 147 into an error) so that it properly can detect the
    dnl gethostbyname_r() version
    dnl **********************************************************************
    CURL_DETECT_ICC([CFLAGS="$CFLAGS -we 147"])
    
    
    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_TRY_LINK( ,
                 [gethostbyname();],
    
                 AC_MSG_RESULT([yes])],
                 [ dnl failed!
                 AC_MSG_RESULT([no])
                 dnl restore LIBS
                 LIBS=$my_ac_save_LIBS]
                 )
    fi
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
      dnl This is for Msys/Mingw
      AC_MSG_CHECKING([for gethostbyname in ws2_32])
      my_ac_save_LIBS=$LIBS
      LIBS="-lws2_32 $LIBS"
      AC_TRY_LINK([#include <winsock2.h>],
                   [gethostbyname("www.dummysite.com");],
                   [ dnl worked!
    
                   HAVE_GETHOSTBYNAME="1"],
                   [ dnl failed, restore LIBS
                   LIBS=$my_ac_save_LIBS
                   AC_MSG_RESULT(no)]
                 )
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
      dnl This is for Minix 3.1
      AC_MSG_CHECKING([for gethostbyname for Minix 3])
      AC_TRY_LINK([
    /* Older Minix versions may need <net/gen/netdb.h> here instead */
    #include <netdb.h>],
                   [gethostbyname("www.dummysite.com");],
                   [ dnl worked!
                   AC_MSG_RESULT([yes])
                   HAVE_GETHOSTBYNAME="1"],
                   AC_MSG_RESULT(no)
                 )
    fi
    
    
    if test "$HAVE_GETHOSTBYNAME" != "1"
    then
      dnl This is for eCos with a stubbed DNS implementation
      AC_MSG_CHECKING([for gethostbyname for eCos])
      AC_TRY_LINK([
    #include <stdio.h>
    #include <netdb.h>],
                   [gethostbyname("www.dummysite.com");],
                   [ dnl worked!
                   AC_MSG_RESULT([yes])
                   HAVE_GETHOSTBYNAME="1"],
                   AC_MSG_RESULT(no)
                 )
    
    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_DEFINE(HAVE_GETHOSTBYNAME, 1, [If you have gethostbyname])
    else
      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
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    dnl socket lib?
    
    AC_CHECK_FUNC(connect, , [ AC_CHECK_LIB(socket, connect) ])
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    
    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])])
    
        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])
            ;;
        esac
    
        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])])
    
      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)"
    
      fi
    fi
    
    dnl **********************************************************************
    
    dnl Check for the presence of the winmm library.
    dnl **********************************************************************
    
    
    case $host in
      *-*-cygwin*)
        dnl Under Cygwin, winmm exists but is not needed as WIN32 is not #defined
        dnl and gettimeofday() will be used regardless of the outcome of this test.
        dnl Skip this test, otherwise -lwinmm will be needlessly added to LIBS
        dnl (and recorded as such in the .la file, potentially affecting downstream
        dnl clients of the library.)
        ;;
      *)
        AC_MSG_CHECKING([for timeGetTime in winmm])
        my_ac_save_LIBS=$LIBS
        LIBS="-lwinmm $LIBS"
        AC_TRY_LINK([#include <windef.h>
                     #include <mmsystem.h>
                     ],
                     [timeGetTime();],
                     [ dnl worked!
                     AC_MSG_RESULT([yes])
                     ],
                     [ dnl failed, restore LIBS
                     LIBS=$my_ac_save_LIBS
                     AC_MSG_RESULT(no)]
                   )
        ;;
    esac
    
    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"
    
    dnl **********************************************************************
    dnl Check how non-blocking sockets are set
    dnl **********************************************************************
    AC_ARG_ENABLE(nonblocking,
    
    AC_HELP_STRING([--enable-nonblocking],[Enable detecting how to do it])
    AC_HELP_STRING([--disable-nonblocking],[Disable non-blocking socket detection]),
    
    [
      if test "$enableval" = "no" ; then
        AC_MSG_WARN([non-blocking sockets disabled])
    
        AC_DEFINE(HAVE_DISABLED_NONBLOCKING, 1,
        [to disable NON-BLOCKING connections])
    
      else
        CURL_CHECK_NONBLOCKING_SOCKET
      fi
    ],
    [
      CURL_CHECK_NONBLOCKING_SOCKET
    ])
    
    
    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 **********************************************************************
    
    AC_ARG_WITH(gssapi-includes,
      AC_HELP_STRING([--with-gssapi-includes=DIR],
                     [Specify location of GSSAPI header]),
    
    Guenter Knauf's avatar
    Guenter Knauf committed
      [ GSSAPI_INCS="-I$withval"
    
        want_gss="yes" ]
    )
    
    AC_ARG_WITH(gssapi-libs,
      AC_HELP_STRING([--with-gssapi-libs=DIR],
    
    Guenter Knauf's avatar
    Guenter Knauf committed
                     [Specify location of GSSAPI libs]),
    
      [ GSSAPI_LIB_DIR="-L$withval"
    
        want_gss="yes" ]
    )
    
    AC_ARG_WITH(gssapi,
      AC_HELP_STRING([--with-gssapi=DIR],
    
                     [Where to look for GSSAPI]), [
      GSSAPI_ROOT="$withval"
      if test x"$GSSAPI_ROOT" != xno; then
    
    Guenter Knauf's avatar
    Guenter Knauf committed
        want_gss="yes"
    
    AC_MSG_CHECKING([if GSSAPI support is requested])
    if test x"$want_gss" = xyes; then
    
      AC_MSG_RESULT(yes)
    
    
      if test -z "$GSSAPI_INCS"; then
         if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
    
            GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi`
    
         elif test "$GSSAPI_ROOT" != "yes"; then
    
            GSSAPI_INCS="-I$GSSAPI_ROOT/include"
    
      CPPFLAGS="$CPPFLAGS $GSSAPI_INCS"
    
    
      AC_CHECK_HEADER(gss.h,
        [
          dnl found in the given dirs
          AC_DEFINE(HAVE_GSSGNU, 1, [if you have the GNU gssapi libraries])
          gnu_gss=yes
        ],
        [
          dnl not found, check Heimdal
          AC_CHECK_HEADER(gssapi.h,
            [
              dnl found in the given dirs
              AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries])
            ],
            [
    
    Guenter Knauf's avatar
    Guenter Knauf committed
              dnl not found, check in gssapi/ subdir
    
              AC_CHECK_HEADER(gssapi/gssapi.h,
                [
    
    Guenter Knauf's avatar
    Guenter Knauf committed
                  dnl found
    
                  AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
                ],
                [
                  dnl no header found, disabling GSS
                  want_gss=no
                  AC_MSG_WARN(disabling GSSAPI since no header files was found)
                ]
              )
            ]
    
        ]
      )
    else
      AC_MSG_RESULT(no)
    fi
    if test x"$want_gss" = xyes; then
      AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries])
    
      curl_gss_msg="enabled (MIT/Heimdal)"
    
      if test -n "$gnu_gss"; then
        curl_gss_msg="enabled (GNU GSS)"
        LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR -lgss"
      elif test -z "$GSSAPI_LIB_DIR"; then
    
         if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
            gss_ldflags=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi`
    
    Guenter Knauf's avatar
    Guenter Knauf committed
            LDFLAGS="$LDFLAGS $gss_ldflags"
    
         elif test "$GSSAPI_ROOT" != "yes"; then
    
            LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff -lgssapi"
    
         else
            LDFLAGS="$LDFLAGS -lgssapi"
    
         LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR -lgssapi"
    
      CPPFLAGS="$save_CPPFLAGS"
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    dnl **********************************************************************
    dnl Check for the presence of SSL libraries and headers
    dnl **********************************************************************