1 #***************************************************************************
3 # Project ___| | | | _ \| |
5 # | (__| |_| | _ <| |___
6 # \___|\___/|_| \_\_____|
8 # Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
10 # This software is licensed as described in the file COPYING, which
11 # you should have received as part of this distribution. The terms
12 # are also available at http://curl.haxx.se/docs/copyright.html.
14 # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15 # copies of the Software, and permit persons to whom the Software is
16 # furnished to do so, under the terms of the COPYING file.
18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 # KIND, either express or implied.
21 #***************************************************************************
22 dnl Process this file with autoconf to produce a configure script.
26 dnl We don't know the version number "statically" so we use a dash here
27 AC_INIT([curl], [-], [a suitable curl mailing list: http://curl.haxx.se/mail/])
31 CURL_OVERRIDE_AUTOCONF
33 dnl configure script copyright
34 AC_COPYRIGHT([Copyright (c) 1998 - 2013 Daniel Stenberg, <daniel@haxx.se>
35 This configure script may be copied, distributed and modified under the
36 terms of the curl license; see COPYING for more details])
38 AC_CONFIG_SRCDIR([lib/urldata.h])
39 AC_CONFIG_HEADERS(lib/curl_config.h include/curl/curlbuild.h)
40 AC_CONFIG_MACRO_DIR([m4])
43 CURL_CHECK_OPTION_DEBUG
44 CURL_CHECK_OPTION_OPTIMIZE
45 CURL_CHECK_OPTION_WARNINGS
46 CURL_CHECK_OPTION_WERROR
47 CURL_CHECK_OPTION_CURLDEBUG
48 CURL_CHECK_OPTION_SYMBOL_HIDING
49 CURL_CHECK_OPTION_ARES
51 XC_CHECK_PATH_SEPARATOR
54 # save the configure arguments
56 CONFIGURE_OPTIONS="\"$ac_configure_args\""
57 AC_SUBST(CONFIGURE_OPTIONS)
60 if test X"$want_werror" = Xyes; then
61 CURL_CFLAG_EXTRAS="-Werror"
63 AC_SUBST(CURL_CFLAG_EXTRAS)
65 dnl SED is mandatory for configure process and libtool.
66 dnl Set it now, allowing it to be changed later.
67 if test -z "$SED"; then
68 dnl allow it to be overridden
69 AC_PATH_PROG([SED], [sed], [not_found],
70 [$PATH:/usr/bin:/usr/local/bin])
71 if test -z "$SED" || test "$SED" = "not_found"; then
72 AC_MSG_ERROR([sed not found in PATH. Cannot continue without sed.])
77 dnl GREP is mandatory for configure process and libtool.
78 dnl Set it now, allowing it to be changed later.
79 if test -z "$GREP"; then
80 dnl allow it to be overridden
81 AC_PATH_PROG([GREP], [grep], [not_found],
82 [$PATH:/usr/bin:/usr/local/bin])
83 if test -z "$GREP" || test "$GREP" = "not_found"; then
84 AC_MSG_ERROR([grep not found in PATH. Cannot continue without grep.])
89 dnl EGREP is mandatory for configure process and libtool.
90 dnl Set it now, allowing it to be changed later.
91 if test -z "$EGREP"; then
92 dnl allow it to be overridden
93 if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then
94 AC_MSG_CHECKING([for egrep])
96 AC_MSG_RESULT([$EGREP])
98 AC_PATH_PROG([EGREP], [egrep], [not_found],
99 [$PATH:/usr/bin:/usr/local/bin])
102 if test -z "$EGREP" || test "$EGREP" = "not_found"; then
103 AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.])
107 dnl AR is mandatory for configure process and libtool.
108 dnl This is target dependent, so check it as a tool.
109 if test -z "$AR"; then
110 dnl allow it to be overridden
111 AC_PATH_TOOL([AR], [ar], [not_found],
112 [$PATH:/usr/bin:/usr/local/bin])
113 if test -z "$AR" || test "$AR" = "not_found"; then
114 AC_MSG_ERROR([ar not found in PATH. Cannot continue without ar.])
121 dnl Remove non-configure distributed curlbuild.h
122 if test -f ${srcdir}/include/curl/curlbuild.h; then
123 rm -f ${srcdir}/include/curl/curlbuild.h
126 dnl figure out the libcurl version
127 CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h`
130 AC_MSG_CHECKING([curl version])
131 AC_MSG_RESULT($CURLVERSION)
133 AC_SUBST(CURLVERSION)
136 dnl we extract the numerical version for curl-config only
137 VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h`
140 dnl Solaris pkgadd support definitions
141 PKGADD_PKG="HAXXcurl"
142 PKGADD_NAME="cURL - a client that groks URLs"
143 PKGADD_VENDOR="curl.haxx.se"
145 AC_SUBST(PKGADD_NAME)
146 AC_SUBST(PKGADD_VENDOR)
149 dnl initialize all the info variables
150 curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl,darwinssl} )"
151 curl_ssh_msg="no (--with-libssh2)"
152 curl_zlib_msg="no (--with-zlib)"
153 curl_gss_msg="no (--with-gssapi)"
154 curl_spnego_msg="no (--with-spnego)"
155 curl_tls_srp_msg="no (--enable-tls-srp)"
156 curl_res_msg="default (--enable-ares / --enable-threaded-resolver)"
157 curl_ipv6_msg="no (--enable-ipv6)"
158 curl_idn_msg="no (--with-{libidn,winidn})"
159 curl_manual_msg="no (--enable-manual)"
160 curl_libcurl_msg="enabled (--disable-libcurl-option)"
161 curl_verbose_msg="enabled (--disable-verbose)"
162 curl_sspi_msg="no (--enable-sspi)"
163 curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)"
164 curl_ldaps_msg="no (--enable-ldaps)"
165 curl_rtsp_msg="no (--enable-rtsp)"
166 curl_rtmp_msg="no (--with-librtmp)"
167 curl_mtlnk_msg="no (--with-libmetalink)"
169 init_ssl_msg=${curl_ssl_msg}
172 dnl Save some initial values the user might have provided
174 INITIAL_LDFLAGS=$LDFLAGS
178 dnl Detect the canonical host and target build environment
182 dnl Get system canonical name
183 AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
185 dnl Checks for programs.
187 dnl Our curl_off_t internal and external configure settings
188 CURL_CONFIGURE_CURL_OFF_T
190 dnl This defines _ALL_SOURCE for AIX
191 CURL_CHECK_AIX_ALL_SOURCE
193 dnl Our configure and build reentrant settings
194 CURL_CONFIGURE_THREAD_SAFE
195 CURL_CONFIGURE_REENTRANT
197 dnl check for how to do large files
203 # Automake conditionals based on libtool related checks
206 AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSION_INFO],
207 [test "x$xc_lt_shlib_use_version_info" = 'xyes'])
208 AM_CONDITIONAL([CURL_LT_SHLIB_USE_NO_UNDEFINED],
209 [test "x$xc_lt_shlib_use_no_undefined" = 'xyes'])
210 AM_CONDITIONAL([CURL_LT_SHLIB_USE_MIMPURE_TEXT],
211 [test "x$xc_lt_shlib_use_mimpure_text" = 'xyes'])
214 # Due to libtool and automake machinery limitations of not allowing
215 # specifying separate CPPFLAGS or CFLAGS when compiling objects for
216 # inclusion of these in shared or static libraries, we are forced to
217 # build using separate configure runs for shared and static libraries
218 # on systems where different CPPFLAGS or CFLAGS are mandatory in order
219 # to compile objects for each kind of library. Notice that relying on
220 # the '-DPIC' CFLAG that libtool provides is not valid given that the
221 # user might for example choose to build static libraries with PIC.
225 # Make our Makefile.am files use the staticlib CPPFLAG only when strictly
226 # targeting a static library and not building its shared counterpart.
229 AM_CONDITIONAL([USE_CPPFLAG_CURL_STATICLIB],
230 [test "x$xc_lt_build_static_only" = 'xyes'])
233 # Make staticlib CPPFLAG variable and its definition visible in output
234 # files unconditionally, providing an empty definition unless strictly
235 # targeting a static library and not building its shared counterpart.
238 CPPFLAG_CURL_STATICLIB=
239 if test "x$xc_lt_build_static_only" = 'xyes'; then
240 CPPFLAG_CURL_STATICLIB='-DCURL_STATICLIB'
242 AC_SUBST([CPPFLAG_CURL_STATICLIB])
245 # Determine whether all dependent libraries must be specified when linking
246 if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno"
252 AC_SUBST(REQUIRE_LIB_DEPS)
253 AM_CONDITIONAL(USE_EXPLICIT_LIB_DEPS, test x$REQUIRE_LIB_DEPS = xyes)
255 dnl check if there's a way to force code inline
258 dnl **********************************************************************
259 dnl platform/compiler/architecture specific checks/flags
260 dnl **********************************************************************
263 CURL_SET_COMPILER_BASIC_OPTS
264 CURL_SET_COMPILER_DEBUG_OPTS
265 CURL_SET_COMPILER_OPTIMIZE_OPTS
266 CURL_SET_COMPILER_WARNING_OPTS
268 if test "$compiler_id" = "INTEL_UNIX_C"; then
270 if test "$compiler_num" -ge "1000"; then
271 dnl icc 10.X or later
272 CFLAGS="$CFLAGS -shared-intel"
273 elif test "$compiler_num" -ge "900"; then
275 CFLAGS="$CFLAGS -i-dynamic"
280 CURL_CHECK_COMPILER_HALT_ON_ERROR
281 CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
282 CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH
283 CURL_CHECK_COMPILER_SYMBOL_HIDING
286 AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes)
288 supports_unittests=yes
289 # cross-compilation of unit tests static library/programs fails when
290 # libcurl shared library is built. This might be due to a libtool or
291 # automake issue. In this case we disable unit tests.
292 if test "x$cross_compiling" != "xno" &&
293 test "x$enable_shared" != "xno"; then
294 supports_unittests=no
297 # IRIX 6.5.24 gcc 3.3 autobuilds fail unittests library compilation due to
298 # a problem related with OpenSSL headers and library versions not matching.
299 # Disable unit tests while time to further investigate this is found.
302 if test "$compiler_id" = "GNU_C"; then
303 supports_unittests=no
308 # All AIX autobuilds fails unit tests linking against unittests library
309 # due to unittests library being built with no symbols or members. Libtool ?
310 # Disable unit tests while time to further investigate this is found.
313 supports_unittests=no
317 dnl Build unit tests when option --enable-debug is given.
318 if test "x$want_debug" = "xyes" &&
319 test "x$supports_unittests" = "xyes"; then
324 AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes)
326 dnl **********************************************************************
327 dnl Compilation based checks should not be done before this point.
328 dnl **********************************************************************
330 dnl **********************************************************************
331 dnl Make sure that our checks for headers windows.h winsock.h winsock2.h
332 dnl and ws2tcpip.h take precedence over any other further checks which
333 dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for
334 dnl this specific header files. And do them before its results are used.
335 dnl **********************************************************************
337 CURL_CHECK_HEADER_WINDOWS
338 CURL_CHECK_NATIVE_WINDOWS
339 case X-"$ac_cv_native_windows" in
341 CURL_CHECK_HEADER_WINSOCK
342 CURL_CHECK_HEADER_WINSOCK2
343 CURL_CHECK_HEADER_WS2TCPIP
344 CURL_CHECK_HEADER_WINLDAP
345 CURL_CHECK_HEADER_WINBER
348 ac_cv_header_winsock_h="no"
349 ac_cv_header_winsock2_h="no"
350 ac_cv_header_ws2tcpip_h="no"
351 ac_cv_header_winldap_h="no"
352 ac_cv_header_winber_h="no"
355 CURL_CHECK_WIN32_LARGEFILE
357 dnl ************************************************************
358 dnl switch off particular protocols
360 AC_MSG_CHECKING([whether to support http])
362 AC_HELP_STRING([--enable-http],[Enable HTTP support])
363 AC_HELP_STRING([--disable-http],[Disable HTTP support]),
364 [ case "$enableval" in
367 AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP])
368 AC_MSG_WARN([disable HTTP disables FTP over proxy and RTSP])
369 AC_SUBST(CURL_DISABLE_HTTP, [1])
370 AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
371 AC_SUBST(CURL_DISABLE_RTSP, [1])
373 *) AC_MSG_RESULT(yes)
378 AC_MSG_CHECKING([whether to support ftp])
380 AC_HELP_STRING([--enable-ftp],[Enable FTP support])
381 AC_HELP_STRING([--disable-ftp],[Disable FTP support]),
382 [ case "$enableval" in
385 AC_DEFINE(CURL_DISABLE_FTP, 1, [to disable FTP])
386 AC_SUBST(CURL_DISABLE_FTP, [1])
388 *) AC_MSG_RESULT(yes)
393 AC_MSG_CHECKING([whether to support file])
395 AC_HELP_STRING([--enable-file],[Enable FILE support])
396 AC_HELP_STRING([--disable-file],[Disable FILE support]),
397 [ case "$enableval" in
400 AC_DEFINE(CURL_DISABLE_FILE, 1, [to disable FILE])
401 AC_SUBST(CURL_DISABLE_FILE, [1])
403 *) AC_MSG_RESULT(yes)
408 AC_MSG_CHECKING([whether to support ldap])
410 AC_HELP_STRING([--enable-ldap],[Enable LDAP support])
411 AC_HELP_STRING([--disable-ldap],[Disable LDAP support]),
412 [ case "$enableval" in
415 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
416 AC_SUBST(CURL_DISABLE_LDAP, [1])
424 AC_MSG_CHECKING([whether to support ldaps])
426 AC_HELP_STRING([--enable-ldaps],[Enable LDAPS support])
427 AC_HELP_STRING([--disable-ldaps],[Disable LDAPS support]),
428 [ case "$enableval" in
431 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
432 AC_SUBST(CURL_DISABLE_LDAPS, [1])
434 *) if test "x$CURL_DISABLE_LDAP" = "x1" ; then
435 AC_MSG_RESULT(LDAP needs to be enabled to support LDAPS)
436 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
437 AC_SUBST(CURL_DISABLE_LDAPS, [1])
440 AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
441 AC_SUBST(HAVE_LDAP_SSL, [1])
445 if test "x$CURL_DISABLE_LDAP" = "x1" ; then
447 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
448 AC_SUBST(CURL_DISABLE_LDAPS, [1])
451 AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
452 AC_SUBST(HAVE_LDAP_SSL, [1])
456 AC_MSG_CHECKING([whether to support rtsp])
458 AC_HELP_STRING([--enable-rtsp],[Enable RTSP support])
459 AC_HELP_STRING([--disable-rtsp],[Disable RTSP support]),
460 [ case "$enableval" in
463 AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
464 AC_SUBST(CURL_DISABLE_RTSP, [1])
466 *) if test x$CURL_DISABLE_HTTP = x1 ; then
467 AC_MSG_ERROR(HTTP support needs to be enabled in order to enable RTSP support!)
470 curl_rtsp_msg="enabled"
474 if test "x$CURL_DISABLE_HTTP" != "x1"; then
476 curl_rtsp_msg="enabled"
482 AC_MSG_CHECKING([whether to support proxies])
484 AC_HELP_STRING([--enable-proxy],[Enable proxy support])
485 AC_HELP_STRING([--disable-proxy],[Disable proxy support]),
486 [ case "$enableval" in
489 AC_DEFINE(CURL_DISABLE_PROXY, 1, [to disable proxies])
490 AC_SUBST(CURL_DISABLE_PROXY, [1])
492 *) AC_MSG_RESULT(yes)
498 AC_MSG_CHECKING([whether to support dict])
500 AC_HELP_STRING([--enable-dict],[Enable DICT support])
501 AC_HELP_STRING([--disable-dict],[Disable DICT support]),
502 [ case "$enableval" in
505 AC_DEFINE(CURL_DISABLE_DICT, 1, [to disable DICT])
506 AC_SUBST(CURL_DISABLE_DICT, [1])
508 *) AC_MSG_RESULT(yes)
513 AC_MSG_CHECKING([whether to support telnet])
514 AC_ARG_ENABLE(telnet,
515 AC_HELP_STRING([--enable-telnet],[Enable TELNET support])
516 AC_HELP_STRING([--disable-telnet],[Disable TELNET support]),
517 [ case "$enableval" in
520 AC_DEFINE(CURL_DISABLE_TELNET, 1, [to disable TELNET])
521 AC_SUBST(CURL_DISABLE_TELNET, [1])
523 *) AC_MSG_RESULT(yes)
528 AC_MSG_CHECKING([whether to support tftp])
530 AC_HELP_STRING([--enable-tftp],[Enable TFTP support])
531 AC_HELP_STRING([--disable-tftp],[Disable TFTP support]),
532 [ case "$enableval" in
535 AC_DEFINE(CURL_DISABLE_TFTP, 1, [to disable TFTP])
536 AC_SUBST(CURL_DISABLE_TFTP, [1])
538 *) AC_MSG_RESULT(yes)
544 AC_MSG_CHECKING([whether to support pop3])
546 AC_HELP_STRING([--enable-pop3],[Enable POP3 support])
547 AC_HELP_STRING([--disable-pop3],[Disable POP3 support]),
548 [ case "$enableval" in
551 AC_DEFINE(CURL_DISABLE_POP3, 1, [to disable POP3])
552 AC_SUBST(CURL_DISABLE_POP3, [1])
554 *) AC_MSG_RESULT(yes)
561 AC_MSG_CHECKING([whether to support imap])
563 AC_HELP_STRING([--enable-imap],[Enable IMAP support])
564 AC_HELP_STRING([--disable-imap],[Disable IMAP support]),
565 [ case "$enableval" in
568 AC_DEFINE(CURL_DISABLE_IMAP, 1, [to disable IMAP])
569 AC_SUBST(CURL_DISABLE_IMAP, [1])
571 *) AC_MSG_RESULT(yes)
578 AC_MSG_CHECKING([whether to support smtp])
580 AC_HELP_STRING([--enable-smtp],[Enable SMTP support])
581 AC_HELP_STRING([--disable-smtp],[Disable SMTP support]),
582 [ case "$enableval" in
585 AC_DEFINE(CURL_DISABLE_SMTP, 1, [to disable SMTP])
586 AC_SUBST(CURL_DISABLE_SMTP, [1])
588 *) AC_MSG_RESULT(yes)
594 AC_MSG_CHECKING([whether to support gopher])
595 AC_ARG_ENABLE(gopher,
596 AC_HELP_STRING([--enable-gopher],[Enable Gopher support])
597 AC_HELP_STRING([--disable-gopher],[Disable Gopher support]),
598 [ case "$enableval" in
601 AC_DEFINE(CURL_DISABLE_GOPHER, 1, [to disable Gopher])
602 AC_SUBST(CURL_DISABLE_GOPHER, [1])
604 *) AC_MSG_RESULT(yes)
611 dnl **********************************************************************
612 dnl Check for built-in manual
613 dnl **********************************************************************
615 AC_MSG_CHECKING([whether to provide built-in manual])
616 AC_ARG_ENABLE(manual,
617 AC_HELP_STRING([--enable-manual],[Enable built-in manual])
618 AC_HELP_STRING([--disable-manual],[Disable built-in manual]),
619 [ case "$enableval" in
623 *) AC_MSG_RESULT(yes)
630 dnl The actual use of the USE_MANUAL variable is done much later in this
631 dnl script to allow other actions to disable it as well.
633 dnl ************************************************************
634 dnl disable C code generation support
636 AC_MSG_CHECKING([whether to enable generation of C code])
637 AC_ARG_ENABLE(libcurl_option,
638 AC_HELP_STRING([--enable-libcurl-option],[Enable --libcurl C code generation support])
639 AC_HELP_STRING([--disable-libcurl-option],[Disable --libcurl C code generation support]),
640 [ case "$enableval" in
643 AC_DEFINE(CURL_DISABLE_LIBCURL_OPTION, 1, [to disable --libcurl C code generation option])
644 curl_libcurl_msg="no"
646 *) AC_MSG_RESULT(yes)
652 dnl **********************************************************************
653 dnl Checks for libraries.
654 dnl **********************************************************************
656 AC_MSG_CHECKING([whether to use libgcc])
657 AC_ARG_ENABLE(libgcc,
658 AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]),
659 [ case "$enableval" in
672 dnl gethostbyname without lib or in the nsl lib?
673 AC_CHECK_FUNC(gethostbyname,
674 [HAVE_GETHOSTBYNAME="1"
676 [ AC_CHECK_LIB(nsl, gethostbyname,
677 [HAVE_GETHOSTBYNAME="1"
682 if test "$HAVE_GETHOSTBYNAME" != "1"
684 dnl gethostbyname in the socket lib?
685 AC_CHECK_LIB(socket, gethostbyname,
686 [HAVE_GETHOSTBYNAME="1"
687 LIBS="-lsocket $LIBS"
691 if test "$HAVE_GETHOSTBYNAME" != "1"
693 dnl gethostbyname in the watt lib?
694 AC_CHECK_LIB(watt, gethostbyname,
695 [HAVE_GETHOSTBYNAME="1"
696 CPPFLAGS="-I/dev/env/WATT_ROOT/inc"
697 LDFLAGS="-L/dev/env/WATT_ROOT/lib"
702 dnl At least one system has been identified to require BOTH nsl and socket
703 dnl libs at the same time to link properly.
704 if test "$HAVE_GETHOSTBYNAME" != "1"
706 AC_MSG_CHECKING([for gethostbyname with both nsl and socket libs])
707 my_ac_save_LIBS=$LIBS
708 LIBS="-lnsl -lsocket $LIBS"
716 HAVE_GETHOSTBYNAME="1"
719 LIBS=$my_ac_save_LIBS
723 if test "$HAVE_GETHOSTBYNAME" != "1"
725 dnl This is for winsock systems
726 if test "$ac_cv_header_windows_h" = "yes"; then
727 if test "$ac_cv_header_winsock_h" = "yes"; then
730 winsock_LIB="-lwinsock"
733 winsock_LIB="-lwsock32"
737 if test "$ac_cv_header_winsock2_h" = "yes"; then
738 winsock_LIB="-lws2_32"
740 if test ! -z "$winsock_LIB"; then
741 my_ac_save_LIBS=$LIBS
742 LIBS="$winsock_LIB $LIBS"
743 AC_MSG_CHECKING([for gethostbyname in $winsock_LIB])
746 #ifdef HAVE_WINDOWS_H
747 #ifndef WIN32_LEAN_AND_MEAN
748 #define WIN32_LEAN_AND_MEAN
751 #ifdef HAVE_WINSOCK2_H
752 #include <winsock2.h>
754 #ifdef HAVE_WINSOCK_H
760 gethostbyname("www.dummysite.com");
764 HAVE_GETHOSTBYNAME="1"
768 LIBS=$my_ac_save_LIBS
774 if test "$HAVE_GETHOSTBYNAME" != "1"
776 dnl This is for Minix 3.1
777 AC_MSG_CHECKING([for gethostbyname for Minix 3])
780 /* Older Minix versions may need <net/gen/netdb.h> here instead */
783 gethostbyname("www.dummysite.com");
787 HAVE_GETHOSTBYNAME="1"
793 if test "$HAVE_GETHOSTBYNAME" != "1"
795 dnl This is for eCos with a stubbed DNS implementation
796 AC_MSG_CHECKING([for gethostbyname for eCos])
802 gethostbyname("www.dummysite.com");
806 HAVE_GETHOSTBYNAME="1"
812 if test "$HAVE_GETHOSTBYNAME" != "1"
814 dnl gethostbyname in the network lib - for Haiku OS
815 AC_CHECK_LIB(network, gethostbyname,
816 [HAVE_GETHOSTBYNAME="1"
817 LIBS="-lnetwork $LIBS"
821 if test "$HAVE_GETHOSTBYNAME" != "1"
823 dnl gethostbyname in the net lib - for BeOS
824 AC_CHECK_LIB(net, gethostbyname,
825 [HAVE_GETHOSTBYNAME="1"
831 if test "$HAVE_GETHOSTBYNAME" != "1"; then
832 AC_MSG_ERROR([couldn't find libraries for gethostbyname()])
836 AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ])
838 if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then
839 AC_CHECK_LIB(resolve, strcasecmp,
840 [LIBS="-lresolve $LIBS"],
844 ac_cv_func_strcasecmp="no"
846 CURL_CHECK_LIBS_CONNECT
848 CURL_NETWORK_LIBS=$LIBS
850 dnl **********************************************************************
851 dnl In case that function clock_gettime with monotonic timer is available,
852 dnl check for additional required libraries.
853 dnl **********************************************************************
854 CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC
856 dnl **********************************************************************
857 dnl The preceding library checks are all potentially useful for test
858 dnl servers and libtest cases which require networking and clock_gettime
859 dnl support. Save the list of required libraries at this point for use
860 dnl while linking those test servers and programs.
861 dnl **********************************************************************
862 CURL_NETWORK_AND_TIME_LIBS=$LIBS
864 dnl **********************************************************************
865 dnl Check for the presence of ZLIB libraries and headers
866 dnl **********************************************************************
868 dnl Check for & handle argument to --with-zlib.
870 clean_CPPFLAGS=$CPPFLAGS
871 clean_LDFLAGS=$LDFLAGS
875 AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])
876 AC_HELP_STRING([--without-zlib],[disable use of zlib]),
877 [OPT_ZLIB="$withval"])
879 if test "$OPT_ZLIB" = "no" ; then
880 AC_MSG_WARN([zlib disabled])
882 if test "$OPT_ZLIB" = "yes" ; then
886 if test -z "$OPT_ZLIB" ; then
887 dnl check for the lib first without setting any new path, since many
888 dnl people have it in the default path
890 AC_CHECK_LIB(z, inflateEnd,
891 dnl libz found, set the variable
894 dnl if no lib found, try /usr/local
895 [OPT_ZLIB="/usr/local"])
899 dnl Add a nonempty path to the compiler flags
900 if test -n "$OPT_ZLIB"; then
901 CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
902 LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
905 AC_CHECK_HEADER(zlib.h,
909 dnl if the lib wasn't found already, try again with the new paths
910 if test "$HAVE_LIBZ" != "1"; then
911 AC_CHECK_LIB(z, gzread,
913 dnl the lib was found!
917 [ CPPFLAGS=$clean_CPPFLAGS
918 LDFLAGS=$clean_LDFLAGS])
922 dnl zlib.h was not found, restore the flags
923 CPPFLAGS=$clean_CPPFLAGS
924 LDFLAGS=$clean_LDFLAGS]
927 if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
929 AC_MSG_WARN([configure found only the libz lib, not the header file!])
931 CPPFLAGS=$clean_CPPFLAGS
932 LDFLAGS=$clean_LDFLAGS
934 elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
936 AC_MSG_WARN([configure found only the libz header file, not the lib!])
937 CPPFLAGS=$clean_CPPFLAGS
938 LDFLAGS=$clean_LDFLAGS
940 elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1"
942 dnl both header and lib were found!
944 AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file])
945 AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available])
948 LIBS="-lz $clean_LIBS"
950 dnl replace 'HAVE_LIBZ' in the automake makefile.ams
952 AC_MSG_NOTICE([found both libz and libz.h header])
953 curl_zlib_msg="enabled"
957 dnl set variable for use in automakefile(s)
958 AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
961 dnl **********************************************************************
963 dnl **********************************************************************
966 AC_ARG_WITH(ldap-lib,
967 AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of ldap lib file]),
968 [LDAPLIBNAME="$withval"])
971 AC_ARG_WITH(lber-lib,
972 AC_HELP_STRING([--with-lber-lib=libname],[Specify name of lber lib file]),
973 [LBERLIBNAME="$withval"])
975 if test x$CURL_DISABLE_LDAP != x1 ; then
977 CURL_CHECK_HEADER_LBER
978 CURL_CHECK_HEADER_LDAP
979 CURL_CHECK_HEADER_LDAPSSL
980 CURL_CHECK_HEADER_LDAP_SSL
982 if test -z "$LDAPLIBNAME" ; then
983 if test "$ac_cv_native_windows" = "yes"; then
984 dnl Windows uses a single and unique LDAP library name
985 LDAPLIBNAME="wldap32"
990 if test "$LDAPLIBNAME" ; then
991 AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [
992 AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled])
993 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
994 AC_SUBST(CURL_DISABLE_LDAP, [1])
995 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
996 AC_SUBST(CURL_DISABLE_LDAPS, [1])])
998 dnl Try to find the right ldap libraries for this system
1000 case X-"$curl_cv_ldap_LIBS" in
1002 AC_MSG_WARN([Cannot find libraries for LDAP support: LDAP disabled])
1003 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
1004 AC_SUBST(CURL_DISABLE_LDAP, [1])
1005 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
1006 AC_SUBST(CURL_DISABLE_LDAPS, [1])
1012 if test x$CURL_DISABLE_LDAP != x1 ; then
1014 if test "$LBERLIBNAME" ; then
1015 dnl If name is "no" then don't define this library at all
1016 dnl (it's only needed if libldap.so's dependencies are broken).
1017 if test "$LBERLIBNAME" != "no" ; then
1018 AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [
1019 AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled])
1020 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
1021 AC_SUBST(CURL_DISABLE_LDAP, [1])
1022 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
1023 AC_SUBST(CURL_DISABLE_LDAPS, [1])])
1028 if test x$CURL_DISABLE_LDAP != x1 ; then
1029 AC_CHECK_FUNCS([ldap_url_parse ldap_init_fd])
1031 if test "$LDAPLIBNAME" = "wldap32"; then
1032 curl_ldap_msg="enabled (winldap)"
1033 AC_DEFINE(CURL_LDAP_WIN, 1, [Use Windows LDAP implementation])
1035 curl_ldap_msg="enabled (OpenLDAP)"
1036 if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then
1037 AC_DEFINE(USE_OPENLDAP, 1, [Use OpenLDAP-specific code])
1038 AC_SUBST(USE_OPENLDAP, [1])
1043 if test x$CURL_DISABLE_LDAPS != x1 ; then
1044 curl_ldaps_msg="enabled"
1047 dnl **********************************************************************
1049 dnl **********************************************************************
1051 AC_MSG_CHECKING([whether to enable ipv6])
1053 AC_HELP_STRING([--enable-ipv6],[Enable ipv6 (with ipv4) support])
1054 AC_HELP_STRING([--disable-ipv6],[Disable ipv6 support]),
1055 [ case "$enableval" in
1060 *) AC_MSG_RESULT(yes)
1065 AC_TRY_RUN([ /* is AF_INET6 available? */
1066 #include <sys/types.h>
1067 #include <sys/socket.h>
1070 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1084 if test "$ipv6" = "yes"; then
1085 curl_ipv6_msg="enabled"
1088 # Check if struct sockaddr_in6 have sin6_scope_id member
1089 if test "$ipv6" = yes; then
1090 AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
1092 #include <sys/types.h>
1093 #include <netinet/in.h>] ,
1094 struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
1095 if test "$have_sin6_scope_id" = yes; then
1096 AC_MSG_RESULT([yes])
1097 AC_DEFINE(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID, 1, [Define to 1 if struct sockaddr_in6 has the sin6_scope_id member])
1103 dnl **********************************************************************
1104 dnl Check if the operating system allows programs to write to their own argv[]
1105 dnl **********************************************************************
1107 AC_MSG_CHECKING([if argv can be written to])
1110 int main(int argc, char ** argv) {
1112 return (argv[0][0] == ' ')?0:1;
1116 curl_cv_writable_argv=yes
1118 curl_cv_writable_argv=no
1120 curl_cv_writable_argv=cross
1122 case $curl_cv_writable_argv in
1124 AC_DEFINE(HAVE_WRITABLE_ARGV, 1, [Define this symbol if your OS supports changing the contents of argv])
1132 AC_MSG_WARN([the previous check could not be made default was used])
1136 dnl **********************************************************************
1137 dnl Check for FBopenssl(SPNEGO) libraries
1138 dnl **********************************************************************
1141 AC_HELP_STRING([--with-spnego=DIR],
1142 [Specify location of SPNEGO library fbopenssl]), [
1143 SPNEGO_ROOT="$withval"
1144 if test x"$SPNEGO_ROOT" != xno; then
1149 AC_MSG_CHECKING([if SPNEGO support is requested])
1150 if test x"$want_spnego" = xyes; then
1152 if test X"$SPNEGO_ROOT" = Xyes; then
1153 AC_MSG_ERROR([FBOpenSSL libs and/or directories were not found where specified!])
1156 if test -z "$SPNEGO_LIB_DIR"; then
1157 LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl"
1159 LDFLAGS="$LDFLAGS $SPNEGO_LIB_DIR"
1163 AC_DEFINE(HAVE_SPNEGO, 1,
1164 [Define this if you have the SPNEGO library fbopenssl])
1165 curl_spnego_msg="enabled"
1171 dnl **********************************************************************
1172 dnl Check for GSS-API libraries
1173 dnl **********************************************************************
1175 dnl check for gss stuff in the /usr as default
1178 AC_ARG_WITH(gssapi-includes,
1179 AC_HELP_STRING([--with-gssapi-includes=DIR],
1180 [Specify location of GSSAPI header]),
1181 [ GSSAPI_INCS="-I$withval"
1185 AC_ARG_WITH(gssapi-libs,
1186 AC_HELP_STRING([--with-gssapi-libs=DIR],
1187 [Specify location of GSSAPI libs]),
1188 [ GSSAPI_LIB_DIR="-L$withval"
1193 AC_HELP_STRING([--with-gssapi=DIR],
1194 [Where to look for GSSAPI]), [
1195 GSSAPI_ROOT="$withval"
1196 if test x"$GSSAPI_ROOT" != xno; then
1198 if test x"$GSSAPI_ROOT" = xyes; then
1199 dnl if yes, then use default root
1205 save_CPPFLAGS="$CPPFLAGS"
1206 AC_MSG_CHECKING([if GSSAPI support is requested])
1207 if test x"$want_gss" = xyes; then
1210 if test -z "$GSSAPI_INCS"; then
1211 if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
1212 GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi`
1213 elif test "$GSSAPI_ROOT" != "yes"; then
1214 GSSAPI_INCS="-I$GSSAPI_ROOT/include"
1218 CPPFLAGS="$CPPFLAGS $GSSAPI_INCS"
1220 AC_CHECK_HEADER(gss.h,
1222 dnl found in the given dirs
1223 AC_DEFINE(HAVE_GSSGNU, 1, [if you have the GNU gssapi libraries])
1227 dnl not found, check Heimdal or MIT
1228 AC_CHECK_HEADERS([gssapi/gssapi.h], [], [not_mit=1])
1230 [gssapi/gssapi_generic.h gssapi/gssapi_krb5.h],
1235 #ifdef HAVE_GSSAPI_GSSAPI_H
1236 #include <gssapi/gssapi.h>
1239 if test "x$not_mit" = "x1"; then
1240 dnl MIT not found, check for Heimdal
1241 AC_CHECK_HEADER(gssapi.h,
1244 AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries])
1247 dnl no header found, disabling GSS
1249 AC_MSG_WARN(disabling GSSAPI since no header files was found)
1254 AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
1255 dnl check if we have a really old MIT kerberos (<= 1.2)
1256 AC_MSG_CHECKING([if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE])
1259 #include <gssapi/gssapi.h>
1260 #include <gssapi/gssapi_generic.h>
1261 #include <gssapi/gssapi_krb5.h>
1266 GSS_C_NT_HOSTBASED_SERVICE,
1270 AC_MSG_RESULT([yes])
1273 AC_DEFINE(HAVE_OLD_GSSMIT, 1,
1274 [if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE])
1282 if test x"$want_gss" = xyes; then
1283 AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries])
1285 curl_gss_msg="enabled (MIT/Heimdal)"
1287 if test -n "$gnu_gss"; then
1288 curl_gss_msg="enabled (GNU GSS)"
1289 LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1291 elif test -z "$GSSAPI_LIB_DIR"; then
1294 LIBS="-lgssapi_krb5 -lresolv $LIBS"
1297 if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
1298 dnl krb5-config doesn't have --libs-only-L or similar, put everything
1300 gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi`
1301 LIBS="$gss_libs $LIBS"
1302 elif test "$GSSAPI_ROOT" != "yes"; then
1303 LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff"
1304 LIBS="-lgssapi $LIBS"
1306 LIBS="-lgssapi $LIBS"
1311 LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1312 LIBS="-lgssapi $LIBS"
1315 CPPFLAGS="$save_CPPFLAGS"
1318 dnl -------------------------------------------------
1319 dnl check winssl option before other SSL libraries
1320 dnl -------------------------------------------------
1323 AC_ARG_WITH(winssl,dnl
1324 AC_HELP_STRING([--with-winssl],[enable Windows native SSL/TLS])
1325 AC_HELP_STRING([--without-winssl], [disable Windows native SSL/TLS]),
1326 OPT_WINSSL=$withval)
1328 AC_MSG_CHECKING([whether to enable Windows native SSL/TLS (Windows native builds only)])
1329 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1330 if test "x$OPT_WINSSL" != "xno" &&
1331 test "x$ac_cv_native_windows" = "xyes"; then
1333 AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support])
1334 AC_SUBST(USE_SCHANNEL, [1])
1335 curl_ssl_msg="enabled (Windows-native)"
1337 # --with-winssl implies --enable-sspi
1338 AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
1339 AC_SUBST(USE_WINDOWS_SSPI, [1])
1340 curl_sspi_msg="enabled"
1349 AC_ARG_WITH(darwinssl,dnl
1350 AC_HELP_STRING([--with-darwinssl],[enable iOS/Mac OS X native SSL/TLS])
1351 AC_HELP_STRING([--without-darwinssl], [disable iOS/Mac OS X native SSL/TLS]),
1352 OPT_DARWINSSL=$withval)
1354 AC_MSG_CHECKING([whether to enable iOS/Mac OS X native SSL/TLS])
1355 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1356 if test "x$OPT_DARWINSSL" != "xno" &&
1357 test -d "/System/Library/Frameworks/Security.framework"; then
1359 AC_DEFINE(USE_DARWINSSL, 1, [to enable iOS/Mac OS X native SSL/TLS support])
1360 AC_SUBST(USE_DARWINSSL, [1])
1361 curl_ssl_msg="enabled (iOS/Mac OS X-native)"
1363 LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
1371 dnl **********************************************************************
1372 dnl Check for the presence of SSL libraries and headers
1373 dnl **********************************************************************
1375 dnl Default to compiler & linker defaults for SSL files & libraries.
1377 dnl Default to no CA bundle
1380 AC_HELP_STRING([--with-ssl=PATH],[Where to look for OpenSSL, PATH points to the SSL installation (default: /usr/local/ssl); when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
1381 AC_HELP_STRING([--without-ssl], [disable OpenSSL]),
1384 if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
1385 dnl backup the pre-ssl variables
1386 CLEANLDFLAGS="$LDFLAGS"
1387 CLEANCPPFLAGS="$CPPFLAGS"
1392 dnl --with-ssl (without path) used
1393 if test x$cross_compiling != xyes; then
1394 dnl only do pkg-config magic when not cross-compiling
1397 PREFIX_OPENSSL=/usr/local/ssl
1398 LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1401 dnl no --with-ssl option given, just check default places
1402 if test x$cross_compiling != xyes; then
1403 dnl only do pkg-config magic when not cross-compiling
1409 dnl check the given --with-ssl spot
1411 PREFIX_OPENSSL=$OPT_SSL
1413 dnl Try pkg-config even when cross-compiling. Since we
1414 dnl specify PKG_CONFIG_LIBDIR we're only looking where
1415 dnl the user told us to look
1416 OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig"
1417 AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
1418 if test -f "$OPENSSL_PCDIR/openssl.pc"; then
1422 dnl in case pkg-config comes up empty, use what we got
1424 LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1425 if test "$PREFIX_OPENSSL" != "/usr" ; then
1426 SSL_LDFLAGS="-L$LIB_OPENSSL"
1427 SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include"
1429 SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl"
1433 if test "$PKGTEST" = "yes"; then
1435 CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR])
1437 if test "$PKGCONFIG" != "no" ; then
1438 SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1439 $PKGCONFIG --libs-only-l openssl 2>/dev/null`
1441 SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1442 $PKGCONFIG --libs-only-L openssl 2>/dev/null`
1444 SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1445 $PKGCONFIG --cflags-only-I openssl 2>/dev/null`
1447 AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
1448 AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
1449 AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
1451 LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'`
1453 dnl use the values pkg-config reported. This is here
1454 dnl instead of below with CPPFLAGS and LDFLAGS because we only
1455 dnl learn about this via pkg-config. If we only have
1456 dnl the argument to --with-ssl we don't know what
1457 dnl additional libs may be necessary. Hope that we
1459 LIBS="$SSL_LIBS $LIBS"
1463 dnl finally, set flags to use SSL
1464 CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
1465 LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
1467 dnl This is for Msys/Mingw
1469 *-*-msys* | *-*-mingw*)
1470 AC_MSG_CHECKING([for gdi32])
1471 my_ac_save_LIBS=$LIBS
1472 LIBS="-lgdi32 $LIBS"
1473 AC_TRY_LINK([#include <windef.h>
1474 #include <wingdi.h>],
1477 AC_MSG_RESULT([yes])],
1478 [ dnl failed, restore LIBS
1479 LIBS=$my_ac_save_LIBS
1485 AC_CHECK_LIB(crypto, CRYPTO_lock,[
1487 LIBS="-lcrypto $LIBS"
1489 LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL"
1490 CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include"
1491 AC_CHECK_LIB(crypto, CRYPTO_add_lock,[
1493 LIBS="-lcrypto $LIBS"], [
1494 LDFLAGS="$CLEANLDFLAGS"
1495 CPPFLAGS="$CLEANCPPFLAGS"
1501 if test X"$HAVECRYPTO" = X"yes"; then
1502 dnl This is only reasonable to do if crypto actually is there: check for
1503 dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
1505 AC_CHECK_LIB(ssl, SSL_connect)
1507 if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1508 dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
1509 AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
1511 LIBS="-lRSAglue -lrsaref $LIBS"
1512 AC_CHECK_LIB(ssl, SSL_connect)
1513 if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1514 dnl still no SSL_connect
1523 dnl Have the libraries--check for SSLeay/OpenSSL headers
1524 AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
1525 openssl/pem.h openssl/ssl.h openssl/err.h,
1526 curl_ssl_msg="enabled (OpenSSL)"
1528 AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
1530 if test $ac_cv_header_openssl_x509_h = no; then
1531 dnl we don't use the "action" part of the AC_CHECK_HEADERS macro
1532 dnl since 'err.h' might in fact find a krb4 header with the same
1534 AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
1536 if test $ac_cv_header_x509_h = yes &&
1537 test $ac_cv_header_crypto_h = yes &&
1538 test $ac_cv_header_ssl_h = yes; then
1540 curl_ssl_msg="enabled (OpenSSL)"
1546 if test X"$OPENSSL_ENABLED" = X"1"; then
1547 AC_DEFINE(USE_SSLEAY, 1, [if SSL is enabled])
1549 dnl is there a pkcs12.h header present?
1550 AC_CHECK_HEADERS(openssl/pkcs12.h)
1554 dnl USE_SSLEAY is the historical name for what configure calls
1555 dnl OPENSSL_ENABLED; the names should really be unified
1556 USE_SSLEAY="$OPENSSL_ENABLED"
1557 AC_SUBST(USE_SSLEAY)
1559 if test X"$OPT_SSL" != Xoff &&
1560 test "$OPENSSL_ENABLED" != "1"; then
1561 AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!])
1565 if test X"$OPENSSL_ENABLED" = X"1"; then
1566 dnl If the ENGINE library seems to be around, check for the OpenSSL engine
1567 dnl stuff, it is kind of "separated" from the main SSL check
1568 AC_CHECK_FUNC(ENGINE_init,
1570 AC_CHECK_HEADERS(openssl/engine.h)
1571 AC_CHECK_FUNCS( ENGINE_load_builtin_engines )
1574 dnl these can only exist if openssl exists
1575 dnl yassl doesn't have SSL_get_shutdown
1577 AC_CHECK_FUNCS( RAND_status \
1581 CRYPTO_cleanup_all_ex_data \
1583 SSLv2_client_method )
1585 dnl Make an attempt to detect if this is actually yassl's headers and
1586 dnl OpenSSL emulation layer. We still leave everything else believing
1587 dnl and acting like OpenSSL.
1589 AC_MSG_CHECKING([for yaSSL using OpenSSL compatibility mode])
1592 #include <openssl/ssl.h>
1594 #if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER)
1595 int dummy = SSL_ERROR_NONE;
1597 Not the yaSSL OpenSSL compatibility header.
1601 AC_MSG_RESULT([yes])
1602 AC_DEFINE_UNQUOTED(USE_YASSLEMUL, 1,
1603 [Define to 1 if using yaSSL in OpenSSL compatibility mode.])
1604 curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)"
1610 if test "$OPENSSL_ENABLED" = "1"; then
1611 if test -n "$LIB_OPENSSL"; then
1612 dnl when the ssl shared libs were found in a path that the run-time
1613 dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
1614 dnl to prevent further configure tests to fail due to this
1615 if test "x$cross_compiling" != "xyes"; then
1616 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL"
1617 export LD_LIBRARY_PATH
1618 AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH])
1621 CURL_CHECK_OPENSSL_API
1626 dnl **********************************************************************
1627 dnl Check for the random seed preferences
1628 dnl **********************************************************************
1630 if test X"$OPENSSL_ENABLED" = X"1"; then
1631 AC_ARG_WITH(egd-socket,
1632 AC_HELP_STRING([--with-egd-socket=FILE],
1633 [Entropy Gathering Daemon socket pathname]),
1634 [ EGD_SOCKET="$withval" ]
1636 if test -n "$EGD_SOCKET" ; then
1637 AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET",
1638 [your Entropy Gathering Daemon socket pathname] )
1641 dnl Check for user-specified random device
1643 AC_HELP_STRING([--with-random=FILE],
1644 [read randomness from FILE (default=/dev/urandom)]),
1645 [ RANDOM_FILE="$withval" ],
1647 if test x$cross_compiling != xyes; then
1648 dnl Check for random device
1649 AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
1651 AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling])
1655 if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
1656 AC_SUBST(RANDOM_FILE)
1657 AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE",
1658 [a suitable file to read random data from])
1663 dnl We require OpenSSL with SRP support.
1665 if test "$OPENSSL_ENABLED" = "1"; then
1666 AC_CHECK_LIB(crypto, SRP_Calc_client_key,
1668 AC_DEFINE(HAVE_SSLEAY_SRP, 1, [if you have the function SRP_Calc_client_key])
1669 AC_SUBST(HAVE_SSLEAY_SRP, [1])
1673 dnl ----------------------------------------------------
1674 dnl check for GnuTLS
1675 dnl ----------------------------------------------------
1677 dnl Default to compiler & linker defaults for GnuTLS files & libraries.
1680 AC_ARG_WITH(gnutls,dnl
1681 AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root])
1682 AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
1683 OPT_GNUTLS=$withval)
1685 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1687 if test X"$OPT_GNUTLS" != Xno; then
1695 if test "x$OPT_GNUTLS" = "xyes"; then
1696 dnl this is with no partiular path given
1697 CURL_CHECK_PKGCONFIG(gnutls)
1699 if test "$PKGCONFIG" != "no" ; then
1700 addlib=`$PKGCONFIG --libs-only-l gnutls`
1701 addld=`$PKGCONFIG --libs-only-L gnutls`
1702 addcflags=`$PKGCONFIG --cflags-only-I gnutls`
1703 version=`$PKGCONFIG --modversion gnutls`
1704 gtlslib=`echo $addld | $SED -e 's/-L//'`
1706 dnl without pkg-config, we try libgnutls-config as that was how it
1708 check=`libgnutls-config --version 2>/dev/null`
1709 if test -n "$check"; then
1710 addlib=`libgnutls-config --libs`
1711 addcflags=`libgnutls-config --cflags`
1712 version=`libgnutls-config --version`
1713 gtlslib=`libgnutls-config --prefix`/lib$libsuff
1717 dnl this is with a given path, first check if there's a libgnutls-config
1718 dnl there and if not, make an educated guess
1719 cfg=$OPT_GNUTLS/bin/libgnutls-config
1720 check=`$cfg --version 2>/dev/null`
1721 if test -n "$check"; then
1722 addlib=`$cfg --libs`
1723 addcflags=`$cfg --cflags`
1724 version=`$cfg --version`
1725 gtlslib=`$cfg --prefix`/lib$libsuff
1727 dnl without pkg-config and libgnutls-config, we guess a lot!
1729 addld=-L$OPT_GNUTLS/lib$libsuff
1730 addcflags=-I$OPT_GNUTLS/include
1731 version="" # we just don't know
1732 gtlslib=$OPT_GNUTLS/lib$libsuff
1736 if test -z "$version"; then
1737 dnl lots of efforts, still no go
1741 if test -n "$addlib"; then
1744 CLEANCPPFLAGS="$CPPFLAGS"
1745 CLEANLDFLAGS="$LDFLAGS"
1747 LIBS="$addlib $LIBS"
1748 LDFLAGS="$LDFLAGS $addld"
1749 if test "$addcflags" != "-I/usr/include"; then
1750 CPPFLAGS="$CPPFLAGS $addcflags"
1753 AC_CHECK_LIB(gnutls, gnutls_check_version,
1755 AC_DEFINE(USE_GNUTLS, 1, [if GnuTLS is enabled])
1756 AC_SUBST(USE_GNUTLS, [1])
1759 curl_ssl_msg="enabled (GnuTLS)"
1763 CPPFLAGS="$CLEANCPPFLAGS"
1766 if test "x$USE_GNUTLS" = "xyes"; then
1767 AC_MSG_NOTICE([detected GnuTLS version $version])
1769 if test -n "$gtlslib"; then
1770 dnl when shared libs were found in a path that the run-time
1771 dnl linker doesn't search through, we need to add it to
1772 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1774 if test "x$cross_compiling" != "xyes"; then
1775 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
1776 export LD_LIBRARY_PATH
1777 AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
1784 fi dnl GNUTLS not disabled
1789 dnl Check which crypto backend GnuTLS uses
1792 if test "$GNUTLS_ENABLED" = "1"; then
1794 # First check if we can detect either crypto library via transitive linking
1795 AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1796 if test "$USE_GNUTLS_NETTLE" = ""; then
1797 AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1799 # If not, try linking directly to both of them to see if they are available
1800 if test "$USE_GNUTLS_NETTLE" = ""; then
1801 AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1803 if test "$USE_GNUTLS_NETTLE" = ""; then
1804 AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1806 if test "$USE_GNUTLS_NETTLE" = ""; then
1807 AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found])
1809 if test "$USE_GNUTLS_NETTLE" = "1"; then
1810 AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend])
1811 AC_SUBST(USE_GNUTLS_NETTLE, [1])
1812 LIBS="-lnettle $LIBS"
1814 LIBS="-lgcrypt $LIBS"
1819 dnl We require GnuTLS with SRP support.
1821 if test "$GNUTLS_ENABLED" = "1"; then
1822 AC_CHECK_LIB(gnutls, gnutls_srp_verifier,
1824 AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier])
1825 AC_SUBST(HAVE_GNUTLS_SRP, [1])
1829 dnl ----------------------------------------------------
1830 dnl check for PolarSSL
1831 dnl ----------------------------------------------------
1833 dnl Default to compiler & linker defaults for PolarSSL files & libraries.
1838 AC_ARG_WITH(polarssl,dnl
1839 AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root])
1840 AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]),
1841 OPT_POLARSSL=$withval)
1843 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1845 if test X"$OPT_POLARSSL" != Xno; then
1847 if test "$OPT_POLARSSL" = "yes"; then
1851 if test -z "$OPT_POLARSSL" ; then
1852 dnl check for lib first without setting any new path
1854 AC_CHECK_LIB(polarssl, havege_init,
1855 dnl libpolarssl found, set the variable
1857 AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1858 AC_SUBST(USE_POLARSSL, [1])
1861 curl_ssl_msg="enabled (PolarSSL)"
1870 if test "x$USE_POLARSSL" != "xyes"; then
1871 dnl add the path and test again
1872 addld=-L$OPT_POLARSSL/lib$libsuff
1873 addcflags=-I$OPT_POLARSSL/include
1874 polarssllib=$OPT_POLARSSL/lib$libsuff
1876 LDFLAGS="$LDFLAGS $addld"
1877 if test "$addcflags" != "-I/usr/include"; then
1878 CPPFLAGS="$CPPFLAGS $addcflags"
1881 AC_CHECK_LIB(polarssl, ssl_init,
1883 AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1884 AC_SUBST(USE_POLARSSL, [1])
1887 curl_ssl_msg="enabled (PolarSSL)"
1895 if test "x$USE_POLARSSL" = "xyes"; then
1896 AC_MSG_NOTICE([detected PolarSSL])
1898 LIBS="-lpolarssl $LIBS"
1900 if test -n "$polarssllib"; then
1901 dnl when shared libs were found in a path that the run-time
1902 dnl linker doesn't search through, we need to add it to
1903 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1905 if test "x$cross_compiling" != "xyes"; then
1906 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib"
1907 export LD_LIBRARY_PATH
1908 AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH])
1913 fi dnl PolarSSL not disabled
1917 dnl ----------------------------------------------------
1918 dnl check for CyaSSL
1919 dnl ----------------------------------------------------
1921 dnl Default to compiler & linker defaults for CyaSSL files & libraries.
1926 AC_ARG_WITH(cyassl,dnl
1927 AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
1928 AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
1929 OPT_CYASSL=$withval)
1931 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1933 if test X"$OPT_CYASSL" != Xno; then
1935 if test "$OPT_CYASSL" = "yes"; then
1939 if test -z "$OPT_CYASSL" ; then
1940 dnl check for lib in system default first
1942 AC_CHECK_LIB(cyassl, CyaSSL_Init,
1943 dnl libcyassl found, set the variable
1945 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
1946 AC_SUBST(USE_CYASSL, [1])
1949 curl_ssl_msg="enabled (CyaSSL)"
1958 if test "x$USE_CYASSL" != "xyes"; then
1959 dnl add the path and test again
1960 addld=-L$OPT_CYASSL/lib$libsuff
1961 addcflags=-I$OPT_CYASSL/include
1962 cyassllib=$OPT_CYASSL/lib$libsuff
1964 LDFLAGS="$LDFLAGS $addld"
1965 if test "$addcflags" != "-I/usr/include"; then
1966 CPPFLAGS="$CPPFLAGS $addcflags"
1969 AC_CHECK_LIB(cyassl, CyaSSL_Init,
1971 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
1972 AC_SUBST(USE_CYASSL, [1])
1975 curl_ssl_msg="enabled (CyaSSL)"
1983 if test "x$USE_CYASSL" = "xyes"; then
1984 AC_MSG_NOTICE([detected CyaSSL])
1986 dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
1987 AC_CHECK_SIZEOF(long long)
1989 LIBS="-lcyassl -lm $LIBS"
1991 if test -n "$cyassllib"; then
1992 dnl when shared libs were found in a path that the run-time
1993 dnl linker doesn't search through, we need to add it to
1994 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1996 if test "x$cross_compiling" != "xyes"; then
1997 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
1998 export LD_LIBRARY_PATH
1999 AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH])
2005 fi dnl CyaSSL not disabled
2009 dnl ----------------------------------------------------
2010 dnl NSS. Only check if GnuTLS and OpenSSL are not enabled
2011 dnl ----------------------------------------------------
2013 dnl Default to compiler & linker defaults for NSS files & libraries.
2017 AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root])
2018 AC_HELP_STRING([--without-nss], [disable NSS detection]),
2021 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2023 if test X"$OPT_NSS" != Xno; then
2031 if test "x$OPT_NSS" = "xyes"; then
2033 CURL_CHECK_PKGCONFIG(nss)
2035 if test "$PKGCONFIG" != "no" ; then
2036 addlib=`$PKGCONFIG --libs nss`
2037 addcflags=`$PKGCONFIG --cflags nss`
2038 version=`$PKGCONFIG --modversion nss`
2039 nssprefix=`$PKGCONFIG --variable=prefix nss`
2041 dnl Without pkg-config, we check for nss-config
2043 check=`nss-config --version 2>/dev/null`
2044 if test -n "$check"; then
2045 addlib=`nss-config --libs`
2046 addcflags=`nss-config --cflags`
2047 version=`nss-config --version`
2048 nssprefix=`nss-config --prefix`
2056 # Without pkg-config, we'll kludge in some defaults
2057 addlib="-L$OPT_NSS/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
2058 addcflags="-I$OPT_NSS/include"
2063 if test -n "$addlib"; then
2066 CLEANCPPFLAGS="$CPPFLAGS"
2068 LIBS="$addlib $LIBS"
2069 if test "$addcflags" != "-I/usr/include"; then
2070 CPPFLAGS="$CPPFLAGS $addcflags"
2073 dnl The function PK11_CreateGenericObject is needed to load libnsspem.so
2074 AC_CHECK_LIB(nss3, PK11_CreateGenericObject,
2076 AC_DEFINE(USE_NSS, 1, [if NSS is enabled])
2077 AC_SUBST(USE_NSS, [1])
2080 curl_ssl_msg="enabled (NSS)"
2084 CPPFLAGS="$CLEANCPPFLAGS"
2087 if test "x$USE_NSS" = "xyes"; then
2088 AC_MSG_NOTICE([detected NSS version $version])
2090 dnl NSS_InitContext() was introduced in NSS 3.12.5 and helps to prevent
2091 dnl collisions on NSS initialization/shutdown with other libraries
2092 AC_CHECK_FUNC(NSS_InitContext,
2094 AC_DEFINE(HAVE_NSS_INITCONTEXT, 1, [if you have the NSS_InitContext function])
2095 AC_SUBST(HAVE_NSS_INITCONTEXT, [1])
2098 dnl when shared libs were found in a path that the run-time
2099 dnl linker doesn't search through, we need to add it to
2100 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2102 if test "x$cross_compiling" != "xyes"; then
2103 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff"
2104 export LD_LIBRARY_PATH
2105 AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH])
2111 fi dnl NSS not disabled
2113 fi dnl curl_ssl_msg = init_ssl_msg
2117 AC_ARG_WITH(axtls,dnl
2118 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.])
2119 AC_HELP_STRING([--without-axtls], [disable axTLS]),
2122 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2123 if test X"$OPT_AXTLS" != Xno; then
2124 dnl backup the pre-axtls variables
2125 CLEANLDFLAGS="$LDFLAGS"
2126 CLEANCPPFLAGS="$CPPFLAGS"
2129 case "$OPT_AXTLS" in
2131 dnl --with-axtls (without path) used
2132 PREFIX_AXTLS=/usr/local
2133 LIB_AXTLS="$PREFIX_AXTLS/lib"
2134 LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2135 CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2138 dnl no --with-axtls option given, just check default places
2142 dnl check the given --with-axtls spot
2143 PREFIX_AXTLS=$OPT_AXTLS
2144 LIB_AXTLS="$PREFIX_AXTLS/lib"
2145 LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2146 CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2150 AC_CHECK_LIB(axtls, ssl_version,[
2151 LIBS="-laxtls $LIBS"
2152 AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled])
2153 AC_SUBST(USE_AXTLS, [1])
2156 curl_ssl_msg="enabled (axTLS)"
2159 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS"
2160 export LD_LIBRARY_PATH
2161 AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH])
2163 LDFLAGS="$CLEANLDFLAGS"
2164 CPPFLAGS="$CLEANCPPFLAGS"
2170 if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
2171 AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
2172 AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
2174 # SSL is enabled, genericly
2175 AC_SUBST(SSL_ENABLED)
2179 dnl **********************************************************************
2180 dnl Check for the CA bundle
2181 dnl **********************************************************************
2183 CURL_CHECK_CA_BUNDLE
2185 dnl **********************************************************************
2186 dnl Check for libmetalink
2187 dnl **********************************************************************
2191 AC_ARG_WITH(libmetalink,dnl
2192 AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root])
2193 AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]),
2194 OPT_LIBMETALINK=$withval)
2196 if test X"$OPT_LIBMETALINK" != Xno; then
2205 if test "x$OPT_LIBMETALINK" = "xyes"; then
2206 dnl this is with no partiular path given
2208 CURL_CHECK_PKGCONFIG(libmetalink)
2210 dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path.
2211 LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig"
2212 AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"])
2213 if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then
2216 if test "$PKGTEST" = "yes"; then
2217 CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR])
2220 if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then
2221 addlib=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2222 $PKGCONFIG --libs-only-l libmetalink`
2223 addld=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2224 $PKGCONFIG --libs-only-L libmetalink`
2225 addcflags=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2226 $PKGCONFIG --cflags-only-I libmetalink`
2227 version=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2228 $PKGCONFIG --modversion libmetalink`
2229 libmetalinklib=`echo $addld | $SED -e 's/-L//'`
2231 if test -n "$addlib"; then
2233 clean_CPPFLAGS="$CPPFLAGS"
2234 clean_LDFLAGS="$LDFLAGS"
2236 CPPFLAGS="$addcflags $clean_CPPFLAGS"
2237 LDFLAGS="$addld $clean_LDFLAGS"
2238 LIBS="$addlib $clean_LIBS"
2239 AC_MSG_CHECKING([if libmetalink is recent enough])
2242 # include <metalink/metalink.h>
2244 if(0 != metalink_strerror(0)) /* added in 0.1.0 */
2248 AC_MSG_RESULT([yes ($version)])
2251 AC_MSG_RESULT([no ($version)])
2252 AC_MSG_NOTICE([libmetalink library defective or too old])
2255 CPPFLAGS="$clean_CPPFLAGS"
2256 LDFLAGS="$clean_LDFLAGS"
2258 if test "$want_metalink" = "yes"; then
2259 dnl finally libmetalink will be used
2260 AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support])
2261 LIBMETALINK_LIBS=$addlib
2262 LIBMETALINK_LDFLAGS=$addld
2263 LIBMETALINK_CPPFLAGS=$addcflags
2264 AC_SUBST([LIBMETALINK_LIBS])
2265 AC_SUBST([LIBMETALINK_LDFLAGS])
2266 AC_SUBST([LIBMETALINK_CPPFLAGS])
2267 curl_mtlnk_msg="enabled"
2273 dnl **********************************************************************
2274 dnl Check for the presence of LIBSSH2 libraries and headers
2275 dnl **********************************************************************
2277 dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
2279 AC_ARG_WITH(libssh2,dnl
2280 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])
2281 AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
2282 OPT_LIBSSH2=$withval)
2284 if test X"$OPT_LIBSSH2" != Xno; then
2285 dnl backup the pre-libssh2 variables
2286 CLEANLDFLAGS="$LDFLAGS"
2287 CLEANCPPFLAGS="$CPPFLAGS"
2290 case "$OPT_LIBSSH2" in
2292 dnl --with-libssh2 (without path) used
2293 CURL_CHECK_PKGCONFIG(libssh2)
2295 if test "$PKGCONFIG" != "no" ; then
2296 LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2`
2297 LD_SSH2=`$PKGCONFIG --libs-only-L libssh2`
2298 CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2`
2299 version=`$PKGCONFIG --modversion libssh2`
2300 DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'`
2305 dnl no --with-libssh2 option given, just check default places
2308 dnl use the given --with-libssh2 spot
2309 PREFIX_SSH2=$OPT_LIBSSH2
2313 dnl if given with a prefix, we set -L and -I based on that
2314 if test -n "$PREFIX_SSH2"; then
2316 LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff
2317 CPP_SSH2=-I${PREFIX_SSH2}/include
2318 DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
2321 LDFLAGS="$LDFLAGS $LD_SSH2"
2322 CPPFLAGS="$CPPFLAGS $CPP_SSH2"
2323 LIBS="$LIB_SSH2 $LIBS"
2325 AC_CHECK_LIB(ssh2, libssh2_channel_open_ex)
2327 AC_CHECK_HEADERS(libssh2.h,
2328 curl_ssh_msg="enabled (libSSH2)"
2330 AC_DEFINE(USE_LIBSSH2, 1, [if libSSH2 is in use])
2331 AC_SUBST(USE_LIBSSH2, [1])
2334 if test X"$OPT_LIBSSH2" != Xoff &&
2335 test "$LIBSSH2_ENABLED" != "1"; then
2336 AC_MSG_ERROR([libSSH2 libs and/or directories were not found where specified!])
2339 if test "$LIBSSH2_ENABLED" = "1"; then
2340 if test -n "$DIR_SSH2"; then
2341 dnl when the libssh2 shared libs were found in a path that the run-time
2342 dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
2343 dnl to prevent further configure tests to fail due to this
2345 dnl libssh2_version is a post 1.0 addition
2346 dnl libssh2_init and libssh2_exit were added in 1.2.5
2347 dnl libssh2_scp_send64 was added in 1.2.6
2348 dnl libssh2_session_handshake was added in 1.2.8
2349 AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \
2350 libssh2_scp_send64 libssh2_session_handshake)
2351 if test "x$cross_compiling" != "xyes"; then
2352 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
2353 export LD_LIBRARY_PATH
2354 AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH])
2358 dnl no libssh2, revert back to clean variables
2359 LDFLAGS=$CLEANLDFLAGS
2360 CPPFLAGS=$CLEANCPPFLAGS
2365 dnl **********************************************************************
2366 dnl Check for the presence of LIBRTMP libraries and headers
2367 dnl **********************************************************************
2369 dnl Default to compiler & linker defaults for LIBRTMP files & libraries.
2371 AC_ARG_WITH(librtmp,dnl
2372 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])
2373 AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]),
2374 OPT_LIBRTMP=$withval)
2376 if test X"$OPT_LIBRTMP" != Xno; then
2377 dnl backup the pre-librtmp variables
2378 CLEANLDFLAGS="$LDFLAGS"
2379 CLEANCPPFLAGS="$CPPFLAGS"
2382 case "$OPT_LIBRTMP" in
2384 dnl --with-librtmp (without path) used
2385 CURL_CHECK_PKGCONFIG(librtmp)
2387 if test "$PKGCONFIG" != "no" ; then
2388 LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp`
2389 LD_RTMP=`$PKGCONFIG --libs-only-L librtmp`
2390 CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp`
2391 version=`$PKGCONFIG --modversion librtmp`
2392 DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'`
2394 dnl To avoid link errors, we do not allow --librtmp without
2395 dnl a pkgconfig file
2396 AC_MSG_ERROR([--librtmp was specified but could not find librtmp pkgconfig file.])
2401 dnl no --with-librtmp option given, just check default places
2405 dnl use the given --with-librtmp spot
2406 PREFIX_RTMP=$OPT_LIBRTMP
2410 dnl if given with a prefix, we set -L and -I based on that
2411 if test -n "$PREFIX_RTMP"; then
2412 LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff
2413 CPP_RTMP=-I${PREFIX_RTMP}/include
2414 DIR_RTMP=${PREFIX_RTMP}/lib$libsuff
2417 LDFLAGS="$LDFLAGS $LD_RTMP"
2418 CPPFLAGS="$CPPFLAGS $CPP_RTMP"
2419 LIBS="$LIB_RTMP $LIBS"
2421 AC_CHECK_LIB(rtmp, RTMP_Init,
2423 AC_CHECK_HEADERS(librtmp/rtmp.h,
2424 curl_rtmp_msg="enabled (librtmp)"
2426 AC_DEFINE(USE_LIBRTMP, 1, [if librtmp is in use])
2427 AC_SUBST(USE_LIBRTMP, [1])
2430 dnl not found, revert back to clean variables
2431 LDFLAGS=$CLEANLDFLAGS
2432 CPPFLAGS=$CLEANCPPFLAGS
2436 if test X"$OPT_LIBRTMP" != Xoff &&
2437 test "$LIBRTMP_ENABLED" != "1"; then
2438 AC_MSG_ERROR([librtmp libs and/or directories were not found where specified!])
2443 dnl **********************************************************************
2444 dnl Check for linker switch for versioned symbols
2445 dnl **********************************************************************
2447 versioned_symbols_flavour=
2448 AC_MSG_CHECKING([whether versioned symbols are wanted])
2449 AC_ARG_ENABLE(versioned-symbols,
2450 AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library])
2451 AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]),
2452 [ case "$enableval" in
2453 yes) AC_MSG_RESULT(yes)
2454 AC_MSG_CHECKING([if libraries can be versioned])
2455 GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
2456 if test -z "$GLD"; then
2458 AC_MSG_WARN([You need an ld version supporting the --version-script option])
2461 if test "x$OPENSSL_ENABLED" = "x1"; then
2462 versioned_symbols_flavour="OPENSSL_"
2463 elif test "x$GNUTLS_ENABLED" == "x1"; then
2464 versioned_symbols_flavour="GNUTLS_"
2465 elif test "x$NSS_ENABLED" == "x1"; then
2466 versioned_symbols_flavour="NSS_"
2467 elif test "x$POLARSSL_ENABLED" == "x1"; then
2468 versioned_symbols_flavour="POLARSSL_"
2469 elif test "x$CYASSL_ENABLED" == "x1"; then
2470 versioned_symbols_flavour="CYASSL_"
2471 elif test "x$AXTLS_ENABLED" == "x1"; then
2472 versioned_symbols_flavour="AXTLS_"
2473 elif test "x$WINSSL_ENABLED" == "x1"; then
2474 versioned_symbols_flavour="WINSSL_"
2475 elif test "x$DARWINSSL_ENABLED" == "x1"; then
2476 versioned_symbols_flavour="DARWINSSL_"
2478 versioned_symbols_flavour=""
2480 versioned_symbols="yes"
2484 *) AC_MSG_RESULT(no)
2492 AC_SUBST([CURL_LT_SHLIB_VERSIONED_FLAVOUR],
2493 ["$versioned_symbols_flavour"])
2494 AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS],
2495 [test "x$versioned_symbols" = 'xyes'])
2497 dnl -------------------------------------------------
2498 dnl check winidn option before other IDN libraries
2499 dnl -------------------------------------------------
2501 AC_MSG_CHECKING([whether to enable Windows native IDN (Windows native builds only)])
2502 OPT_WINIDN="default"
2504 AC_HELP_STRING([--with-winidn=PATH],[enable Windows native IDN])
2505 AC_HELP_STRING([--without-winidn], [disable Windows native IDN]),
2506 OPT_WINIDN=$withval)
2507 case "$OPT_WINIDN" in
2509 dnl --without-winidn option used or configure option not specified
2514 dnl --with-winidn option used without path
2516 want_winidn_path="default"
2517 AC_MSG_RESULT([yes])
2520 dnl --with-winidn option used with path
2522 want_winidn_path="$withval"
2523 AC_MSG_RESULT([yes ($withval)])
2527 if test "$want_winidn" = "yes"; then
2528 dnl winidn library support has been requested
2529 clean_CPPFLAGS="$CPPFLAGS"
2530 clean_LDFLAGS="$LDFLAGS"
2532 WINIDN_LIBS="-lnormaliz"
2534 if test "$want_winidn_path" != "default"; then
2535 dnl path has been specified
2536 dnl pkg-config not available or provides no info
2537 WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff"
2538 WINIDN_CPPFLAGS="-I$want_winidn_path/include"
2539 WINIDN_DIR="$want_winidn_path/lib$libsuff"
2542 CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS"
2543 LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS"
2544 LIBS="$WINIDN_LIBS $LIBS"
2546 AC_MSG_CHECKING([if IdnToUnicode can be linked])
2548 AC_LANG_FUNC_LINK_TRY([IdnToUnicode])
2550 AC_MSG_RESULT([yes])
2551 tst_links_winidn="yes"
2554 tst_links_winidn="no"
2557 if test "$tst_links_winidn" = "yes"; then
2558 AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).])
2559 AC_DEFINE(WANT_IDN_PROTOTYPES, 1, [Define to 1 to provide own prototypes.])
2560 AC_SUBST([IDN_ENABLED], [1])
2561 curl_idn_msg="enabled (Windows-native)"
2563 AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2564 CPPFLAGS="$clean_CPPFLAGS"
2565 LDFLAGS="$clean_LDFLAGS"
2570 dnl **********************************************************************
2571 dnl Check for the presence of IDN libraries and headers
2572 dnl **********************************************************************
2574 AC_MSG_CHECKING([whether to build with libidn])
2577 AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage])
2578 AC_HELP_STRING([--without-libidn],[Disable libidn usage]),
2582 dnl --without-libidn option used
2587 dnl configure option not specified
2589 want_idn_path="default"
2590 AC_MSG_RESULT([(assumed) yes])
2593 dnl --with-libidn option used without path
2595 want_idn_path="default"
2596 AC_MSG_RESULT([yes])
2599 dnl --with-libidn option used with path
2601 want_idn_path="$withval"
2602 AC_MSG_RESULT([yes ($withval)])
2606 if test "$want_idn" = "yes"; then
2607 dnl idn library support has been requested
2608 clean_CPPFLAGS="$CPPFLAGS"
2609 clean_LDFLAGS="$LDFLAGS"
2613 if test "$want_idn_path" != "default"; then
2614 dnl path has been specified
2615 IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
2616 CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR])
2617 if test "$PKGCONFIG" != "no"; then
2618 IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2619 $PKGCONFIG --libs-only-l libidn 2>/dev/null`
2620 IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2621 $PKGCONFIG --libs-only-L libidn 2>/dev/null`
2622 IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2623 $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2624 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2626 dnl pkg-config not available or provides no info
2628 IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
2629 IDN_CPPFLAGS="-I$want_idn_path/include"
2630 IDN_DIR="$want_idn_path/lib$libsuff"
2633 dnl path not specified
2634 CURL_CHECK_PKGCONFIG(libidn)
2635 if test "$PKGCONFIG" != "no"; then
2636 IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
2637 IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
2638 IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2639 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2641 dnl pkg-config not available or provides no info
2646 if test "$PKGCONFIG" != "no"; then
2647 AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"])
2648 AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"])
2649 AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2650 AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"])
2652 AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"])
2653 AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"])
2654 AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2655 AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
2658 CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
2659 LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
2660 LIBS="$IDN_LIBS $LIBS"
2662 AC_MSG_CHECKING([if idna_to_ascii_4i can be linked])
2664 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i])
2666 AC_MSG_RESULT([yes])
2667 tst_links_libidn="yes"
2670 tst_links_libidn="no"
2672 if test "$tst_links_libidn" = "no"; then
2673 AC_MSG_CHECKING([if idna_to_ascii_lz can be linked])
2675 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz])
2677 AC_MSG_RESULT([yes])
2678 tst_links_libidn="yes"
2681 tst_links_libidn="no"
2685 if test "$tst_links_libidn" = "yes"; then
2686 AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).])
2687 dnl different versions of libidn have different setups of these:
2688 AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror )
2689 AC_CHECK_HEADERS( idn-free.h tld.h )
2690 if test "x$ac_cv_header_tld_h" = "xyes"; then
2691 AC_SUBST([IDN_ENABLED], [1])
2692 curl_idn_msg="enabled"
2693 if test -n "$IDN_DIR"; then
2694 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
2695 export LD_LIBRARY_PATH
2696 AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH])
2699 AC_MSG_WARN([Libraries for IDN support too old: IDN disabled])
2700 CPPFLAGS="$clean_CPPFLAGS"
2701 LDFLAGS="$clean_LDFLAGS"
2705 AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2706 CPPFLAGS="$clean_CPPFLAGS"
2707 LDFLAGS="$clean_LDFLAGS"
2713 dnl Let's hope this split URL remains working:
2714 dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
2715 dnl genprogc/thread_quick_ref.htm
2718 dnl **********************************************************************
2719 dnl Check for nghttp2
2720 dnl **********************************************************************
2722 AC_MSG_CHECKING([whether to build with nghttp2])
2724 AC_ARG_WITH(nghttp2,
2725 AC_HELP_STRING([--with-nghttp2=PATH],[Enable nghttp2 usage])
2726 AC_HELP_STRING([--without-nghttp2],[Disable nghttp2 usage]),
2730 dnl --without-nghttp2 option used
2735 dnl configure option not specified
2737 want_h2_path="default"
2741 dnl --with-nghttp2 option used without path
2744 AC_MSG_RESULT([yes])
2747 dnl --with-nghttp2 option used with path
2749 want_h2_path="$withval"
2750 AC_MSG_RESULT([yes ($withval)])
2754 curl_h2_msg="disabled (--with-nghttp2)"
2755 if test X"$OPT_H2" != Xno; then
2756 dnl backup the pre-librtmp variables
2757 CLEANLDFLAGS="$LDFLAGS"
2758 CLEANCPPFLAGS="$CPPFLAGS"
2761 h2pcdir=${want_h2_path}/lib/pkgconfig
2762 CURL_CHECK_PKGCONFIG(libnghttp2, $h2pcdir)
2764 if test "$PKGCONFIG" != "no" ; then
2765 LIB_H2=`CURL_EXPORT_PCDIR([$h2pcdir])
2766 $PKGCONFIG --libs-only-l libnghttp2`
2767 AC_MSG_NOTICE([-l is $LIB_H2])
2769 CPP_H2=`CURL_EXPORT_PCDIR([$h2pcdir]) dnl
2770 $PKGCONFIG --cflags-only-I libnghttp2`
2771 AC_MSG_NOTICE([-I is $CPP_H2])
2773 LD_H2=`CURL_EXPORT_PCDIR([$h2pcdir])
2774 $PKGCONFIG --libs-only-L libnghttp2`
2775 AC_MSG_NOTICE([-L is $LD_H2])
2778 dnl To avoid link errors, we do not allow --libnghttp2 without
2779 dnl a pkgconfig file
2780 AC_MSG_ERROR([--with-nghttp2 was specified but could not find libnghttp2 pkg-config file.])
2783 LDFLAGS="$LDFLAGS $LD_H2"
2784 CPPFLAGS="$CPPFLAGS $CPP_H2"
2785 LIBS="$LIB_H2 $LIBS"
2787 AC_CHECK_LIB(nghttp2, nghttp2_session_client_new,
2789 AC_CHECK_HEADERS(nghttp2/nghttp2.h,
2790 curl_h2_msg="enabled (nghttp2)"
2792 AC_DEFINE(USE_NGHTTP2, 1, [if nghttp2 is in use])
2793 AC_SUBST(USE_NGHTTP2, [1])
2796 dnl not found, revert back to clean variables
2797 LDFLAGS=$CLEANLDFLAGS
2798 CPPFLAGS=$CLEANCPPFLAGS
2804 dnl **********************************************************************
2805 dnl Back to "normal" configuring
2806 dnl **********************************************************************
2808 dnl Checks for header files.
2811 CURL_CHECK_HEADER_MALLOC
2812 CURL_CHECK_HEADER_MEMORY
2814 dnl Now check for the very most basic headers. Then we can use these
2815 dnl ones as default-headers when checking for the rest!
2858 dnl to do if not found
2862 dnl default includes
2864 #ifdef HAVE_SYS_TYPES_H
2865 #include <sys/types.h>
2867 #ifdef HAVE_SYS_TIME_H
2868 #include <sys/time.h>
2870 #ifdef HAVE_SYS_SELECT_H
2871 #include <sys/select.h>
2873 #ifdef HAVE_SYS_SOCKET_H
2874 #include <sys/socket.h>
2876 #ifdef HAVE_NETINET_IN_H
2877 #include <netinet/in.h>
2879 #ifdef HAVE_SYS_UN_H
2885 dnl Checks for typedefs, structures, and compiler characteristics.
2887 CURL_CHECK_VARIADIC_MACROS
2890 CURL_CHECK_STRUCT_TIMEVAL
2891 CURL_VERIFY_RUNTIMELIBS
2893 AC_CHECK_SIZEOF(size_t)
2894 AC_CHECK_SIZEOF(long)
2895 AC_CHECK_SIZEOF(int)
2896 AC_CHECK_SIZEOF(short)
2898 AC_CHECK_SIZEOF(time_t)
2899 AC_CHECK_SIZEOF(off_t)
2902 if test x"$ac_cv_native_windows" != "xyes" &&
2903 test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then
2904 AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous])
2905 AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.])
2910 AC_CHECK_TYPE(long long,
2911 [AC_DEFINE(HAVE_LONGLONG, 1,
2912 [Define to 1 if the compiler supports the 'long long' data type.])]
2916 if test "xyes" = "x$longlong"; then
2917 AC_MSG_CHECKING([if numberLL works])
2921 long long val = 1000LL;
2924 AC_MSG_RESULT([yes])
2925 AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL])
2933 AC_CHECK_TYPE(ssize_t, ,
2934 AC_DEFINE(ssize_t, int, [the signed version of size_t]))
2936 # check for bool type
2937 AC_CHECK_TYPE([bool],[
2938 AC_DEFINE(HAVE_BOOL_T, 1,
2939 [Define to 1 if bool is an available type.])
2941 #ifdef HAVE_SYS_TYPES_H
2942 #include <sys/types.h>
2944 #ifdef HAVE_STDBOOL_H
2945 #include <stdbool.h>
2949 CURL_CONFIGURE_CURL_SOCKLEN_T
2951 CURL_CONFIGURE_PULL_SYS_POLL
2955 TYPE_SOCKADDR_STORAGE
2961 CURL_CHECK_FUNC_SELECT
2963 CURL_CHECK_FUNC_RECV
2964 CURL_CHECK_FUNC_SEND
2965 CURL_CHECK_MSG_NOSIGNAL
2967 CURL_CHECK_FUNC_ALARM
2968 CURL_CHECK_FUNC_BASENAME
2969 CURL_CHECK_FUNC_CLOSESOCKET
2970 CURL_CHECK_FUNC_CLOSESOCKET_CAMEL
2971 CURL_CHECK_FUNC_CONNECT
2972 CURL_CHECK_FUNC_FCNTL
2973 CURL_CHECK_FUNC_FDOPEN
2974 CURL_CHECK_FUNC_FREEADDRINFO
2975 CURL_CHECK_FUNC_FREEIFADDRS
2976 CURL_CHECK_FUNC_FSETXATTR
2977 CURL_CHECK_FUNC_FTRUNCATE
2978 CURL_CHECK_FUNC_GETADDRINFO
2979 CURL_CHECK_FUNC_GAI_STRERROR
2980 CURL_CHECK_FUNC_GETHOSTBYADDR
2981 CURL_CHECK_FUNC_GETHOSTBYADDR_R
2982 CURL_CHECK_FUNC_GETHOSTBYNAME
2983 CURL_CHECK_FUNC_GETHOSTBYNAME_R
2984 CURL_CHECK_FUNC_GETHOSTNAME
2985 CURL_CHECK_FUNC_GETIFADDRS
2986 CURL_CHECK_FUNC_GETSERVBYPORT_R
2987 CURL_CHECK_FUNC_GMTIME_R
2988 CURL_CHECK_FUNC_INET_NTOA_R
2989 CURL_CHECK_FUNC_INET_NTOP
2990 CURL_CHECK_FUNC_INET_PTON
2991 CURL_CHECK_FUNC_IOCTL
2992 CURL_CHECK_FUNC_IOCTLSOCKET
2993 CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL
2994 CURL_CHECK_FUNC_LOCALTIME_R
2995 CURL_CHECK_FUNC_MEMRCHR
2996 CURL_CHECK_FUNC_POLL
2997 CURL_CHECK_FUNC_SETSOCKOPT
2998 CURL_CHECK_FUNC_SIGACTION
2999 CURL_CHECK_FUNC_SIGINTERRUPT
3000 CURL_CHECK_FUNC_SIGNAL
3001 CURL_CHECK_FUNC_SIGSETJMP
3002 CURL_CHECK_FUNC_SOCKET
3003 CURL_CHECK_FUNC_SOCKETPAIR
3004 CURL_CHECK_FUNC_STRCASECMP
3005 CURL_CHECK_FUNC_STRCMPI
3006 CURL_CHECK_FUNC_STRDUP
3007 CURL_CHECK_FUNC_STRERROR_R
3008 CURL_CHECK_FUNC_STRICMP
3009 CURL_CHECK_FUNC_STRNCASECMP
3010 CURL_CHECK_FUNC_STRNCMPI
3011 CURL_CHECK_FUNC_STRNICMP
3012 CURL_CHECK_FUNC_STRSTR
3013 CURL_CHECK_FUNC_STRTOK_R
3014 CURL_CHECK_FUNC_STRTOLL
3015 CURL_CHECK_FUNC_WRITEV
3021 AC_MSG_NOTICE([skip check for pipe on msdosdjgpp])
3025 AC_CHECK_FUNCS([fork \
3044 eval skipcheck=\$skipcheck_$func
3045 if test "x$skipcheck" != "xyes"; then
3046 AC_MSG_CHECKING([deeper for $func])
3053 AC_MSG_RESULT([yes])
3054 eval "ac_cv_func_$func=yes"
3055 AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1],
3056 [Define to 1 if you have the $func function.])
3058 AC_MSG_RESULT([but still no])
3063 dnl Check if the getnameinfo function is available
3064 dnl and get the types of five of its arguments.
3065 CURL_CHECK_FUNC_GETNAMEINFO
3067 if test "$ipv6" = "yes"; then
3068 if test "$ac_cv_func_getaddrinfo" = "yes"; then
3069 AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support])
3071 AC_SUBST(IPV6_ENABLED)
3073 CURL_CHECK_NI_WITHSCOPEID
3076 CURL_CHECK_NONBLOCKING_SOCKET
3078 dnl ************************************************************
3079 dnl nroff tool stuff
3082 AC_PATH_PROG( PERL, perl, ,
3083 $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
3086 AC_PATH_PROGS( NROFF, gnroff nroff, ,
3087 $PATH:/usr/bin/:/usr/local/bin )
3090 if test -n "$NROFF"; then
3091 dnl only check for nroff options if an nroff command was found
3093 AC_MSG_CHECKING([how to use *nroff to get plain text from man pages])
3095 mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
3096 if test -z "$mancheck"; then
3098 mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
3099 if test -z "$mancheck"; then
3101 AC_MSG_RESULT([failed])
3102 AC_MSG_WARN([found no *nroff option to get plaintext from man pages])
3104 AC_MSG_RESULT([$MANOPT])
3107 AC_MSG_RESULT([$MANOPT])
3112 if test -z "$MANOPT"
3114 dnl if no nroff tool was found, or no option that could convert man pages
3115 dnl was found, then disable the built-in manual stuff
3116 AC_MSG_WARN([disabling built-in manual])
3120 dnl *************************************************************************
3121 dnl If the manual variable still is set, then we go with providing a built-in
3124 if test "$USE_MANUAL" = "1"; then
3125 AC_DEFINE(USE_MANUAL, 1, [If you want to build curl with the built-in manual])
3126 curl_manual_msg="enabled"
3129 dnl set variable for use in automakefile(s)
3130 AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)
3133 AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
3135 if test "x$ac_cv_native_windows" != "xyes" &&
3136 test "x$enable_shared" = "xyes"; then
3137 build_libhostname=yes
3139 build_libhostname=no
3141 AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes)
3143 CURL_CHECK_OPTION_THREADED_RESOLVER
3145 if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
3147 [Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
3150 if test "$want_thres" = "yes"; then
3151 AC_CHECK_HEADER(pthread.h,
3152 [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
3153 save_CFLAGS="$CFLAGS"
3155 dnl first check for function without lib
3156 AC_CHECK_FUNC(pthread_create, [USE_THREADS_POSIX=1] )
3158 dnl if it wasn't found without lib, search for it in pthread lib
3159 if test "$USE_THREADS_POSIX" != "1"
3161 CFLAGS="$CFLAGS -pthread"
3162 AC_CHECK_LIB(pthread, pthread_create,
3163 [USE_THREADS_POSIX=1],
3164 [ CFLAGS="$save_CFLAGS"])
3167 if test "x$USE_THREADS_POSIX" = "x1"
3169 AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
3170 curl_res_msg="POSIX threaded"
3177 dnl ************************************************************
3178 dnl disable verbose text strings
3180 AC_MSG_CHECKING([whether to enable verbose strings])
3181 AC_ARG_ENABLE(verbose,
3182 AC_HELP_STRING([--enable-verbose],[Enable verbose strings])
3183 AC_HELP_STRING([--disable-verbose],[Disable verbose strings]),
3184 [ case "$enableval" in
3187 AC_DEFINE(CURL_DISABLE_VERBOSE_STRINGS, 1, [to disable verbose strings])
3188 curl_verbose_msg="no"
3190 *) AC_MSG_RESULT(yes)
3196 dnl ************************************************************
3197 dnl enable SSPI support
3199 AC_MSG_CHECKING([whether to enable SSPI support (Windows native builds only)])
3201 AC_HELP_STRING([--enable-sspi],[Enable SSPI])
3202 AC_HELP_STRING([--disable-sspi],[Disable SSPI]),
3203 [ case "$enableval" in
3205 if test "$ac_cv_native_windows" = "yes"; then
3207 AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
3208 AC_SUBST(USE_WINDOWS_SSPI, [1])
3209 curl_sspi_msg="enabled"
3212 AC_MSG_WARN([--enable-sspi Ignored. Only supported on native Windows builds.])
3216 if test "x$WINSSL_ENABLED" = "x1"; then
3217 # --with-winssl implies --enable-sspi
3224 if test "x$WINSSL_ENABLED" = "x1"; then
3225 # --with-winssl implies --enable-sspi
3232 dnl ************************************************************
3233 dnl disable cryptographic authentication
3235 AC_MSG_CHECKING([whether to enable cryptographic authentication methods])
3236 AC_ARG_ENABLE(crypto-auth,
3237 AC_HELP_STRING([--enable-crypto-auth],[Enable cryptographic authentication])
3238 AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]),
3239 [ case "$enableval" in
3242 AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication])
3244 *) AC_MSG_RESULT(yes)
3250 CURL_CHECK_OPTION_NTLM_WB
3254 dnl ************************************************************
3255 dnl disable TLS-SRP authentication
3257 AC_MSG_CHECKING([whether to enable TLS-SRP authentication])
3258 AC_ARG_ENABLE(tls-srp,
3259 AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication])
3260 AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]),
3261 [ case "$enableval" in
3264 AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication])
3267 *) AC_MSG_RESULT(yes)
3275 if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_SSLEAY_SRP" = "x1") ; then
3276 AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication])
3278 curl_tls_srp_msg="enabled"
3281 dnl ************************************************************
3282 dnl disable cookies support
3284 AC_MSG_CHECKING([whether to enable support for cookies])
3285 AC_ARG_ENABLE(cookies,
3286 AC_HELP_STRING([--enable-cookies],[Enable cookies support])
3287 AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
3288 [ case "$enableval" in
3291 AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support])
3293 *) AC_MSG_RESULT(yes)
3299 dnl ************************************************************
3300 dnl hiding of library internal symbols
3302 CURL_CONFIGURE_SYMBOL_HIDING
3304 dnl ************************************************************
3305 dnl enforce SONAME bump
3308 AC_MSG_CHECKING([whether to enforce SONAME bump])
3309 AC_ARG_ENABLE(soname-bump,
3310 AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump])
3311 AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]),
3312 [ case "$enableval" in
3313 yes) AC_MSG_RESULT(yes)
3320 AC_MSG_RESULT($soname_bump)
3322 AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
3325 dnl All the library dependencies put into $LIB apply to libcurl only.
3329 AC_SUBST(LIBCURL_LIBS)
3330 AC_SUBST(CURL_NETWORK_LIBS)
3331 AC_SUBST(CURL_NETWORK_AND_TIME_LIBS)
3333 dnl BLANK_AT_MAKETIME may be used in our Makefile.am files to blank
3334 dnl LIBS variable used in generated makefile at makefile processing
3335 dnl time. Doing this functionally prevents LIBS from being used for
3336 dnl all link targets in given makefile.
3338 AC_SUBST(BLANK_AT_MAKETIME)
3340 AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
3343 ENABLE_SHARED="$enable_shared"
3344 AC_SUBST(ENABLE_SHARED)
3346 dnl to let curl-config output the static libraries correctly
3347 ENABLE_STATIC="$enable_static"
3348 AC_SUBST(ENABLE_STATIC)
3352 dnl For keeping supported features and protocols also in pkg-config file
3353 dnl since it is more cross-compile friendly than curl-config
3356 if test "x$USE_SSLEAY" = "x1"; then
3357 SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3358 elif test -n "$SSL_ENABLED"; then
3359 SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3361 if test "x$IPV6_ENABLED" = "x1"; then
3362 SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
3364 if test "x$HAVE_LIBZ" = "x1"; then
3365 SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
3367 if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then
3368 SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
3370 if test "x$IDN_ENABLED" = "x1"; then
3371 SUPPORT_FEATURES="$SUPPORT_FEATURES IDN"
3373 if test "x$USE_WINDOWS_SSPI" = "x1"; then
3374 SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI"
3376 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3377 if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
3378 -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \
3379 -o "x$DARWINSSL_ENABLED" = "x1"; then
3380 SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM"
3381 if test "x$NTLM_WB_ENABLED" = "x1"; then
3382 SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB"
3386 if test "x$USE_TLS_SRP" = "x1"; then
3387 SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
3390 if test "x$USE_NGHTTP2" = "x1"; then
3391 SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
3394 AC_SUBST(SUPPORT_FEATURES)
3396 dnl For supported protocols in pkg-config file
3397 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3398 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
3399 if test "x$SSL_ENABLED" = "x1"; then
3400 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS"
3403 if test "x$CURL_DISABLE_FTP" != "x1"; then
3404 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP"
3405 if test "x$SSL_ENABLED" = "x1"; then
3406 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS"
3409 if test "x$CURL_DISABLE_FILE" != "x1"; then
3410 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE"
3412 if test "x$CURL_DISABLE_TELNET" != "x1"; then
3413 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET"
3415 if test "x$CURL_DISABLE_LDAP" != "x1"; then
3416 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP"
3417 if test "x$CURL_DISABLE_LDAPS" != "x1"; then
3418 if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") ||
3419 (test "x$USE_OPENLDAP" != "x1" && test "x$HAVE_LDAP_SSL" = "x1"); then
3420 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS"
3424 if test "x$CURL_DISABLE_DICT" != "x1"; then
3425 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT"
3427 if test "x$CURL_DISABLE_TFTP" != "x1"; then
3428 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP"
3430 if test "x$CURL_DISABLE_GOPHER" != "x1"; then
3431 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER"
3433 if test "x$CURL_DISABLE_POP3" != "x1"; then
3434 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3"
3435 if test "x$SSL_ENABLED" = "x1"; then
3436 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S"
3439 if test "x$CURL_DISABLE_IMAP" != "x1"; then
3440 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP"
3441 if test "x$SSL_ENABLED" = "x1"; then
3442 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS"
3445 if test "x$CURL_DISABLE_SMTP" != "x1"; then
3446 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP"
3447 if test "x$SSL_ENABLED" = "x1"; then
3448 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS"
3451 if test "x$USE_LIBSSH2" = "x1"; then
3452 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP"
3453 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP"
3455 if test "x$CURL_DISABLE_RTSP" != "x1"; then
3456 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP"
3458 if test "x$USE_LIBRTMP" = "x1"; then
3459 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP"
3462 dnl replace spaces with newlines
3464 dnl replace the newlines back to spaces
3465 SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '`
3467 AC_SUBST(SUPPORT_PROTOCOLS)
3469 dnl squeeze whitespace out of some variables
3477 squeeze LIBCURL_LIBS
3478 squeeze CURL_NETWORK_LIBS
3479 squeeze CURL_NETWORK_AND_TIME_LIBS
3481 squeeze SUPPORT_FEATURES
3482 squeeze SUPPORT_PROTOCOLS
3484 XC_CHECK_BUILD_FLAGS
3486 if test "x$want_curldebug_assumed" = "xyes" &&
3487 test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then
3488 ac_configure_args="$ac_configure_args --enable-curldebug"
3491 AC_CONFIG_FILES([Makefile \
3493 docs/examples/Makefile \
3494 docs/libcurl/Makefile \
3496 include/curl/Makefile \
3501 tests/certs/Makefile \
3502 tests/certs/scripts/Makefile \
3503 tests/data/Makefile \
3504 tests/server/Makefile \
3505 tests/libtest/Makefile \
3506 tests/unit/Makefile \
3508 packages/Win32/Makefile \
3509 packages/Win32/cygwin/Makefile \
3510 packages/Linux/Makefile \
3511 packages/Linux/RPM/Makefile \
3512 packages/Linux/RPM/curl.spec \
3513 packages/Linux/RPM/curl-ssl.spec \
3514 packages/Solaris/Makefile \
3515 packages/EPM/curl.list \
3516 packages/EPM/Makefile \
3517 packages/vms/Makefile \
3518 packages/AIX/Makefile \
3519 packages/AIX/RPM/Makefile \
3520 packages/AIX/RPM/curl.spec \
3526 CURL_GENERATE_CONFIGUREHELP_PM
3528 XC_AMEND_DISTCLEAN([lib src tests/unit tests/server tests/libtest docs/examples])
3530 AC_MSG_NOTICE([Configured to build curl/libcurl:
3532 curl version: ${CURLVERSION}
3534 Install prefix: ${prefix}
3536 SSL support: ${curl_ssl_msg}
3537 SSH support: ${curl_ssh_msg}
3538 zlib support: ${curl_zlib_msg}
3539 GSSAPI support: ${curl_gss_msg}
3540 SPNEGO support: ${curl_spnego_msg}
3541 TLS-SRP support: ${curl_tls_srp_msg}
3542 resolver: ${curl_res_msg}
3543 ipv6 support: ${curl_ipv6_msg}
3544 IDN support: ${curl_idn_msg}
3545 Build libcurl: Shared=${enable_shared}, Static=${enable_static}
3546 Built-in manual: ${curl_manual_msg}
3547 --libcurl option: ${curl_libcurl_msg}
3548 Verbose errors: ${curl_verbose_msg}
3549 SSPI support: ${curl_sspi_msg}
3550 ca cert bundle: ${ca}
3551 ca cert path: ${capath}
3552 LDAP support: ${curl_ldap_msg}
3553 LDAPS support: ${curl_ldaps_msg}
3554 RTSP support: ${curl_rtsp_msg}
3555 RTMP support: ${curl_rtmp_msg}
3556 metalink support: ${curl_mtlnk_msg}
3557 HTTP2 support: ${curl_h2_msg}
3558 Protocols: ${SUPPORT_PROTOCOLS}
3561 if test "x$soname_bump" = "xyes"; then
3564 SONAME bump: yes - WARNING: this library will be built with the SONAME
3565 number bumped due to (a detected) ABI breakage.
3566 See lib/README.curl_off_t for details on this.