1 #***************************************************************************
3 # Project ___| | | | _ \| |
5 # | (__| |_| | _ <| |___
6 # \___|\___/|_| \_\_____|
8 # Copyright (C) 1998 - 2016, 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 https://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: https://curl.haxx.se/mail/])
31 CURL_OVERRIDE_AUTOCONF
33 dnl configure script copyright
34 AC_COPYRIGHT([Copyright (c) 1998 - 2016 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])
42 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
44 CURL_CHECK_OPTION_DEBUG
45 CURL_CHECK_OPTION_OPTIMIZE
46 CURL_CHECK_OPTION_WARNINGS
47 CURL_CHECK_OPTION_WERROR
48 CURL_CHECK_OPTION_CURLDEBUG
49 CURL_CHECK_OPTION_SYMBOL_HIDING
50 CURL_CHECK_OPTION_ARES
53 XC_CHECK_PATH_SEPARATOR
56 # save the configure arguments
58 CONFIGURE_OPTIONS="\"$ac_configure_args\""
59 AC_SUBST(CONFIGURE_OPTIONS)
62 if test X"$want_werror" = Xyes; then
63 CURL_CFLAG_EXTRAS="-Werror"
65 AC_SUBST(CURL_CFLAG_EXTRAS)
67 dnl SED is mandatory for configure process and libtool.
68 dnl Set it now, allowing it to be changed later.
69 if test -z "$SED"; then
70 dnl allow it to be overridden
71 AC_PATH_PROG([SED], [sed], [not_found],
72 [$PATH:/usr/bin:/usr/local/bin])
73 if test -z "$SED" || test "$SED" = "not_found"; then
74 AC_MSG_ERROR([sed not found in PATH. Cannot continue without sed.])
79 dnl GREP is mandatory for configure process and libtool.
80 dnl Set it now, allowing it to be changed later.
81 if test -z "$GREP"; then
82 dnl allow it to be overridden
83 AC_PATH_PROG([GREP], [grep], [not_found],
84 [$PATH:/usr/bin:/usr/local/bin])
85 if test -z "$GREP" || test "$GREP" = "not_found"; then
86 AC_MSG_ERROR([grep not found in PATH. Cannot continue without grep.])
91 dnl EGREP is mandatory for configure process and libtool.
92 dnl Set it now, allowing it to be changed later.
93 if test -z "$EGREP"; then
94 dnl allow it to be overridden
95 if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then
96 AC_MSG_CHECKING([for egrep])
98 AC_MSG_RESULT([$EGREP])
100 AC_PATH_PROG([EGREP], [egrep], [not_found],
101 [$PATH:/usr/bin:/usr/local/bin])
104 if test -z "$EGREP" || test "$EGREP" = "not_found"; then
105 AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.])
109 dnl AR is mandatory for configure process and libtool.
110 dnl This is target dependent, so check it as a tool.
111 if test -z "$AR"; then
112 dnl allow it to be overridden
113 AC_PATH_TOOL([AR], [ar], [not_found],
114 [$PATH:/usr/bin:/usr/local/bin])
115 if test -z "$AR" || test "$AR" = "not_found"; then
116 AC_MSG_ERROR([ar not found in PATH. Cannot continue without ar.])
123 dnl Remove non-configure distributed curlbuild.h
124 if test -f ${srcdir}/include/curl/curlbuild.h; then
125 rm -f ${srcdir}/include/curl/curlbuild.h
128 dnl figure out the libcurl version
129 CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h`
132 AC_MSG_CHECKING([curl version])
133 AC_MSG_RESULT($CURLVERSION)
135 AC_SUBST(CURLVERSION)
138 dnl we extract the numerical version for curl-config only
139 VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h`
142 dnl Solaris pkgadd support definitions
143 PKGADD_PKG="HAXXcurl"
144 PKGADD_NAME="cURL - a client that groks URLs"
145 PKGADD_VENDOR="curl.haxx.se"
147 AC_SUBST(PKGADD_NAME)
148 AC_SUBST(PKGADD_VENDOR)
151 dnl initialize all the info variables
152 curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )"
153 curl_ssh_msg="no (--with-libssh2)"
154 curl_zlib_msg="no (--with-zlib)"
155 curl_gss_msg="no (--with-gssapi)"
156 curl_tls_srp_msg="no (--enable-tls-srp)"
157 curl_res_msg="default (--enable-ares / --enable-threaded-resolver)"
158 curl_ipv6_msg="no (--enable-ipv6)"
159 curl_unix_sockets_msg="no (--enable-unix-sockets)"
160 curl_idn_msg="no (--with-{libidn,winidn})"
161 curl_manual_msg="no (--enable-manual)"
162 curl_libcurl_msg="enabled (--disable-libcurl-option)"
163 curl_verbose_msg="enabled (--disable-verbose)"
164 curl_sspi_msg="no (--enable-sspi)"
165 curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)"
166 curl_ldaps_msg="no (--enable-ldaps)"
167 curl_rtsp_msg="no (--enable-rtsp)"
168 curl_rtmp_msg="no (--with-librtmp)"
169 curl_mtlnk_msg="no (--with-libmetalink)"
170 curl_psl_msg="no (--with-libpsl)"
172 init_ssl_msg=${curl_ssl_msg}
175 dnl Save some initial values the user might have provided
177 INITIAL_LDFLAGS=$LDFLAGS
181 dnl Detect the canonical host and target build environment
185 dnl Get system canonical name
186 AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
188 dnl Checks for programs.
190 dnl Our curl_off_t internal and external configure settings
191 CURL_CONFIGURE_CURL_OFF_T
193 dnl This defines _ALL_SOURCE for AIX
194 CURL_CHECK_AIX_ALL_SOURCE
196 dnl Our configure and build reentrant settings
197 CURL_CONFIGURE_THREAD_SAFE
198 CURL_CONFIGURE_REENTRANT
200 dnl check for how to do large files
206 # Automake conditionals based on libtool related checks
209 AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSION_INFO],
210 [test "x$xc_lt_shlib_use_version_info" = 'xyes'])
211 AM_CONDITIONAL([CURL_LT_SHLIB_USE_NO_UNDEFINED],
212 [test "x$xc_lt_shlib_use_no_undefined" = 'xyes'])
213 AM_CONDITIONAL([CURL_LT_SHLIB_USE_MIMPURE_TEXT],
214 [test "x$xc_lt_shlib_use_mimpure_text" = 'xyes'])
217 # Due to libtool and automake machinery limitations of not allowing
218 # specifying separate CPPFLAGS or CFLAGS when compiling objects for
219 # inclusion of these in shared or static libraries, we are forced to
220 # build using separate configure runs for shared and static libraries
221 # on systems where different CPPFLAGS or CFLAGS are mandatory in order
222 # to compile objects for each kind of library. Notice that relying on
223 # the '-DPIC' CFLAG that libtool provides is not valid given that the
224 # user might for example choose to build static libraries with PIC.
228 # Make our Makefile.am files use the staticlib CPPFLAG only when strictly
229 # targeting a static library and not building its shared counterpart.
232 AM_CONDITIONAL([USE_CPPFLAG_CURL_STATICLIB],
233 [test "x$xc_lt_build_static_only" = 'xyes'])
236 # Make staticlib CPPFLAG variable and its definition visible in output
237 # files unconditionally, providing an empty definition unless strictly
238 # targeting a static library and not building its shared counterpart.
241 CPPFLAG_CURL_STATICLIB=
242 if test "x$xc_lt_build_static_only" = 'xyes'; then
243 CPPFLAG_CURL_STATICLIB='-DCURL_STATICLIB'
245 AC_SUBST([CPPFLAG_CURL_STATICLIB])
248 # Determine whether all dependent libraries must be specified when linking
249 if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno"
255 AC_SUBST(REQUIRE_LIB_DEPS)
256 AM_CONDITIONAL(USE_EXPLICIT_LIB_DEPS, test x$REQUIRE_LIB_DEPS = xyes)
258 dnl check if there's a way to force code inline
261 dnl **********************************************************************
262 dnl platform/compiler/architecture specific checks/flags
263 dnl **********************************************************************
266 CURL_SET_COMPILER_BASIC_OPTS
267 CURL_SET_COMPILER_DEBUG_OPTS
268 CURL_SET_COMPILER_OPTIMIZE_OPTS
269 CURL_SET_COMPILER_WARNING_OPTS
271 if test "$compiler_id" = "INTEL_UNIX_C"; then
273 if test "$compiler_num" -ge "1000"; then
274 dnl icc 10.X or later
275 CFLAGS="$CFLAGS -shared-intel"
276 elif test "$compiler_num" -ge "900"; then
278 CFLAGS="$CFLAGS -i-dynamic"
283 CURL_CHECK_COMPILER_HALT_ON_ERROR
284 CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
285 CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH
286 CURL_CHECK_COMPILER_SYMBOL_HIDING
289 AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes)
291 supports_unittests=yes
292 # cross-compilation of unit tests static library/programs fails when
293 # libcurl shared library is built. This might be due to a libtool or
294 # automake issue. In this case we disable unit tests.
295 if test "x$cross_compiling" != "xno" &&
296 test "x$enable_shared" != "xno"; then
297 supports_unittests=no
300 # IRIX 6.5.24 gcc 3.3 autobuilds fail unittests library compilation due to
301 # a problem related with OpenSSL headers and library versions not matching.
302 # Disable unit tests while time to further investigate this is found.
305 if test "$compiler_id" = "GNU_C"; then
306 supports_unittests=no
311 # All AIX autobuilds fails unit tests linking against unittests library
312 # due to unittests library being built with no symbols or members. Libtool ?
313 # Disable unit tests while time to further investigate this is found.
316 supports_unittests=no
320 dnl Build unit tests when option --enable-debug is given.
321 if test "x$want_debug" = "xyes" &&
322 test "x$supports_unittests" = "xyes"; then
327 AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes)
329 dnl **********************************************************************
330 dnl Compilation based checks should not be done before this point.
331 dnl **********************************************************************
333 dnl **********************************************************************
334 dnl Make sure that our checks for headers windows.h winsock.h winsock2.h
335 dnl and ws2tcpip.h take precedence over any other further checks which
336 dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for
337 dnl this specific header files. And do them before its results are used.
338 dnl **********************************************************************
340 CURL_CHECK_HEADER_WINDOWS
341 CURL_CHECK_NATIVE_WINDOWS
342 case X-"$ac_cv_native_windows" in
344 CURL_CHECK_HEADER_WINSOCK
345 CURL_CHECK_HEADER_WINSOCK2
346 CURL_CHECK_HEADER_WS2TCPIP
347 CURL_CHECK_HEADER_WINLDAP
348 CURL_CHECK_HEADER_WINBER
351 ac_cv_header_winsock_h="no"
352 ac_cv_header_winsock2_h="no"
353 ac_cv_header_ws2tcpip_h="no"
354 ac_cv_header_winldap_h="no"
355 ac_cv_header_winber_h="no"
358 CURL_CHECK_WIN32_LARGEFILE
360 dnl ************************************************************
361 dnl switch off particular protocols
363 AC_MSG_CHECKING([whether to support http])
365 AC_HELP_STRING([--enable-http],[Enable HTTP support])
366 AC_HELP_STRING([--disable-http],[Disable HTTP support]),
367 [ case "$enableval" in
370 AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP])
371 AC_MSG_WARN([disable HTTP disables FTP over proxy and RTSP])
372 AC_SUBST(CURL_DISABLE_HTTP, [1])
373 AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
374 AC_SUBST(CURL_DISABLE_RTSP, [1])
376 *) AC_MSG_RESULT(yes)
381 AC_MSG_CHECKING([whether to support ftp])
383 AC_HELP_STRING([--enable-ftp],[Enable FTP support])
384 AC_HELP_STRING([--disable-ftp],[Disable FTP support]),
385 [ case "$enableval" in
388 AC_DEFINE(CURL_DISABLE_FTP, 1, [to disable FTP])
389 AC_SUBST(CURL_DISABLE_FTP, [1])
391 *) AC_MSG_RESULT(yes)
396 AC_MSG_CHECKING([whether to support file])
398 AC_HELP_STRING([--enable-file],[Enable FILE support])
399 AC_HELP_STRING([--disable-file],[Disable FILE support]),
400 [ case "$enableval" in
403 AC_DEFINE(CURL_DISABLE_FILE, 1, [to disable FILE])
404 AC_SUBST(CURL_DISABLE_FILE, [1])
406 *) AC_MSG_RESULT(yes)
411 AC_MSG_CHECKING([whether to support ldap])
413 AC_HELP_STRING([--enable-ldap],[Enable LDAP support])
414 AC_HELP_STRING([--disable-ldap],[Disable LDAP support]),
415 [ case "$enableval" in
418 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
419 AC_SUBST(CURL_DISABLE_LDAP, [1])
427 AC_MSG_CHECKING([whether to support ldaps])
429 AC_HELP_STRING([--enable-ldaps],[Enable LDAPS support])
430 AC_HELP_STRING([--disable-ldaps],[Disable LDAPS support]),
431 [ case "$enableval" in
434 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
435 AC_SUBST(CURL_DISABLE_LDAPS, [1])
437 *) if test "x$CURL_DISABLE_LDAP" = "x1" ; then
438 AC_MSG_RESULT(LDAP needs to be enabled to support LDAPS)
439 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
440 AC_SUBST(CURL_DISABLE_LDAPS, [1])
443 AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
444 AC_SUBST(HAVE_LDAP_SSL, [1])
448 if test "x$CURL_DISABLE_LDAP" = "x1" ; then
450 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
451 AC_SUBST(CURL_DISABLE_LDAPS, [1])
454 AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
455 AC_SUBST(HAVE_LDAP_SSL, [1])
459 AC_MSG_CHECKING([whether to support rtsp])
461 AC_HELP_STRING([--enable-rtsp],[Enable RTSP support])
462 AC_HELP_STRING([--disable-rtsp],[Disable RTSP support]),
463 [ case "$enableval" in
466 AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
467 AC_SUBST(CURL_DISABLE_RTSP, [1])
469 *) if test x$CURL_DISABLE_HTTP = x1 ; then
470 AC_MSG_ERROR(HTTP support needs to be enabled in order to enable RTSP support!)
473 curl_rtsp_msg="enabled"
477 if test "x$CURL_DISABLE_HTTP" != "x1"; then
479 curl_rtsp_msg="enabled"
485 AC_MSG_CHECKING([whether to support proxies])
487 AC_HELP_STRING([--enable-proxy],[Enable proxy support])
488 AC_HELP_STRING([--disable-proxy],[Disable proxy support]),
489 [ case "$enableval" in
492 AC_DEFINE(CURL_DISABLE_PROXY, 1, [to disable proxies])
493 AC_SUBST(CURL_DISABLE_PROXY, [1])
495 *) AC_MSG_RESULT(yes)
501 AC_MSG_CHECKING([whether to support dict])
503 AC_HELP_STRING([--enable-dict],[Enable DICT support])
504 AC_HELP_STRING([--disable-dict],[Disable DICT support]),
505 [ case "$enableval" in
508 AC_DEFINE(CURL_DISABLE_DICT, 1, [to disable DICT])
509 AC_SUBST(CURL_DISABLE_DICT, [1])
511 *) AC_MSG_RESULT(yes)
516 AC_MSG_CHECKING([whether to support telnet])
517 AC_ARG_ENABLE(telnet,
518 AC_HELP_STRING([--enable-telnet],[Enable TELNET support])
519 AC_HELP_STRING([--disable-telnet],[Disable TELNET support]),
520 [ case "$enableval" in
523 AC_DEFINE(CURL_DISABLE_TELNET, 1, [to disable TELNET])
524 AC_SUBST(CURL_DISABLE_TELNET, [1])
526 *) AC_MSG_RESULT(yes)
531 AC_MSG_CHECKING([whether to support tftp])
533 AC_HELP_STRING([--enable-tftp],[Enable TFTP support])
534 AC_HELP_STRING([--disable-tftp],[Disable TFTP support]),
535 [ case "$enableval" in
538 AC_DEFINE(CURL_DISABLE_TFTP, 1, [to disable TFTP])
539 AC_SUBST(CURL_DISABLE_TFTP, [1])
541 *) AC_MSG_RESULT(yes)
547 AC_MSG_CHECKING([whether to support pop3])
549 AC_HELP_STRING([--enable-pop3],[Enable POP3 support])
550 AC_HELP_STRING([--disable-pop3],[Disable POP3 support]),
551 [ case "$enableval" in
554 AC_DEFINE(CURL_DISABLE_POP3, 1, [to disable POP3])
555 AC_SUBST(CURL_DISABLE_POP3, [1])
557 *) AC_MSG_RESULT(yes)
564 AC_MSG_CHECKING([whether to support imap])
566 AC_HELP_STRING([--enable-imap],[Enable IMAP support])
567 AC_HELP_STRING([--disable-imap],[Disable IMAP support]),
568 [ case "$enableval" in
571 AC_DEFINE(CURL_DISABLE_IMAP, 1, [to disable IMAP])
572 AC_SUBST(CURL_DISABLE_IMAP, [1])
574 *) AC_MSG_RESULT(yes)
581 AC_MSG_CHECKING([whether to support smb])
583 AC_HELP_STRING([--enable-smb],[Enable SMB/CIFS support])
584 AC_HELP_STRING([--disable-smb],[Disable SMB/CIFS support]),
585 [ case "$enableval" in
588 AC_DEFINE(CURL_DISABLE_SMB, 1, [to disable SMB/CIFS])
589 AC_SUBST(CURL_DISABLE_SMB, [1])
591 *) AC_MSG_RESULT(yes)
597 AC_MSG_CHECKING([whether to support smtp])
599 AC_HELP_STRING([--enable-smtp],[Enable SMTP support])
600 AC_HELP_STRING([--disable-smtp],[Disable SMTP support]),
601 [ case "$enableval" in
604 AC_DEFINE(CURL_DISABLE_SMTP, 1, [to disable SMTP])
605 AC_SUBST(CURL_DISABLE_SMTP, [1])
607 *) AC_MSG_RESULT(yes)
613 AC_MSG_CHECKING([whether to support gopher])
614 AC_ARG_ENABLE(gopher,
615 AC_HELP_STRING([--enable-gopher],[Enable Gopher support])
616 AC_HELP_STRING([--disable-gopher],[Disable Gopher support]),
617 [ case "$enableval" in
620 AC_DEFINE(CURL_DISABLE_GOPHER, 1, [to disable Gopher])
621 AC_SUBST(CURL_DISABLE_GOPHER, [1])
623 *) AC_MSG_RESULT(yes)
630 dnl **********************************************************************
631 dnl Check for built-in manual
632 dnl **********************************************************************
634 AC_MSG_CHECKING([whether to provide built-in manual])
635 AC_ARG_ENABLE(manual,
636 AC_HELP_STRING([--enable-manual],[Enable built-in manual])
637 AC_HELP_STRING([--disable-manual],[Disable built-in manual]),
638 [ case "$enableval" in
642 *) AC_MSG_RESULT(yes)
649 dnl The actual use of the USE_MANUAL variable is done much later in this
650 dnl script to allow other actions to disable it as well.
652 dnl ************************************************************
653 dnl disable C code generation support
655 AC_MSG_CHECKING([whether to enable generation of C code])
656 AC_ARG_ENABLE(libcurl_option,
657 AC_HELP_STRING([--enable-libcurl-option],[Enable --libcurl C code generation support])
658 AC_HELP_STRING([--disable-libcurl-option],[Disable --libcurl C code generation support]),
659 [ case "$enableval" in
662 AC_DEFINE(CURL_DISABLE_LIBCURL_OPTION, 1, [to disable --libcurl C code generation option])
663 curl_libcurl_msg="no"
665 *) AC_MSG_RESULT(yes)
671 dnl **********************************************************************
672 dnl Checks for libraries.
673 dnl **********************************************************************
675 AC_MSG_CHECKING([whether to use libgcc])
676 AC_ARG_ENABLE(libgcc,
677 AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]),
678 [ case "$enableval" in
691 dnl gethostbyname without lib or in the nsl lib?
692 AC_CHECK_FUNC(gethostbyname,
693 [HAVE_GETHOSTBYNAME="1"
695 [ AC_CHECK_LIB(nsl, gethostbyname,
696 [HAVE_GETHOSTBYNAME="1"
701 if test "$HAVE_GETHOSTBYNAME" != "1"
703 dnl gethostbyname in the socket lib?
704 AC_CHECK_LIB(socket, gethostbyname,
705 [HAVE_GETHOSTBYNAME="1"
706 LIBS="-lsocket $LIBS"
710 if test "$HAVE_GETHOSTBYNAME" != "1"
712 dnl gethostbyname in the watt lib?
713 AC_CHECK_LIB(watt, gethostbyname,
714 [HAVE_GETHOSTBYNAME="1"
715 CPPFLAGS="-I/dev/env/WATT_ROOT/inc"
716 LDFLAGS="-L/dev/env/WATT_ROOT/lib"
721 dnl At least one system has been identified to require BOTH nsl and socket
722 dnl libs at the same time to link properly.
723 if test "$HAVE_GETHOSTBYNAME" != "1"
725 AC_MSG_CHECKING([for gethostbyname with both nsl and socket libs])
726 my_ac_save_LIBS=$LIBS
727 LIBS="-lnsl -lsocket $LIBS"
735 HAVE_GETHOSTBYNAME="1"
738 LIBS=$my_ac_save_LIBS
742 if test "$HAVE_GETHOSTBYNAME" != "1"
744 dnl This is for winsock systems
745 if test "$ac_cv_header_windows_h" = "yes"; then
746 if test "$ac_cv_header_winsock_h" = "yes"; then
749 winsock_LIB="-lwinsock"
752 winsock_LIB="-lwsock32"
756 if test "$ac_cv_header_winsock2_h" = "yes"; then
757 winsock_LIB="-lws2_32"
759 if test ! -z "$winsock_LIB"; then
760 my_ac_save_LIBS=$LIBS
761 LIBS="$winsock_LIB $LIBS"
762 AC_MSG_CHECKING([for gethostbyname in $winsock_LIB])
765 #ifdef HAVE_WINDOWS_H
766 #ifndef WIN32_LEAN_AND_MEAN
767 #define WIN32_LEAN_AND_MEAN
770 #ifdef HAVE_WINSOCK2_H
771 #include <winsock2.h>
773 #ifdef HAVE_WINSOCK_H
779 gethostbyname("www.dummysite.com");
783 HAVE_GETHOSTBYNAME="1"
787 LIBS=$my_ac_save_LIBS
793 if test "$HAVE_GETHOSTBYNAME" != "1"
795 dnl This is for Minix 3.1
796 AC_MSG_CHECKING([for gethostbyname for Minix 3])
799 /* Older Minix versions may need <net/gen/netdb.h> here instead */
802 gethostbyname("www.dummysite.com");
806 HAVE_GETHOSTBYNAME="1"
812 if test "$HAVE_GETHOSTBYNAME" != "1"
814 dnl This is for eCos with a stubbed DNS implementation
815 AC_MSG_CHECKING([for gethostbyname for eCos])
821 gethostbyname("www.dummysite.com");
825 HAVE_GETHOSTBYNAME="1"
831 if test "$HAVE_GETHOSTBYNAME" != "1"
833 dnl gethostbyname in the network lib - for Haiku OS
834 AC_CHECK_LIB(network, gethostbyname,
835 [HAVE_GETHOSTBYNAME="1"
836 LIBS="-lnetwork $LIBS"
840 if test "$HAVE_GETHOSTBYNAME" != "1"
842 dnl gethostbyname in the net lib - for BeOS
843 AC_CHECK_LIB(net, gethostbyname,
844 [HAVE_GETHOSTBYNAME="1"
850 if test "$HAVE_GETHOSTBYNAME" != "1"; then
851 AC_MSG_ERROR([couldn't find libraries for gethostbyname()])
855 AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ])
857 if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then
858 AC_CHECK_LIB(resolve, strcasecmp,
859 [LIBS="-lresolve $LIBS"],
863 ac_cv_func_strcasecmp="no"
865 CURL_CHECK_LIBS_CONNECT
867 CURL_NETWORK_LIBS=$LIBS
869 dnl **********************************************************************
870 dnl In case that function clock_gettime with monotonic timer is available,
871 dnl check for additional required libraries.
872 dnl **********************************************************************
873 CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC
875 dnl **********************************************************************
876 dnl The preceding library checks are all potentially useful for test
877 dnl servers and libtest cases which require networking and clock_gettime
878 dnl support. Save the list of required libraries at this point for use
879 dnl while linking those test servers and programs.
880 dnl **********************************************************************
881 CURL_NETWORK_AND_TIME_LIBS=$LIBS
883 dnl **********************************************************************
884 dnl Check for the presence of ZLIB libraries and headers
885 dnl **********************************************************************
887 dnl Check for & handle argument to --with-zlib.
889 clean_CPPFLAGS=$CPPFLAGS
890 clean_LDFLAGS=$LDFLAGS
894 AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])
895 AC_HELP_STRING([--without-zlib],[disable use of zlib]),
896 [OPT_ZLIB="$withval"])
898 if test "$OPT_ZLIB" = "no" ; then
899 AC_MSG_WARN([zlib disabled])
901 if test "$OPT_ZLIB" = "yes" ; then
905 if test -z "$OPT_ZLIB" ; then
906 dnl check for the lib first without setting any new path, since many
907 dnl people have it in the default path
909 AC_CHECK_LIB(z, inflateEnd,
910 dnl libz found, set the variable
913 dnl if no lib found, try /usr/local
914 [OPT_ZLIB="/usr/local"])
918 dnl Add a nonempty path to the compiler flags
919 if test -n "$OPT_ZLIB"; then
920 CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
921 LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
924 AC_CHECK_HEADER(zlib.h,
928 dnl if the lib wasn't found already, try again with the new paths
929 if test "$HAVE_LIBZ" != "1"; then
930 AC_CHECK_LIB(z, gzread,
932 dnl the lib was found!
936 [ CPPFLAGS=$clean_CPPFLAGS
937 LDFLAGS=$clean_LDFLAGS])
941 dnl zlib.h was not found, restore the flags
942 CPPFLAGS=$clean_CPPFLAGS
943 LDFLAGS=$clean_LDFLAGS]
946 if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
948 AC_MSG_WARN([configure found only the libz lib, not the header file!])
950 CPPFLAGS=$clean_CPPFLAGS
951 LDFLAGS=$clean_LDFLAGS
953 elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
955 AC_MSG_WARN([configure found only the libz header file, not the lib!])
956 CPPFLAGS=$clean_CPPFLAGS
957 LDFLAGS=$clean_LDFLAGS
959 elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1"
961 dnl both header and lib were found!
963 AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file])
964 AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available])
967 LIBS="-lz $clean_LIBS"
969 dnl replace 'HAVE_LIBZ' in the automake makefile.ams
971 AC_MSG_NOTICE([found both libz and libz.h header])
972 curl_zlib_msg="enabled"
976 dnl set variable for use in automakefile(s)
977 AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
980 dnl **********************************************************************
982 dnl **********************************************************************
985 AC_ARG_WITH(ldap-lib,
986 AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of ldap lib file]),
987 [LDAPLIBNAME="$withval"])
990 AC_ARG_WITH(lber-lib,
991 AC_HELP_STRING([--with-lber-lib=libname],[Specify name of lber lib file]),
992 [LBERLIBNAME="$withval"])
994 if test x$CURL_DISABLE_LDAP != x1 ; then
996 CURL_CHECK_HEADER_LBER
997 CURL_CHECK_HEADER_LDAP
998 CURL_CHECK_HEADER_LDAPSSL
999 CURL_CHECK_HEADER_LDAP_SSL
1001 if test -z "$LDAPLIBNAME" ; then
1002 if test "$ac_cv_native_windows" = "yes"; then
1003 dnl Windows uses a single and unique LDAP library name
1004 LDAPLIBNAME="wldap32"
1009 if test "$LDAPLIBNAME" ; then
1010 AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [
1011 AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled])
1012 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
1013 AC_SUBST(CURL_DISABLE_LDAP, [1])
1014 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
1015 AC_SUBST(CURL_DISABLE_LDAPS, [1])])
1017 dnl Try to find the right ldap libraries for this system
1018 CURL_CHECK_LIBS_LDAP
1019 case X-"$curl_cv_ldap_LIBS" in
1021 AC_MSG_WARN([Cannot find libraries for LDAP support: LDAP disabled])
1022 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
1023 AC_SUBST(CURL_DISABLE_LDAP, [1])
1024 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
1025 AC_SUBST(CURL_DISABLE_LDAPS, [1])
1031 if test x$CURL_DISABLE_LDAP != x1 ; then
1033 if test "$LBERLIBNAME" ; then
1034 dnl If name is "no" then don't define this library at all
1035 dnl (it's only needed if libldap.so's dependencies are broken).
1036 if test "$LBERLIBNAME" != "no" ; then
1037 AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [
1038 AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled])
1039 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
1040 AC_SUBST(CURL_DISABLE_LDAP, [1])
1041 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
1042 AC_SUBST(CURL_DISABLE_LDAPS, [1])])
1047 if test x$CURL_DISABLE_LDAP != x1 ; then
1048 AC_CHECK_FUNCS([ldap_url_parse ldap_init_fd])
1050 if test "$LDAPLIBNAME" = "wldap32"; then
1051 curl_ldap_msg="enabled (winldap)"
1052 AC_DEFINE(USE_WIN32_LDAP, 1, [Use Windows LDAP implementation])
1054 curl_ldap_msg="enabled (OpenLDAP)"
1055 if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then
1056 AC_DEFINE(USE_OPENLDAP, 1, [Use OpenLDAP-specific code])
1057 AC_SUBST(USE_OPENLDAP, [1])
1062 if test x$CURL_DISABLE_LDAPS != x1 ; then
1063 curl_ldaps_msg="enabled"
1066 dnl **********************************************************************
1068 dnl **********************************************************************
1070 AC_MSG_CHECKING([whether to enable IPv6])
1072 AC_HELP_STRING([--enable-ipv6],[Enable IPv6 (with IPv4) support])
1073 AC_HELP_STRING([--disable-ipv6],[Disable IPv6 support]),
1074 [ case "$enableval" in
1079 *) AC_MSG_RESULT(yes)
1084 AC_TRY_RUN([ /* is AF_INET6 available? */
1085 #include <sys/types.h>
1086 #ifdef HAVE_WINSOCK2_H
1087 #include <winsock2.h>
1089 #include <sys/socket.h>
1091 #include <stdlib.h> /* for exit() */
1094 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1108 if test "$ipv6" = "yes"; then
1109 curl_ipv6_msg="enabled"
1112 # Check if struct sockaddr_in6 have sin6_scope_id member
1113 if test "$ipv6" = yes; then
1114 AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
1116 #include <sys/types.h>
1117 #ifdef HAVE_WINSOCK2_H
1118 #include <winsock2.h>
1119 #include <ws2tcpip.h>
1121 #include <netinet/in.h>
1123 struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
1124 if test "$have_sin6_scope_id" = yes; then
1125 AC_MSG_RESULT([yes])
1126 AC_DEFINE(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID, 1, [Define to 1 if struct sockaddr_in6 has the sin6_scope_id member])
1132 dnl **********************************************************************
1133 dnl Check if the operating system allows programs to write to their own argv[]
1134 dnl **********************************************************************
1136 AC_MSG_CHECKING([if argv can be written to])
1139 int main(int argc, char ** argv) {
1141 return (argv[0][0] == ' ')?0:1;
1145 curl_cv_writable_argv=yes
1147 curl_cv_writable_argv=no
1149 curl_cv_writable_argv=cross
1151 case $curl_cv_writable_argv in
1153 AC_DEFINE(HAVE_WRITABLE_ARGV, 1, [Define this symbol if your OS supports changing the contents of argv])
1161 AC_MSG_WARN([the previous check could not be made default was used])
1165 dnl **********************************************************************
1166 dnl Check for GSS-API libraries
1167 dnl **********************************************************************
1169 dnl check for GSS-API stuff in the /usr as default
1172 AC_ARG_WITH(gssapi-includes,
1173 AC_HELP_STRING([--with-gssapi-includes=DIR],
1174 [Specify location of GSS-API headers]),
1175 [ GSSAPI_INCS="-I$withval"
1179 AC_ARG_WITH(gssapi-libs,
1180 AC_HELP_STRING([--with-gssapi-libs=DIR],
1181 [Specify location of GSS-API libs]),
1182 [ GSSAPI_LIB_DIR="-L$withval"
1187 AC_HELP_STRING([--with-gssapi=DIR],
1188 [Where to look for GSS-API]), [
1189 GSSAPI_ROOT="$withval"
1190 if test x"$GSSAPI_ROOT" != xno; then
1192 if test x"$GSSAPI_ROOT" = xyes; then
1193 dnl if yes, then use default root
1199 : ${KRB5CONFIG:="$GSSAPI_ROOT/bin/krb5-config"}
1201 save_CPPFLAGS="$CPPFLAGS"
1202 AC_MSG_CHECKING([if GSS-API support is requested])
1203 if test x"$want_gss" = xyes; then
1206 if test -z "$GSSAPI_INCS"; then
1207 if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
1208 GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi`
1209 elif test -f "$KRB5CONFIG"; then
1210 GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi`
1211 elif test "$GSSAPI_ROOT" != "yes"; then
1212 GSSAPI_INCS="-I$GSSAPI_ROOT/include"
1216 CPPFLAGS="$CPPFLAGS $GSSAPI_INCS"
1218 AC_CHECK_HEADER(gss.h,
1220 dnl found in the given dirs
1221 AC_DEFINE(HAVE_GSSGNU, 1, [if you have GNU GSS])
1225 dnl not found, check Heimdal or MIT
1226 AC_CHECK_HEADERS([gssapi/gssapi.h], [], [not_mit=1])
1228 [gssapi/gssapi_generic.h gssapi/gssapi_krb5.h],
1233 #ifdef HAVE_GSSAPI_GSSAPI_H
1234 #include <gssapi/gssapi.h>
1237 if test "x$not_mit" = "x1"; then
1238 dnl MIT not found, check for Heimdal
1239 AC_CHECK_HEADER(gssapi.h,
1242 AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have Heimdal])
1245 dnl no header found, disabling GSS
1247 AC_MSG_WARN(disabling GSS-API support since no header files were found)
1252 AC_DEFINE(HAVE_GSSMIT, 1, [if you have MIT Kerberos])
1253 dnl check if we have a really old MIT Kerberos version (<= 1.2)
1254 AC_MSG_CHECKING([if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE])
1257 #include <gssapi/gssapi.h>
1258 #include <gssapi/gssapi_generic.h>
1259 #include <gssapi/gssapi_krb5.h>
1264 GSS_C_NT_HOSTBASED_SERVICE,
1268 AC_MSG_RESULT([yes])
1271 AC_DEFINE(HAVE_OLD_GSSMIT, 1,
1272 [if you have an old MIT Kerberos version, lacking GSS_C_NT_HOSTBASED_SERVICE])
1280 if test x"$want_gss" = xyes; then
1281 AC_DEFINE(HAVE_GSSAPI, 1, [if you have GSS-API libraries])
1283 curl_gss_msg="enabled (MIT Kerberos/Heimdal)"
1285 if test -n "$gnu_gss"; then
1286 curl_gss_msg="enabled (GNU GSS)"
1287 LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1289 elif test -z "$GSSAPI_LIB_DIR"; then
1292 LIBS="-lgssapi_krb5 -lresolv $LIBS"
1295 if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
1296 dnl krb5-config doesn't have --libs-only-L or similar, put everything
1298 gss_libs=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --libs gssapi`
1299 LIBS="$gss_libs $LIBS"
1300 elif test -f "$KRB5CONFIG"; then
1301 dnl krb5-config doesn't have --libs-only-L or similar, put everything
1303 gss_libs=`$KRB5CONFIG --libs gssapi`
1304 LIBS="$gss_libs $LIBS"
1311 gss_libname="gssapi"
1315 if test "$GSSAPI_ROOT" != "yes"; then
1316 LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff"
1317 LIBS="-l$gss_libname $LIBS"
1319 LIBS="-l$gss_libname $LIBS"
1325 LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1331 LIBS="-lgssapi $LIBS"
1336 CPPFLAGS="$save_CPPFLAGS"
1339 dnl -------------------------------------------------
1340 dnl check winssl option before other SSL libraries
1341 dnl -------------------------------------------------
1344 AC_ARG_WITH(winssl,dnl
1345 AC_HELP_STRING([--with-winssl],[enable Windows native SSL/TLS])
1346 AC_HELP_STRING([--without-winssl], [disable Windows native SSL/TLS]),
1347 OPT_WINSSL=$withval)
1349 AC_MSG_CHECKING([whether to enable Windows native SSL/TLS (Windows native builds only)])
1350 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1351 if test "x$OPT_WINSSL" != "xno" &&
1352 test "x$ac_cv_native_windows" = "xyes"; then
1354 AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support])
1355 AC_SUBST(USE_SCHANNEL, [1])
1356 curl_ssl_msg="enabled (Windows-native)"
1358 # --with-winssl implies --enable-sspi
1359 AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
1360 AC_SUBST(USE_WINDOWS_SSPI, [1])
1361 curl_sspi_msg="enabled"
1370 AC_ARG_WITH(darwinssl,dnl
1371 AC_HELP_STRING([--with-darwinssl],[enable iOS/Mac OS X native SSL/TLS])
1372 AC_HELP_STRING([--without-darwinssl], [disable iOS/Mac OS X native SSL/TLS]),
1373 OPT_DARWINSSL=$withval)
1375 AC_MSG_CHECKING([whether to enable iOS/Mac OS X native SSL/TLS])
1376 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1377 if test "x$OPT_DARWINSSL" != "xno" &&
1378 test -d "/System/Library/Frameworks/Security.framework"; then
1380 AC_DEFINE(USE_DARWINSSL, 1, [to enable iOS/Mac OS X native SSL/TLS support])
1381 AC_SUBST(USE_DARWINSSL, [1])
1382 curl_ssl_msg="enabled (iOS/Mac OS X-native)"
1384 LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
1392 dnl **********************************************************************
1393 dnl Check for the presence of SSL libraries and headers
1394 dnl **********************************************************************
1396 dnl Default to compiler & linker defaults for SSL files & libraries.
1398 dnl Default to no CA bundle
1401 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])
1402 AC_HELP_STRING([--without-ssl], [disable OpenSSL]),
1405 if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
1406 dnl backup the pre-ssl variables
1407 CLEANLDFLAGS="$LDFLAGS"
1408 CLEANCPPFLAGS="$CPPFLAGS"
1411 dnl This is for Msys/Mingw
1413 *-*-msys* | *-*-mingw*)
1414 AC_MSG_CHECKING([for gdi32])
1415 my_ac_save_LIBS=$LIBS
1416 LIBS="-lgdi32 $LIBS"
1417 AC_TRY_LINK([#include <windef.h>
1418 #include <wingdi.h>],
1421 AC_MSG_RESULT([yes])],
1422 [ dnl failed, restore LIBS
1423 LIBS=$my_ac_save_LIBS
1431 dnl --with-ssl (without path) used
1432 if test x$cross_compiling != xyes; then
1433 dnl only do pkg-config magic when not cross-compiling
1436 PREFIX_OPENSSL=/usr/local/ssl
1437 LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1440 dnl no --with-ssl option given, just check default places
1441 if test x$cross_compiling != xyes; then
1442 dnl only do pkg-config magic when not cross-compiling
1448 dnl check the given --with-ssl spot
1450 PREFIX_OPENSSL=$OPT_SSL
1452 dnl Try pkg-config even when cross-compiling. Since we
1453 dnl specify PKG_CONFIG_LIBDIR we're only looking where
1454 dnl the user told us to look
1455 OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig"
1456 AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
1457 if test -f "$OPENSSL_PCDIR/openssl.pc"; then
1461 dnl in case pkg-config comes up empty, use what we got
1463 LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1464 if test "$PREFIX_OPENSSL" != "/usr" ; then
1465 SSL_LDFLAGS="-L$LIB_OPENSSL"
1466 SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include"
1468 SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl"
1472 if test "$PKGTEST" = "yes"; then
1474 CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR])
1476 if test "$PKGCONFIG" != "no" ; then
1477 SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1478 $PKGCONFIG --libs-only-l openssl 2>/dev/null`
1480 SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1481 $PKGCONFIG --libs-only-L openssl 2>/dev/null`
1483 SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1484 $PKGCONFIG --cflags-only-I openssl 2>/dev/null`
1487 AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
1488 AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
1489 AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
1491 LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'`
1493 dnl use the values pkg-config reported. This is here
1494 dnl instead of below with CPPFLAGS and LDFLAGS because we only
1495 dnl learn about this via pkg-config. If we only have
1496 dnl the argument to --with-ssl we don't know what
1497 dnl additional libs may be necessary. Hope that we
1499 LIBS="$SSL_LIBS $LIBS"
1503 dnl finally, set flags to use SSL
1504 CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
1505 LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
1507 AC_CHECK_LIB(crypto, HMAC_Update,[
1509 LIBS="-lcrypto $LIBS"
1511 LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL"
1512 CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include"
1513 AC_CHECK_LIB(crypto, HMAC_Init_ex,[
1515 LIBS="-lcrypto $LIBS"], [
1516 LDFLAGS="$CLEANLDFLAGS"
1517 CPPFLAGS="$CLEANCPPFLAGS"
1523 if test X"$HAVECRYPTO" = X"yes"; then
1524 AC_MSG_CHECKING([OpenSSL linking without -ldl])
1528 #include <openssl/evp.h>
1531 SSLeay_add_all_algorithms();
1539 AC_MSG_CHECKING([OpenSSL linking with -ldl])
1543 #include <openssl/evp.h>
1546 SSLeay_add_all_algorithms();
1550 LIBS="$saved_libs -ldl"
1563 if test X"$HAVECRYPTO" = X"yes"; then
1564 dnl This is only reasonable to do if crypto actually is there: check for
1565 dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
1567 AC_CHECK_LIB(ssl, SSL_connect)
1569 if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1570 dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
1571 AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
1573 LIBS="-lRSAglue -lrsaref $LIBS"
1574 AC_CHECK_LIB(ssl, SSL_connect)
1575 if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1576 dnl still no SSL_connect
1585 dnl Have the libraries--check for OpenSSL headers
1586 AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
1587 openssl/pem.h openssl/ssl.h openssl/err.h,
1588 curl_ssl_msg="enabled (OpenSSL)"
1590 AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
1592 if test $ac_cv_header_openssl_x509_h = no; then
1593 dnl we don't use the "action" part of the AC_CHECK_HEADERS macro
1594 dnl since 'err.h' might in fact find a krb4 header with the same
1596 AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
1598 if test $ac_cv_header_x509_h = yes &&
1599 test $ac_cv_header_crypto_h = yes &&
1600 test $ac_cv_header_ssl_h = yes; then
1602 curl_ssl_msg="enabled (OpenSSL)"
1608 if test X"$OPENSSL_ENABLED" = X"1"; then
1609 dnl is there a pkcs12.h header present?
1610 AC_CHECK_HEADERS(openssl/pkcs12.h)
1615 if test X"$OPT_SSL" != Xoff &&
1616 test "$OPENSSL_ENABLED" != "1"; then
1617 AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!])
1621 if test X"$OPENSSL_ENABLED" = X"1"; then
1622 dnl If the ENGINE library seems to be around, check for the OpenSSL engine
1623 dnl stuff, it is kind of "separated" from the main SSL check
1624 AC_CHECK_FUNC(ENGINE_init,
1626 AC_CHECK_HEADERS(openssl/engine.h)
1627 AC_CHECK_FUNCS( ENGINE_load_builtin_engines )
1630 dnl These can only exist if OpenSSL exists
1631 dnl Older versions of Cyassl (some time before 2.9.4) don't have
1632 dnl SSL_get_shutdown (but this check won't actually detect it there
1633 dnl as it's a macro that needs the header files be included)
1635 AC_CHECK_FUNCS( RAND_status \
1639 CRYPTO_cleanup_all_ex_data \
1641 SSLv2_client_method )
1643 AC_MSG_CHECKING([for BoringSSL])
1646 #include <openssl/base.h>
1648 #ifndef OPENSSL_IS_BORINGSSL
1649 #error not boringssl
1653 AC_MSG_RESULT([yes])
1654 AC_DEFINE_UNQUOTED(HAVE_BORINGSSL, 1,
1655 [Define to 1 if using BoringSSL.])
1656 curl_ssl_msg="enabled (BoringSSL)"
1661 AC_MSG_CHECKING([for libressl])
1664 #include <openssl/opensslv.h>
1666 int dummy = LIBRESSL_VERSION_NUMBER;
1669 AC_MSG_RESULT([yes])
1670 AC_DEFINE_UNQUOTED(HAVE_LIBRESSL, 1,
1671 [Define to 1 if using libressl.])
1672 curl_ssl_msg="enabled (libressl)"
1678 if test "$OPENSSL_ENABLED" = "1"; then
1679 if test -n "$LIB_OPENSSL"; then
1680 dnl when the ssl shared libs were found in a path that the run-time
1681 dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
1682 dnl to prevent further configure tests to fail due to this
1683 if test "x$cross_compiling" != "xyes"; then
1684 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL"
1685 export LD_LIBRARY_PATH
1686 AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH])
1689 CURL_CHECK_OPENSSL_API
1694 dnl **********************************************************************
1695 dnl Check for the random seed preferences
1696 dnl **********************************************************************
1698 if test X"$OPENSSL_ENABLED" = X"1"; then
1699 AC_ARG_WITH(egd-socket,
1700 AC_HELP_STRING([--with-egd-socket=FILE],
1701 [Entropy Gathering Daemon socket pathname]),
1702 [ EGD_SOCKET="$withval" ]
1704 if test -n "$EGD_SOCKET" ; then
1705 AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET",
1706 [your Entropy Gathering Daemon socket pathname] )
1709 dnl Check for user-specified random device
1711 AC_HELP_STRING([--with-random=FILE],
1712 [read randomness from FILE (default=/dev/urandom)]),
1713 [ RANDOM_FILE="$withval" ],
1715 if test x$cross_compiling != xyes; then
1716 dnl Check for random device
1717 AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
1719 AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling])
1723 if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
1724 AC_SUBST(RANDOM_FILE)
1725 AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE",
1726 [a suitable file to read random data from])
1731 dnl We require OpenSSL with SRP support.
1733 if test "$OPENSSL_ENABLED" = "1"; then
1734 AC_CHECK_LIB(crypto, SRP_Calc_client_key,
1736 AC_DEFINE(HAVE_OPENSSL_SRP, 1, [if you have the function SRP_Calc_client_key])
1737 AC_SUBST(HAVE_OPENSSL_SRP, [1])
1741 dnl ----------------------------------------------------
1742 dnl check for GnuTLS
1743 dnl ----------------------------------------------------
1745 dnl Default to compiler & linker defaults for GnuTLS files & libraries.
1748 AC_ARG_WITH(gnutls,dnl
1749 AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root])
1750 AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
1751 OPT_GNUTLS=$withval)
1753 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1755 if test X"$OPT_GNUTLS" != Xno; then
1763 if test "x$OPT_GNUTLS" = "xyes"; then
1764 dnl this is with no partiular path given
1765 CURL_CHECK_PKGCONFIG(gnutls)
1767 if test "$PKGCONFIG" != "no" ; then
1768 addlib=`$PKGCONFIG --libs-only-l gnutls`
1769 addld=`$PKGCONFIG --libs-only-L gnutls`
1770 addcflags=`$PKGCONFIG --cflags-only-I gnutls`
1771 version=`$PKGCONFIG --modversion gnutls`
1772 gtlslib=`echo $addld | $SED -e 's/-L//'`
1774 dnl without pkg-config, we try libgnutls-config as that was how it
1776 check=`libgnutls-config --version 2>/dev/null`
1777 if test -n "$check"; then
1778 addlib=`libgnutls-config --libs`
1779 addcflags=`libgnutls-config --cflags`
1780 version=`libgnutls-config --version`
1781 gtlslib=`libgnutls-config --prefix`/lib$libsuff
1785 dnl this is with a given path, first check if there's a libgnutls-config
1786 dnl there and if not, make an educated guess
1787 cfg=$OPT_GNUTLS/bin/libgnutls-config
1788 check=`$cfg --version 2>/dev/null`
1789 if test -n "$check"; then
1790 addlib=`$cfg --libs`
1791 addcflags=`$cfg --cflags`
1792 version=`$cfg --version`
1793 gtlslib=`$cfg --prefix`/lib$libsuff
1795 dnl without pkg-config and libgnutls-config, we guess a lot!
1797 addld=-L$OPT_GNUTLS/lib$libsuff
1798 addcflags=-I$OPT_GNUTLS/include
1799 version="" # we just don't know
1800 gtlslib=$OPT_GNUTLS/lib$libsuff
1804 if test -z "$version"; then
1805 dnl lots of efforts, still no go
1809 if test -n "$addlib"; then
1812 CLEANCPPFLAGS="$CPPFLAGS"
1813 CLEANLDFLAGS="$LDFLAGS"
1815 LIBS="$addlib $LIBS"
1816 LDFLAGS="$LDFLAGS $addld"
1817 if test "$addcflags" != "-I/usr/include"; then
1818 CPPFLAGS="$CPPFLAGS $addcflags"
1821 AC_CHECK_LIB(gnutls, gnutls_check_version,
1823 AC_DEFINE(USE_GNUTLS, 1, [if GnuTLS is enabled])
1824 AC_SUBST(USE_GNUTLS, [1])
1827 curl_ssl_msg="enabled (GnuTLS)"
1831 CPPFLAGS="$CLEANCPPFLAGS"
1834 if test "x$USE_GNUTLS" = "xyes"; then
1835 AC_MSG_NOTICE([detected GnuTLS version $version])
1837 if test -n "$gtlslib"; then
1838 dnl when shared libs were found in a path that the run-time
1839 dnl linker doesn't search through, we need to add it to
1840 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1842 if test "x$cross_compiling" != "xyes"; then
1843 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
1844 export LD_LIBRARY_PATH
1845 AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
1848 AC_CHECK_FUNCS(gnutls_certificate_set_x509_key_file2)
1853 fi dnl GNUTLS not disabled
1858 dnl Check which crypto backend GnuTLS uses
1861 if test "$GNUTLS_ENABLED" = "1"; then
1863 # First check if we can detect either crypto library via transitive linking
1864 AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1865 if test "$USE_GNUTLS_NETTLE" = ""; then
1866 AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1868 # If not, try linking directly to both of them to see if they are available
1869 if test "$USE_GNUTLS_NETTLE" = ""; then
1870 AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1872 if test "$USE_GNUTLS_NETTLE" = ""; then
1873 AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1875 if test "$USE_GNUTLS_NETTLE" = ""; then
1876 AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found])
1878 if test "$USE_GNUTLS_NETTLE" = "1"; then
1879 AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend])
1880 AC_SUBST(USE_GNUTLS_NETTLE, [1])
1881 LIBS="-lnettle $LIBS"
1883 LIBS="-lgcrypt $LIBS"
1888 dnl We require GnuTLS with SRP support.
1890 if test "$GNUTLS_ENABLED" = "1"; then
1891 AC_CHECK_LIB(gnutls, gnutls_srp_verifier,
1893 AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier])
1894 AC_SUBST(HAVE_GNUTLS_SRP, [1])
1898 dnl ----------------------------------------------------
1899 dnl check for PolarSSL
1900 dnl ----------------------------------------------------
1902 dnl Default to compiler & linker defaults for PolarSSL files & libraries.
1907 AC_ARG_WITH(polarssl,dnl
1908 AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root])
1909 AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]),
1910 OPT_POLARSSL=$withval)
1912 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1914 if test X"$OPT_POLARSSL" != Xno; then
1916 if test "$OPT_POLARSSL" = "yes"; then
1920 if test -z "$OPT_POLARSSL" ; then
1921 dnl check for lib first without setting any new path
1923 AC_CHECK_LIB(polarssl, havege_init,
1924 dnl libpolarssl found, set the variable
1926 AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1927 AC_SUBST(USE_POLARSSL, [1])
1930 curl_ssl_msg="enabled (PolarSSL)"
1939 if test "x$USE_POLARSSL" != "xyes"; then
1940 dnl add the path and test again
1941 addld=-L$OPT_POLARSSL/lib$libsuff
1942 addcflags=-I$OPT_POLARSSL/include
1943 polarssllib=$OPT_POLARSSL/lib$libsuff
1945 LDFLAGS="$LDFLAGS $addld"
1946 if test "$addcflags" != "-I/usr/include"; then
1947 CPPFLAGS="$CPPFLAGS $addcflags"
1950 AC_CHECK_LIB(polarssl, ssl_init,
1952 AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1953 AC_SUBST(USE_POLARSSL, [1])
1956 curl_ssl_msg="enabled (PolarSSL)"
1964 if test "x$USE_POLARSSL" = "xyes"; then
1965 AC_MSG_NOTICE([detected PolarSSL])
1967 LIBS="-lpolarssl $LIBS"
1969 if test -n "$polarssllib"; then
1970 dnl when shared libs were found in a path that the run-time
1971 dnl linker doesn't search through, we need to add it to
1972 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1974 if test "x$cross_compiling" != "xyes"; then
1975 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib"
1976 export LD_LIBRARY_PATH
1977 AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH])
1982 fi dnl PolarSSL not disabled
1986 dnl ----------------------------------------------------
1987 dnl check for mbedTLS
1988 dnl ----------------------------------------------------
1994 AC_ARG_WITH(mbedtls,dnl
1995 AC_HELP_STRING([--with-mbedtls=PATH],[where to look for mbedTLS, PATH points to the installation root])
1996 AC_HELP_STRING([--without-mbedtls], [disable mbedTLS detection]),
1997 OPT_MBEDTLS=$withval)
1999 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2001 if test X"$OPT_MBEDTLS" != Xno; then
2003 if test "$OPT_MBEDTLS" = "yes"; then
2007 if test -z "$OPT_MBEDTLS" ; then
2008 dnl check for lib first without setting any new path
2010 AC_CHECK_LIB(mbedtls, mbedtls_havege_init,
2011 dnl libmbedtls found, set the variable
2013 AC_DEFINE(USE_MBEDTLS, 1, [if mbedTLS is enabled])
2014 AC_SUBST(USE_MBEDTLS, [1])
2017 curl_ssl_msg="enabled (mbedTLS)"
2018 ], [], -lmbedx509 -lmbedcrypto)
2026 if test "x$USE_MBEDTLS" != "xyes"; then
2027 dnl add the path and test again
2028 addld=-L$OPT_MBEDTLS/lib$libsuff
2029 addcflags=-I$OPT_MBEDTLS/include
2030 mbedtlslib=$OPT_MBEDTLS/lib$libsuff
2032 LDFLAGS="$LDFLAGS $addld"
2033 if test "$addcflags" != "-I/usr/include"; then
2034 CPPFLAGS="$CPPFLAGS $addcflags"
2037 AC_CHECK_LIB(mbedtls, mbedtls_ssl_init,
2039 AC_DEFINE(USE_MBEDTLS, 1, [if mbedTLS is enabled])
2040 AC_SUBST(USE_MBEDTLS, [1])
2043 curl_ssl_msg="enabled (mbedTLS)"
2048 ], -lmbedx509 -lmbedcrypto)
2051 if test "x$USE_MBEDTLS" = "xyes"; then
2052 AC_MSG_NOTICE([detected mbedTLS])
2054 LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS"
2056 if test -n "$mbedtlslib"; then
2057 dnl when shared libs were found in a path that the run-time
2058 dnl linker doesn't search through, we need to add it to
2059 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2061 if test "x$cross_compiling" != "xyes"; then
2062 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$mbedtlslib"
2063 export LD_LIBRARY_PATH
2064 AC_MSG_NOTICE([Added $mbedtlslib to LD_LIBRARY_PATH])
2069 fi dnl mbedTLS not disabled
2073 dnl ----------------------------------------------------
2074 dnl check for CyaSSL
2075 dnl ----------------------------------------------------
2077 dnl Default to compiler & linker defaults for CyaSSL files & libraries.
2082 AC_ARG_WITH(cyassl,dnl
2083 AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
2084 AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
2085 OPT_CYASSL=$withval)
2087 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2089 if test X"$OPT_CYASSL" != Xno; then
2091 if test "$OPT_CYASSL" = "yes"; then
2095 dnl This should be reworked to use pkg-config instead
2097 cyassllibname=cyassl
2099 if test -z "$OPT_CYASSL" ; then
2100 dnl check for lib in system default first
2102 AC_CHECK_LIB(cyassl, CyaSSL_Init,
2103 dnl libcyassl found, set the variable
2105 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2106 AC_SUBST(USE_CYASSL, [1])
2109 curl_ssl_msg="enabled (CyaSSL)"
2118 if test "x$USE_CYASSL" != "xyes"; then
2119 dnl add the path and test again
2120 addld=-L$OPT_CYASSL/lib$libsuff
2121 addcflags=-I$OPT_CYASSL/include
2122 cyassllib=$OPT_CYASSL/lib$libsuff
2124 LDFLAGS="$LDFLAGS $addld"
2125 if test "$addcflags" != "-I/usr/include"; then
2126 CPPFLAGS="$CPPFLAGS $addcflags"
2129 AC_CHECK_LIB(cyassl, CyaSSL_Init,
2131 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2132 AC_SUBST(USE_CYASSL, [1])
2135 curl_ssl_msg="enabled (CyaSSL)"
2148 if test "x$USE_CYASSL" != "xyes"; then
2149 dnl libcyassl renamed to libwolfssl as of 3.4.0
2150 addld=-L$OPT_CYASSL/lib$libsuff
2151 addcflags=-I$OPT_CYASSL/include
2152 cyassllib=$OPT_CYASSL/lib$libsuff
2154 LDFLAGS="$LDFLAGS $addld"
2155 if test "$addcflags" != "-I/usr/include"; then
2156 CPPFLAGS="$CPPFLAGS $addcflags"
2159 cyassllibname=wolfssl
2160 my_ac_save_LIBS="$LIBS"
2161 LIBS="-l$cyassllibname -lm $LIBS"
2163 AC_MSG_CHECKING([for CyaSSL_Init in -lwolfssl])
2166 /* These aren't needed for detection and confuse WolfSSL.
2167 They are set up properly later if it is detected. */
2169 #undef SIZEOF_LONG_LONG
2170 #include <cyassl/ssl.h>
2172 return CyaSSL_Init();
2176 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL/WolfSSL is enabled])
2177 AC_SUBST(USE_CYASSL, [1])
2180 curl_ssl_msg="enabled (WolfSSL)"
2188 LIBS="$my_ac_save_LIBS"
2191 if test "x$USE_CYASSL" = "xyes"; then
2192 AC_MSG_NOTICE([detected $cyassllibname])
2194 dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
2195 AC_CHECK_SIZEOF(long long)
2197 dnl Versions since at least 2.6.0 may have options.h
2198 AC_CHECK_HEADERS(cyassl/options.h)
2200 dnl Versions since at least 2.9.4 renamed error.h to error-ssl.h
2201 AC_CHECK_HEADERS(cyassl/error-ssl.h)
2203 LIBS="-l$cyassllibname -lm $LIBS"
2205 if test "x$cyassllibname" = "xwolfssl"; then
2206 dnl Recent WolfSSL versions build without SSLv3 by default
2207 dnl WolfSSL needs configure --enable-opensslextra to have *get_peer*
2208 AC_CHECK_FUNCS(wolfSSLv3_client_method \
2209 wolfSSL_get_peer_certificate)
2211 dnl Cyassl needs configure --enable-opensslextra to have *get_peer*
2212 AC_CHECK_FUNCS(CyaSSL_get_peer_certificate)
2215 if test -n "$cyassllib"; then
2216 dnl when shared libs were found in a path that the run-time
2217 dnl linker doesn't search through, we need to add it to
2218 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2220 if test "x$cross_compiling" != "xyes"; then
2221 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
2222 export LD_LIBRARY_PATH
2223 AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH])
2229 fi dnl CyaSSL not disabled
2233 dnl ----------------------------------------------------
2234 dnl NSS. Only check if GnuTLS and OpenSSL are not enabled
2235 dnl ----------------------------------------------------
2237 dnl Default to compiler & linker defaults for NSS files & libraries.
2241 AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root])
2242 AC_HELP_STRING([--without-nss], [disable NSS detection]),
2245 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2247 if test X"$OPT_NSS" != Xno; then
2255 if test "x$OPT_NSS" = "xyes"; then
2257 CURL_CHECK_PKGCONFIG(nss)
2259 if test "$PKGCONFIG" != "no" ; then
2260 addlib=`$PKGCONFIG --libs nss`
2261 addcflags=`$PKGCONFIG --cflags nss`
2262 version=`$PKGCONFIG --modversion nss`
2263 nssprefix=`$PKGCONFIG --variable=prefix nss`
2265 dnl Without pkg-config, we check for nss-config
2267 check=`nss-config --version 2>/dev/null`
2268 if test -n "$check"; then
2269 addlib=`nss-config --libs`
2270 addcflags=`nss-config --cflags`
2271 version=`nss-config --version`
2272 nssprefix=`nss-config --prefix`
2280 NSS_PCDIR="$OPT_NSS/lib/pkgconfig"
2281 if test -f "$NSS_PCDIR/nss.pc"; then
2282 CURL_CHECK_PKGCONFIG(nss, [$NSS_PCDIR])
2283 if test "$PKGCONFIG" != "no" ; then
2284 addld=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --libs-only-L nss`
2285 addlib=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --libs-only-l nss`
2286 addcflags=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --cflags nss`
2287 version=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --modversion nss`
2288 nssprefix=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --variable=prefix nss`
2293 if test -z "$addlib"; then
2294 # Without pkg-config, we'll kludge in some defaults
2295 AC_MSG_WARN([Using hard-wired libraries and compilation flags for NSS.])
2296 addld="-L$OPT_NSS/lib"
2297 addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4"
2298 addcflags="-I$OPT_NSS/include"
2303 CLEANLDFLAGS="$LDFLAGS"
2305 CLEANCPPFLAGS="$CPPFLAGS"
2307 LDFLAGS="$addld $LDFLAGS"
2308 LIBS="$addlib $LIBS"
2309 if test "$addcflags" != "-I/usr/include"; then
2310 CPPFLAGS="$CPPFLAGS $addcflags"
2313 dnl The function SSL_VersionRangeSet() is needed to enable TLS > 1.0
2314 AC_CHECK_LIB(nss3, SSL_VersionRangeSet,
2316 AC_DEFINE(USE_NSS, 1, [if NSS is enabled])
2317 AC_SUBST(USE_NSS, [1])
2320 curl_ssl_msg="enabled (NSS)"
2323 LDFLAGS="$CLEANLDFLAGS"
2325 CPPFLAGS="$CLEANCPPFLAGS"
2328 if test "x$USE_NSS" = "xyes"; then
2329 AC_MSG_NOTICE([detected NSS version $version])
2331 dnl needed when linking the curl tool without USE_EXPLICIT_LIB_DEPS
2333 AC_SUBST([NSS_LIBS])
2335 dnl when shared libs were found in a path that the run-time
2336 dnl linker doesn't search through, we need to add it to
2337 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2339 if test "x$cross_compiling" != "xyes"; then
2340 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff"
2341 export LD_LIBRARY_PATH
2342 AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH])
2347 fi dnl NSS not disabled
2349 fi dnl curl_ssl_msg = init_ssl_msg
2353 AC_ARG_WITH(axtls,dnl
2354 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.])
2355 AC_HELP_STRING([--without-axtls], [disable axTLS]),
2358 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2359 if test X"$OPT_AXTLS" != Xno; then
2360 dnl backup the pre-axtls variables
2361 CLEANLDFLAGS="$LDFLAGS"
2362 CLEANCPPFLAGS="$CPPFLAGS"
2365 case "$OPT_AXTLS" in
2367 dnl --with-axtls (without path) used
2368 PREFIX_AXTLS=/usr/local
2369 LIB_AXTLS="$PREFIX_AXTLS/lib"
2370 LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2371 CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2374 dnl no --with-axtls option given, just check default places
2378 dnl check the given --with-axtls spot
2379 PREFIX_AXTLS=$OPT_AXTLS
2380 LIB_AXTLS="$PREFIX_AXTLS/lib"
2381 LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2382 CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2386 AC_CHECK_LIB(axtls, ssl_version,[
2387 LIBS="-laxtls $LIBS"
2388 AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled])
2389 AC_SUBST(USE_AXTLS, [1])
2392 curl_ssl_msg="enabled (axTLS)"
2394 if test "x$cross_compiling" != "xyes"; then
2395 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS"
2396 export LD_LIBRARY_PATH
2397 AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH])
2400 LDFLAGS="$CLEANLDFLAGS"
2401 CPPFLAGS="$CLEANCPPFLAGS"
2407 if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
2408 AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
2409 AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
2411 # SSL is enabled, genericly
2412 AC_SUBST(SSL_ENABLED)
2416 dnl **********************************************************************
2417 dnl Check for the CA bundle
2418 dnl **********************************************************************
2420 CURL_CHECK_CA_BUNDLE
2422 dnl **********************************************************************
2423 dnl Check for libpsl
2424 dnl **********************************************************************
2427 AS_HELP_STRING([--without-libpsl],
2428 [disable support for libpsl cookie checking]),
2429 with_libpsl=$withval,
2431 if test $with_libpsl != "no"; then
2432 AC_SEARCH_LIBS(psl_builtin, psl,
2433 [curl_psl_msg="yes";
2434 AC_DEFINE([USE_LIBPSL], [1], [PSL support enabled])
2436 [curl_psl_msg="no (libpsl not found)";
2437 AC_MSG_WARN([libpsl was not found])
2441 AM_CONDITIONAL([USE_LIBPSL], [test "$curl_psl_msg" = "yes"])
2443 dnl **********************************************************************
2444 dnl Check for libmetalink
2445 dnl **********************************************************************
2449 AC_ARG_WITH(libmetalink,dnl
2450 AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root])
2451 AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]),
2452 OPT_LIBMETALINK=$withval)
2454 if test X"$OPT_LIBMETALINK" != Xno; then
2463 if test "x$OPT_LIBMETALINK" = "xyes"; then
2464 dnl this is with no partiular path given
2466 CURL_CHECK_PKGCONFIG(libmetalink)
2468 dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path.
2469 LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig"
2470 AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"])
2471 if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then
2474 if test "$PKGTEST" = "yes"; then
2475 CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR])
2478 if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then
2479 addlib=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2480 $PKGCONFIG --libs-only-l libmetalink`
2481 addld=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2482 $PKGCONFIG --libs-only-L libmetalink`
2483 addcflags=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2484 $PKGCONFIG --cflags-only-I libmetalink`
2485 version=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2486 $PKGCONFIG --modversion libmetalink`
2487 libmetalinklib=`echo $addld | $SED -e 's/-L//'`
2489 if test -n "$addlib"; then
2491 clean_CPPFLAGS="$CPPFLAGS"
2492 clean_LDFLAGS="$LDFLAGS"
2494 CPPFLAGS="$addcflags $clean_CPPFLAGS"
2495 LDFLAGS="$addld $clean_LDFLAGS"
2496 LIBS="$addlib $clean_LIBS"
2497 AC_MSG_CHECKING([if libmetalink is recent enough])
2500 # include <metalink/metalink.h>
2502 if(0 != metalink_strerror(0)) /* added in 0.1.0 */
2506 AC_MSG_RESULT([yes ($version)])
2509 AC_MSG_RESULT([no ($version)])
2510 AC_MSG_NOTICE([libmetalink library defective or too old])
2513 CPPFLAGS="$clean_CPPFLAGS"
2514 LDFLAGS="$clean_LDFLAGS"
2516 if test "$want_metalink" = "yes"; then
2517 dnl finally libmetalink will be used
2518 AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support])
2519 LIBMETALINK_LIBS=$addlib
2520 LIBMETALINK_LDFLAGS=$addld
2521 LIBMETALINK_CPPFLAGS=$addcflags
2522 AC_SUBST([LIBMETALINK_LIBS])
2523 AC_SUBST([LIBMETALINK_LDFLAGS])
2524 AC_SUBST([LIBMETALINK_CPPFLAGS])
2525 curl_mtlnk_msg="enabled"
2531 dnl **********************************************************************
2532 dnl Check for the presence of LIBSSH2 libraries and headers
2533 dnl **********************************************************************
2535 dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
2537 AC_ARG_WITH(libssh2,dnl
2538 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])
2539 AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
2540 OPT_LIBSSH2=$withval)
2542 if test X"$OPT_LIBSSH2" != Xno; then
2543 dnl backup the pre-libssh2 variables
2544 CLEANLDFLAGS="$LDFLAGS"
2545 CLEANCPPFLAGS="$CPPFLAGS"
2548 case "$OPT_LIBSSH2" in
2550 dnl --with-libssh2 (without path) used
2551 CURL_CHECK_PKGCONFIG(libssh2)
2553 if test "$PKGCONFIG" != "no" ; then
2554 LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2`
2555 LD_SSH2=`$PKGCONFIG --libs-only-L libssh2`
2556 CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2`
2557 version=`$PKGCONFIG --modversion libssh2`
2558 DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'`
2563 dnl no --with-libssh2 option given, just check default places
2566 dnl use the given --with-libssh2 spot
2567 PREFIX_SSH2=$OPT_LIBSSH2
2571 dnl if given with a prefix, we set -L and -I based on that
2572 if test -n "$PREFIX_SSH2"; then
2574 LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff
2575 CPP_SSH2=-I${PREFIX_SSH2}/include
2576 DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
2579 LDFLAGS="$LDFLAGS $LD_SSH2"
2580 CPPFLAGS="$CPPFLAGS $CPP_SSH2"
2581 LIBS="$LIB_SSH2 $LIBS"
2583 AC_CHECK_LIB(ssh2, libssh2_channel_open_ex)
2585 AC_CHECK_HEADERS(libssh2.h,
2586 curl_ssh_msg="enabled (libSSH2)"
2588 AC_DEFINE(USE_LIBSSH2, 1, [if libSSH2 is in use])
2589 AC_SUBST(USE_LIBSSH2, [1])
2592 if test X"$OPT_LIBSSH2" != Xoff &&
2593 test "$LIBSSH2_ENABLED" != "1"; then
2594 AC_MSG_ERROR([libSSH2 libs and/or directories were not found where specified!])
2597 if test "$LIBSSH2_ENABLED" = "1"; then
2598 if test -n "$DIR_SSH2"; then
2599 dnl when the libssh2 shared libs were found in a path that the run-time
2600 dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
2601 dnl to prevent further configure tests to fail due to this
2603 if test "x$cross_compiling" != "xyes"; then
2604 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
2605 export LD_LIBRARY_PATH
2606 AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH])
2610 dnl no libssh2, revert back to clean variables
2611 LDFLAGS=$CLEANLDFLAGS
2612 CPPFLAGS=$CLEANCPPFLAGS
2617 dnl **********************************************************************
2618 dnl Check for the presence of LIBRTMP libraries and headers
2619 dnl **********************************************************************
2621 dnl Default to compiler & linker defaults for LIBRTMP files & libraries.
2623 AC_ARG_WITH(librtmp,dnl
2624 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])
2625 AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]),
2626 OPT_LIBRTMP=$withval)
2628 if test X"$OPT_LIBRTMP" != Xno; then
2629 dnl backup the pre-librtmp variables
2630 CLEANLDFLAGS="$LDFLAGS"
2631 CLEANCPPFLAGS="$CPPFLAGS"
2634 case "$OPT_LIBRTMP" in
2636 dnl --with-librtmp (without path) used
2637 CURL_CHECK_PKGCONFIG(librtmp)
2639 if test "$PKGCONFIG" != "no" ; then
2640 LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp`
2641 LD_RTMP=`$PKGCONFIG --libs-only-L librtmp`
2642 CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp`
2643 version=`$PKGCONFIG --modversion librtmp`
2644 DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'`
2646 dnl To avoid link errors, we do not allow --librtmp without
2647 dnl a pkgconfig file
2648 AC_MSG_ERROR([--librtmp was specified but could not find librtmp pkgconfig file.])
2653 dnl no --with-librtmp option given, just check default places
2657 dnl use the given --with-librtmp spot
2658 PREFIX_RTMP=$OPT_LIBRTMP
2662 dnl if given with a prefix, we set -L and -I based on that
2663 if test -n "$PREFIX_RTMP"; then
2664 LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff
2665 CPP_RTMP=-I${PREFIX_RTMP}/include
2666 DIR_RTMP=${PREFIX_RTMP}/lib$libsuff
2669 LDFLAGS="$LDFLAGS $LD_RTMP"
2670 CPPFLAGS="$CPPFLAGS $CPP_RTMP"
2671 LIBS="$LIB_RTMP $LIBS"
2673 AC_CHECK_LIB(rtmp, RTMP_Init,
2675 AC_CHECK_HEADERS(librtmp/rtmp.h,
2676 curl_rtmp_msg="enabled (librtmp)"
2678 AC_DEFINE(USE_LIBRTMP, 1, [if librtmp is in use])
2679 AC_SUBST(USE_LIBRTMP, [1])
2682 dnl not found, revert back to clean variables
2683 LDFLAGS=$CLEANLDFLAGS
2684 CPPFLAGS=$CLEANCPPFLAGS
2688 if test X"$OPT_LIBRTMP" != Xoff &&
2689 test "$LIBRTMP_ENABLED" != "1"; then
2690 AC_MSG_ERROR([librtmp libs and/or directories were not found where specified!])
2695 dnl **********************************************************************
2696 dnl Check for linker switch for versioned symbols
2697 dnl **********************************************************************
2699 versioned_symbols_flavour=
2700 AC_MSG_CHECKING([whether versioned symbols are wanted])
2701 AC_ARG_ENABLE(versioned-symbols,
2702 AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library])
2703 AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]),
2704 [ case "$enableval" in
2705 yes) AC_MSG_RESULT(yes)
2706 AC_MSG_CHECKING([if libraries can be versioned])
2707 GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
2708 if test -z "$GLD"; then
2710 AC_MSG_WARN([You need an ld version supporting the --version-script option])
2713 if test "x$OPENSSL_ENABLED" = "x1"; then
2714 versioned_symbols_flavour="OPENSSL_"
2715 elif test "x$GNUTLS_ENABLED" = "x1"; then
2716 versioned_symbols_flavour="GNUTLS_"
2717 elif test "x$NSS_ENABLED" = "x1"; then
2718 versioned_symbols_flavour="NSS_"
2719 elif test "x$POLARSSL_ENABLED" = "x1"; then
2720 versioned_symbols_flavour="POLARSSL_"
2721 elif test "x$CYASSL_ENABLED" = "x1"; then
2722 versioned_symbols_flavour="CYASSL_"
2723 elif test "x$AXTLS_ENABLED" = "x1"; then
2724 versioned_symbols_flavour="AXTLS_"
2725 elif test "x$WINSSL_ENABLED" = "x1"; then
2726 versioned_symbols_flavour="WINSSL_"
2727 elif test "x$DARWINSSL_ENABLED" = "x1"; then
2728 versioned_symbols_flavour="DARWINSSL_"
2730 versioned_symbols_flavour=""
2732 versioned_symbols="yes"
2736 *) AC_MSG_RESULT(no)
2744 AC_SUBST([CURL_LT_SHLIB_VERSIONED_FLAVOUR],
2745 ["$versioned_symbols_flavour"])
2746 AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS],
2747 [test "x$versioned_symbols" = 'xyes'])
2749 dnl -------------------------------------------------
2750 dnl check winidn option before other IDN libraries
2751 dnl -------------------------------------------------
2753 AC_MSG_CHECKING([whether to enable Windows native IDN (Windows native builds only)])
2754 OPT_WINIDN="default"
2756 AC_HELP_STRING([--with-winidn=PATH],[enable Windows native IDN])
2757 AC_HELP_STRING([--without-winidn], [disable Windows native IDN]),
2758 OPT_WINIDN=$withval)
2759 case "$OPT_WINIDN" in
2761 dnl --without-winidn option used or configure option not specified
2766 dnl --with-winidn option used without path
2768 want_winidn_path="default"
2769 AC_MSG_RESULT([yes])
2772 dnl --with-winidn option used with path
2774 want_winidn_path="$withval"
2775 AC_MSG_RESULT([yes ($withval)])
2779 if test "$want_winidn" = "yes"; then
2780 dnl winidn library support has been requested
2781 clean_CPPFLAGS="$CPPFLAGS"
2782 clean_LDFLAGS="$LDFLAGS"
2784 WINIDN_LIBS="-lnormaliz"
2786 if test "$want_winidn_path" != "default"; then
2787 dnl path has been specified
2788 dnl pkg-config not available or provides no info
2789 WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff"
2790 WINIDN_CPPFLAGS="-I$want_winidn_path/include"
2791 WINIDN_DIR="$want_winidn_path/lib$libsuff"
2794 CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS"
2795 LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS"
2796 LIBS="$WINIDN_LIBS $LIBS"
2798 AC_MSG_CHECKING([if IdnToUnicode can be linked])
2800 AC_LANG_FUNC_LINK_TRY([IdnToUnicode])
2802 AC_MSG_RESULT([yes])
2803 tst_links_winidn="yes"
2806 tst_links_winidn="no"
2809 if test "$tst_links_winidn" = "yes"; then
2810 AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).])
2811 AC_DEFINE(WANT_IDN_PROTOTYPES, 1, [Define to 1 to provide own prototypes.])
2812 AC_SUBST([IDN_ENABLED], [1])
2813 curl_idn_msg="enabled (Windows-native)"
2815 AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2816 CPPFLAGS="$clean_CPPFLAGS"
2817 LDFLAGS="$clean_LDFLAGS"
2822 dnl **********************************************************************
2823 dnl Check for the presence of IDN libraries and headers
2824 dnl **********************************************************************
2826 AC_MSG_CHECKING([whether to build with libidn])
2829 AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage])
2830 AC_HELP_STRING([--without-libidn],[Disable libidn usage]),
2834 dnl --without-libidn option used
2839 dnl configure option not specified
2841 want_idn_path="default"
2842 AC_MSG_RESULT([(assumed) yes])
2845 dnl --with-libidn option used without path
2847 want_idn_path="default"
2848 AC_MSG_RESULT([yes])
2851 dnl --with-libidn option used with path
2853 want_idn_path="$withval"
2854 AC_MSG_RESULT([yes ($withval)])
2858 if test "$want_idn" = "yes"; then
2859 dnl idn library support has been requested
2860 clean_CPPFLAGS="$CPPFLAGS"
2861 clean_LDFLAGS="$LDFLAGS"
2865 if test "$want_idn_path" != "default"; then
2866 dnl path has been specified
2867 IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
2868 CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR])
2869 if test "$PKGCONFIG" != "no"; then
2870 IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2871 $PKGCONFIG --libs-only-l libidn 2>/dev/null`
2872 IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2873 $PKGCONFIG --libs-only-L libidn 2>/dev/null`
2874 IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2875 $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2876 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2878 dnl pkg-config not available or provides no info
2880 IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
2881 IDN_CPPFLAGS="-I$want_idn_path/include"
2882 IDN_DIR="$want_idn_path/lib$libsuff"
2885 dnl path not specified
2886 CURL_CHECK_PKGCONFIG(libidn)
2887 if test "$PKGCONFIG" != "no"; then
2888 IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
2889 IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
2890 IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2891 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2893 dnl pkg-config not available or provides no info
2898 if test "$PKGCONFIG" != "no"; then
2899 AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"])
2900 AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"])
2901 AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2902 AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"])
2904 AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"])
2905 AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"])
2906 AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2907 AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
2910 CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
2911 LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
2912 LIBS="$IDN_LIBS $LIBS"
2914 AC_MSG_CHECKING([if idna_to_ascii_4i can be linked])
2916 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i])
2918 AC_MSG_RESULT([yes])
2919 tst_links_libidn="yes"
2922 tst_links_libidn="no"
2924 if test "$tst_links_libidn" = "no"; then
2925 AC_MSG_CHECKING([if idna_to_ascii_lz can be linked])
2927 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz])
2929 AC_MSG_RESULT([yes])
2930 tst_links_libidn="yes"
2933 tst_links_libidn="no"
2937 if test "$tst_links_libidn" = "yes"; then
2938 AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).])
2939 dnl different versions of libidn have different setups of these:
2940 AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror )
2941 AC_CHECK_HEADERS( idn-free.h tld.h )
2942 if test "x$ac_cv_header_tld_h" = "xyes"; then
2943 AC_SUBST([IDN_ENABLED], [1])
2944 curl_idn_msg="enabled"
2945 if test -n "$IDN_DIR" -a "x$cross_compiling" != "xyes"; then
2946 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
2947 export LD_LIBRARY_PATH
2948 AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH])
2951 AC_MSG_WARN([Libraries for IDN support too old: IDN disabled])
2952 CPPFLAGS="$clean_CPPFLAGS"
2953 LDFLAGS="$clean_LDFLAGS"
2957 AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2958 CPPFLAGS="$clean_CPPFLAGS"
2959 LDFLAGS="$clean_LDFLAGS"
2965 dnl Let's hope this split URL remains working:
2966 dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
2967 dnl genprogc/thread_quick_ref.htm
2970 dnl **********************************************************************
2971 dnl Check for nghttp2
2972 dnl **********************************************************************
2975 AC_ARG_WITH(nghttp2,
2976 AC_HELP_STRING([--with-nghttp2=PATH],[Enable nghttp2 usage])
2977 AC_HELP_STRING([--without-nghttp2],[Disable nghttp2 usage]),
2981 dnl --without-nghttp2 option used
2985 dnl --with-nghttp2 option used without path
2990 dnl --with-nghttp2 option used with path
2992 want_h2_path="$withval/lib/pkgconfig"
2996 curl_h2_msg="disabled (--with-nghttp2)"
2997 if test X"$want_h2" != Xno; then
2998 dnl backup the pre-nghttp2 variables
2999 CLEANLDFLAGS="$LDFLAGS"
3000 CLEANCPPFLAGS="$CPPFLAGS"
3003 CURL_CHECK_PKGCONFIG(libnghttp2, $want_h2_path)
3005 if test "$PKGCONFIG" != "no" ; then
3006 LIB_H2=`CURL_EXPORT_PCDIR([$want_h2_path])
3007 $PKGCONFIG --libs-only-l libnghttp2`
3008 AC_MSG_NOTICE([-l is $LIB_H2])
3010 CPP_H2=`CURL_EXPORT_PCDIR([$want_h2_path]) dnl
3011 $PKGCONFIG --cflags-only-I libnghttp2`
3012 AC_MSG_NOTICE([-I is $CPP_H2])
3014 LD_H2=`CURL_EXPORT_PCDIR([$want_h2_path])
3015 $PKGCONFIG --libs-only-L libnghttp2`
3016 AC_MSG_NOTICE([-L is $LD_H2])
3018 LDFLAGS="$LDFLAGS $LD_H2"
3019 CPPFLAGS="$CPPFLAGS $CPP_H2"
3020 LIBS="$LIB_H2 $LIBS"
3022 # use nghttp2_option_set_no_recv_client_magic to require nghttp2
3024 AC_CHECK_LIB(nghttp2, nghttp2_option_set_no_recv_client_magic,
3026 AC_CHECK_HEADERS(nghttp2/nghttp2.h,
3027 curl_h2_msg="enabled (nghttp2)"
3029 AC_DEFINE(USE_NGHTTP2, 1, [if nghttp2 is in use])
3030 AC_SUBST(USE_NGHTTP2, [1])
3033 dnl not found, revert back to clean variables
3034 LDFLAGS=$CLEANLDFLAGS
3035 CPPFLAGS=$CLEANCPPFLAGS
3040 dnl no nghttp2 pkg-config found, deal with it
3041 if test X"$want_h2" != Xdefault; then
3042 dnl To avoid link errors, we do not allow --with-nghttp2 without
3043 dnl a pkgconfig file
3044 AC_MSG_ERROR([--with-nghttp2 was specified but could not find libnghttp2 pkg-config file.])
3050 dnl **********************************************************************
3051 dnl Check for zsh completion path
3052 dnl **********************************************************************
3054 OPT_ZSH_FPATH=default
3055 AC_ARG_WITH(zsh-functions-dir,
3056 AC_HELP_STRING([--with-zsh-functions-dir=PATH],[Install zsh completions to PATH])
3057 AC_HELP_STRING([--without-zsh-functions-dir],[Do not install zsh completions]),
3058 [OPT_ZSH_FPATH=$withval])
3059 case "$OPT_ZSH_FPATH" in
3061 dnl --without-zsh-functions-dir option used
3064 dnl --with-zsh-functions-dir option used without path
3065 ZSH_FUNCTIONS_DIR="$datarootdir/zsh/site-functions"
3066 AC_SUBST(ZSH_FUNCTIONS_DIR)
3069 dnl --with-zsh-functions-dir option used with path
3070 ZSH_FUNCTIONS_DIR="$withval"
3071 AC_SUBST(ZSH_FUNCTIONS_DIR)
3075 dnl **********************************************************************
3076 dnl Back to "normal" configuring
3077 dnl **********************************************************************
3079 dnl Checks for header files.
3082 CURL_CHECK_HEADER_MALLOC
3083 CURL_CHECK_HEADER_MEMORY
3085 dnl Now check for the very most basic headers. Then we can use these
3086 dnl ones as default-headers when checking for the rest!
3129 dnl to do if not found
3133 dnl default includes
3135 #ifdef HAVE_SYS_TYPES_H
3136 #include <sys/types.h>
3138 #ifdef HAVE_SYS_TIME_H
3139 #include <sys/time.h>
3141 #ifdef HAVE_SYS_SELECT_H
3142 #include <sys/select.h>
3144 #ifdef HAVE_SYS_SOCKET_H
3145 #include <sys/socket.h>
3147 #ifdef HAVE_NETINET_IN_H
3148 #include <netinet/in.h>
3150 #ifdef HAVE_SYS_UN_H
3156 dnl Checks for typedefs, structures, and compiler characteristics.
3158 CURL_CHECK_VARIADIC_MACROS
3161 CURL_CHECK_STRUCT_TIMEVAL
3162 CURL_VERIFY_RUNTIMELIBS
3164 AC_CHECK_SIZEOF(size_t)
3165 AC_CHECK_SIZEOF(long)
3166 AC_CHECK_SIZEOF(int)
3167 AC_CHECK_SIZEOF(short)
3169 AC_CHECK_SIZEOF(time_t)
3170 AC_CHECK_SIZEOF(off_t)
3173 if test x"$ac_cv_native_windows" != "xyes" &&
3174 test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then
3175 AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous])
3176 AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.])
3181 AC_CHECK_TYPE(long long,
3182 [AC_DEFINE(HAVE_LONGLONG, 1,
3183 [Define to 1 if the compiler supports the 'long long' data type.])]
3187 if test "xyes" = "x$longlong"; then
3188 AC_MSG_CHECKING([if numberLL works])
3192 long long val = 1000LL;
3195 AC_MSG_RESULT([yes])
3196 AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL])
3204 AC_CHECK_TYPE(ssize_t, ,
3205 AC_DEFINE(ssize_t, int, [the signed version of size_t]))
3207 # check for bool type
3208 AC_CHECK_TYPE([bool],[
3209 AC_DEFINE(HAVE_BOOL_T, 1,
3210 [Define to 1 if bool is an available type.])
3212 #ifdef HAVE_SYS_TYPES_H
3213 #include <sys/types.h>
3215 #ifdef HAVE_STDBOOL_H
3216 #include <stdbool.h>
3220 CURL_CONFIGURE_CURL_SOCKLEN_T
3222 CURL_CONFIGURE_PULL_SYS_POLL
3226 TYPE_SOCKADDR_STORAGE
3232 CURL_CHECK_FUNC_SELECT
3234 CURL_CHECK_FUNC_RECV
3235 CURL_CHECK_FUNC_SEND
3236 CURL_CHECK_MSG_NOSIGNAL
3238 CURL_CHECK_FUNC_ALARM
3239 CURL_CHECK_FUNC_BASENAME
3240 CURL_CHECK_FUNC_CLOSESOCKET
3241 CURL_CHECK_FUNC_CLOSESOCKET_CAMEL
3242 CURL_CHECK_FUNC_CONNECT
3243 CURL_CHECK_FUNC_FCNTL
3244 CURL_CHECK_FUNC_FDOPEN
3245 CURL_CHECK_FUNC_FREEADDRINFO
3246 CURL_CHECK_FUNC_FREEIFADDRS
3247 CURL_CHECK_FUNC_FSETXATTR
3248 CURL_CHECK_FUNC_FTRUNCATE
3249 CURL_CHECK_FUNC_GETADDRINFO
3250 CURL_CHECK_FUNC_GAI_STRERROR
3251 CURL_CHECK_FUNC_GETHOSTBYADDR
3252 CURL_CHECK_FUNC_GETHOSTBYADDR_R
3253 CURL_CHECK_FUNC_GETHOSTBYNAME
3254 CURL_CHECK_FUNC_GETHOSTBYNAME_R
3255 CURL_CHECK_FUNC_GETHOSTNAME
3256 CURL_CHECK_FUNC_GETIFADDRS
3257 CURL_CHECK_FUNC_GETSERVBYPORT_R
3258 CURL_CHECK_FUNC_GMTIME_R
3259 CURL_CHECK_FUNC_INET_NTOA_R
3260 CURL_CHECK_FUNC_INET_NTOP
3261 CURL_CHECK_FUNC_INET_PTON
3262 CURL_CHECK_FUNC_IOCTL
3263 CURL_CHECK_FUNC_IOCTLSOCKET
3264 CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL
3265 CURL_CHECK_FUNC_LOCALTIME_R
3266 CURL_CHECK_FUNC_MEMRCHR
3267 CURL_CHECK_FUNC_POLL
3268 CURL_CHECK_FUNC_SETSOCKOPT
3269 CURL_CHECK_FUNC_SIGACTION
3270 CURL_CHECK_FUNC_SIGINTERRUPT
3271 CURL_CHECK_FUNC_SIGNAL
3272 CURL_CHECK_FUNC_SIGSETJMP
3273 CURL_CHECK_FUNC_SOCKET
3274 CURL_CHECK_FUNC_SOCKETPAIR
3275 CURL_CHECK_FUNC_STRCASECMP
3276 CURL_CHECK_FUNC_STRCMPI
3277 CURL_CHECK_FUNC_STRDUP
3278 CURL_CHECK_FUNC_STRERROR_R
3279 CURL_CHECK_FUNC_STRICMP
3280 CURL_CHECK_FUNC_STRNCASECMP
3281 CURL_CHECK_FUNC_STRNCMPI
3282 CURL_CHECK_FUNC_STRNICMP
3283 CURL_CHECK_FUNC_STRSTR
3284 CURL_CHECK_FUNC_STRTOK_R
3285 CURL_CHECK_FUNC_STRTOLL
3286 CURL_CHECK_FUNC_WRITEV
3292 AC_MSG_NOTICE([skip check for pipe on msdosdjgpp])
3296 AC_CHECK_FUNCS([fork \
3317 eval skipcheck=\$skipcheck_$func
3318 if test "x$skipcheck" != "xyes"; then
3319 AC_MSG_CHECKING([deeper for $func])
3326 AC_MSG_RESULT([yes])
3327 eval "ac_cv_func_$func=yes"
3328 AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1],
3329 [Define to 1 if you have the $func function.])
3331 AC_MSG_RESULT([but still no])
3336 dnl Check if the getnameinfo function is available
3337 dnl and get the types of five of its arguments.
3338 CURL_CHECK_FUNC_GETNAMEINFO
3340 if test "$ipv6" = "yes"; then
3341 if test "$ac_cv_func_getaddrinfo" = "yes"; then
3342 AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support])
3344 AC_SUBST(IPV6_ENABLED)
3346 CURL_CHECK_NI_WITHSCOPEID
3349 CURL_CHECK_NONBLOCKING_SOCKET
3351 dnl ************************************************************
3352 dnl nroff tool stuff
3355 AC_PATH_PROG( PERL, perl, ,
3356 $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
3359 AC_PATH_PROGS( NROFF, gnroff nroff, ,
3360 $PATH:/usr/bin/:/usr/local/bin )
3363 if test -n "$NROFF"; then
3364 dnl only check for nroff options if an nroff command was found
3366 AC_MSG_CHECKING([how to use *nroff to get plain text from man pages])
3368 mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
3369 if test -z "$mancheck"; then
3371 mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
3372 if test -z "$mancheck"; then
3374 AC_MSG_RESULT([failed])
3375 AC_MSG_WARN([found no *nroff option to get plaintext from man pages])
3377 AC_MSG_RESULT([$MANOPT])
3380 AC_MSG_RESULT([$MANOPT])
3385 if test -z "$MANOPT"
3387 dnl if no nroff tool was found, or no option that could convert man pages
3388 dnl was found, then disable the built-in manual stuff
3389 AC_MSG_WARN([disabling built-in manual])
3393 dnl *************************************************************************
3394 dnl If the manual variable still is set, then we go with providing a built-in
3397 if test "$USE_MANUAL" = "1"; then
3398 AC_DEFINE(USE_MANUAL, 1, [If you want to build curl with the built-in manual])
3399 curl_manual_msg="enabled"
3402 dnl set variable for use in automakefile(s)
3403 AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)
3406 AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
3408 if test "x$ac_cv_native_windows" != "xyes" &&
3409 test "x$enable_shared" = "xyes"; then
3410 build_libhostname=yes
3412 build_libhostname=no
3414 AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes)
3416 CURL_CHECK_OPTION_THREADED_RESOLVER
3418 if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
3420 [Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
3423 if test "$want_thres" = "yes" && test "$dontwant_rt" = "no"; then
3424 AC_CHECK_HEADER(pthread.h,
3425 [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
3426 save_CFLAGS="$CFLAGS"
3428 dnl first check for function without lib
3429 AC_CHECK_FUNC(pthread_create, [USE_THREADS_POSIX=1] )
3431 dnl if it wasn't found without lib, search for it in pthread lib
3432 if test "$USE_THREADS_POSIX" != "1"
3434 CFLAGS="$CFLAGS -pthread"
3435 AC_CHECK_LIB(pthread, pthread_create,
3436 [USE_THREADS_POSIX=1],
3437 [ CFLAGS="$save_CFLAGS"])
3440 if test "x$USE_THREADS_POSIX" = "x1"
3442 AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
3443 curl_res_msg="POSIX threaded"
3450 dnl ************************************************************
3451 dnl disable verbose text strings
3453 AC_MSG_CHECKING([whether to enable verbose strings])
3454 AC_ARG_ENABLE(verbose,
3455 AC_HELP_STRING([--enable-verbose],[Enable verbose strings])
3456 AC_HELP_STRING([--disable-verbose],[Disable verbose strings]),
3457 [ case "$enableval" in
3460 AC_DEFINE(CURL_DISABLE_VERBOSE_STRINGS, 1, [to disable verbose strings])
3461 curl_verbose_msg="no"
3463 *) AC_MSG_RESULT(yes)
3469 dnl ************************************************************
3470 dnl enable SSPI support
3472 AC_MSG_CHECKING([whether to enable SSPI support (Windows native builds only)])
3474 AC_HELP_STRING([--enable-sspi],[Enable SSPI])
3475 AC_HELP_STRING([--disable-sspi],[Disable SSPI]),
3476 [ case "$enableval" in
3478 if test "$ac_cv_native_windows" = "yes"; then
3480 AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
3481 AC_SUBST(USE_WINDOWS_SSPI, [1])
3482 curl_sspi_msg="enabled"
3485 AC_MSG_WARN([--enable-sspi Ignored. Only supported on native Windows builds.])
3489 if test "x$WINSSL_ENABLED" = "x1"; then
3490 # --with-winssl implies --enable-sspi
3497 if test "x$WINSSL_ENABLED" = "x1"; then
3498 # --with-winssl implies --enable-sspi
3505 dnl ************************************************************
3506 dnl disable cryptographic authentication
3508 AC_MSG_CHECKING([whether to enable cryptographic authentication methods])
3509 AC_ARG_ENABLE(crypto-auth,
3510 AC_HELP_STRING([--enable-crypto-auth],[Enable cryptographic authentication])
3511 AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]),
3512 [ case "$enableval" in
3515 AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication])
3516 CURL_DISABLE_CRYPTO_AUTH=1
3518 *) AC_MSG_RESULT(yes)
3524 CURL_CHECK_OPTION_NTLM_WB
3528 dnl ************************************************************
3529 dnl disable TLS-SRP authentication
3531 AC_MSG_CHECKING([whether to enable TLS-SRP authentication])
3532 AC_ARG_ENABLE(tls-srp,
3533 AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication])
3534 AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]),
3535 [ case "$enableval" in
3538 AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication])
3541 *) AC_MSG_RESULT(yes)
3549 if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_OPENSSL_SRP" = "x1") ; then
3550 AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication])
3552 curl_tls_srp_msg="enabled"
3555 dnl ************************************************************
3556 dnl disable Unix domain sockets support
3558 AC_MSG_CHECKING([whether to enable Unix domain sockets])
3559 AC_ARG_ENABLE(unix-sockets,
3560 AC_HELP_STRING([--enable-unix-sockets],[Enable Unix domain sockets])
3561 AC_HELP_STRING([--disable-unix-sockets],[Disable Unix domain sockets]),
3562 [ case "$enableval" in
3563 no) AC_MSG_RESULT(no)
3564 want_unix_sockets=no
3566 *) AC_MSG_RESULT(yes)
3567 want_unix_sockets=yes
3571 want_unix_sockets=auto
3574 if test "x$want_unix_sockets" != "xno"; then
3575 AC_CHECK_MEMBER([struct sockaddr_un.sun_path], [
3576 AC_DEFINE(USE_UNIX_SOCKETS, 1, [Use Unix domain sockets])
3577 AC_SUBST(USE_UNIX_SOCKETS, [1])
3578 curl_unix_sockets_msg="enabled"
3580 if test "x$want_unix_sockets" = "xyes"; then
3581 AC_MSG_ERROR([--enable-unix-sockets is not available on this platform!])
3588 dnl ************************************************************
3589 dnl disable cookies support
3591 AC_MSG_CHECKING([whether to enable support for cookies])
3592 AC_ARG_ENABLE(cookies,
3593 AC_HELP_STRING([--enable-cookies],[Enable cookies support])
3594 AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
3595 [ case "$enableval" in
3598 AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support])
3600 *) AC_MSG_RESULT(yes)
3606 dnl ************************************************************
3607 dnl hiding of library internal symbols
3609 CURL_CONFIGURE_SYMBOL_HIDING
3611 dnl ************************************************************
3612 dnl enforce SONAME bump
3615 AC_MSG_CHECKING([whether to enforce SONAME bump])
3616 AC_ARG_ENABLE(soname-bump,
3617 AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump])
3618 AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]),
3619 [ case "$enableval" in
3620 yes) AC_MSG_RESULT(yes)
3627 AC_MSG_RESULT($soname_bump)
3629 AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
3632 dnl All the library dependencies put into $LIB apply to libcurl only.
3636 AC_SUBST(LIBCURL_LIBS)
3637 AC_SUBST(CURL_NETWORK_LIBS)
3638 AC_SUBST(CURL_NETWORK_AND_TIME_LIBS)
3640 dnl BLANK_AT_MAKETIME may be used in our Makefile.am files to blank
3641 dnl LIBS variable used in generated makefile at makefile processing
3642 dnl time. Doing this functionally prevents LIBS from being used for
3643 dnl all link targets in given makefile.
3645 AC_SUBST(BLANK_AT_MAKETIME)
3647 AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
3650 ENABLE_SHARED="$enable_shared"
3651 AC_SUBST(ENABLE_SHARED)
3653 dnl to let curl-config output the static libraries correctly
3654 ENABLE_STATIC="$enable_static"
3655 AC_SUBST(ENABLE_STATIC)
3659 dnl For keeping supported features and protocols also in pkg-config file
3660 dnl since it is more cross-compile friendly than curl-config
3663 if test "x$OPENSSL_ENABLED" = "x1"; then
3664 SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3665 elif test -n "$SSL_ENABLED"; then
3666 SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3668 if test "x$IPV6_ENABLED" = "x1"; then
3669 SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
3671 if test "x$USE_UNIX_SOCKETS" = "x1"; then
3672 SUPPORT_FEATURES="$SUPPORT_FEATURES UnixSockets"
3674 if test "x$HAVE_LIBZ" = "x1"; then
3675 SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
3677 if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then
3678 SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
3680 if test "x$IDN_ENABLED" = "x1"; then
3681 SUPPORT_FEATURES="$SUPPORT_FEATURES IDN"
3683 if test "x$USE_WINDOWS_SSPI" = "x1"; then
3684 SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI"
3687 if test "x$HAVE_GSSAPI" = "x1"; then
3688 SUPPORT_FEATURES="$SUPPORT_FEATURES GSS-API"
3691 if test "x$curl_psl_msg" = "xyes"; then
3692 SUPPORT_FEATURES="$SUPPORT_FEATURES PSL"
3695 if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \
3696 \( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then
3697 SUPPORT_FEATURES="$SUPPORT_FEATURES SPNEGO"
3700 if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \
3701 \( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then
3702 SUPPORT_FEATURES="$SUPPORT_FEATURES Kerberos"
3705 if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1"; then
3706 if test "x$OPENSSL_ENABLED" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
3707 -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \
3708 -o "x$DARWINSSL_ENABLED" = "x1"; then
3709 SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM"
3711 if test "x$CURL_DISABLE_HTTP" != "x1" -a \
3712 "x$NTLM_WB_ENABLED" = "x1"; then
3713 SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB"
3718 if test "x$USE_TLS_SRP" = "x1"; then
3719 SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
3722 if test "x$USE_NGHTTP2" = "x1"; then
3723 SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
3726 AC_SUBST(SUPPORT_FEATURES)
3728 dnl For supported protocols in pkg-config file
3729 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3730 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
3731 if test "x$SSL_ENABLED" = "x1"; then
3732 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS"
3735 if test "x$CURL_DISABLE_FTP" != "x1"; then
3736 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP"
3737 if test "x$SSL_ENABLED" = "x1"; then
3738 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS"
3741 if test "x$CURL_DISABLE_FILE" != "x1"; then
3742 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE"
3744 if test "x$CURL_DISABLE_TELNET" != "x1"; then
3745 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET"
3747 if test "x$CURL_DISABLE_LDAP" != "x1"; then
3748 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP"
3749 if test "x$CURL_DISABLE_LDAPS" != "x1"; then
3750 if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") ||
3751 (test "x$USE_OPENLDAP" != "x1" && test "x$HAVE_LDAP_SSL" = "x1"); then
3752 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS"
3756 if test "x$CURL_DISABLE_DICT" != "x1"; then
3757 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT"
3759 if test "x$CURL_DISABLE_TFTP" != "x1"; then
3760 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP"
3762 if test "x$CURL_DISABLE_GOPHER" != "x1"; then
3763 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER"
3765 if test "x$CURL_DISABLE_POP3" != "x1"; then
3766 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3"
3767 if test "x$SSL_ENABLED" = "x1"; then
3768 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S"
3771 if test "x$CURL_DISABLE_IMAP" != "x1"; then
3772 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP"
3773 if test "x$SSL_ENABLED" = "x1"; then
3774 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS"
3777 if test "x$CURL_DISABLE_SMB" != "x1" \
3778 -a "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" \
3779 -a \( "x$OPENSSL_ENABLED" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
3780 -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \
3781 -o "x$DARWINSSL_ENABLED" = "x1" \); then
3782 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMB"
3783 if test "x$SSL_ENABLED" = "x1"; then
3784 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMBS"
3787 if test "x$CURL_DISABLE_SMTP" != "x1"; then
3788 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP"
3789 if test "x$SSL_ENABLED" = "x1"; then
3790 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS"
3793 if test "x$USE_LIBSSH2" = "x1"; then
3794 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP"
3795 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP"
3797 if test "x$CURL_DISABLE_RTSP" != "x1"; then
3798 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP"
3800 if test "x$USE_LIBRTMP" = "x1"; then
3801 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP"
3804 dnl replace spaces with newlines
3806 dnl replace the newlines back to spaces
3807 SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '`
3809 AC_SUBST(SUPPORT_PROTOCOLS)
3811 dnl squeeze whitespace out of some variables
3819 squeeze LIBCURL_LIBS
3820 squeeze CURL_NETWORK_LIBS
3821 squeeze CURL_NETWORK_AND_TIME_LIBS
3823 squeeze SUPPORT_FEATURES
3824 squeeze SUPPORT_PROTOCOLS
3826 XC_CHECK_BUILD_FLAGS
3828 if test "x$want_curldebug_assumed" = "xyes" &&
3829 test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then
3830 ac_configure_args="$ac_configure_args --enable-curldebug"
3833 AC_CONFIG_FILES([Makefile \
3835 docs/examples/Makefile \
3836 docs/libcurl/Makefile \
3837 docs/libcurl/opts/Makefile \
3839 include/curl/Makefile \
3844 tests/certs/Makefile \
3845 tests/certs/scripts/Makefile \
3846 tests/data/Makefile \
3847 tests/server/Makefile \
3848 tests/libtest/Makefile \
3849 tests/unit/Makefile \
3851 packages/Win32/Makefile \
3852 packages/Win32/cygwin/Makefile \
3853 packages/Linux/Makefile \
3854 packages/Linux/RPM/Makefile \
3855 packages/Linux/RPM/curl.spec \
3856 packages/Linux/RPM/curl-ssl.spec \
3857 packages/Solaris/Makefile \
3858 packages/EPM/curl.list \
3859 packages/EPM/Makefile \
3860 packages/vms/Makefile \
3861 packages/AIX/Makefile \
3862 packages/AIX/RPM/Makefile \
3863 packages/AIX/RPM/curl.spec \
3869 CURL_GENERATE_CONFIGUREHELP_PM
3871 XC_AMEND_DISTCLEAN([lib src tests/unit tests/server tests/libtest docs/examples])
3873 AC_MSG_NOTICE([Configured to build curl/libcurl:
3875 curl version: ${CURLVERSION}
3877 Install prefix: ${prefix}
3879 SSL support: ${curl_ssl_msg}
3880 SSH support: ${curl_ssh_msg}
3881 zlib support: ${curl_zlib_msg}
3882 GSS-API support: ${curl_gss_msg}
3883 TLS-SRP support: ${curl_tls_srp_msg}
3884 resolver: ${curl_res_msg}
3885 IPv6 support: ${curl_ipv6_msg}
3886 Unix sockets support: ${curl_unix_sockets_msg}
3887 IDN support: ${curl_idn_msg}
3888 Build libcurl: Shared=${enable_shared}, Static=${enable_static}
3889 Built-in manual: ${curl_manual_msg}
3890 --libcurl option: ${curl_libcurl_msg}
3891 Verbose errors: ${curl_verbose_msg}
3892 SSPI support: ${curl_sspi_msg}
3893 ca cert bundle: ${ca}${ca_warning}
3894 ca cert path: ${capath}${capath_warning}
3895 ca fallback: ${with_ca_fallback}
3896 LDAP support: ${curl_ldap_msg}
3897 LDAPS support: ${curl_ldaps_msg}
3898 RTSP support: ${curl_rtsp_msg}
3899 RTMP support: ${curl_rtmp_msg}
3900 metalink support: ${curl_mtlnk_msg}
3901 PSL support: ${curl_psl_msg}
3902 HTTP2 support: ${curl_h2_msg}
3903 Protocols: ${SUPPORT_PROTOCOLS}
3906 if test "x$soname_bump" = "xyes"; then
3909 SONAME bump: yes - WARNING: this library will be built with the SONAME
3910 number bumped due to (a detected) ABI breakage.
3911 See lib/README.curl_off_t for details on this.