# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2014, 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
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/])
+XC_OVR_ZZ50
+XC_OVR_ZZ60
CURL_OVERRIDE_AUTOCONF
dnl configure script copyright
-AC_COPYRIGHT([Copyright (c) 1998 - 2010 Daniel Stenberg, <daniel@haxx.se>
+AC_COPYRIGHT([Copyright (c) 1998 - 2014 Daniel Stenberg, <daniel@haxx.se>
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)
+AC_CONFIG_HEADERS(lib/curl_config.h include/curl/curlbuild.h)
+AC_CONFIG_MACRO_DIR([m4])
AM_MAINTAINER_MODE
CURL_CHECK_OPTION_DEBUG
CURL_CHECK_OPTION_WARNINGS
CURL_CHECK_OPTION_WERROR
CURL_CHECK_OPTION_CURLDEBUG
+CURL_CHECK_OPTION_SYMBOL_HIDING
CURL_CHECK_OPTION_ARES
-CURL_CHECK_PATH_SEPARATOR_REQUIRED
+XC_CHECK_PATH_SEPARATOR
#
# save the configure arguments
fi
dnl figure out the libcurl version
-VERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h`
-AM_INIT_AUTOMAKE(curl,$VERSION)
+CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h`
+XC_CHECK_PROG_CC
+XC_AUTOMAKE
AC_MSG_CHECKING([curl version])
-AC_MSG_RESULT($VERSION)
+AC_MSG_RESULT($CURLVERSION)
+
+AC_SUBST(CURLVERSION)
dnl
dnl we extract the numerical version for curl-config only
dnl
dnl initialize all the info variables
- curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl} )"
+ curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl,darwinssl} )"
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_tls_srp_msg="no (--enable-tls-srp)"
curl_res_msg="default (--enable-ares / --enable-threaded-resolver)"
curl_ipv6_msg="no (--enable-ipv6)"
- curl_idn_msg="no (--with-libidn)"
+curl_unix_sockets_msg="no (--enable-unix-sockets)"
+ curl_idn_msg="no (--with-{libidn,winidn})"
curl_manual_msg="no (--enable-manual)"
+curl_libcurl_msg="enabled (--disable-libcurl-option)"
curl_verbose_msg="enabled (--disable-verbose)"
curl_sspi_msg="no (--enable-sspi)"
curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)"
curl_ldaps_msg="no (--enable-ldaps)"
curl_rtsp_msg="no (--enable-rtsp)"
curl_rtmp_msg="no (--with-librtmp)"
+ curl_mtlnk_msg="no (--with-libmetalink)"
+
+ init_ssl_msg=${curl_ssl_msg}
dnl
-dnl Save anything in $LIBS for later
+dnl Save some initial values the user might have provided
dnl
-ALL_LIBS=$LIBS
+INITIAL_LDFLAGS=$LDFLAGS
+INITIAL_LIBS=$LIBS
dnl
dnl Detect the canonical host and target build environment
AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
dnl Checks for programs.
-CURL_CHECK_PROG_CC
dnl Our curl_off_t internal and external configure settings
CURL_CONFIGURE_CURL_OFF_T
dnl check for how to do large files
AC_SYS_LARGEFILE
-dnl support building of Windows DLLs
-AC_LIBTOOL_WIN32_DLL
+XC_LIBTOOL
-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)])
-case $host in
- x86_64*linux*|amd64*freebsd*|ia64*freebsd*)
- AC_MSG_RESULT([yes])
- with_pic=yes
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
-esac
+#
+# Automake conditionals based on libtool related checks
+#
-AC_MSG_CHECKING([if compiler is icc (to build with PIC)])
-case $CC in
- icc | */icc)
- AC_MSG_RESULT([yes])
- with_pic=yes
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
-esac
+AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSION_INFO],
+ [test "x$xc_lt_shlib_use_version_info" = 'xyes'])
+AM_CONDITIONAL([CURL_LT_SHLIB_USE_NO_UNDEFINED],
+ [test "x$xc_lt_shlib_use_no_undefined" = 'xyes'])
+AM_CONDITIONAL([CURL_LT_SHLIB_USE_MIMPURE_TEXT],
+ [test "x$xc_lt_shlib_use_mimpure_text" = 'xyes'])
-dnl libtool setup
-AC_PROG_LIBTOOL
+#
+# Due to libtool and automake machinery limitations of not allowing
+# specifying separate CPPFLAGS or CFLAGS when compiling objects for
+# inclusion of these in shared or static libraries, we are forced to
+# build using separate configure runs for shared and static libraries
+# on systems where different CPPFLAGS or CFLAGS are mandatory in order
+# to compile objects for each kind of library. Notice that relying on
+# the '-DPIC' CFLAG that libtool provides is not valid given that the
+# user might for example choose to build static libraries with PIC.
+#
-AC_MSG_CHECKING([if we need -mimpure-text])
-mimpure=no
-case $host in
- *-*-solaris2*)
- if test "$GCC" = "yes"; then
- mimpure="yes"
- fi
- ;;
- *)
- ;;
-esac
-AC_MSG_RESULT($mimpure)
-AM_CONDITIONAL(MIMPURE, test x$mimpure = xyes)
+#
+# Make our Makefile.am files use the staticlib CPPFLAG only when strictly
+# targeting a static library and not building its shared counterpart.
+#
-dnl 'STATICLIB' is, in spite of its name, not generic but only for static-only
-dnl builds on Windows
-AM_CONDITIONAL(STATICLIB, false)
+AM_CONDITIONAL([USE_CPPFLAG_CURL_STATICLIB],
+ [test "x$xc_lt_build_static_only" = 'xyes'])
+
+#
+# Make staticlib CPPFLAG variable and its definition visible in output
+# files unconditionally, providing an empty definition unless strictly
+# targeting a static library and not building its shared counterpart.
+#
+
+CPPFLAG_CURL_STATICLIB=
+if test "x$xc_lt_build_static_only" = 'xyes'; then
+ CPPFLAG_CURL_STATICLIB='-DCURL_STATICLIB'
+fi
+AC_SUBST([CPPFLAG_CURL_STATICLIB])
-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)
- AM_CONDITIONAL(STATICLIB, true)
- else
- AC_MSG_RESULT(no)
- fi
- ;;
- *)
- AC_MSG_RESULT(no)
- ;;
-esac
# Determine whether all dependent libraries must be specified when linking
if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno"
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
-AC_PROG_MAKE_SET
+AM_CONDITIONAL(USE_EXPLICIT_LIB_DEPS, test x$REQUIRE_LIB_DEPS = xyes)
dnl check if there's a way to force code inline
AC_C_INLINE
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_COMPILER_PROTOTYPE_MISMATCH
+CURL_CHECK_COMPILER_SYMBOL_HIDING
CURL_CHECK_CURLDEBUG
AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes)
+supports_unittests=yes
+# cross-compilation of unit tests static library/programs fails when
+# libcurl shared library is built. This might be due to a libtool or
+# automake issue. In this case we disable unit tests.
+if test "x$cross_compiling" != "xno" &&
+ test "x$enable_shared" != "xno"; then
+ supports_unittests=no
+fi
+
+# IRIX 6.5.24 gcc 3.3 autobuilds fail unittests library compilation due to
+# a problem related with OpenSSL headers and library versions not matching.
+# Disable unit tests while time to further investigate this is found.
+case $host in
+ mips-sgi-irix6.5)
+ if test "$compiler_id" = "GNU_C"; then
+ supports_unittests=no
+ fi
+ ;;
+esac
+
+# All AIX autobuilds fails unit tests linking against unittests library
+# due to unittests library being built with no symbols or members. Libtool ?
+# Disable unit tests while time to further investigate this is found.
+case $host_os in
+ aix*)
+ supports_unittests=no
+ ;;
+esac
+
+dnl Build unit tests when option --enable-debug is given.
+if test "x$want_debug" = "xyes" &&
+ test "x$supports_unittests" = "xyes"; then
+ want_unittests=yes
+else
+ want_unittests=no
+fi
+AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes)
+
dnl **********************************************************************
dnl Compilation based checks should not be done before this point.
dnl **********************************************************************
)
+AC_MSG_CHECKING([whether to support smb])
+AC_ARG_ENABLE(smb,
+AC_HELP_STRING([--enable-smb],[Enable SMB/CIFS support])
+AC_HELP_STRING([--disable-smb],[Disable SMB/CIFS support]),
+[ case "$enableval" in
+ no)
+ AC_MSG_RESULT(no)
+ AC_DEFINE(CURL_DISABLE_SMB, 1, [to disable SMB/CIFS])
+ AC_SUBST(CURL_DISABLE_SMB, [1])
+ ;;
+ *) AC_MSG_RESULT(yes)
+ ;;
+ esac ],
+ AC_MSG_RESULT(yes)
+)
+
AC_MSG_CHECKING([whether to support smtp])
AC_ARG_ENABLE(smtp,
AC_HELP_STRING([--enable-smtp],[Enable SMTP support])
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 disable C code generation support
+dnl
+AC_MSG_CHECKING([whether to enable generation of C code])
+AC_ARG_ENABLE(libcurl_option,
+AC_HELP_STRING([--enable-libcurl-option],[Enable --libcurl C code generation support])
+AC_HELP_STRING([--disable-libcurl-option],[Disable --libcurl C code generation support]),
+[ case "$enableval" in
+ no)
+ AC_MSG_RESULT(no)
+ AC_DEFINE(CURL_DISABLE_LIBCURL_OPTION, 1, [to disable --libcurl C code generation option])
+ curl_libcurl_msg="no"
+ ;;
+ *) AC_MSG_RESULT(yes)
+ ;;
+ esac ],
+ AC_MSG_RESULT(yes)
+)
+
dnl **********************************************************************
dnl Checks for libraries.
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)
+ LIBS="-lgcc $LIBS"
+ AC_MSG_RESULT(yes)
+ ;;
+ *) AC_MSG_RESULT(no)
+ ;;
+ esac ],
+ AC_MSG_RESULT(no)
+)
+
CURL_CHECK_LIB_XNET
dnl gethostbyname without lib or in the nsl lib?
],
[ AC_CHECK_LIB(nsl, gethostbyname,
[HAVE_GETHOSTBYNAME="1"
- LIBS="$LIBS -lnsl"
+ LIBS="-lnsl $LIBS"
])
])
dnl gethostbyname in the socket lib?
AC_CHECK_LIB(socket, gethostbyname,
[HAVE_GETHOSTBYNAME="1"
- LIBS="$LIBS -lsocket"
+ LIBS="-lsocket $LIBS"
+ ])
+fi
+
+if test "$HAVE_GETHOSTBYNAME" != "1"
+then
+ dnl gethostbyname in the watt lib?
+ AC_CHECK_LIB(watt, gethostbyname,
+ [HAVE_GETHOSTBYNAME="1"
+ CPPFLAGS="-I/dev/env/WATT_ROOT/inc"
+ LDFLAGS="-L/dev/env/WATT_ROOT/lib"
+ LIBS="-lwatt $LIBS"
])
fi
dnl gethostbyname in the network lib - for Haiku OS
AC_CHECK_LIB(network, gethostbyname,
[HAVE_GETHOSTBYNAME="1"
- LIBS="$LIBS -lnetwork"
+ LIBS="-lnetwork $LIBS"
])
fi
dnl gethostbyname in the net lib - for BeOS
AC_CHECK_LIB(net, gethostbyname,
[HAVE_GETHOSTBYNAME="1"
- LIBS="$LIBS -lnet"
+ LIBS="-lnet $LIBS"
])
fi
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 servers and libtest cases which require networking and clock_gettime
+dnl support. Save the list of required libraries at this point for use
+dnl while linking those test servers and programs.
dnl **********************************************************************
-TEST_SERVER_LIBS=$LIBS
+CURL_NETWORK_AND_TIME_LIBS=$LIBS
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)
- ALL_LIBS="$ALL_LIBS -lgcc"
- AC_MSG_RESULT(yes)
- ;;
- *) AC_MSG_RESULT(no)
- ;;
- esac ],
- AC_MSG_RESULT(no)
-)
+dnl Check for the presence of ZLIB libraries and headers
+dnl **********************************************************************
+
+dnl Check for & handle argument to --with-zlib.
+
+clean_CPPFLAGS=$CPPFLAGS
+clean_LDFLAGS=$LDFLAGS
+clean_LIBS=$LIBS
+ZLIB_LIBS=""
+AC_ARG_WITH(zlib,
+AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])
+AC_HELP_STRING([--without-zlib],[disable use of zlib]),
+ [OPT_ZLIB="$withval"])
+
+if test "$OPT_ZLIB" = "no" ; then
+ AC_MSG_WARN([zlib disabled])
+else
+ if test "$OPT_ZLIB" = "yes" ; then
+ OPT_ZLIB=""
+ fi
+
+ if test -z "$OPT_ZLIB" ; then
+ dnl check for the lib first without setting any new path, since many
+ dnl people have it in the default path
+
+ AC_CHECK_LIB(z, inflateEnd,
+ dnl libz found, set the variable
+ [HAVE_LIBZ="1"
+ LIBS="-lz $LIBS"],
+ dnl if no lib found, try /usr/local
+ [OPT_ZLIB="/usr/local"])
+
+ fi
+
+ dnl Add a nonempty path to the compiler flags
+ if test -n "$OPT_ZLIB"; then
+ CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
+ LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
+ fi
+
+ AC_CHECK_HEADER(zlib.h,
+ [
+ dnl zlib.h was found
+ HAVE_ZLIB_H="1"
+ dnl if the lib wasn't found already, try again with the new paths
+ if test "$HAVE_LIBZ" != "1"; then
+ AC_CHECK_LIB(z, gzread,
+ [
+ dnl the lib was found!
+ HAVE_LIBZ="1"
+ LIBS="-lz $LIBS"
+ ],
+ [ CPPFLAGS=$clean_CPPFLAGS
+ LDFLAGS=$clean_LDFLAGS])
+ fi
+ ],
+ [
+ dnl zlib.h was not found, restore the flags
+ CPPFLAGS=$clean_CPPFLAGS
+ LDFLAGS=$clean_LDFLAGS]
+ )
+
+ if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
+ then
+ AC_MSG_WARN([configure found only the libz lib, not the header file!])
+ HAVE_LIBZ=""
+ CPPFLAGS=$clean_CPPFLAGS
+ LDFLAGS=$clean_LDFLAGS
+ LIBS=$clean_LIBS
+ elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
+ then
+ AC_MSG_WARN([configure found only the libz header file, not the lib!])
+ CPPFLAGS=$clean_CPPFLAGS
+ LDFLAGS=$clean_LDFLAGS
+ LIBS=$clean_LIBS
+ elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1"
+ then
+ dnl both header and lib were found!
+ AC_SUBST(HAVE_LIBZ)
+ AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file])
+ AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available])
+
+ ZLIB_LIBS="-lz"
+ LIBS="-lz $clean_LIBS"
+
+ dnl replace 'HAVE_LIBZ' in the automake makefile.ams
+ AMFIXLIB="1"
+ AC_MSG_NOTICE([found both libz and libz.h header])
+ curl_zlib_msg="enabled"
+ fi
+fi
+
+dnl set variable for use in automakefile(s)
+AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
+AC_SUBST(ZLIB_LIBS)
dnl **********************************************************************
dnl Check for LDAP
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_SUBST(CURL_DISABLE_LDAP, [1])
AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
- AC_SUBST(CURL_DISABLE_LDAPS, [1])
+ AC_SUBST(CURL_DISABLE_LDAPS, [1])])
else
dnl Try to find the right ldap libraries for this system
CURL_CHECK_LIBS_LDAP
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_SUBST(CURL_DISABLE_LDAP, [1])
AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
- AC_SUBST(CURL_DISABLE_LDAPS, [1])
+ AC_SUBST(CURL_DISABLE_LDAPS, [1])])
fi
fi
fi
dnl Checks for IPv6
dnl **********************************************************************
-AC_MSG_CHECKING([whether to enable ipv6])
+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]),
+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)
AC_TRY_RUN([ /* is AF_INET6 available? */
#include <sys/types.h>
#include <sys/socket.h>
+#include <stdlib.h> /* for exit() */
main()
{
if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
esac
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]),[
- OPT_KRB4="$withval"
- 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
- LIBS="-lkrb -lcom_err -ldes $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)
-
- 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)
- else
- if test -z "$SPNEGO_LIB_DIR"; then
- LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl"
- else
- LDFLAGS="$LDFLAGS $SPNEGO_LIB_DIR"
- fi
-
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SPNEGO, 1,
- [Define this if you have the SPNEGO library fbopenssl])
- curl_spnego_msg="enabled"
- fi
-else
- AC_MSG_RESULT(no)
-fi
-
-dnl **********************************************************************
dnl Check for GSS-API libraries
dnl **********************************************************************
-dnl check for gss stuff in the /usr as default
+dnl check for GSS-API stuff in the /usr as default
GSSAPI_ROOT="/usr"
AC_ARG_WITH(gssapi-includes,
AC_HELP_STRING([--with-gssapi-includes=DIR],
- [Specify location of GSSAPI header]),
+ [Specify location of GSS-API headers]),
[ GSSAPI_INCS="-I$withval"
want_gss="yes" ]
)
AC_ARG_WITH(gssapi-libs,
AC_HELP_STRING([--with-gssapi-libs=DIR],
- [Specify location of GSSAPI libs]),
+ [Specify location of GSS-API libs]),
[ GSSAPI_LIB_DIR="-L$withval"
want_gss="yes" ]
)
AC_ARG_WITH(gssapi,
AC_HELP_STRING([--with-gssapi=DIR],
- [Where to look for GSSAPI]), [
+ [Where to look for GSS-API]), [
GSSAPI_ROOT="$withval"
if test x"$GSSAPI_ROOT" != xno; then
want_gss="yes"
])
save_CPPFLAGS="$CPPFLAGS"
-AC_MSG_CHECKING([if GSSAPI support is requested])
+AC_MSG_CHECKING([if GSS-API 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
+ if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
+ GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi`
+ elif 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"
AC_CHECK_HEADER(gss.h,
[
dnl found in the given dirs
- AC_DEFINE(HAVE_GSSGNU, 1, [if you have the GNU gssapi libraries])
+ AC_DEFINE(HAVE_GSSGNU, 1, [if you have GNU GSS])
gnu_gss=yes
],
[
AC_CHECK_HEADER(gssapi.h,
[
dnl found
- AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries])
+ AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have Heimdal])
],
[
dnl no header found, disabling GSS
want_gss=no
- AC_MSG_WARN(disabling GSSAPI since no header files was found)
+ AC_MSG_WARN(disabling GSS-API support since no header files were found)
]
)
else
dnl MIT found
- AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
- dnl check if we have a really old MIT kerberos (<= 1.2)
- AC_MSG_CHECKING([if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE])
+ AC_DEFINE(HAVE_GSSMIT, 1, [if you have MIT Kerberos])
+ dnl check if we have a really old MIT Kerberos version (<= 1.2)
+ AC_MSG_CHECKING([if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
#include <gssapi/gssapi.h>
],[
AC_MSG_RESULT([no])
AC_DEFINE(HAVE_OLD_GSSMIT, 1,
- [if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE])
+ [if you have an old MIT Kerberos version, lacking GSS_C_NT_HOSTBASED_SERVICE])
])
fi
]
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)"
+ AC_DEFINE(HAVE_GSSAPI, 1, [if you have GSS-API libraries])
+ HAVE_GSSAPI=1
+ curl_gss_msg="enabled (MIT Kerberos/Heimdal)"
if test -n "$gnu_gss"; then
curl_gss_msg="enabled (GNU GSS)"
LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
- LIBS="$LIBS -lgss"
+ LIBS="-lgss $LIBS"
elif test -z "$GSSAPI_LIB_DIR"; then
case $host in
*-*-darwin*)
- LIBS="$LIBS -lgssapi_krb5 -lresolv"
+ LIBS="-lgssapi_krb5 -lresolv $LIBS"
;;
*)
- if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
+ if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
+ dnl krb5-config doesn't have --libs-only-L or similar, put everything
+ dnl into LIBS
+ gss_libs=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --libs gssapi`
+ LIBS="$gss_libs $LIBS"
+ elif test -f "$GSSAPI_ROOT/bin/krb5-config"; then
dnl krb5-config doesn't have --libs-only-L or similar, put everything
dnl into LIBS
gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi`
- # LIBS="$LIBS $gss_libs"
- LIBS="$LIBS -lgssapi_krb5"
- elif test "$GSSAPI_ROOT" != "yes"; then
- LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff"
- LIBS="$LIBS -lgssapi"
+ LIBS="$gss_libs $LIBS"
else
- LIBS="$LIBS -lgssapi"
+ case $host in
+ *-hp-hpux*)
+ gss_libname="gss"
+ ;;
+ *)
+ gss_libname="gssapi"
+ ;;
+ esac
+
+ if test "$GSSAPI_ROOT" != "yes"; then
+ LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff"
+ LIBS="-l$gss_libname $LIBS"
+ else
+ LIBS="-l$gss_libname $LIBS"
+ fi
fi
;;
esac
else
LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
- LIBS="$LIBS -lgssapi"
+ case $host in
+ *-hp-hpux*)
+ LIBS="-lgss $LIBS"
+ ;;
+ *)
+ LIBS="-lgssapi $LIBS"
+ ;;
+ esac
fi
else
CPPFLAGS="$save_CPPFLAGS"
fi
+dnl -------------------------------------------------
+dnl check winssl option before other SSL libraries
+dnl -------------------------------------------------
+
+OPT_WINSSL=no
+AC_ARG_WITH(winssl,dnl
+AC_HELP_STRING([--with-winssl],[enable Windows native SSL/TLS])
+AC_HELP_STRING([--without-winssl], [disable Windows native SSL/TLS]),
+ OPT_WINSSL=$withval)
+
+AC_MSG_CHECKING([whether to enable Windows native SSL/TLS (Windows native builds only)])
+if test "$curl_ssl_msg" = "$init_ssl_msg"; then
+ if test "x$OPT_WINSSL" != "xno" &&
+ test "x$ac_cv_native_windows" = "xyes"; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support])
+ AC_SUBST(USE_SCHANNEL, [1])
+ curl_ssl_msg="enabled (Windows-native)"
+ WINSSL_ENABLED=1
+ # --with-winssl implies --enable-sspi
+ AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
+ AC_SUBST(USE_WINDOWS_SSPI, [1])
+ curl_sspi_msg="enabled"
+ else
+ AC_MSG_RESULT(no)
+ fi
+else
+ AC_MSG_RESULT(no)
+fi
+
+OPT_DARWINSSL=no
+AC_ARG_WITH(darwinssl,dnl
+AC_HELP_STRING([--with-darwinssl],[enable iOS/Mac OS X native SSL/TLS])
+AC_HELP_STRING([--without-darwinssl], [disable iOS/Mac OS X native SSL/TLS]),
+ OPT_DARWINSSL=$withval)
+
+AC_MSG_CHECKING([whether to enable iOS/Mac OS X native SSL/TLS])
+if test "$curl_ssl_msg" = "$init_ssl_msg"; then
+ if test "x$OPT_DARWINSSL" != "xno" &&
+ test -d "/System/Library/Frameworks/Security.framework"; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(USE_DARWINSSL, 1, [to enable iOS/Mac OS X native SSL/TLS support])
+ AC_SUBST(USE_DARWINSSL, [1])
+ curl_ssl_msg="enabled (iOS/Mac OS X-native)"
+ DARWINSSL_ENABLED=1
+ LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
+ else
+ AC_MSG_RESULT(no)
+ fi
+else
+ AC_MSG_RESULT(no)
+fi
+
dnl **********************************************************************
dnl Check for the presence of SSL libraries and headers
dnl **********************************************************************
AC_HELP_STRING([--without-ssl], [disable OpenSSL]),
OPT_SSL=$withval)
-if test X"$OPT_SSL" != Xno; then
+if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
dnl backup the pre-ssl variables
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
dnl the user told us to look
OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig"
AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
- if test -e "$OPENSSL_PCDIR/openssl.pc"; then
+ if test -f "$OPENSSL_PCDIR/openssl.pc"; then
PKGTEST="yes"
fi
dnl the argument to --with-ssl we don't know what
dnl additional libs may be necessary. Hope that we
dnl don't need any.
- LIBS="$LIBS $SSL_LIBS"
+ LIBS="$SSL_LIBS $LIBS"
fi
fi
dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
OLIBS=$LIBS
- LIBS="$LIBS -lRSAglue -lrsaref"
+ LIBS="-lRSAglue -lrsaref $LIBS"
AC_CHECK_LIB(ssl, SSL_connect)
if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
dnl still no SSL_connect
RAND_egd \
ENGINE_cleanup \
CRYPTO_cleanup_all_ex_data \
- SSL_get_shutdown )
+ SSL_get_shutdown \
+ SSLv2_client_method )
dnl Make an attempt to detect if this is actually yassl's headers and
dnl OpenSSL emulation layer. We still leave everything else believing
dnl when the ssl shared libs were found in a path that the run-time
dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
dnl to prevent further configure tests to fail due to this
-
- LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL"
- export LD_LIBRARY_PATH
- AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH])
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH])
+ fi
fi
+ CURL_CHECK_OPENSSL_API
fi
fi
dnl **********************************************************************
-dnl Check for the presence of ZLIB libraries and headers
-dnl **********************************************************************
-
-dnl Check for & handle argument to --with-zlib.
-
-_cppflags=$CPPFLAGS
-_ldflags=$LDFLAGS
-AC_ARG_WITH(zlib,
-AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])
-AC_HELP_STRING([--without-zlib],[disable use of zlib]),
- [OPT_ZLIB="$withval"])
-
-if test "$OPT_ZLIB" = "no" ; then
- AC_MSG_WARN([zlib disabled])
-else
- if test "$OPT_ZLIB" = "yes" ; then
- OPT_ZLIB=""
- fi
-
- if test -z "$OPT_ZLIB" ; then
- dnl check for the lib first without setting any new path, since many
- dnl people have it in the default path
-
- AC_CHECK_LIB(z, inflateEnd,
- dnl libz found, set the variable
- [HAVE_LIBZ="1"],
- dnl if no lib found, try /usr/local
- [OPT_ZLIB="/usr/local"])
-
- fi
-
- dnl Add a nonempty path to the compiler flags
- if test -n "$OPT_ZLIB"; then
- CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
- LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
- fi
-
- AC_CHECK_HEADER(zlib.h,
- [
- dnl zlib.h was found
- HAVE_ZLIB_H="1"
- dnl if the lib wasn't found already, try again with the new paths
- if test "$HAVE_LIBZ" != "1"; then
- AC_CHECK_LIB(z, gzread,
- [
- dnl the lib was found!
- HAVE_LIBZ="1"
- ],
- [ CPPFLAGS=$_cppflags
- LDFLAGS=$_ldflags])
- fi
- ],
- [
- dnl zlib.h was not found, restore the flags
- CPPFLAGS=$_cppflags
- LDFLAGS=$_ldflags]
- )
-
- if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
- then
- AC_MSG_WARN([configure found only the libz lib, not the header file!])
- HAVE_LIBZ=""
- elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
- then
- AC_MSG_WARN([configure found only the libz header file, not the lib!])
- elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1"
- then
- dnl both header and lib were found!
- AC_SUBST(HAVE_LIBZ)
- AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file])
- AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available])
-
- CURL_LIBS="$CURL_LIBS -lz"
- LIBS="$LIBS -lz"
-
- dnl replace 'HAVE_LIBZ' in the automake makefile.ams
- AMFIXLIB="1"
- AC_MSG_NOTICE([found both libz and libz.h header])
- curl_zlib_msg="enabled"
- fi
-fi
-
-dnl set variable for use in automakefile(s)
-AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
-
-dnl **********************************************************************
dnl Check for the random seed preferences
dnl **********************************************************************
[read randomness from FILE (default=/dev/urandom)]),
[ RANDOM_FILE="$withval" ],
[
- dnl Check for random device
- AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
+ if test x$cross_compiling != xyes; then
+ dnl Check for random device
+ AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
+ else
+ AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling])
+ fi
]
)
if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
fi
fi
+dnl ---
+dnl We require OpenSSL with SRP support.
+dnl ---
+if test "$OPENSSL_ENABLED" = "1"; then
+ AC_CHECK_LIB(crypto, SRP_Calc_client_key,
+ [
+ AC_DEFINE(HAVE_SSLEAY_SRP, 1, [if you have the function SRP_Calc_client_key])
+ AC_SUBST(HAVE_SSLEAY_SRP, [1])
+ ])
+fi
+
dnl ----------------------------------------------------
dnl check for GnuTLS
dnl ----------------------------------------------------
OPT_GNUTLS=no
AC_ARG_WITH(gnutls,dnl
-AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root (default: /usr/local/)])
+AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root])
AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
OPT_GNUTLS=$withval)
-if test "$OPENSSL_ENABLED" != "1"; then
+if test "$curl_ssl_msg" = "$init_ssl_msg"; then
if test X"$OPT_GNUTLS" != Xno; then
addld=""
+ addlib=""
+ gtlslib=""
+ version=""
+ addcflags=""
+
if test "x$OPT_GNUTLS" = "xyes"; then
dnl this is with no partiular path given
CURL_CHECK_PKGCONFIG(gnutls)
CLEANLIBS="$LIBS"
CLEANCPPFLAGS="$CPPFLAGS"
- CLEADLDFLAGS="$LDFLAGS"
+ CLEANLDFLAGS="$LDFLAGS"
- LIBS="$LIBS $addlib"
+ LIBS="$addlib $LIBS"
LDFLAGS="$LDFLAGS $addld"
if test "$addcflags" != "-I/usr/include"; then
CPPFLAGS="$CPPFLAGS $addcflags"
dnl linker doesn't search through, we need to add it to
dnl LD_LIBRARY_PATH to prevent further configure tests to fail
dnl due to this
-
- LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
- export LD_LIBRARY_PATH
- AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
+ fi
fi
fi
fi dnl GNUTLS not disabled
-fi dnl OPENSSL != 1
+fi
dnl ---
-dnl If GnuTLS is enabled, we MUST verify that it uses libgcrypt since
-dnl curl code relies on that but recent GnuTLS versions can in fact build
-dnl with different crypto libraries which curl right now cannot handle
+dnl Check which crypto backend GnuTLS uses
dnl ---
if test "$GNUTLS_ENABLED" = "1"; then
- AC_CHECK_LIB(gcrypt,
- gcry_control, ,
- [
- AC_MSG_ERROR([need GnuTLS built with gcrypt to function with GnuTLS])
- ])
+ USE_GNUTLS_NETTLE=
+ # First check if we can detect either crypto library via transitive linking
+ AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
+ if test "$USE_GNUTLS_NETTLE" = ""; then
+ AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
+ fi
+ # If not, try linking directly to both of them to see if they are available
+ if test "$USE_GNUTLS_NETTLE" = ""; then
+ AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
+ fi
+ if test "$USE_GNUTLS_NETTLE" = ""; then
+ AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
+ fi
+ if test "$USE_GNUTLS_NETTLE" = ""; then
+ AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found])
+ fi
+ if test "$USE_GNUTLS_NETTLE" = "1"; then
+ AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend])
+ AC_SUBST(USE_GNUTLS_NETTLE, [1])
+ LIBS="-lnettle $LIBS"
+ else
+ LIBS="-lgcrypt $LIBS"
+ fi
+fi
+
+dnl ---
+dnl We require GnuTLS with SRP support.
+dnl ---
+if test "$GNUTLS_ENABLED" = "1"; then
+ AC_CHECK_LIB(gnutls, gnutls_srp_verifier,
+ [
+ AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier])
+ AC_SUBST(HAVE_GNUTLS_SRP, [1])
+ ])
fi
dnl ----------------------------------------------------
_cppflags=$CPPFLAGS
_ldflags=$LDFLAGS
AC_ARG_WITH(polarssl,dnl
-AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root (default: /usr/local/)])
+AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root])
AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]),
OPT_POLARSSL=$withval)
-if test "$OPENSSL_ENABLED" != "1"; then
+if test "$curl_ssl_msg" = "$init_ssl_msg"; then
if test X"$OPT_POLARSSL" != Xno; then
])
fi
+ addld=""
+ addlib=""
+ addcflags=""
+ polarssllib=""
+
if test "x$USE_POLARSSL" != "xyes"; then
dnl add the path and test again
addld=-L$OPT_POLARSSL/lib$libsuff
if test "x$USE_POLARSSL" = "xyes"; then
AC_MSG_NOTICE([detected PolarSSL])
- CURL_LIBS="$CURL_LIBS -lpolarssl"
- LIBS="$LIBS -lpolarssl"
+ LIBS="-lpolarssl $LIBS"
if test -n "$polarssllib"; then
dnl when shared libs were found in a path that the run-time
dnl linker doesn't search through, we need to add it to
dnl LD_LIBRARY_PATH to prevent further configure tests to fail
dnl due to this
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH])
+ fi
+ fi
+ fi
- LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib"
- export LD_LIBRARY_PATH
- AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH])
+ fi dnl PolarSSL not disabled
+
+fi
+
+dnl ----------------------------------------------------
+dnl check for CyaSSL
+dnl ----------------------------------------------------
+
+dnl Default to compiler & linker defaults for CyaSSL files & libraries.
+OPT_CYASSL=no
+
+_cppflags=$CPPFLAGS
+_ldflags=$LDFLAGS
+AC_ARG_WITH(cyassl,dnl
+AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
+AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
+ OPT_CYASSL=$withval)
+
+if test "$curl_ssl_msg" = "$init_ssl_msg"; then
+
+ if test X"$OPT_CYASSL" != Xno; then
+
+ if test "$OPT_CYASSL" = "yes"; then
+ OPT_CYASSL=""
+ fi
+
+ if test -z "$OPT_CYASSL" ; then
+ dnl check for lib in system default first
+
+ AC_CHECK_LIB(cyassl, CyaSSL_Init,
+ dnl libcyassl found, set the variable
+ [
+ AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
+ AC_SUBST(USE_CYASSL, [1])
+ CYASSL_ENABLED=1
+ USE_CYASSL="yes"
+ curl_ssl_msg="enabled (CyaSSL)"
+ ])
+ fi
+
+ addld=""
+ addlib=""
+ addcflags=""
+ cyassllib=""
+
+ if test "x$USE_CYASSL" != "xyes"; then
+ dnl add the path and test again
+ addld=-L$OPT_CYASSL/lib$libsuff
+ addcflags=-I$OPT_CYASSL/include
+ cyassllib=$OPT_CYASSL/lib$libsuff
+
+ LDFLAGS="$LDFLAGS $addld"
+ if test "$addcflags" != "-I/usr/include"; then
+ CPPFLAGS="$CPPFLAGS $addcflags"
fi
+ AC_CHECK_LIB(cyassl, CyaSSL_Init,
+ [
+ AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
+ AC_SUBST(USE_CYASSL, [1])
+ CYASSL_ENABLED=1
+ USE_CYASSL="yes"
+ curl_ssl_msg="enabled (CyaSSL)"
+ ],
+ [
+ CPPFLAGS=$_cppflags
+ LDFLAGS=$_ldflags
+ ])
fi
- fi dnl PolarSSL not disabled
+ if test "x$USE_CYASSL" = "xyes"; then
+ AC_MSG_NOTICE([detected CyaSSL])
+
+ dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
+ AC_CHECK_SIZEOF(long long)
+
+ dnl Versions since at least 2.9.4 renamed error.h to error-ssl.h
+ AC_CHECK_HEADERS(cyassl/error-ssl.h)
+
+ LIBS="-lcyassl -lm $LIBS"
+
+ if test -n "$cyassllib"; then
+ dnl when shared libs were found in a path that the run-time
+ dnl linker doesn't search through, we need to add it to
+ dnl LD_LIBRARY_PATH to prevent further configure tests to fail
+ dnl due to this
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH])
+ fi
+ fi
+
+ fi
-fi dnl OPENSSL != 1
+ fi dnl CyaSSL not disabled
+
+fi
dnl ----------------------------------------------------
dnl NSS. Only check if GnuTLS and OpenSSL are not enabled
OPT_NSS=no
AC_ARG_WITH(nss,dnl
-AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root (default: /usr/local/)])
+AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root])
AC_HELP_STRING([--without-nss], [disable NSS detection]),
OPT_NSS=$withval)
-if test "$OPENSSL_ENABLED" != "1" -a "$GNUTLS_ENABLED" != "1"; then
+if test "$curl_ssl_msg" = "$init_ssl_msg"; then
+
+ if test X"$OPT_NSS" != Xno; then
+
+ addld=""
+ addlib=""
+ addcflags=""
+ nssprefix=""
+ version=""
- if test X"$OPT_NSS" != Xno; then
if test "x$OPT_NSS" = "xyes"; then
CURL_CHECK_PKGCONFIG(nss)
nssprefix=$OPT_NSS
fi
- dnl Check for functionPK11_CreateGenericObject
- dnl this is needed for using the PEM PKCS#11 module
- AC_CHECK_LIB(nss3, PK11_CreateGenericObject,
- [
- AC_DEFINE(HAVE_PK11_CREATEGENERICOBJECT, 1, [if you have the function PK11_CreateGenericObject])
- AC_SUBST(HAVE_PK11_CREATEGENERICOBJECT, [1])
- ])
if test -n "$addlib"; then
CLEANLIBS="$LIBS"
CLEANCPPFLAGS="$CPPFLAGS"
- LIBS="$LIBS $addlib"
+ LIBS="$addlib $LIBS"
if test "$addcflags" != "-I/usr/include"; then
CPPFLAGS="$CPPFLAGS $addcflags"
fi
- AC_CHECK_LIB(nss3, NSS_Initialize,
+ dnl The function SSL_VersionRangeSet() is needed to enable TLS > 1.0
+ AC_CHECK_LIB(nss3, SSL_VersionRangeSet,
[
AC_DEFINE(USE_NSS, 1, [if NSS is enabled])
AC_SUBST(USE_NSS, [1])
if test "x$USE_NSS" = "xyes"; then
AC_MSG_NOTICE([detected NSS version $version])
+ dnl needed when linking the curl tool without USE_EXPLICIT_LIB_DEPS
+ NSS_LIBS=$addlib
+ AC_SUBST([NSS_LIBS])
+
dnl when shared libs were found in a path that the run-time
dnl linker doesn't search through, we need to add it to
dnl LD_LIBRARY_PATH to prevent further configure tests to fail
dnl due to this
-
- LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff"
- export LD_LIBRARY_PATH
- AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH])
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH])
+ fi
fi
fi
fi dnl NSS not disabled
-fi dnl OPENSSL != 1 -a GNUTLS_ENABLED != 1
+fi dnl curl_ssl_msg = init_ssl_msg
+
+OPT_AXTLS=off
+
+AC_ARG_WITH(axtls,dnl
+AC_HELP_STRING([--with-axtls=PATH],[Where to look for axTLS, PATH points to the axTLS installation prefix (default: /usr/local). Ignored if another SSL engine is selected.])
+AC_HELP_STRING([--without-axtls], [disable axTLS]),
+ OPT_AXTLS=$withval)
+
+if test "$curl_ssl_msg" = "$init_ssl_msg"; then
+ if test X"$OPT_AXTLS" != Xno; then
+ dnl backup the pre-axtls variables
+ CLEANLDFLAGS="$LDFLAGS"
+ CLEANCPPFLAGS="$CPPFLAGS"
+ CLEANLIBS="$LIBS"
+
+ case "$OPT_AXTLS" in
+ yes)
+ dnl --with-axtls (without path) used
+ PREFIX_AXTLS=/usr/local
+ LIB_AXTLS="$PREFIX_AXTLS/lib"
+ LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
+ CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
+ ;;
+ off)
+ dnl no --with-axtls option given, just check default places
+ PREFIX_AXTLS=
+ ;;
+ *)
+ dnl check the given --with-axtls spot
+ PREFIX_AXTLS=$OPT_AXTLS
+ LIB_AXTLS="$PREFIX_AXTLS/lib"
+ LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
+ CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
+ ;;
+ esac
+
+ AC_CHECK_LIB(axtls, ssl_version,[
+ LIBS="-laxtls $LIBS"
+ AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled])
+ AC_SUBST(USE_AXTLS, [1])
+ AXTLS_ENABLED=1
+ USE_AXTLS="yes"
+ curl_ssl_msg="enabled (axTLS)"
+
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH])
+ fi
+ ],[
+ LDFLAGS="$CLEANLDFLAGS"
+ CPPFLAGS="$CLEANCPPFLAGS"
+ LIBS="$CLEANLIBS"
+ ])
+ fi
+fi
-if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED" = "x"; then
+if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
- AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl or --with-nss to address this.])
+ AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
else
# SSL is enabled, genericly
AC_SUBST(SSL_ENABLED)
CURL_CHECK_CA_BUNDLE
dnl **********************************************************************
+dnl Check for libmetalink
+dnl **********************************************************************
+
+OPT_LIBMETALINK=no
+
+AC_ARG_WITH(libmetalink,dnl
+AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root])
+AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]),
+ OPT_LIBMETALINK=$withval)
+
+if test X"$OPT_LIBMETALINK" != Xno; then
+
+ addld=""
+ addlib=""
+ addcflags=""
+ version=""
+ libmetalinklib=""
+
+ PKGTEST="no"
+ if test "x$OPT_LIBMETALINK" = "xyes"; then
+ dnl this is with no partiular path given
+ PKGTEST="yes"
+ CURL_CHECK_PKGCONFIG(libmetalink)
+ else
+ dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path.
+ LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig"
+ AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"])
+ if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then
+ PKGTEST="yes"
+ fi
+ if test "$PKGTEST" = "yes"; then
+ CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR])
+ fi
+ fi
+ if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then
+ addlib=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
+ $PKGCONFIG --libs-only-l libmetalink`
+ addld=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
+ $PKGCONFIG --libs-only-L libmetalink`
+ addcflags=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
+ $PKGCONFIG --cflags-only-I libmetalink`
+ version=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
+ $PKGCONFIG --modversion libmetalink`
+ libmetalinklib=`echo $addld | $SED -e 's/-L//'`
+ fi
+ if test -n "$addlib"; then
+
+ clean_CPPFLAGS="$CPPFLAGS"
+ clean_LDFLAGS="$LDFLAGS"
+ clean_LIBS="$LIBS"
+ CPPFLAGS="$addcflags $clean_CPPFLAGS"
+ LDFLAGS="$addld $clean_LDFLAGS"
+ LIBS="$addlib $clean_LIBS"
+ AC_MSG_CHECKING([if libmetalink is recent enough])
+ AC_LINK_IFELSE([
+ AC_LANG_PROGRAM([[
+# include <metalink/metalink.h>
+ ]],[[
+ if(0 != metalink_strerror(0)) /* added in 0.1.0 */
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes ($version)])
+ want_metalink="yes"
+ ],[
+ AC_MSG_RESULT([no ($version)])
+ AC_MSG_NOTICE([libmetalink library defective or too old])
+ want_metalink="no"
+ ])
+ CPPFLAGS="$clean_CPPFLAGS"
+ LDFLAGS="$clean_LDFLAGS"
+ LIBS="$clean_LIBS"
+ if test "$want_metalink" = "yes"; then
+ dnl finally libmetalink will be used
+ AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support])
+ LIBMETALINK_LIBS=$addlib
+ LIBMETALINK_LDFLAGS=$addld
+ LIBMETALINK_CPPFLAGS=$addcflags
+ AC_SUBST([LIBMETALINK_LIBS])
+ AC_SUBST([LIBMETALINK_LDFLAGS])
+ AC_SUBST([LIBMETALINK_CPPFLAGS])
+ curl_mtlnk_msg="enabled"
+ fi
+
+ fi
+fi
+
+dnl **********************************************************************
dnl Check for the presence of LIBSSH2 libraries and headers
dnl **********************************************************************
dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
OPT_LIBSSH2=off
AC_ARG_WITH(libssh2,dnl
-AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the LIBSSH2 installation (default: /usr/local/lib); when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
+AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the LIBSSH2 installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
OPT_LIBSSH2=$withval)
dnl if given with a prefix, we set -L and -I based on that
if test -n "$PREFIX_SSH2"; then
+ LIB_SSH2="-lssh2"
LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff
CPP_SSH2=-I${PREFIX_SSH2}/include
DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
LDFLAGS="$LDFLAGS $LD_SSH2"
CPPFLAGS="$CPPFLAGS $CPP_SSH2"
- LIBS="$LIBS $LIB_SSH2"
+ LIBS="$LIB_SSH2 $LIBS"
AC_CHECK_LIB(ssh2, libssh2_channel_open_ex)
dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
dnl to prevent further configure tests to fail due to this
- dnl libssh2_version is a post 1.0 addition
- dnl libssh2_init and libssh2_exit were added in 1.2.5
- dnl libssh2_scp_send64 was added in 1.2.6
- dnl libssh2_session_handshake was added in 1.2.8
- AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \
- libssh2_scp_send64 libssh2_session_handshake)
-
- LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
- export LD_LIBRARY_PATH
- AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH])
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH])
+ fi
fi
else
dnl no libssh2, revert back to clean variables
dnl Default to compiler & linker defaults for LIBRTMP files & libraries.
OPT_LIBRTMP=off
AC_ARG_WITH(librtmp,dnl
-AC_HELP_STRING([--with-librtmp=PATH],[Where to look for librtmp, PATH points to the LIBRTMP installation (default: /usr/local/lib); when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
+AC_HELP_STRING([--with-librtmp=PATH],[Where to look for librtmp, PATH points to the LIBRTMP installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]),
OPT_LIBRTMP=$withval)
LDFLAGS="$LDFLAGS $LD_RTMP"
CPPFLAGS="$CPPFLAGS $CPP_RTMP"
- LIBS="$LIBS $LIB_RTMP"
+ LIBS="$LIB_RTMP $LIBS"
AC_CHECK_LIB(rtmp, RTMP_Init,
[
dnl Check for linker switch for versioned symbols
dnl **********************************************************************
-AC_MSG_CHECKING([if libraries can be versioned])
-GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
-if test -z "$GLD"; then
- versioned_symbols_flavour=
- AC_MSG_RESULT(no)
- AC_MSG_WARN(***
-*** You may want to rerun configure using --with-gnu-ld to enable versioned symbols.
-)
-else
- AC_MSG_RESULT(yes)
-
-AC_MSG_CHECKING([whether versioned symbols are wanted])
versioned_symbols_flavour=
-
+AC_MSG_CHECKING([whether versioned symbols are wanted])
AC_ARG_ENABLE(versioned-symbols,
AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library])
AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]),
[ case "$enableval" in
yes) AC_MSG_RESULT(yes)
- if test "$OPENSSL_ENABLED" = "1"; then
- versioned_symbols_flavour="OPENSSL_"
- else
- if test "$OPT_GNUTLS" != "no"; then
- versioned_symbols_flavour="GNUTLS_"
- fi
- fi
- versioned_symbols="yes"
- ;;
+ AC_MSG_CHECKING([if libraries can be versioned])
+ GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
+ if test -z "$GLD"; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([You need an ld version supporting the --version-script option])
+ else
+ AC_MSG_RESULT(yes)
+ if test "x$OPENSSL_ENABLED" = "x1"; then
+ versioned_symbols_flavour="OPENSSL_"
+ elif test "x$GNUTLS_ENABLED" = "x1"; then
+ versioned_symbols_flavour="GNUTLS_"
+ elif test "x$NSS_ENABLED" = "x1"; then
+ versioned_symbols_flavour="NSS_"
+ elif test "x$POLARSSL_ENABLED" = "x1"; then
+ versioned_symbols_flavour="POLARSSL_"
+ elif test "x$CYASSL_ENABLED" = "x1"; then
+ versioned_symbols_flavour="CYASSL_"
+ elif test "x$AXTLS_ENABLED" = "x1"; then
+ versioned_symbols_flavour="AXTLS_"
+ elif test "x$WINSSL_ENABLED" = "x1"; then
+ versioned_symbols_flavour="WINSSL_"
+ elif test "x$DARWINSSL_ENABLED" = "x1"; then
+ versioned_symbols_flavour="DARWINSSL_"
+ else
+ versioned_symbols_flavour=""
+ fi
+ versioned_symbols="yes"
+ fi
+ ;;
*) AC_MSG_RESULT(no)
- ;;
+ ;;
esac
], [
AC_MSG_RESULT(no)
]
)
-fi
-AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"])
-AM_CONDITIONAL(VERSIONED_SYMBOLS, test "$versioned_symbols" = "yes")
+AC_SUBST([CURL_LT_SHLIB_VERSIONED_FLAVOUR],
+ ["$versioned_symbols_flavour"])
+AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS],
+ [test "x$versioned_symbols" = 'xyes'])
+
+dnl -------------------------------------------------
+dnl check winidn option before other IDN libraries
+dnl -------------------------------------------------
+
+AC_MSG_CHECKING([whether to enable Windows native IDN (Windows native builds only)])
+OPT_WINIDN="default"
+AC_ARG_WITH(winidn,
+AC_HELP_STRING([--with-winidn=PATH],[enable Windows native IDN])
+AC_HELP_STRING([--without-winidn], [disable Windows native IDN]),
+ OPT_WINIDN=$withval)
+case "$OPT_WINIDN" in
+ no|default)
+ dnl --without-winidn option used or configure option not specified
+ want_winidn="no"
+ AC_MSG_RESULT([no])
+ ;;
+ yes)
+ dnl --with-winidn option used without path
+ want_winidn="yes"
+ want_winidn_path="default"
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ dnl --with-winidn option used with path
+ want_winidn="yes"
+ want_winidn_path="$withval"
+ AC_MSG_RESULT([yes ($withval)])
+ ;;
+esac
+if test "$want_winidn" = "yes"; then
+ dnl winidn library support has been requested
+ clean_CPPFLAGS="$CPPFLAGS"
+ clean_LDFLAGS="$LDFLAGS"
+ clean_LIBS="$LIBS"
+ WINIDN_LIBS="-lnormaliz"
+ #
+ if test "$want_winidn_path" != "default"; then
+ dnl path has been specified
+ dnl pkg-config not available or provides no info
+ WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff"
+ WINIDN_CPPFLAGS="-I$want_winidn_path/include"
+ WINIDN_DIR="$want_winidn_path/lib$libsuff"
+ fi
+ #
+ CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS"
+ LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS"
+ LIBS="$WINIDN_LIBS $LIBS"
+ #
+ AC_MSG_CHECKING([if IdnToUnicode can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([IdnToUnicode])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_winidn="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_winidn="no"
+ ])
+ #
+ if test "$tst_links_winidn" = "yes"; then
+ AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).])
+ AC_DEFINE(WANT_IDN_PROTOTYPES, 1, [Define to 1 to provide own prototypes.])
+ AC_SUBST([IDN_ENABLED], [1])
+ curl_idn_msg="enabled (Windows-native)"
+ else
+ AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
+ CPPFLAGS="$clean_CPPFLAGS"
+ LDFLAGS="$clean_LDFLAGS"
+ LIBS="$clean_LIBS"
+ fi
+fi
dnl **********************************************************************
dnl Check for the presence of IDN libraries and headers
dnl **********************************************************************
AC_MSG_CHECKING([whether to build with libidn])
+OPT_IDN="default"
AC_ARG_WITH(libidn,
AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage])
AC_HELP_STRING([--without-libidn],[Disable libidn usage]),
- [LIBIDN="$withval"])
-
-case "$LIBIDN" in
+ [OPT_IDN=$withval])
+case "$OPT_IDN" in
no)
- AC_MSG_RESULT(no)
- ;;
- *) AC_MSG_RESULT(yes)
+ dnl --without-libidn option used
+ want_idn="no"
+ AC_MSG_RESULT([no])
+ ;;
+ default)
+ dnl configure option not specified
+ want_idn="yes"
+ want_idn_path="default"
+ AC_MSG_RESULT([(assumed) yes])
+ ;;
+ yes)
+ dnl --with-libidn option used without path
+ want_idn="yes"
+ want_idn_path="default"
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ dnl --with-libidn option used with path
+ want_idn="yes"
+ want_idn_path="$withval"
+ AC_MSG_RESULT([yes ($withval)])
+ ;;
+esac
- idn=""
- dnl if there is a given path, check that FIRST
- if test -n "$LIBIDN"; then
- if test "x$LIBIDN" != "xyes"; then
- oldLDFLAGS=$LDFLAGS
- oldCPPFLAGS=$CPPFLAGS
- LDFLAGS="$LDFLAGS -L$LIBIDN/lib"
- CPPFLAGS="$CPPFLAGS -I$LIBIDN/include"
- idn="yes"
- AC_CHECK_LIB(idn, idna_to_ascii_4i, ,
- idn=""
- LDFLAGS=$oldLDFLAGS
- CPPFLAGS=$oldCPPFLAGS)
- fi
- fi
+if test "$want_idn" = "yes"; then
+ dnl idn library support has been requested
+ clean_CPPFLAGS="$CPPFLAGS"
+ clean_LDFLAGS="$LDFLAGS"
+ clean_LIBS="$LIBS"
+ PKGCONFIG="no"
+ #
+ if test "$want_idn_path" != "default"; then
+ dnl path has been specified
+ IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
+ CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR])
+ if test "$PKGCONFIG" != "no"; then
+ IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
+ $PKGCONFIG --libs-only-l libidn 2>/dev/null`
+ IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
+ $PKGCONFIG --libs-only-L libidn 2>/dev/null`
+ IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
+ $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
+ IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
+ else
+ dnl pkg-config not available or provides no info
+ IDN_LIBS="-lidn"
+ IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
+ IDN_CPPFLAGS="-I$want_idn_path/include"
+ IDN_DIR="$want_idn_path/lib$libsuff"
+ fi
+ else
+ dnl path not specified
+ CURL_CHECK_PKGCONFIG(libidn)
+ if test "$PKGCONFIG" != "no"; then
+ IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
+ IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
+ IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
+ IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
+ else
+ dnl pkg-config not available or provides no info
+ IDN_LIBS="-lidn"
+ fi
+ fi
+ #
+ if test "$PKGCONFIG" != "no"; then
+ AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"])
+ AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"])
+ AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
+ AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"])
+ else
+ AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"])
+ AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"])
+ AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
+ AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
+ fi
+ #
+ CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
+ LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
+ LIBS="$IDN_LIBS $LIBS"
+ #
+ AC_MSG_CHECKING([if idna_to_ascii_4i can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_libidn="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_libidn="no"
+ ])
+ if test "$tst_links_libidn" = "no"; then
+ AC_MSG_CHECKING([if idna_to_ascii_lz can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_libidn="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_libidn="no"
+ ])
+ fi
+ #
+ if test "$tst_links_libidn" = "yes"; then
+ AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).])
+ dnl different versions of libidn have different setups of these:
+ AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror )
+ AC_CHECK_HEADERS( idn-free.h tld.h )
+ if test "x$ac_cv_header_tld_h" = "xyes"; then
+ AC_SUBST([IDN_ENABLED], [1])
+ curl_idn_msg="enabled"
+ if test -n "$IDN_DIR" -a "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH])
+ fi
+ else
+ AC_MSG_WARN([Libraries for IDN support too old: IDN disabled])
+ CPPFLAGS="$clean_CPPFLAGS"
+ LDFLAGS="$clean_LDFLAGS"
+ LIBS="$clean_LIBS"
+ fi
+ else
+ AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
+ CPPFLAGS="$clean_CPPFLAGS"
+ LDFLAGS="$clean_LDFLAGS"
+ LIBS="$clean_LIBS"
+ fi
+fi
- if test "x$idn" != "xyes"; then
- dnl check with default paths
- idn="yes"
- AC_CHECK_LIB(idn, idna_to_ascii_lz, ,
- idn="")
- fi
- if test "x$idn" = "xyes"; then
- curl_idn_msg="enabled"
- AC_SUBST(IDN_ENABLED, [1])
- dnl different versions of libidn have different setups of these:
- AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror)
- AC_CHECK_HEADERS( idn-free.h tld.h )
- fi
+dnl Let's hope this split URL remains working:
+dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
+dnl genprogc/thread_quick_ref.htm
- ;;
+
+dnl **********************************************************************
+dnl Check for nghttp2
+dnl **********************************************************************
+
+OPT_H2="yes"
+AC_ARG_WITH(nghttp2,
+AC_HELP_STRING([--with-nghttp2=PATH],[Enable nghttp2 usage])
+AC_HELP_STRING([--without-nghttp2],[Disable nghttp2 usage]),
+ [OPT_H2=$withval])
+case "$OPT_H2" in
+ no)
+ dnl --without-nghttp2 option used
+ want_h2="no"
+ ;;
+ yes)
+ dnl --with-nghttp2 option used without path
+ want_h2="default"
+ want_h2_path=""
+ ;;
+ *)
+ dnl --with-nghttp2 option used with path
+ want_h2="yes"
+ want_h2_path="$withval/lib/pkgconfig"
+ ;;
esac
+curl_h2_msg="disabled (--with-nghttp2)"
+if test X"$want_h2" != Xno; then
+ dnl backup the pre-nghttp2 variables
+ CLEANLDFLAGS="$LDFLAGS"
+ CLEANCPPFLAGS="$CPPFLAGS"
+ CLEANLIBS="$LIBS"
-dnl Let's hope this split URL remains working:
-dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
-dnl genprogc/thread_quick_ref.htm
+ CURL_CHECK_PKGCONFIG(libnghttp2, $want_h2_path)
+
+ if test "$PKGCONFIG" != "no" ; then
+ LIB_H2=`CURL_EXPORT_PCDIR([$want_h2_path])
+ $PKGCONFIG --libs-only-l libnghttp2`
+ AC_MSG_NOTICE([-l is $LIB_H2])
+
+ CPP_H2=`CURL_EXPORT_PCDIR([$want_h2_path]) dnl
+ $PKGCONFIG --cflags-only-I libnghttp2`
+ AC_MSG_NOTICE([-I is $CPP_H2])
+
+ LD_H2=`CURL_EXPORT_PCDIR([$want_h2_path])
+ $PKGCONFIG --libs-only-L libnghttp2`
+ AC_MSG_NOTICE([-L is $LD_H2])
+
+ LDFLAGS="$LDFLAGS $LD_H2"
+ CPPFLAGS="$CPPFLAGS $CPP_H2"
+ LIBS="$LIB_H2 $LIBS"
+
+ AC_CHECK_LIB(nghttp2, nghttp2_session_callbacks_set_send_callback,
+ [
+ AC_CHECK_HEADERS(nghttp2/nghttp2.h,
+ curl_h2_msg="enabled (nghttp2)"
+ NGHTTP2_ENABLED=1
+ AC_DEFINE(USE_NGHTTP2, 1, [if nghttp2 is in use])
+ AC_SUBST(USE_NGHTTP2, [1])
+ )
+ ],
+ dnl not found, revert back to clean variables
+ LDFLAGS=$CLEANLDFLAGS
+ CPPFLAGS=$CLEANCPPFLAGS
+ LIBS=$CLEANLIBS
+ )
+ else
+ dnl no nghttp2 pkg-config found, deal with it
+ if test X"$want_h2" != Xdefault; then
+ dnl To avoid link errors, we do not allow --with-nghttp2 without
+ dnl a pkgconfig file
+ AC_MSG_ERROR([--with-nghttp2 was specified but could not find libnghttp2 pkg-config file.])
+ fi
+ fi
+
+fi
dnl **********************************************************************
dnl Back to "normal" configuring
stdbool.h \
arpa/tftp.h \
sys/filio.h \
+ sys/wait.h \
setjmp.h,
dnl to do if not found
[],
CURL_CONFIGURE_CURL_SOCKLEN_T
+CURL_CONFIGURE_PULL_SYS_POLL
+
TYPE_IN_ADDR_T
TYPE_SOCKADDR_STORAGE
CURL_CHECK_FUNC_SELECT
CURL_CHECK_FUNC_RECV
-CURL_CHECK_FUNC_RECVFROM
CURL_CHECK_FUNC_SEND
CURL_CHECK_MSG_NOSIGNAL
CURL_CHECK_FUNC_FSETXATTR
CURL_CHECK_FUNC_FTRUNCATE
CURL_CHECK_FUNC_GETADDRINFO
+CURL_CHECK_FUNC_GAI_STRERROR
CURL_CHECK_FUNC_GETHOSTBYADDR
CURL_CHECK_FUNC_GETHOSTBYADDR_R
CURL_CHECK_FUNC_GETHOSTBYNAME
CURL_CHECK_FUNC_SIGNAL
CURL_CHECK_FUNC_SIGSETJMP
CURL_CHECK_FUNC_SOCKET
+CURL_CHECK_FUNC_SOCKETPAIR
CURL_CHECK_FUNC_STRCASECMP
-CURL_CHECK_FUNC_STRCASESTR
CURL_CHECK_FUNC_STRCMPI
CURL_CHECK_FUNC_STRDUP
CURL_CHECK_FUNC_STRERROR_R
CURL_CHECK_FUNC_STRICMP
-CURL_CHECK_FUNC_STRLCAT
CURL_CHECK_FUNC_STRNCASECMP
CURL_CHECK_FUNC_STRNCMPI
CURL_CHECK_FUNC_STRNICMP
getppid \
getprotobyname \
getpwuid \
+ getpwuid_r \
getrlimit \
gettimeofday \
+ if_nametoindex \
inet_addr \
perror \
pipe \
],[
AC_MSG_RESULT([yes])
eval "ac_cv_func_$func=yes"
- AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$func]), [1],
+ AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1],
[Define to 1 if you have the $func function.])
],[
AC_MSG_RESULT([but still no])
CURL_CHECK_NI_WITHSCOPEID
fi
-dnl ************************************************************
-dnl enable non-blocking communications
-dnl
-CURL_CHECK_OPTION_NONBLOCKING
CURL_CHECK_NONBLOCKING_SOCKET
dnl ************************************************************
CURL_CHECK_LIB_ARES
AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
-if test "x$enable_shared" = "xyes"; then
+if test "x$ac_cv_native_windows" != "xyes" &&
+ test "x$enable_shared" = "xyes"; then
build_libhostname=yes
else
build_libhostname=no
AC_CHECK_HEADER(pthread.h,
[ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -pthread"
- AC_CHECK_LIB(pthread, pthread_create,
- [ AC_MSG_NOTICE([using POSIX threaded DNS lookup])
- AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
- USE_THREADS_POSIX=1
- curl_res_msg="threaded"
- ],
- [ CFLAGS="$save_CFLAGS"])
+
+ dnl first check for function without lib
+ AC_CHECK_FUNC(pthread_create, [USE_THREADS_POSIX=1] )
+
+ dnl if it wasn't found without lib, search for it in pthread lib
+ if test "$USE_THREADS_POSIX" != "1"
+ then
+ CFLAGS="$CFLAGS -pthread"
+ AC_CHECK_LIB(pthread, pthread_create,
+ [USE_THREADS_POSIX=1],
+ [ CFLAGS="$save_CFLAGS"])
+ fi
+
+ if test "x$USE_THREADS_POSIX" = "x1"
+ then
+ AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
+ curl_res_msg="POSIX threaded"
+ fi
+
+
])
fi
fi
;;
*)
- AC_MSG_RESULT(no)
+ if test "x$WINSSL_ENABLED" = "x1"; then
+ # --with-winssl implies --enable-sspi
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
;;
esac ],
- AC_MSG_RESULT(no)
+ if test "x$WINSSL_ENABLED" = "x1"; then
+ # --with-winssl implies --enable-sspi
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
)
dnl ************************************************************
no)
AC_MSG_RESULT(no)
AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication])
+ CURL_DISABLE_CRYPTO_AUTH=1
;;
*) AC_MSG_RESULT(yes)
;;
AC_MSG_RESULT(yes)
)
+CURL_CHECK_OPTION_NTLM_WB
+
+CURL_CHECK_NTLM_WB
+
dnl ************************************************************
-dnl disable cookies support
+dnl disable TLS-SRP authentication
dnl
-AC_MSG_CHECKING([whether to enable support for cookies])
-AC_ARG_ENABLE(cookies,
-AC_HELP_STRING([--enable-cookies],[Enable cookies support])
-AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
+AC_MSG_CHECKING([whether to enable TLS-SRP authentication])
+AC_ARG_ENABLE(tls-srp,
+AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication])
+AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]),
[ case "$enableval" in
no)
AC_MSG_RESULT(no)
- AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support])
+ AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication])
+ want_tls_srp=no
;;
*) AC_MSG_RESULT(yes)
+ want_tls_srp=yes
;;
esac ],
AC_MSG_RESULT(yes)
+ want_tls_srp=yes
+)
+
+if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_SSLEAY_SRP" = "x1") ; then
+ AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication])
+ USE_TLS_SRP=1
+ curl_tls_srp_msg="enabled"
+fi
+
+dnl ************************************************************
+dnl disable Unix domain sockets support
+dnl
+AC_MSG_CHECKING([whether to enable Unix domain sockets])
+AC_ARG_ENABLE(unix-sockets,
+AC_HELP_STRING([--enable-unix-sockets],[Enable Unix domain sockets])
+AC_HELP_STRING([--disable-unix-sockets],[Disable Unix domain sockets]),
+[ case "$enableval" in
+ no) AC_MSG_RESULT(no)
+ want_unix_sockets=no
+ ;;
+ *) AC_MSG_RESULT(yes)
+ want_unix_sockets=yes
+ ;;
+ esac ], [
+ AC_MSG_RESULT(auto)
+ want_unix_sockets=auto
+ ]
)
+if test "x$want_unix_sockets" != "xno"; then
+ AC_CHECK_MEMBER([struct sockaddr_un.sun_path], [
+ AC_DEFINE(USE_UNIX_SOCKETS, 1, [Use Unix domain sockets])
+ AC_SUBST(USE_UNIX_SOCKETS, [1])
+ curl_unix_sockets_msg="enabled"
+ ], [
+ if test "x$want_unix_sockets" = "xyes"; then
+ AC_MSG_ERROR([--enable-unix-sockets is not available on this platform!])
+ fi
+ ], [
+ #include <sys/un.h>
+ ])
+fi
dnl ************************************************************
-dnl Enable hiding of internal symbols in library to reduce its size and
-dnl speed dynamic linking of applications. This currently is only supported
-dnl on gcc >= 4.0 and SunPro C.
+dnl disable cookies support
dnl
-AC_MSG_CHECKING([whether to enable hidden symbols in the library])
-AC_ARG_ENABLE(hidden-symbols,
-AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library])
-AC_HELP_STRING([--disable-hidden-symbols],[Leave all symbols with default visibility in library]),
+AC_MSG_CHECKING([whether to enable support for cookies])
+AC_ARG_ENABLE(cookies,
+AC_HELP_STRING([--enable-cookies],[Enable cookies support])
+AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
[ case "$enableval" in
no)
AC_MSG_RESULT(no)
+ AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support])
;;
- *)
- AC_MSG_CHECKING([whether $CC supports it])
- if test "$GCC" = yes ; then
- if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ||
- dnl clang always supports -fvisibility= but it doesn't show up
- dnl under --help.
- test "$compiler_id" = "CLANG"; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols])
- AC_DEFINE(CURL_EXTERN_SYMBOL, [__attribute__ ((visibility ("default")))], [to make a symbol visible])
- CFLAGS="$CFLAGS -fvisibility=hidden"
- else
- AC_MSG_RESULT(no)
- fi
-
- else
- dnl Test for SunPro cc
- if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols])
- AC_DEFINE(CURL_EXTERN_SYMBOL, [__global], [to make a symbol visible])
- CFLAGS="$CFLAGS -xldscope=hidden"
- else
- AC_MSG_RESULT(no)
- fi
- fi
+ *) AC_MSG_RESULT(yes)
;;
esac ],
- AC_MSG_RESULT(no)
+ AC_MSG_RESULT(yes)
)
dnl ************************************************************
+dnl hiding of library internal symbols
+dnl
+CURL_CONFIGURE_SYMBOL_HIDING
+
+dnl ************************************************************
dnl enforce SONAME bump
dnl
)
AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
-
-dnl ************************************************************
-if test ! -z "$winsock_LIB"; then
-
- dnl If ws2_32 is wanted, make sure it is the _last_ lib in LIBS (makes
- dnl things work when built with c-ares). But we can't just move it last
- dnl since then other stuff (SSL) won't build. So we simply append it to the
- dnl end.
-
- LIBS="$LIBS $winsock_LIB"
- TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB"
-
-fi
-
dnl
dnl All the library dependencies put into $LIB apply to libcurl only.
-dnl Those in $CURL_LIBS apply to the curl command-line client only.
-dnl Those in $TEST_SERVER_LIBS apply to test servers only.
-dnl Those in $ALL_LIBS apply to all targets, including test targets.
dnl
LIBCURL_LIBS=$LIBS
AC_SUBST(LIBCURL_LIBS)
-AC_SUBST(CURL_LIBS)
-AC_SUBST(TEST_SERVER_LIBS)
AC_SUBST(CURL_NETWORK_LIBS)
-LIBS=$ALL_LIBS dnl LIBS is a magic variable that's used for every link
+AC_SUBST(CURL_NETWORK_AND_TIME_LIBS)
+
+dnl BLANK_AT_MAKETIME may be used in our Makefile.am files to blank
+dnl LIBS variable used in generated makefile at makefile processing
+dnl time. Doing this functionally prevents LIBS from being used for
+dnl all link targets in given makefile.
+BLANK_AT_MAKETIME=
+AC_SUBST(BLANK_AT_MAKETIME)
AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
ENABLE_SHARED="$enable_shared"
AC_SUBST(ENABLE_SHARED)
+dnl to let curl-config output the static libraries correctly
+ENABLE_STATIC="$enable_static"
+AC_SUBST(ENABLE_STATIC)
+
+
dnl
dnl For keeping supported features and protocols also in pkg-config file
-dnl since it is more cross-compile frient than curl-config
+dnl since it is more cross-compile friendly than curl-config
dnl
if test "x$USE_SSLEAY" = "x1"; then
elif test -n "$SSL_ENABLED"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
fi
-if test "@KRB4_ENABLED@" = "x1"; then
- SUPPORT_FEATURES="$SUPPORT_FEATURES KRB4"
-fi
if test "x$IPV6_ENABLED" = "x1"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
fi
+if test "x$USE_UNIX_SOCKETS" = "x1"; then
+ SUPPORT_FEATURES="$SUPPORT_FEATURES UnixSockets"
+fi
if test "x$HAVE_LIBZ" = "x1"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
fi
if test "x$USE_WINDOWS_SSPI" = "x1"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI"
fi
-if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
- -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1"; then
- SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM"
+
+if test "x$HAVE_GSSAPI" = "x1"; then
+ SUPPORT_FEATURES="$SUPPORT_FEATURES GSS-API"
+fi
+
+if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \
+ \( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then
+ SUPPORT_FEATURES="$SUPPORT_FEATURES SPNEGO"
+fi
+
+if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \
+ \( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then
+ SUPPORT_FEATURES="$SUPPORT_FEATURES Kerberos"
+fi
+
+if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1"; then
+ if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
+ -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \
+ -o "x$DARWINSSL_ENABLED" = "x1"; then
+ SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM"
+
+ if test "x$CURL_DISABLE_HTTP" != "x1" -a \
+ "x$NTLM_WB_ENABLED" = "x1"; then
+ SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB"
+ fi
+ fi
+fi
+
+if test "x$USE_TLS_SRP" = "x1"; then
+ SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
+fi
+
+if test "x$USE_NGHTTP2" = "x1"; then
+ SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
fi
AC_SUBST(SUPPORT_FEATURES)
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS"
fi
fi
+if test "x$CURL_DISABLE_SMB" != "x1" \
+ -a "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" \
+ -a \( "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
+ -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \
+ -o "x$DARWINSSL_ENABLED" = "x1" \); then
+ SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMB"
+ if test "x$SSL_ENABLED" = "x1"; then
+ SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMBS"
+ fi
+fi
if test "x$CURL_DISABLE_SMTP" != "x1"; then
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP"
if test "x$SSL_ENABLED" = "x1"; then
squeeze LDFLAGS
squeeze LIBS
-squeeze CURL_LIBS
squeeze LIBCURL_LIBS
-squeeze TEST_SERVER_LIBS
squeeze CURL_NETWORK_LIBS
+squeeze CURL_NETWORK_AND_TIME_LIBS
squeeze SUPPORT_FEATURES
squeeze SUPPORT_PROTOCOLS
+XC_CHECK_BUILD_FLAGS
+
if test "x$want_curldebug_assumed" = "xyes" &&
test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then
ac_configure_args="$ac_configure_args --enable-curldebug"
docs/Makefile \
docs/examples/Makefile \
docs/libcurl/Makefile \
+ docs/libcurl/opts/Makefile \
include/Makefile \
include/curl/Makefile \
src/Makefile \
lib/Makefile \
lib/libcurl.vers \
tests/Makefile \
+ tests/certs/Makefile \
+ tests/certs/scripts/Makefile \
tests/data/Makefile \
tests/server/Makefile \
tests/libtest/Makefile \
+ tests/unit/Makefile \
packages/Makefile \
packages/Win32/Makefile \
packages/Win32/cygwin/Makefile \
CURL_GENERATE_CONFIGUREHELP_PM
+XC_AMEND_DISTCLEAN([lib src tests/unit tests/server tests/libtest docs/examples])
+
AC_MSG_NOTICE([Configured to build curl/libcurl:
- curl version: ${VERSION}
- Host setup: ${host}
- Install prefix: ${prefix}
- Compiler: ${CC}
- SSL support: ${curl_ssl_msg}
- SSH support: ${curl_ssh_msg}
- zlib support: ${curl_zlib_msg}
- krb4 support: ${curl_krb4_msg}
- GSSAPI support: ${curl_gss_msg}
- SPNEGO support: ${curl_spnego_msg}
- resolver: ${curl_res_msg}
- ipv6 support: ${curl_ipv6_msg}
- IDN support: ${curl_idn_msg}
- Build libcurl: Shared=${enable_shared}, Static=${enable_static}
- Built-in manual: ${curl_manual_msg}
- Verbose errors: ${curl_verbose_msg}
- SSPI support: ${curl_sspi_msg}
- ca cert bundle: ${ca}
- ca cert path: ${capath}
- LDAP support: ${curl_ldap_msg}
- LDAPS support: ${curl_ldaps_msg}
- RTSP support: ${curl_rtsp_msg}
- RTMP support: ${curl_rtmp_msg}
- Protocols: ${SUPPORT_PROTOCOLS}
+ curl version: ${CURLVERSION}
+ Host setup: ${host}
+ Install prefix: ${prefix}
+ Compiler: ${CC}
+ SSL support: ${curl_ssl_msg}
+ SSH support: ${curl_ssh_msg}
+ zlib support: ${curl_zlib_msg}
+ GSS-API support: ${curl_gss_msg}
+ TLS-SRP support: ${curl_tls_srp_msg}
+ resolver: ${curl_res_msg}
+ IPv6 support: ${curl_ipv6_msg}
+ Unix sockets support: ${curl_unix_sockets_msg}
+ IDN support: ${curl_idn_msg}
+ Build libcurl: Shared=${enable_shared}, Static=${enable_static}
+ Built-in manual: ${curl_manual_msg}
+ --libcurl option: ${curl_libcurl_msg}
+ Verbose errors: ${curl_verbose_msg}
+ SSPI support: ${curl_sspi_msg}
+ ca cert bundle: ${ca}
+ ca cert path: ${capath}
+ LDAP support: ${curl_ldap_msg}
+ LDAPS support: ${curl_ldaps_msg}
+ RTSP support: ${curl_rtsp_msg}
+ RTMP support: ${curl_rtmp_msg}
+ metalink support: ${curl_mtlnk_msg}
+ HTTP2 support: ${curl_h2_msg}
+ Protocols: ${SUPPORT_PROTOCOLS}
])
if test "x$soname_bump" = "xyes"; then