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-"$curl_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 curl_cv_header_winsock_h="no"
352 curl_cv_header_winsock2_h="no"
353 curl_cv_header_ws2tcpip_h="no"
354 curl_cv_header_winldap_h="no"
355 curl_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 "$curl_cv_header_windows_h" = "yes"; then
746 if test "$curl_cv_header_winsock_h" = "yes"; then
749 winsock_LIB="-lwinsock"
752 winsock_LIB="-lwsock32"
756 if test "$curl_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()])
854 CURL_CHECK_LIBS_CONNECT
856 CURL_NETWORK_LIBS=$LIBS
858 dnl **********************************************************************
859 dnl In case that function clock_gettime with monotonic timer is available,
860 dnl check for additional required libraries.
861 dnl **********************************************************************
862 CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC
864 dnl **********************************************************************
865 dnl The preceding library checks are all potentially useful for test
866 dnl servers and libtest cases which require networking and clock_gettime
867 dnl support. Save the list of required libraries at this point for use
868 dnl while linking those test servers and programs.
869 dnl **********************************************************************
870 CURL_NETWORK_AND_TIME_LIBS=$LIBS
872 dnl **********************************************************************
873 dnl Check for the presence of ZLIB libraries and headers
874 dnl **********************************************************************
876 dnl Check for & handle argument to --with-zlib.
878 clean_CPPFLAGS=$CPPFLAGS
879 clean_LDFLAGS=$LDFLAGS
883 AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])
884 AC_HELP_STRING([--without-zlib],[disable use of zlib]),
885 [OPT_ZLIB="$withval"])
887 if test "$OPT_ZLIB" = "no" ; then
888 AC_MSG_WARN([zlib disabled])
890 if test "$OPT_ZLIB" = "yes" ; then
894 CURL_CHECK_PKGCONFIG(zlib)
896 if test "$PKGCONFIG" != "no" ; then
897 LIBS="`$PKGCONFIG --libs-only-l zlib` $LIBS"
898 LDFLAGS="`$PKGCONFIG --libs-only-L zlib` $LDFLAGS"
899 CPPFLAGS="`$PKGCONFIG --cflags-only-I zlib` $CPPFLAGS"
904 if test -z "$OPT_ZLIB" ; then
906 if test -z "$HAVE_LIBZ"; then
908 dnl Check for the lib without setting any new path, since many
909 dnl people have it in the default path
911 AC_CHECK_LIB(z, inflateEnd,
912 dnl libz found, set the variable
915 dnl if no lib found, try /usr/local
916 [OPT_ZLIB="/usr/local"])
920 dnl Add a nonempty path to the compiler flags
921 if test -n "$OPT_ZLIB"; then
922 CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
923 LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
926 AC_CHECK_HEADER(zlib.h,
930 dnl if the lib wasn't found already, try again with the new paths
931 if test "$HAVE_LIBZ" != "1"; then
932 AC_CHECK_LIB(z, gzread,
934 dnl the lib was found!
938 [ CPPFLAGS=$clean_CPPFLAGS
939 LDFLAGS=$clean_LDFLAGS])
943 dnl zlib.h was not found, restore the flags
944 CPPFLAGS=$clean_CPPFLAGS
945 LDFLAGS=$clean_LDFLAGS]
948 if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
950 AC_MSG_WARN([configure found only the libz lib, not the header file!])
952 CPPFLAGS=$clean_CPPFLAGS
953 LDFLAGS=$clean_LDFLAGS
955 elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
957 AC_MSG_WARN([configure found only the libz header file, not the lib!])
958 CPPFLAGS=$clean_CPPFLAGS
959 LDFLAGS=$clean_LDFLAGS
961 elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1"
963 dnl both header and lib were found!
965 AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file])
966 AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available])
969 LIBS="-lz $clean_LIBS"
971 dnl replace 'HAVE_LIBZ' in the automake makefile.ams
973 AC_MSG_NOTICE([found both libz and libz.h header])
974 curl_zlib_msg="enabled"
978 dnl set variable for use in automakefile(s)
979 AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
982 dnl **********************************************************************
984 dnl **********************************************************************
987 AC_ARG_WITH(ldap-lib,
988 AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of ldap lib file]),
989 [LDAPLIBNAME="$withval"])
992 AC_ARG_WITH(lber-lib,
993 AC_HELP_STRING([--with-lber-lib=libname],[Specify name of lber lib file]),
994 [LBERLIBNAME="$withval"])
996 if test x$CURL_DISABLE_LDAP != x1 ; then
998 CURL_CHECK_HEADER_LBER
999 CURL_CHECK_HEADER_LDAP
1000 CURL_CHECK_HEADER_LDAPSSL
1001 CURL_CHECK_HEADER_LDAP_SSL
1003 if test -z "$LDAPLIBNAME" ; then
1004 if test "$curl_cv_native_windows" = "yes"; then
1005 dnl Windows uses a single and unique LDAP library name
1006 LDAPLIBNAME="wldap32"
1011 if test "$LDAPLIBNAME" ; then
1012 AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [
1013 AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled])
1014 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
1015 AC_SUBST(CURL_DISABLE_LDAP, [1])
1016 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
1017 AC_SUBST(CURL_DISABLE_LDAPS, [1])])
1019 dnl Try to find the right ldap libraries for this system
1020 CURL_CHECK_LIBS_LDAP
1021 case X-"$curl_cv_ldap_LIBS" in
1023 AC_MSG_WARN([Cannot find libraries for LDAP support: LDAP disabled])
1024 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
1025 AC_SUBST(CURL_DISABLE_LDAP, [1])
1026 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
1027 AC_SUBST(CURL_DISABLE_LDAPS, [1])
1033 if test x$CURL_DISABLE_LDAP != x1 ; then
1035 if test "$LBERLIBNAME" ; then
1036 dnl If name is "no" then don't define this library at all
1037 dnl (it's only needed if libldap.so's dependencies are broken).
1038 if test "$LBERLIBNAME" != "no" ; then
1039 AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [
1040 AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled])
1041 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
1042 AC_SUBST(CURL_DISABLE_LDAP, [1])
1043 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
1044 AC_SUBST(CURL_DISABLE_LDAPS, [1])])
1049 if test x$CURL_DISABLE_LDAP != x1 ; then
1050 AC_CHECK_FUNCS([ldap_url_parse ldap_init_fd])
1052 if test "$LDAPLIBNAME" = "wldap32"; then
1053 curl_ldap_msg="enabled (winldap)"
1054 AC_DEFINE(USE_WIN32_LDAP, 1, [Use Windows LDAP implementation])
1056 curl_ldap_msg="enabled (OpenLDAP)"
1057 if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then
1058 AC_DEFINE(USE_OPENLDAP, 1, [Use OpenLDAP-specific code])
1059 AC_SUBST(USE_OPENLDAP, [1])
1064 if test x$CURL_DISABLE_LDAPS != x1 ; then
1065 curl_ldaps_msg="enabled"
1068 dnl **********************************************************************
1070 dnl **********************************************************************
1072 AC_MSG_CHECKING([whether to enable IPv6])
1074 AC_HELP_STRING([--enable-ipv6],[Enable IPv6 (with IPv4) support])
1075 AC_HELP_STRING([--disable-ipv6],[Disable IPv6 support]),
1076 [ case "$enableval" in
1081 *) AC_MSG_RESULT(yes)
1086 AC_TRY_RUN([ /* is AF_INET6 available? */
1087 #include <sys/types.h>
1088 #ifdef HAVE_WINSOCK2_H
1089 #include <winsock2.h>
1091 #include <sys/socket.h>
1093 #include <stdlib.h> /* for exit() */
1096 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1110 if test "$ipv6" = "yes"; then
1111 curl_ipv6_msg="enabled"
1114 # Check if struct sockaddr_in6 have sin6_scope_id member
1115 if test "$ipv6" = yes; then
1116 AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
1118 #include <sys/types.h>
1119 #ifdef HAVE_WINSOCK2_H
1120 #include <winsock2.h>
1121 #include <ws2tcpip.h>
1123 #include <netinet/in.h>
1125 struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
1126 if test "$have_sin6_scope_id" = yes; then
1127 AC_MSG_RESULT([yes])
1128 AC_DEFINE(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID, 1, [Define to 1 if struct sockaddr_in6 has the sin6_scope_id member])
1134 dnl **********************************************************************
1135 dnl Check if the operating system allows programs to write to their own argv[]
1136 dnl **********************************************************************
1138 AC_MSG_CHECKING([if argv can be written to])
1141 int main(int argc, char ** argv) {
1143 return (argv[0][0] == ' ')?0:1;
1147 curl_cv_writable_argv=yes
1149 curl_cv_writable_argv=no
1151 curl_cv_writable_argv=cross
1153 case $curl_cv_writable_argv in
1155 AC_DEFINE(HAVE_WRITABLE_ARGV, 1, [Define this symbol if your OS supports changing the contents of argv])
1163 AC_MSG_WARN([the previous check could not be made default was used])
1167 dnl **********************************************************************
1168 dnl Check for GSS-API libraries
1169 dnl **********************************************************************
1171 dnl check for GSS-API stuff in the /usr as default
1174 AC_ARG_WITH(gssapi-includes,
1175 AC_HELP_STRING([--with-gssapi-includes=DIR],
1176 [Specify location of GSS-API headers]),
1177 [ GSSAPI_INCS="-I$withval"
1181 AC_ARG_WITH(gssapi-libs,
1182 AC_HELP_STRING([--with-gssapi-libs=DIR],
1183 [Specify location of GSS-API libs]),
1184 [ GSSAPI_LIB_DIR="-L$withval"
1189 AC_HELP_STRING([--with-gssapi=DIR],
1190 [Where to look for GSS-API]), [
1191 GSSAPI_ROOT="$withval"
1192 if test x"$GSSAPI_ROOT" != xno; then
1194 if test x"$GSSAPI_ROOT" = xyes; then
1195 dnl if yes, then use default root
1201 : ${KRB5CONFIG:="$GSSAPI_ROOT/bin/krb5-config"}
1203 save_CPPFLAGS="$CPPFLAGS"
1204 AC_MSG_CHECKING([if GSS-API support is requested])
1205 if test x"$want_gss" = xyes; then
1208 if test -z "$GSSAPI_INCS"; then
1209 if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
1210 GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi`
1211 elif test -f "$KRB5CONFIG"; then
1212 GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi`
1213 elif test "$GSSAPI_ROOT" != "yes"; then
1214 GSSAPI_INCS="-I$GSSAPI_ROOT/include"
1218 CPPFLAGS="$CPPFLAGS $GSSAPI_INCS"
1220 AC_CHECK_HEADER(gss.h,
1222 dnl found in the given dirs
1223 AC_DEFINE(HAVE_GSSGNU, 1, [if you have GNU GSS])
1227 dnl not found, check Heimdal or MIT
1228 AC_CHECK_HEADERS([gssapi/gssapi.h], [], [not_mit=1])
1230 [gssapi/gssapi_generic.h gssapi/gssapi_krb5.h],
1235 #ifdef HAVE_GSSAPI_GSSAPI_H
1236 #include <gssapi/gssapi.h>
1239 if test "x$not_mit" = "x1"; then
1240 dnl MIT not found, check for Heimdal
1241 AC_CHECK_HEADER(gssapi.h,
1244 AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have Heimdal])
1247 dnl no header found, disabling GSS
1249 AC_MSG_WARN(disabling GSS-API support since no header files were found)
1254 AC_DEFINE(HAVE_GSSMIT, 1, [if you have MIT Kerberos])
1255 dnl check if we have a really old MIT Kerberos version (<= 1.2)
1256 AC_MSG_CHECKING([if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE])
1259 #include <gssapi/gssapi.h>
1260 #include <gssapi/gssapi_generic.h>
1261 #include <gssapi/gssapi_krb5.h>
1266 GSS_C_NT_HOSTBASED_SERVICE,
1270 AC_MSG_RESULT([yes])
1273 AC_DEFINE(HAVE_OLD_GSSMIT, 1,
1274 [if you have an old MIT Kerberos version, lacking GSS_C_NT_HOSTBASED_SERVICE])
1282 if test x"$want_gss" = xyes; then
1283 AC_DEFINE(HAVE_GSSAPI, 1, [if you have GSS-API libraries])
1285 curl_gss_msg="enabled (MIT Kerberos/Heimdal)"
1287 if test -n "$gnu_gss"; then
1288 curl_gss_msg="enabled (GNU GSS)"
1289 LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1291 elif test -z "$GSSAPI_LIB_DIR"; then
1294 LIBS="-lgssapi_krb5 -lresolv $LIBS"
1297 if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
1298 dnl krb5-config doesn't have --libs-only-L or similar, put everything
1300 gss_libs=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --libs gssapi`
1301 LIBS="$gss_libs $LIBS"
1302 elif test -f "$KRB5CONFIG"; then
1303 dnl krb5-config doesn't have --libs-only-L or similar, put everything
1305 gss_libs=`$KRB5CONFIG --libs gssapi`
1306 LIBS="$gss_libs $LIBS"
1313 gss_libname="gssapi"
1317 if test "$GSSAPI_ROOT" != "yes"; then
1318 LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff"
1319 LIBS="-l$gss_libname $LIBS"
1321 LIBS="-l$gss_libname $LIBS"
1327 LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1333 LIBS="-lgssapi $LIBS"
1338 CPPFLAGS="$save_CPPFLAGS"
1341 dnl -------------------------------------------------
1342 dnl check winssl option before other SSL libraries
1343 dnl -------------------------------------------------
1346 AC_ARG_WITH(winssl,dnl
1347 AC_HELP_STRING([--with-winssl],[enable Windows native SSL/TLS])
1348 AC_HELP_STRING([--without-winssl], [disable Windows native SSL/TLS]),
1349 OPT_WINSSL=$withval)
1351 AC_MSG_CHECKING([whether to enable Windows native SSL/TLS (Windows native builds only)])
1352 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1353 if test "x$OPT_WINSSL" != "xno" &&
1354 test "x$curl_cv_native_windows" = "xyes"; then
1356 AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support])
1357 AC_SUBST(USE_SCHANNEL, [1])
1358 curl_ssl_msg="enabled (Windows-native)"
1360 # --with-winssl implies --enable-sspi
1361 AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
1362 AC_SUBST(USE_WINDOWS_SSPI, [1])
1363 curl_sspi_msg="enabled"
1364 LIBS="-lcrypt32 $LIBS"
1373 AC_ARG_WITH(darwinssl,dnl
1374 AC_HELP_STRING([--with-darwinssl],[enable iOS/Mac OS X native SSL/TLS])
1375 AC_HELP_STRING([--without-darwinssl], [disable iOS/Mac OS X native SSL/TLS]),
1376 OPT_DARWINSSL=$withval)
1378 AC_MSG_CHECKING([whether to enable iOS/Mac OS X native SSL/TLS])
1379 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1380 if test "x$OPT_DARWINSSL" != "xno" &&
1381 test -d "/System/Library/Frameworks/Security.framework"; then
1383 AC_DEFINE(USE_DARWINSSL, 1, [to enable iOS/Mac OS X native SSL/TLS support])
1384 AC_SUBST(USE_DARWINSSL, [1])
1385 curl_ssl_msg="enabled (iOS/Mac OS X-native)"
1387 LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
1395 dnl **********************************************************************
1396 dnl Check for the presence of SSL libraries and headers
1397 dnl **********************************************************************
1399 dnl Default to compiler & linker defaults for SSL files & libraries.
1401 dnl Default to no CA bundle
1404 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])
1405 AC_HELP_STRING([--without-ssl], [disable OpenSSL]),
1408 if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
1409 dnl backup the pre-ssl variables
1410 CLEANLDFLAGS="$LDFLAGS"
1411 CLEANCPPFLAGS="$CPPFLAGS"
1414 dnl This is for Msys/Mingw
1416 *-*-msys* | *-*-mingw*)
1417 AC_MSG_CHECKING([for gdi32])
1418 my_ac_save_LIBS=$LIBS
1419 LIBS="-lgdi32 $LIBS"
1420 AC_TRY_LINK([#include <windef.h>
1421 #include <wingdi.h>],
1424 AC_MSG_RESULT([yes])],
1425 [ dnl failed, restore LIBS
1426 LIBS=$my_ac_save_LIBS
1434 dnl --with-ssl (without path) used
1435 if test x$cross_compiling != xyes; then
1436 dnl only do pkg-config magic when not cross-compiling
1439 PREFIX_OPENSSL=/usr/local/ssl
1440 LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1443 dnl no --with-ssl option given, just check default places
1444 if test x$cross_compiling != xyes; then
1445 dnl only do pkg-config magic when not cross-compiling
1451 dnl check the given --with-ssl spot
1453 PREFIX_OPENSSL=$OPT_SSL
1455 dnl Try pkg-config even when cross-compiling. Since we
1456 dnl specify PKG_CONFIG_LIBDIR we're only looking where
1457 dnl the user told us to look
1458 OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig"
1459 AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
1460 if test -f "$OPENSSL_PCDIR/openssl.pc"; then
1464 dnl in case pkg-config comes up empty, use what we got
1466 LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1467 if test "$PREFIX_OPENSSL" != "/usr" ; then
1468 SSL_LDFLAGS="-L$LIB_OPENSSL"
1469 SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include"
1471 SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl"
1475 if test "$PKGTEST" = "yes"; then
1477 CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR])
1479 if test "$PKGCONFIG" != "no" ; then
1480 SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1481 $PKGCONFIG --libs-only-l openssl 2>/dev/null`
1483 SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1484 $PKGCONFIG --libs-only-L openssl 2>/dev/null`
1486 SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1487 $PKGCONFIG --cflags-only-I openssl 2>/dev/null`
1490 AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
1491 AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
1492 AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
1494 LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'`
1496 dnl use the values pkg-config reported. This is here
1497 dnl instead of below with CPPFLAGS and LDFLAGS because we only
1498 dnl learn about this via pkg-config. If we only have
1499 dnl the argument to --with-ssl we don't know what
1500 dnl additional libs may be necessary. Hope that we
1502 LIBS="$SSL_LIBS $LIBS"
1506 dnl finally, set flags to use SSL
1507 CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
1508 LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
1510 AC_CHECK_LIB(crypto, HMAC_Update,[
1512 LIBS="-lcrypto $LIBS"
1514 LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL"
1515 CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include"
1516 AC_CHECK_LIB(crypto, HMAC_Init_ex,[
1518 LIBS="-lcrypto $LIBS"], [
1519 LDFLAGS="$CLEANLDFLAGS"
1520 CPPFLAGS="$CLEANCPPFLAGS"
1526 if test X"$HAVECRYPTO" = X"yes"; then
1527 AC_MSG_CHECKING([OpenSSL linking without -ldl])
1531 #include <openssl/evp.h>
1534 SSLeay_add_all_algorithms();
1542 AC_MSG_CHECKING([OpenSSL linking with -ldl])
1546 #include <openssl/evp.h>
1549 SSLeay_add_all_algorithms();
1553 LIBS="$saved_libs -ldl"
1566 if test X"$HAVECRYPTO" = X"yes"; then
1567 dnl This is only reasonable to do if crypto actually is there: check for
1568 dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
1570 AC_CHECK_LIB(ssl, SSL_connect)
1572 if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1573 dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
1574 AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
1576 LIBS="-lRSAglue -lrsaref $LIBS"
1577 AC_CHECK_LIB(ssl, SSL_connect)
1578 if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1579 dnl still no SSL_connect
1588 dnl Have the libraries--check for OpenSSL headers
1589 AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
1590 openssl/pem.h openssl/ssl.h openssl/err.h,
1591 curl_ssl_msg="enabled (OpenSSL)"
1593 AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
1595 if test $ac_cv_header_openssl_x509_h = no; then
1596 dnl we don't use the "action" part of the AC_CHECK_HEADERS macro
1597 dnl since 'err.h' might in fact find a krb4 header with the same
1599 AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
1601 if test $ac_cv_header_x509_h = yes &&
1602 test $ac_cv_header_crypto_h = yes &&
1603 test $ac_cv_header_ssl_h = yes; then
1605 curl_ssl_msg="enabled (OpenSSL)"
1611 if test X"$OPENSSL_ENABLED" = X"1"; then
1612 dnl is there a pkcs12.h header present?
1613 AC_CHECK_HEADERS(openssl/pkcs12.h)
1618 if test X"$OPT_SSL" != Xoff &&
1619 test "$OPENSSL_ENABLED" != "1"; then
1620 AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!])
1624 if test X"$OPENSSL_ENABLED" = X"1"; then
1625 dnl If the ENGINE library seems to be around, check for the OpenSSL engine
1626 dnl stuff, it is kind of "separated" from the main SSL check
1627 AC_CHECK_FUNC(ENGINE_init,
1629 AC_CHECK_HEADERS(openssl/engine.h)
1630 AC_CHECK_FUNCS( ENGINE_load_builtin_engines )
1633 dnl These can only exist if OpenSSL exists
1634 dnl Older versions of Cyassl (some time before 2.9.4) don't have
1635 dnl SSL_get_shutdown (but this check won't actually detect it there
1636 dnl as it's a macro that needs the header files be included)
1638 AC_CHECK_FUNCS( RAND_status \
1642 CRYPTO_cleanup_all_ex_data \
1644 SSLv2_client_method )
1646 AC_MSG_CHECKING([for BoringSSL])
1649 #include <openssl/base.h>
1651 #ifndef OPENSSL_IS_BORINGSSL
1652 #error not boringssl
1656 AC_MSG_RESULT([yes])
1657 AC_DEFINE_UNQUOTED(HAVE_BORINGSSL, 1,
1658 [Define to 1 if using BoringSSL.])
1659 curl_ssl_msg="enabled (BoringSSL)"
1664 AC_MSG_CHECKING([for libressl])
1667 #include <openssl/opensslv.h>
1669 int dummy = LIBRESSL_VERSION_NUMBER;
1672 AC_MSG_RESULT([yes])
1673 AC_DEFINE_UNQUOTED(HAVE_LIBRESSL, 1,
1674 [Define to 1 if using libressl.])
1675 curl_ssl_msg="enabled (libressl)"
1681 if test "$OPENSSL_ENABLED" = "1"; then
1682 if test -n "$LIB_OPENSSL"; then
1683 dnl when the ssl shared libs were found in a path that the run-time
1684 dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
1685 dnl to prevent further configure tests to fail due to this
1686 if test "x$cross_compiling" != "xyes"; then
1687 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL"
1688 export LD_LIBRARY_PATH
1689 AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH])
1692 CURL_CHECK_OPENSSL_API
1697 dnl **********************************************************************
1698 dnl Check for the random seed preferences
1699 dnl **********************************************************************
1701 if test X"$OPENSSL_ENABLED" = X"1"; then
1702 AC_ARG_WITH(egd-socket,
1703 AC_HELP_STRING([--with-egd-socket=FILE],
1704 [Entropy Gathering Daemon socket pathname]),
1705 [ EGD_SOCKET="$withval" ]
1707 if test -n "$EGD_SOCKET" ; then
1708 AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET",
1709 [your Entropy Gathering Daemon socket pathname] )
1712 dnl Check for user-specified random device
1714 AC_HELP_STRING([--with-random=FILE],
1715 [read randomness from FILE (default=/dev/urandom)]),
1716 [ RANDOM_FILE="$withval" ],
1718 if test x$cross_compiling != xyes; then
1719 dnl Check for random device
1720 AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
1722 AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling])
1726 if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
1727 AC_SUBST(RANDOM_FILE)
1728 AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE",
1729 [a suitable file to read random data from])
1734 dnl We require OpenSSL with SRP support.
1736 if test "$OPENSSL_ENABLED" = "1"; then
1737 AC_CHECK_LIB(crypto, SRP_Calc_client_key,
1739 AC_DEFINE(HAVE_OPENSSL_SRP, 1, [if you have the function SRP_Calc_client_key])
1740 AC_SUBST(HAVE_OPENSSL_SRP, [1])
1744 dnl ----------------------------------------------------
1745 dnl check for GnuTLS
1746 dnl ----------------------------------------------------
1748 dnl Default to compiler & linker defaults for GnuTLS files & libraries.
1751 AC_ARG_WITH(gnutls,dnl
1752 AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root])
1753 AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
1754 OPT_GNUTLS=$withval)
1756 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1758 if test X"$OPT_GNUTLS" != Xno; then
1766 if test "x$OPT_GNUTLS" = "xyes"; then
1767 dnl this is with no partiular path given
1768 CURL_CHECK_PKGCONFIG(gnutls)
1770 if test "$PKGCONFIG" != "no" ; then
1771 addlib=`$PKGCONFIG --libs-only-l gnutls`
1772 addld=`$PKGCONFIG --libs-only-L gnutls`
1773 addcflags=`$PKGCONFIG --cflags-only-I gnutls`
1774 version=`$PKGCONFIG --modversion gnutls`
1775 gtlslib=`echo $addld | $SED -e 's/-L//'`
1777 dnl without pkg-config, we try libgnutls-config as that was how it
1779 check=`libgnutls-config --version 2>/dev/null`
1780 if test -n "$check"; then
1781 addlib=`libgnutls-config --libs`
1782 addcflags=`libgnutls-config --cflags`
1783 version=`libgnutls-config --version`
1784 gtlslib=`libgnutls-config --prefix`/lib$libsuff
1788 dnl this is with a given path, first check if there's a libgnutls-config
1789 dnl there and if not, make an educated guess
1790 cfg=$OPT_GNUTLS/bin/libgnutls-config
1791 check=`$cfg --version 2>/dev/null`
1792 if test -n "$check"; then
1793 addlib=`$cfg --libs`
1794 addcflags=`$cfg --cflags`
1795 version=`$cfg --version`
1796 gtlslib=`$cfg --prefix`/lib$libsuff
1798 dnl without pkg-config and libgnutls-config, we guess a lot!
1800 addld=-L$OPT_GNUTLS/lib$libsuff
1801 addcflags=-I$OPT_GNUTLS/include
1802 version="" # we just don't know
1803 gtlslib=$OPT_GNUTLS/lib$libsuff
1807 if test -z "$version"; then
1808 dnl lots of efforts, still no go
1812 if test -n "$addlib"; then
1815 CLEANCPPFLAGS="$CPPFLAGS"
1816 CLEANLDFLAGS="$LDFLAGS"
1818 LIBS="$addlib $LIBS"
1819 LDFLAGS="$LDFLAGS $addld"
1820 if test "$addcflags" != "-I/usr/include"; then
1821 CPPFLAGS="$CPPFLAGS $addcflags"
1824 AC_CHECK_LIB(gnutls, gnutls_check_version,
1826 AC_DEFINE(USE_GNUTLS, 1, [if GnuTLS is enabled])
1827 AC_SUBST(USE_GNUTLS, [1])
1830 curl_ssl_msg="enabled (GnuTLS)"
1834 CPPFLAGS="$CLEANCPPFLAGS"
1837 if test "x$USE_GNUTLS" = "xyes"; then
1838 AC_MSG_NOTICE([detected GnuTLS version $version])
1840 if test -n "$gtlslib"; then
1841 dnl when shared libs were found in a path that the run-time
1842 dnl linker doesn't search through, we need to add it to
1843 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1845 if test "x$cross_compiling" != "xyes"; then
1846 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
1847 export LD_LIBRARY_PATH
1848 AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
1851 AC_CHECK_FUNCS(gnutls_certificate_set_x509_key_file2)
1856 fi dnl GNUTLS not disabled
1861 dnl Check which crypto backend GnuTLS uses
1864 if test "$GNUTLS_ENABLED" = "1"; then
1866 # First check if we can detect either crypto library via transitive linking
1867 AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1868 if test "$USE_GNUTLS_NETTLE" = ""; then
1869 AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1871 # If not, try linking directly to both of them to see if they are available
1872 if test "$USE_GNUTLS_NETTLE" = ""; then
1873 AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1875 if test "$USE_GNUTLS_NETTLE" = ""; then
1876 AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1878 if test "$USE_GNUTLS_NETTLE" = ""; then
1879 AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found])
1881 if test "$USE_GNUTLS_NETTLE" = "1"; then
1882 AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend])
1883 AC_SUBST(USE_GNUTLS_NETTLE, [1])
1884 LIBS="-lnettle $LIBS"
1886 LIBS="-lgcrypt $LIBS"
1891 dnl We require GnuTLS with SRP support.
1893 if test "$GNUTLS_ENABLED" = "1"; then
1894 AC_CHECK_LIB(gnutls, gnutls_srp_verifier,
1896 AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier])
1897 AC_SUBST(HAVE_GNUTLS_SRP, [1])
1901 dnl ----------------------------------------------------
1902 dnl check for PolarSSL
1903 dnl ----------------------------------------------------
1905 dnl Default to compiler & linker defaults for PolarSSL files & libraries.
1910 AC_ARG_WITH(polarssl,dnl
1911 AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root])
1912 AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]),
1913 OPT_POLARSSL=$withval)
1915 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1917 if test X"$OPT_POLARSSL" != Xno; then
1919 if test "$OPT_POLARSSL" = "yes"; then
1923 if test -z "$OPT_POLARSSL" ; then
1924 dnl check for lib first without setting any new path
1926 AC_CHECK_LIB(polarssl, havege_init,
1927 dnl libpolarssl found, set the variable
1929 AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1930 AC_SUBST(USE_POLARSSL, [1])
1933 curl_ssl_msg="enabled (PolarSSL)"
1942 if test "x$USE_POLARSSL" != "xyes"; then
1943 dnl add the path and test again
1944 addld=-L$OPT_POLARSSL/lib$libsuff
1945 addcflags=-I$OPT_POLARSSL/include
1946 polarssllib=$OPT_POLARSSL/lib$libsuff
1948 LDFLAGS="$LDFLAGS $addld"
1949 if test "$addcflags" != "-I/usr/include"; then
1950 CPPFLAGS="$CPPFLAGS $addcflags"
1953 AC_CHECK_LIB(polarssl, ssl_init,
1955 AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1956 AC_SUBST(USE_POLARSSL, [1])
1959 curl_ssl_msg="enabled (PolarSSL)"
1967 if test "x$USE_POLARSSL" = "xyes"; then
1968 AC_MSG_NOTICE([detected PolarSSL])
1970 LIBS="-lpolarssl $LIBS"
1972 if test -n "$polarssllib"; then
1973 dnl when shared libs were found in a path that the run-time
1974 dnl linker doesn't search through, we need to add it to
1975 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1977 if test "x$cross_compiling" != "xyes"; then
1978 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib"
1979 export LD_LIBRARY_PATH
1980 AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH])
1985 fi dnl PolarSSL not disabled
1989 dnl ----------------------------------------------------
1990 dnl check for mbedTLS
1991 dnl ----------------------------------------------------
1997 AC_ARG_WITH(mbedtls,dnl
1998 AC_HELP_STRING([--with-mbedtls=PATH],[where to look for mbedTLS, PATH points to the installation root])
1999 AC_HELP_STRING([--without-mbedtls], [disable mbedTLS detection]),
2000 OPT_MBEDTLS=$withval)
2002 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2004 if test X"$OPT_MBEDTLS" != Xno; then
2006 if test "$OPT_MBEDTLS" = "yes"; then
2010 if test -z "$OPT_MBEDTLS" ; then
2011 dnl check for lib first without setting any new path
2013 AC_CHECK_LIB(mbedtls, mbedtls_havege_init,
2014 dnl libmbedtls found, set the variable
2016 AC_DEFINE(USE_MBEDTLS, 1, [if mbedTLS is enabled])
2017 AC_SUBST(USE_MBEDTLS, [1])
2020 curl_ssl_msg="enabled (mbedTLS)"
2021 ], [], -lmbedx509 -lmbedcrypto)
2029 if test "x$USE_MBEDTLS" != "xyes"; then
2030 dnl add the path and test again
2031 addld=-L$OPT_MBEDTLS/lib$libsuff
2032 addcflags=-I$OPT_MBEDTLS/include
2033 mbedtlslib=$OPT_MBEDTLS/lib$libsuff
2035 LDFLAGS="$LDFLAGS $addld"
2036 if test "$addcflags" != "-I/usr/include"; then
2037 CPPFLAGS="$CPPFLAGS $addcflags"
2040 AC_CHECK_LIB(mbedtls, mbedtls_ssl_init,
2042 AC_DEFINE(USE_MBEDTLS, 1, [if mbedTLS is enabled])
2043 AC_SUBST(USE_MBEDTLS, [1])
2046 curl_ssl_msg="enabled (mbedTLS)"
2051 ], -lmbedx509 -lmbedcrypto)
2054 if test "x$USE_MBEDTLS" = "xyes"; then
2055 AC_MSG_NOTICE([detected mbedTLS])
2057 LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS"
2059 if test -n "$mbedtlslib"; then
2060 dnl when shared libs were found in a path that the run-time
2061 dnl linker doesn't search through, we need to add it to
2062 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2064 if test "x$cross_compiling" != "xyes"; then
2065 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$mbedtlslib"
2066 export LD_LIBRARY_PATH
2067 AC_MSG_NOTICE([Added $mbedtlslib to LD_LIBRARY_PATH])
2072 fi dnl mbedTLS not disabled
2076 dnl ----------------------------------------------------
2077 dnl check for CyaSSL
2078 dnl ----------------------------------------------------
2080 dnl Default to compiler & linker defaults for CyaSSL files & libraries.
2085 AC_ARG_WITH(cyassl,dnl
2086 AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
2087 AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
2088 OPT_CYASSL=$withval)
2090 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2092 if test X"$OPT_CYASSL" != Xno; then
2094 if test "$OPT_CYASSL" = "yes"; then
2098 dnl This should be reworked to use pkg-config instead
2100 cyassllibname=cyassl
2102 if test -z "$OPT_CYASSL" ; then
2103 dnl check for lib in system default first
2105 AC_CHECK_LIB(cyassl, CyaSSL_Init,
2106 dnl libcyassl found, set the variable
2108 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2109 AC_SUBST(USE_CYASSL, [1])
2112 curl_ssl_msg="enabled (CyaSSL)"
2121 if test "x$USE_CYASSL" != "xyes"; then
2122 dnl add the path and test again
2123 addld=-L$OPT_CYASSL/lib$libsuff
2124 addcflags=-I$OPT_CYASSL/include
2125 cyassllib=$OPT_CYASSL/lib$libsuff
2127 LDFLAGS="$LDFLAGS $addld"
2128 if test "$addcflags" != "-I/usr/include"; then
2129 CPPFLAGS="$CPPFLAGS $addcflags"
2132 AC_CHECK_LIB(cyassl, CyaSSL_Init,
2134 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2135 AC_SUBST(USE_CYASSL, [1])
2138 curl_ssl_msg="enabled (CyaSSL)"
2151 if test "x$USE_CYASSL" != "xyes"; then
2152 dnl libcyassl renamed to libwolfssl as of 3.4.0
2153 addld=-L$OPT_CYASSL/lib$libsuff
2154 addcflags=-I$OPT_CYASSL/include
2155 cyassllib=$OPT_CYASSL/lib$libsuff
2157 LDFLAGS="$LDFLAGS $addld"
2158 if test "$addcflags" != "-I/usr/include"; then
2159 CPPFLAGS="$CPPFLAGS $addcflags"
2162 cyassllibname=wolfssl
2163 my_ac_save_LIBS="$LIBS"
2164 LIBS="-l$cyassllibname -lm $LIBS"
2166 AC_MSG_CHECKING([for CyaSSL_Init in -lwolfssl])
2169 /* These aren't needed for detection and confuse WolfSSL.
2170 They are set up properly later if it is detected. */
2172 #undef SIZEOF_LONG_LONG
2173 #include <cyassl/ssl.h>
2175 return CyaSSL_Init();
2179 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL/WolfSSL is enabled])
2180 AC_SUBST(USE_CYASSL, [1])
2183 curl_ssl_msg="enabled (WolfSSL)"
2191 LIBS="$my_ac_save_LIBS"
2194 if test "x$USE_CYASSL" = "xyes"; then
2195 AC_MSG_NOTICE([detected $cyassllibname])
2197 dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
2198 AC_CHECK_SIZEOF(long long)
2200 dnl Versions since at least 2.6.0 may have options.h
2201 AC_CHECK_HEADERS(cyassl/options.h)
2203 dnl Versions since at least 2.9.4 renamed error.h to error-ssl.h
2204 AC_CHECK_HEADERS(cyassl/error-ssl.h)
2206 LIBS="-l$cyassllibname -lm $LIBS"
2208 if test "x$cyassllibname" = "xwolfssl"; then
2209 dnl Recent WolfSSL versions build without SSLv3 by default
2210 dnl WolfSSL needs configure --enable-opensslextra to have *get_peer*
2211 AC_CHECK_FUNCS(wolfSSLv3_client_method \
2212 wolfSSL_CTX_UseSupportedCurve \
2213 wolfSSL_get_peer_certificate \
2216 dnl Cyassl needs configure --enable-opensslextra to have *get_peer*
2217 AC_CHECK_FUNCS(CyaSSL_CTX_UseSupportedCurve \
2218 CyaSSL_get_peer_certificate)
2221 if test -n "$cyassllib"; then
2222 dnl when shared libs were found in a path that the run-time
2223 dnl linker doesn't search through, we need to add it to
2224 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2226 if test "x$cross_compiling" != "xyes"; then
2227 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
2228 export LD_LIBRARY_PATH
2229 AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH])
2235 fi dnl CyaSSL not disabled
2239 dnl ----------------------------------------------------
2240 dnl NSS. Only check if GnuTLS and OpenSSL are not enabled
2241 dnl ----------------------------------------------------
2243 dnl Default to compiler & linker defaults for NSS files & libraries.
2247 AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root])
2248 AC_HELP_STRING([--without-nss], [disable NSS detection]),
2251 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2253 if test X"$OPT_NSS" != Xno; then
2261 if test "x$OPT_NSS" = "xyes"; then
2263 CURL_CHECK_PKGCONFIG(nss)
2265 if test "$PKGCONFIG" != "no" ; then
2266 addlib=`$PKGCONFIG --libs nss`
2267 addcflags=`$PKGCONFIG --cflags nss`
2268 version=`$PKGCONFIG --modversion nss`
2269 nssprefix=`$PKGCONFIG --variable=prefix nss`
2271 dnl Without pkg-config, we check for nss-config
2273 check=`nss-config --version 2>/dev/null`
2274 if test -n "$check"; then
2275 addlib=`nss-config --libs`
2276 addcflags=`nss-config --cflags`
2277 version=`nss-config --version`
2278 nssprefix=`nss-config --prefix`
2286 NSS_PCDIR="$OPT_NSS/lib/pkgconfig"
2287 if test -f "$NSS_PCDIR/nss.pc"; then
2288 CURL_CHECK_PKGCONFIG(nss, [$NSS_PCDIR])
2289 if test "$PKGCONFIG" != "no" ; then
2290 addld=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --libs-only-L nss`
2291 addlib=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --libs-only-l nss`
2292 addcflags=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --cflags nss`
2293 version=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --modversion nss`
2294 nssprefix=`CURL_EXPORT_PCDIR([$NSS_PCDIR]) $PKGCONFIG --variable=prefix nss`
2299 if test -z "$addlib"; then
2300 # Without pkg-config, we'll kludge in some defaults
2301 AC_MSG_WARN([Using hard-wired libraries and compilation flags for NSS.])
2302 addld="-L$OPT_NSS/lib"
2303 addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4"
2304 addcflags="-I$OPT_NSS/include"
2309 CLEANLDFLAGS="$LDFLAGS"
2311 CLEANCPPFLAGS="$CPPFLAGS"
2313 LDFLAGS="$addld $LDFLAGS"
2314 LIBS="$addlib $LIBS"
2315 if test "$addcflags" != "-I/usr/include"; then
2316 CPPFLAGS="$CPPFLAGS $addcflags"
2319 dnl The function SSL_VersionRangeSet() is needed to enable TLS > 1.0
2320 AC_CHECK_LIB(nss3, SSL_VersionRangeSet,
2322 AC_DEFINE(USE_NSS, 1, [if NSS is enabled])
2323 AC_SUBST(USE_NSS, [1])
2326 curl_ssl_msg="enabled (NSS)"
2329 LDFLAGS="$CLEANLDFLAGS"
2331 CPPFLAGS="$CLEANCPPFLAGS"
2334 if test "x$USE_NSS" = "xyes"; then
2335 AC_MSG_NOTICE([detected NSS version $version])
2337 dnl needed when linking the curl tool without USE_EXPLICIT_LIB_DEPS
2339 AC_SUBST([NSS_LIBS])
2341 dnl when shared libs were found in a path that the run-time
2342 dnl linker doesn't search through, we need to add it to
2343 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2345 if test "x$cross_compiling" != "xyes"; then
2346 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff"
2347 export LD_LIBRARY_PATH
2348 AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH])
2353 fi dnl NSS not disabled
2355 fi dnl curl_ssl_msg = init_ssl_msg
2359 AC_ARG_WITH(axtls,dnl
2360 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.])
2361 AC_HELP_STRING([--without-axtls], [disable axTLS]),
2364 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2365 if test X"$OPT_AXTLS" != Xno; then
2366 dnl backup the pre-axtls variables
2367 CLEANLDFLAGS="$LDFLAGS"
2368 CLEANCPPFLAGS="$CPPFLAGS"
2371 case "$OPT_AXTLS" in
2373 dnl --with-axtls (without path) used
2374 PREFIX_AXTLS=/usr/local
2375 LIB_AXTLS="$PREFIX_AXTLS/lib"
2376 LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2377 CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2380 dnl no --with-axtls option given, just check default places
2384 dnl check the given --with-axtls spot
2385 PREFIX_AXTLS=$OPT_AXTLS
2386 LIB_AXTLS="$PREFIX_AXTLS/lib"
2387 LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2388 CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2392 AC_CHECK_LIB(axtls, ssl_version,[
2393 LIBS="-laxtls $LIBS"
2394 AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled])
2395 AC_SUBST(USE_AXTLS, [1])
2398 curl_ssl_msg="enabled (axTLS)"
2400 if test "x$cross_compiling" != "xyes"; then
2401 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS"
2402 export LD_LIBRARY_PATH
2403 AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH])
2406 LDFLAGS="$CLEANLDFLAGS"
2407 CPPFLAGS="$CLEANCPPFLAGS"
2413 if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
2414 AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
2415 AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
2417 # SSL is enabled, genericly
2418 AC_SUBST(SSL_ENABLED)
2422 dnl **********************************************************************
2423 dnl Check for the CA bundle
2424 dnl **********************************************************************
2426 CURL_CHECK_CA_BUNDLE
2428 dnl **********************************************************************
2429 dnl Check for libpsl
2430 dnl **********************************************************************
2433 AS_HELP_STRING([--without-libpsl],
2434 [disable support for libpsl cookie checking]),
2435 with_libpsl=$withval,
2437 if test $with_libpsl != "no"; then
2438 AC_SEARCH_LIBS(psl_builtin, psl,
2439 [curl_psl_msg="yes";
2440 AC_DEFINE([USE_LIBPSL], [1], [PSL support enabled])
2442 [curl_psl_msg="no (libpsl not found)";
2443 AC_MSG_WARN([libpsl was not found])
2447 AM_CONDITIONAL([USE_LIBPSL], [test "$curl_psl_msg" = "yes"])
2449 dnl **********************************************************************
2450 dnl Check for libmetalink
2451 dnl **********************************************************************
2455 AC_ARG_WITH(libmetalink,dnl
2456 AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root])
2457 AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]),
2458 OPT_LIBMETALINK=$withval)
2460 if test X"$OPT_LIBMETALINK" != Xno; then
2469 if test "x$OPT_LIBMETALINK" = "xyes"; then
2470 dnl this is with no partiular path given
2472 CURL_CHECK_PKGCONFIG(libmetalink)
2474 dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path.
2475 LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig"
2476 AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"])
2477 if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then
2480 if test "$PKGTEST" = "yes"; then
2481 CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR])
2484 if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then
2485 addlib=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2486 $PKGCONFIG --libs-only-l libmetalink`
2487 addld=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2488 $PKGCONFIG --libs-only-L libmetalink`
2489 addcflags=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2490 $PKGCONFIG --cflags-only-I libmetalink`
2491 version=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2492 $PKGCONFIG --modversion libmetalink`
2493 libmetalinklib=`echo $addld | $SED -e 's/-L//'`
2495 if test -n "$addlib"; then
2497 clean_CPPFLAGS="$CPPFLAGS"
2498 clean_LDFLAGS="$LDFLAGS"
2500 CPPFLAGS="$addcflags $clean_CPPFLAGS"
2501 LDFLAGS="$addld $clean_LDFLAGS"
2502 LIBS="$addlib $clean_LIBS"
2503 AC_MSG_CHECKING([if libmetalink is recent enough])
2506 # include <metalink/metalink.h>
2508 if(0 != metalink_strerror(0)) /* added in 0.1.0 */
2512 AC_MSG_RESULT([yes ($version)])
2515 AC_MSG_RESULT([no ($version)])
2516 AC_MSG_NOTICE([libmetalink library defective or too old])
2519 CPPFLAGS="$clean_CPPFLAGS"
2520 LDFLAGS="$clean_LDFLAGS"
2522 if test "$want_metalink" = "yes"; then
2523 dnl finally libmetalink will be used
2524 AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support])
2525 LIBMETALINK_LIBS=$addlib
2526 LIBMETALINK_LDFLAGS=$addld
2527 LIBMETALINK_CPPFLAGS=$addcflags
2528 AC_SUBST([LIBMETALINK_LIBS])
2529 AC_SUBST([LIBMETALINK_LDFLAGS])
2530 AC_SUBST([LIBMETALINK_CPPFLAGS])
2531 curl_mtlnk_msg="enabled"
2537 dnl **********************************************************************
2538 dnl Check for the presence of LIBSSH2 libraries and headers
2539 dnl **********************************************************************
2541 dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
2543 AC_ARG_WITH(libssh2,dnl
2544 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])
2545 AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
2546 OPT_LIBSSH2=$withval)
2548 if test X"$OPT_LIBSSH2" != Xno; then
2549 dnl backup the pre-libssh2 variables
2550 CLEANLDFLAGS="$LDFLAGS"
2551 CLEANCPPFLAGS="$CPPFLAGS"
2554 case "$OPT_LIBSSH2" in
2556 dnl --with-libssh2 (without path) used
2557 CURL_CHECK_PKGCONFIG(libssh2)
2559 if test "$PKGCONFIG" != "no" ; then
2560 LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2`
2561 LD_SSH2=`$PKGCONFIG --libs-only-L libssh2`
2562 CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2`
2563 version=`$PKGCONFIG --modversion libssh2`
2564 DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'`
2569 dnl no --with-libssh2 option given, just check default places
2572 dnl use the given --with-libssh2 spot
2573 PREFIX_SSH2=$OPT_LIBSSH2
2577 dnl if given with a prefix, we set -L and -I based on that
2578 if test -n "$PREFIX_SSH2"; then
2580 LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff
2581 CPP_SSH2=-I${PREFIX_SSH2}/include
2582 DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
2585 LDFLAGS="$LDFLAGS $LD_SSH2"
2586 CPPFLAGS="$CPPFLAGS $CPP_SSH2"
2587 LIBS="$LIB_SSH2 $LIBS"
2589 AC_CHECK_LIB(ssh2, libssh2_channel_open_ex)
2591 AC_CHECK_HEADERS(libssh2.h,
2592 curl_ssh_msg="enabled (libSSH2)"
2594 AC_DEFINE(USE_LIBSSH2, 1, [if libSSH2 is in use])
2595 AC_SUBST(USE_LIBSSH2, [1])
2598 if test X"$OPT_LIBSSH2" != Xoff &&
2599 test "$LIBSSH2_ENABLED" != "1"; then
2600 AC_MSG_ERROR([libSSH2 libs and/or directories were not found where specified!])
2603 if test "$LIBSSH2_ENABLED" = "1"; then
2604 if test -n "$DIR_SSH2"; then
2605 dnl when the libssh2 shared libs were found in a path that the run-time
2606 dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
2607 dnl to prevent further configure tests to fail due to this
2609 if test "x$cross_compiling" != "xyes"; then
2610 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
2611 export LD_LIBRARY_PATH
2612 AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH])
2616 dnl no libssh2, revert back to clean variables
2617 LDFLAGS=$CLEANLDFLAGS
2618 CPPFLAGS=$CLEANCPPFLAGS
2623 dnl **********************************************************************
2624 dnl Check for the presence of LIBRTMP libraries and headers
2625 dnl **********************************************************************
2627 dnl Default to compiler & linker defaults for LIBRTMP files & libraries.
2629 AC_ARG_WITH(librtmp,dnl
2630 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])
2631 AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]),
2632 OPT_LIBRTMP=$withval)
2634 if test X"$OPT_LIBRTMP" != Xno; then
2635 dnl backup the pre-librtmp variables
2636 CLEANLDFLAGS="$LDFLAGS"
2637 CLEANCPPFLAGS="$CPPFLAGS"
2640 case "$OPT_LIBRTMP" in
2642 dnl --with-librtmp (without path) used
2643 CURL_CHECK_PKGCONFIG(librtmp)
2645 if test "$PKGCONFIG" != "no" ; then
2646 LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp`
2647 LD_RTMP=`$PKGCONFIG --libs-only-L librtmp`
2648 CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp`
2649 version=`$PKGCONFIG --modversion librtmp`
2650 DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'`
2652 dnl To avoid link errors, we do not allow --librtmp without
2653 dnl a pkgconfig file
2654 AC_MSG_ERROR([--librtmp was specified but could not find librtmp pkgconfig file.])
2659 dnl no --with-librtmp option given, just check default places
2663 dnl use the given --with-librtmp spot
2664 PREFIX_RTMP=$OPT_LIBRTMP
2668 dnl if given with a prefix, we set -L and -I based on that
2669 if test -n "$PREFIX_RTMP"; then
2670 LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff
2671 CPP_RTMP=-I${PREFIX_RTMP}/include
2672 DIR_RTMP=${PREFIX_RTMP}/lib$libsuff
2675 LDFLAGS="$LDFLAGS $LD_RTMP"
2676 CPPFLAGS="$CPPFLAGS $CPP_RTMP"
2677 LIBS="$LIB_RTMP $LIBS"
2679 AC_CHECK_LIB(rtmp, RTMP_Init,
2681 AC_CHECK_HEADERS(librtmp/rtmp.h,
2682 curl_rtmp_msg="enabled (librtmp)"
2684 AC_DEFINE(USE_LIBRTMP, 1, [if librtmp is in use])
2685 AC_SUBST(USE_LIBRTMP, [1])
2688 dnl not found, revert back to clean variables
2689 LDFLAGS=$CLEANLDFLAGS
2690 CPPFLAGS=$CLEANCPPFLAGS
2694 if test X"$OPT_LIBRTMP" != Xoff &&
2695 test "$LIBRTMP_ENABLED" != "1"; then
2696 AC_MSG_ERROR([librtmp libs and/or directories were not found where specified!])
2701 dnl **********************************************************************
2702 dnl Check for linker switch for versioned symbols
2703 dnl **********************************************************************
2705 versioned_symbols_flavour=
2706 AC_MSG_CHECKING([whether versioned symbols are wanted])
2707 AC_ARG_ENABLE(versioned-symbols,
2708 AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library])
2709 AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]),
2710 [ case "$enableval" in
2711 yes) AC_MSG_RESULT(yes)
2712 AC_MSG_CHECKING([if libraries can be versioned])
2713 GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
2714 if test -z "$GLD"; then
2716 AC_MSG_WARN([You need an ld version supporting the --version-script option])
2719 if test "x$OPENSSL_ENABLED" = "x1"; then
2720 versioned_symbols_flavour="OPENSSL_"
2721 elif test "x$GNUTLS_ENABLED" = "x1"; then
2722 versioned_symbols_flavour="GNUTLS_"
2723 elif test "x$NSS_ENABLED" = "x1"; then
2724 versioned_symbols_flavour="NSS_"
2725 elif test "x$POLARSSL_ENABLED" = "x1"; then
2726 versioned_symbols_flavour="POLARSSL_"
2727 elif test "x$CYASSL_ENABLED" = "x1"; then
2728 versioned_symbols_flavour="CYASSL_"
2729 elif test "x$AXTLS_ENABLED" = "x1"; then
2730 versioned_symbols_flavour="AXTLS_"
2731 elif test "x$WINSSL_ENABLED" = "x1"; then
2732 versioned_symbols_flavour="WINSSL_"
2733 elif test "x$DARWINSSL_ENABLED" = "x1"; then
2734 versioned_symbols_flavour="DARWINSSL_"
2736 versioned_symbols_flavour=""
2738 versioned_symbols="yes"
2742 *) AC_MSG_RESULT(no)
2750 AC_SUBST([CURL_LT_SHLIB_VERSIONED_FLAVOUR],
2751 ["$versioned_symbols_flavour"])
2752 AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS],
2753 [test "x$versioned_symbols" = 'xyes'])
2755 dnl -------------------------------------------------
2756 dnl check winidn option before other IDN libraries
2757 dnl -------------------------------------------------
2759 AC_MSG_CHECKING([whether to enable Windows native IDN (Windows native builds only)])
2760 OPT_WINIDN="default"
2762 AC_HELP_STRING([--with-winidn=PATH],[enable Windows native IDN])
2763 AC_HELP_STRING([--without-winidn], [disable Windows native IDN]),
2764 OPT_WINIDN=$withval)
2765 case "$OPT_WINIDN" in
2767 dnl --without-winidn option used or configure option not specified
2772 dnl --with-winidn option used without path
2774 want_winidn_path="default"
2775 AC_MSG_RESULT([yes])
2778 dnl --with-winidn option used with path
2780 want_winidn_path="$withval"
2781 AC_MSG_RESULT([yes ($withval)])
2785 if test "$want_winidn" = "yes"; then
2786 dnl winidn library support has been requested
2787 clean_CPPFLAGS="$CPPFLAGS"
2788 clean_LDFLAGS="$LDFLAGS"
2790 WINIDN_LIBS="-lnormaliz"
2792 if test "$want_winidn_path" != "default"; then
2793 dnl path has been specified
2794 dnl pkg-config not available or provides no info
2795 WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff"
2796 WINIDN_CPPFLAGS="-I$want_winidn_path/include"
2797 WINIDN_DIR="$want_winidn_path/lib$libsuff"
2800 CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS"
2801 LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS"
2802 LIBS="$WINIDN_LIBS $LIBS"
2804 AC_MSG_CHECKING([if IdnToUnicode can be linked])
2806 AC_LANG_FUNC_LINK_TRY([IdnToUnicode])
2808 AC_MSG_RESULT([yes])
2809 tst_links_winidn="yes"
2812 tst_links_winidn="no"
2815 if test "$tst_links_winidn" = "yes"; then
2816 AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).])
2817 AC_DEFINE(WANT_IDN_PROTOTYPES, 1, [Define to 1 to provide own prototypes.])
2818 AC_SUBST([IDN_ENABLED], [1])
2819 curl_idn_msg="enabled (Windows-native)"
2821 AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2822 CPPFLAGS="$clean_CPPFLAGS"
2823 LDFLAGS="$clean_LDFLAGS"
2828 dnl **********************************************************************
2829 dnl Check for the presence of IDN libraries and headers
2830 dnl **********************************************************************
2832 AC_MSG_CHECKING([whether to build with libidn])
2835 AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage])
2836 AC_HELP_STRING([--without-libidn],[Disable libidn usage]),
2840 dnl --without-libidn option used
2845 dnl configure option not specified
2847 want_idn_path="default"
2848 AC_MSG_RESULT([(assumed) yes])
2851 dnl --with-libidn option used without path
2853 want_idn_path="default"
2854 AC_MSG_RESULT([yes])
2857 dnl --with-libidn option used with path
2859 want_idn_path="$withval"
2860 AC_MSG_RESULT([yes ($withval)])
2864 if test "$want_idn" = "yes"; then
2865 dnl idn library support has been requested
2866 clean_CPPFLAGS="$CPPFLAGS"
2867 clean_LDFLAGS="$LDFLAGS"
2871 if test "$want_idn_path" != "default"; then
2872 dnl path has been specified
2873 IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
2874 CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR])
2875 if test "$PKGCONFIG" != "no"; then
2876 IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2877 $PKGCONFIG --libs-only-l libidn 2>/dev/null`
2878 IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2879 $PKGCONFIG --libs-only-L libidn 2>/dev/null`
2880 IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2881 $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2882 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2884 dnl pkg-config not available or provides no info
2886 IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
2887 IDN_CPPFLAGS="-I$want_idn_path/include"
2888 IDN_DIR="$want_idn_path/lib$libsuff"
2891 dnl path not specified
2892 CURL_CHECK_PKGCONFIG(libidn)
2893 if test "$PKGCONFIG" != "no"; then
2894 IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
2895 IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
2896 IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2897 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2899 dnl pkg-config not available or provides no info
2904 if test "$PKGCONFIG" != "no"; then
2905 AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"])
2906 AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"])
2907 AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2908 AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"])
2910 AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"])
2911 AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"])
2912 AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2913 AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
2916 CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
2917 LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
2918 LIBS="$IDN_LIBS $LIBS"
2920 AC_MSG_CHECKING([if idna_to_ascii_4i can be linked])
2922 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i])
2924 AC_MSG_RESULT([yes])
2925 tst_links_libidn="yes"
2928 tst_links_libidn="no"
2930 if test "$tst_links_libidn" = "no"; then
2931 AC_MSG_CHECKING([if idna_to_ascii_lz can be linked])
2933 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz])
2935 AC_MSG_RESULT([yes])
2936 tst_links_libidn="yes"
2939 tst_links_libidn="no"
2943 if test "$tst_links_libidn" = "yes"; then
2944 AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).])
2945 dnl different versions of libidn have different setups of these:
2946 AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror )
2947 AC_CHECK_HEADERS( idn-free.h tld.h )
2948 if test "x$ac_cv_header_tld_h" = "xyes"; then
2949 AC_SUBST([IDN_ENABLED], [1])
2950 curl_idn_msg="enabled"
2951 if test -n "$IDN_DIR" -a "x$cross_compiling" != "xyes"; then
2952 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
2953 export LD_LIBRARY_PATH
2954 AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH])
2957 AC_MSG_WARN([Libraries for IDN support too old: IDN disabled])
2958 CPPFLAGS="$clean_CPPFLAGS"
2959 LDFLAGS="$clean_LDFLAGS"
2963 AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2964 CPPFLAGS="$clean_CPPFLAGS"
2965 LDFLAGS="$clean_LDFLAGS"
2971 dnl Let's hope this split URL remains working:
2972 dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
2973 dnl genprogc/thread_quick_ref.htm
2976 dnl **********************************************************************
2977 dnl Check for nghttp2
2978 dnl **********************************************************************
2981 AC_ARG_WITH(nghttp2,
2982 AC_HELP_STRING([--with-nghttp2=PATH],[Enable nghttp2 usage])
2983 AC_HELP_STRING([--without-nghttp2],[Disable nghttp2 usage]),
2987 dnl --without-nghttp2 option used
2991 dnl --with-nghttp2 option used without path
2996 dnl --with-nghttp2 option used with path
2998 want_h2_path="$withval/lib/pkgconfig"
3002 curl_h2_msg="disabled (--with-nghttp2)"
3003 if test X"$want_h2" != Xno; then
3004 dnl backup the pre-nghttp2 variables
3005 CLEANLDFLAGS="$LDFLAGS"
3006 CLEANCPPFLAGS="$CPPFLAGS"
3009 CURL_CHECK_PKGCONFIG(libnghttp2, $want_h2_path)
3011 if test "$PKGCONFIG" != "no" ; then
3012 LIB_H2=`CURL_EXPORT_PCDIR([$want_h2_path])
3013 $PKGCONFIG --libs-only-l libnghttp2`
3014 AC_MSG_NOTICE([-l is $LIB_H2])
3016 CPP_H2=`CURL_EXPORT_PCDIR([$want_h2_path]) dnl
3017 $PKGCONFIG --cflags-only-I libnghttp2`
3018 AC_MSG_NOTICE([-I is $CPP_H2])
3020 LD_H2=`CURL_EXPORT_PCDIR([$want_h2_path])
3021 $PKGCONFIG --libs-only-L libnghttp2`
3022 AC_MSG_NOTICE([-L is $LD_H2])
3024 LDFLAGS="$LDFLAGS $LD_H2"
3025 CPPFLAGS="$CPPFLAGS $CPP_H2"
3026 LIBS="$LIB_H2 $LIBS"
3028 # use nghttp2_option_set_no_recv_client_magic to require nghttp2
3030 AC_CHECK_LIB(nghttp2, nghttp2_option_set_no_recv_client_magic,
3032 AC_CHECK_HEADERS(nghttp2/nghttp2.h,
3033 curl_h2_msg="enabled (nghttp2)"
3035 AC_DEFINE(USE_NGHTTP2, 1, [if nghttp2 is in use])
3036 AC_SUBST(USE_NGHTTP2, [1])
3039 dnl not found, revert back to clean variables
3040 LDFLAGS=$CLEANLDFLAGS
3041 CPPFLAGS=$CLEANCPPFLAGS
3046 dnl no nghttp2 pkg-config found, deal with it
3047 if test X"$want_h2" != Xdefault; then
3048 dnl To avoid link errors, we do not allow --with-nghttp2 without
3049 dnl a pkgconfig file
3050 AC_MSG_ERROR([--with-nghttp2 was specified but could not find libnghttp2 pkg-config file.])
3056 dnl **********************************************************************
3057 dnl Check for zsh completion path
3058 dnl **********************************************************************
3060 OPT_ZSH_FPATH=default
3061 AC_ARG_WITH(zsh-functions-dir,
3062 AC_HELP_STRING([--with-zsh-functions-dir=PATH],[Install zsh completions to PATH])
3063 AC_HELP_STRING([--without-zsh-functions-dir],[Do not install zsh completions]),
3064 [OPT_ZSH_FPATH=$withval])
3065 case "$OPT_ZSH_FPATH" in
3067 dnl --without-zsh-functions-dir option used
3070 dnl --with-zsh-functions-dir option used without path
3071 ZSH_FUNCTIONS_DIR="$datarootdir/zsh/site-functions"
3072 AC_SUBST(ZSH_FUNCTIONS_DIR)
3075 dnl --with-zsh-functions-dir option used with path
3076 ZSH_FUNCTIONS_DIR="$withval"
3077 AC_SUBST(ZSH_FUNCTIONS_DIR)
3081 dnl **********************************************************************
3082 dnl Back to "normal" configuring
3083 dnl **********************************************************************
3085 dnl Checks for header files.
3088 CURL_CHECK_HEADER_MALLOC
3089 CURL_CHECK_HEADER_MEMORY
3091 dnl Now check for the very most basic headers. Then we can use these
3092 dnl ones as default-headers when checking for the rest!
3135 dnl to do if not found
3139 dnl default includes
3141 #ifdef HAVE_SYS_TYPES_H
3142 #include <sys/types.h>
3144 #ifdef HAVE_SYS_TIME_H
3145 #include <sys/time.h>
3147 #ifdef HAVE_SYS_SELECT_H
3148 #include <sys/select.h>
3150 #ifdef HAVE_SYS_SOCKET_H
3151 #include <sys/socket.h>
3153 #ifdef HAVE_NETINET_IN_H
3154 #include <netinet/in.h>
3156 #ifdef HAVE_SYS_UN_H
3162 dnl Checks for typedefs, structures, and compiler characteristics.
3164 CURL_CHECK_VARIADIC_MACROS
3167 CURL_CHECK_STRUCT_TIMEVAL
3168 CURL_VERIFY_RUNTIMELIBS
3170 AC_CHECK_SIZEOF(size_t)
3171 AC_CHECK_SIZEOF(long)
3172 AC_CHECK_SIZEOF(int)
3173 AC_CHECK_SIZEOF(short)
3175 AC_CHECK_SIZEOF(time_t)
3176 AC_CHECK_SIZEOF(off_t)
3179 if test x"$curl_cv_native_windows" != "xyes" &&
3180 test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then
3181 AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous])
3182 AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.])
3187 AC_CHECK_TYPE(long long,
3188 [AC_DEFINE(HAVE_LONGLONG, 1,
3189 [Define to 1 if the compiler supports the 'long long' data type.])]
3193 if test "xyes" = "x$longlong"; then
3194 AC_MSG_CHECKING([if numberLL works])
3198 long long val = 1000LL;
3201 AC_MSG_RESULT([yes])
3202 AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL])
3210 AC_CHECK_TYPE(ssize_t, ,
3211 AC_DEFINE(ssize_t, int, [the signed version of size_t]))
3213 # check for bool type
3214 AC_CHECK_TYPE([bool],[
3215 AC_DEFINE(HAVE_BOOL_T, 1,
3216 [Define to 1 if bool is an available type.])
3218 #ifdef HAVE_SYS_TYPES_H
3219 #include <sys/types.h>
3221 #ifdef HAVE_STDBOOL_H
3222 #include <stdbool.h>
3226 CURL_CONFIGURE_CURL_SOCKLEN_T
3228 CURL_CONFIGURE_PULL_SYS_POLL
3232 TYPE_SOCKADDR_STORAGE
3238 CURL_CHECK_FUNC_SELECT
3240 CURL_CHECK_FUNC_RECV
3241 CURL_CHECK_FUNC_SEND
3242 CURL_CHECK_MSG_NOSIGNAL
3244 CURL_CHECK_FUNC_ALARM
3245 CURL_CHECK_FUNC_BASENAME
3246 CURL_CHECK_FUNC_CLOSESOCKET
3247 CURL_CHECK_FUNC_CLOSESOCKET_CAMEL
3248 CURL_CHECK_FUNC_CONNECT
3249 CURL_CHECK_FUNC_FCNTL
3250 CURL_CHECK_FUNC_FDOPEN
3251 CURL_CHECK_FUNC_FREEADDRINFO
3252 CURL_CHECK_FUNC_FREEIFADDRS
3253 CURL_CHECK_FUNC_FSETXATTR
3254 CURL_CHECK_FUNC_FTRUNCATE
3255 CURL_CHECK_FUNC_GETADDRINFO
3256 CURL_CHECK_FUNC_GAI_STRERROR
3257 CURL_CHECK_FUNC_GETHOSTBYADDR
3258 CURL_CHECK_FUNC_GETHOSTBYADDR_R
3259 CURL_CHECK_FUNC_GETHOSTBYNAME
3260 CURL_CHECK_FUNC_GETHOSTBYNAME_R
3261 CURL_CHECK_FUNC_GETHOSTNAME
3262 CURL_CHECK_FUNC_GETIFADDRS
3263 CURL_CHECK_FUNC_GETSERVBYPORT_R
3264 CURL_CHECK_FUNC_GMTIME_R
3265 CURL_CHECK_FUNC_INET_NTOA_R
3266 CURL_CHECK_FUNC_INET_NTOP
3267 CURL_CHECK_FUNC_INET_PTON
3268 CURL_CHECK_FUNC_IOCTL
3269 CURL_CHECK_FUNC_IOCTLSOCKET
3270 CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL
3271 CURL_CHECK_FUNC_LOCALTIME_R
3272 CURL_CHECK_FUNC_MEMRCHR
3273 CURL_CHECK_FUNC_POLL
3274 CURL_CHECK_FUNC_SETSOCKOPT
3275 CURL_CHECK_FUNC_SIGACTION
3276 CURL_CHECK_FUNC_SIGINTERRUPT
3277 CURL_CHECK_FUNC_SIGNAL
3278 CURL_CHECK_FUNC_SIGSETJMP
3279 CURL_CHECK_FUNC_SOCKET
3280 CURL_CHECK_FUNC_SOCKETPAIR
3281 CURL_CHECK_FUNC_STRCASECMP
3282 CURL_CHECK_FUNC_STRCMPI
3283 CURL_CHECK_FUNC_STRDUP
3284 CURL_CHECK_FUNC_STRERROR_R
3285 CURL_CHECK_FUNC_STRICMP
3286 CURL_CHECK_FUNC_STRNCASECMP
3287 CURL_CHECK_FUNC_STRNCMPI
3288 CURL_CHECK_FUNC_STRNICMP
3289 CURL_CHECK_FUNC_STRSTR
3290 CURL_CHECK_FUNC_STRTOK_R
3291 CURL_CHECK_FUNC_STRTOLL
3292 CURL_CHECK_FUNC_WRITEV
3298 AC_MSG_NOTICE([skip check for pipe on msdosdjgpp])
3302 AC_CHECK_FUNCS([fork \
3323 eval skipcheck=\$skipcheck_$func
3324 if test "x$skipcheck" != "xyes"; then
3325 AC_MSG_CHECKING([deeper for $func])
3332 AC_MSG_RESULT([yes])
3333 eval "ac_cv_func_$func=yes"
3334 AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1],
3335 [Define to 1 if you have the $func function.])
3337 AC_MSG_RESULT([but still no])
3342 dnl Check if the getnameinfo function is available
3343 dnl and get the types of five of its arguments.
3344 CURL_CHECK_FUNC_GETNAMEINFO
3346 if test "$ipv6" = "yes"; then
3347 if test "$curl_cv_func_getaddrinfo" = "yes"; then
3348 AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support])
3350 AC_SUBST(IPV6_ENABLED)
3352 CURL_CHECK_NI_WITHSCOPEID
3355 CURL_CHECK_NONBLOCKING_SOCKET
3357 dnl ************************************************************
3358 dnl nroff tool stuff
3361 AC_PATH_PROG( PERL, perl, ,
3362 $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
3365 AC_PATH_PROGS( NROFF, gnroff nroff, ,
3366 $PATH:/usr/bin/:/usr/local/bin )
3369 if test -n "$NROFF"; then
3370 dnl only check for nroff options if an nroff command was found
3372 AC_MSG_CHECKING([how to use *nroff to get plain text from man pages])
3374 mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
3375 if test -z "$mancheck"; then
3377 mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
3378 if test -z "$mancheck"; then
3380 AC_MSG_RESULT([failed])
3381 AC_MSG_WARN([found no *nroff option to get plaintext from man pages])
3383 AC_MSG_RESULT([$MANOPT])
3386 AC_MSG_RESULT([$MANOPT])
3391 if test -z "$MANOPT"
3393 dnl if no nroff tool was found, or no option that could convert man pages
3394 dnl was found, then disable the built-in manual stuff
3395 AC_MSG_WARN([disabling built-in manual])
3399 dnl *************************************************************************
3400 dnl If the manual variable still is set, then we go with providing a built-in
3403 if test "$USE_MANUAL" = "1"; then
3404 AC_DEFINE(USE_MANUAL, 1, [If you want to build curl with the built-in manual])
3405 curl_manual_msg="enabled"
3408 dnl set variable for use in automakefile(s)
3409 AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)
3412 AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
3414 if test "x$curl_cv_native_windows" != "xyes" &&
3415 test "x$enable_shared" = "xyes"; then
3416 build_libhostname=yes
3418 build_libhostname=no
3420 AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes)
3422 CURL_CHECK_OPTION_THREADED_RESOLVER
3424 if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
3426 [Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
3429 if test "$want_thres" = "yes" && test "$dontwant_rt" = "no"; then
3430 AC_CHECK_HEADER(pthread.h,
3431 [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
3432 save_CFLAGS="$CFLAGS"
3434 dnl first check for function without lib
3435 AC_CHECK_FUNC(pthread_create, [USE_THREADS_POSIX=1] )
3437 dnl if it wasn't found without lib, search for it in pthread lib
3438 if test "$USE_THREADS_POSIX" != "1"
3440 CFLAGS="$CFLAGS -pthread"
3441 AC_CHECK_LIB(pthread, pthread_create,
3442 [USE_THREADS_POSIX=1],
3443 [ CFLAGS="$save_CFLAGS"])
3446 if test "x$USE_THREADS_POSIX" = "x1"
3448 AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
3449 curl_res_msg="POSIX threaded"
3456 dnl ************************************************************
3457 dnl disable verbose text strings
3459 AC_MSG_CHECKING([whether to enable verbose strings])
3460 AC_ARG_ENABLE(verbose,
3461 AC_HELP_STRING([--enable-verbose],[Enable verbose strings])
3462 AC_HELP_STRING([--disable-verbose],[Disable verbose strings]),
3463 [ case "$enableval" in
3466 AC_DEFINE(CURL_DISABLE_VERBOSE_STRINGS, 1, [to disable verbose strings])
3467 curl_verbose_msg="no"
3469 *) AC_MSG_RESULT(yes)
3475 dnl ************************************************************
3476 dnl enable SSPI support
3478 AC_MSG_CHECKING([whether to enable SSPI support (Windows native builds only)])
3480 AC_HELP_STRING([--enable-sspi],[Enable SSPI])
3481 AC_HELP_STRING([--disable-sspi],[Disable SSPI]),
3482 [ case "$enableval" in
3484 if test "$curl_cv_native_windows" = "yes"; then
3486 AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
3487 AC_SUBST(USE_WINDOWS_SSPI, [1])
3488 curl_sspi_msg="enabled"
3491 AC_MSG_WARN([--enable-sspi Ignored. Only supported on native Windows builds.])
3495 if test "x$WINSSL_ENABLED" = "x1"; then
3496 # --with-winssl implies --enable-sspi
3503 if test "x$WINSSL_ENABLED" = "x1"; then
3504 # --with-winssl implies --enable-sspi
3511 dnl ************************************************************
3512 dnl disable cryptographic authentication
3514 AC_MSG_CHECKING([whether to enable cryptographic authentication methods])
3515 AC_ARG_ENABLE(crypto-auth,
3516 AC_HELP_STRING([--enable-crypto-auth],[Enable cryptographic authentication])
3517 AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]),
3518 [ case "$enableval" in
3521 AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication])
3522 CURL_DISABLE_CRYPTO_AUTH=1
3524 *) AC_MSG_RESULT(yes)
3530 CURL_CHECK_OPTION_NTLM_WB
3534 dnl ************************************************************
3535 dnl disable TLS-SRP authentication
3537 AC_MSG_CHECKING([whether to enable TLS-SRP authentication])
3538 AC_ARG_ENABLE(tls-srp,
3539 AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication])
3540 AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]),
3541 [ case "$enableval" in
3544 AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication])
3547 *) AC_MSG_RESULT(yes)
3555 if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_OPENSSL_SRP" = "x1") ; then
3556 AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication])
3558 curl_tls_srp_msg="enabled"
3561 dnl ************************************************************
3562 dnl disable Unix domain sockets support
3564 AC_MSG_CHECKING([whether to enable Unix domain sockets])
3565 AC_ARG_ENABLE(unix-sockets,
3566 AC_HELP_STRING([--enable-unix-sockets],[Enable Unix domain sockets])
3567 AC_HELP_STRING([--disable-unix-sockets],[Disable Unix domain sockets]),
3568 [ case "$enableval" in
3569 no) AC_MSG_RESULT(no)
3570 want_unix_sockets=no
3572 *) AC_MSG_RESULT(yes)
3573 want_unix_sockets=yes
3577 want_unix_sockets=auto
3580 if test "x$want_unix_sockets" != "xno"; then
3581 AC_CHECK_MEMBER([struct sockaddr_un.sun_path], [
3582 AC_DEFINE(USE_UNIX_SOCKETS, 1, [Use Unix domain sockets])
3583 AC_SUBST(USE_UNIX_SOCKETS, [1])
3584 curl_unix_sockets_msg="enabled"
3586 if test "x$want_unix_sockets" = "xyes"; then
3587 AC_MSG_ERROR([--enable-unix-sockets is not available on this platform!])
3594 dnl ************************************************************
3595 dnl disable cookies support
3597 AC_MSG_CHECKING([whether to enable support for cookies])
3598 AC_ARG_ENABLE(cookies,
3599 AC_HELP_STRING([--enable-cookies],[Enable cookies support])
3600 AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
3601 [ case "$enableval" in
3604 AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support])
3606 *) AC_MSG_RESULT(yes)
3612 dnl ************************************************************
3613 dnl hiding of library internal symbols
3615 CURL_CONFIGURE_SYMBOL_HIDING
3617 dnl ************************************************************
3618 dnl enforce SONAME bump
3621 AC_MSG_CHECKING([whether to enforce SONAME bump])
3622 AC_ARG_ENABLE(soname-bump,
3623 AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump])
3624 AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]),
3625 [ case "$enableval" in
3626 yes) AC_MSG_RESULT(yes)
3633 AC_MSG_RESULT($soname_bump)
3635 AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
3638 dnl All the library dependencies put into $LIB apply to libcurl only.
3642 AC_SUBST(LIBCURL_LIBS)
3643 AC_SUBST(CURL_NETWORK_LIBS)
3644 AC_SUBST(CURL_NETWORK_AND_TIME_LIBS)
3646 dnl BLANK_AT_MAKETIME may be used in our Makefile.am files to blank
3647 dnl LIBS variable used in generated makefile at makefile processing
3648 dnl time. Doing this functionally prevents LIBS from being used for
3649 dnl all link targets in given makefile.
3651 AC_SUBST(BLANK_AT_MAKETIME)
3653 AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
3656 ENABLE_SHARED="$enable_shared"
3657 AC_SUBST(ENABLE_SHARED)
3659 dnl to let curl-config output the static libraries correctly
3660 ENABLE_STATIC="$enable_static"
3661 AC_SUBST(ENABLE_STATIC)
3665 dnl For keeping supported features and protocols also in pkg-config file
3666 dnl since it is more cross-compile friendly than curl-config
3669 if test "x$OPENSSL_ENABLED" = "x1"; then
3670 SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3671 elif test -n "$SSL_ENABLED"; then
3672 SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3674 if test "x$IPV6_ENABLED" = "x1"; then
3675 SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
3677 if test "x$USE_UNIX_SOCKETS" = "x1"; then
3678 SUPPORT_FEATURES="$SUPPORT_FEATURES UnixSockets"
3680 if test "x$HAVE_LIBZ" = "x1"; then
3681 SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
3683 if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then
3684 SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
3686 if test "x$IDN_ENABLED" = "x1"; then
3687 SUPPORT_FEATURES="$SUPPORT_FEATURES IDN"
3689 if test "x$USE_WINDOWS_SSPI" = "x1"; then
3690 SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI"
3693 if test "x$HAVE_GSSAPI" = "x1"; then
3694 SUPPORT_FEATURES="$SUPPORT_FEATURES GSS-API"
3697 if test "x$curl_psl_msg" = "xyes"; then
3698 SUPPORT_FEATURES="$SUPPORT_FEATURES PSL"
3701 if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \
3702 \( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then
3703 SUPPORT_FEATURES="$SUPPORT_FEATURES SPNEGO"
3706 if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \
3707 \( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then
3708 SUPPORT_FEATURES="$SUPPORT_FEATURES Kerberos"
3711 if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1"; then
3712 if test "x$OPENSSL_ENABLED" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
3713 -o "x$GNUTLS_ENABLED" = "x1" -o "x$MBEDTLS_ENABLED" = "x1" \
3714 -o "x$NSS_ENABLED" = "x1" -o "x$DARWINSSL_ENABLED" = "x1"; then
3715 SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM"
3717 if test "x$CURL_DISABLE_HTTP" != "x1" -a \
3718 "x$NTLM_WB_ENABLED" = "x1"; then
3719 SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB"
3724 if test "x$USE_TLS_SRP" = "x1"; then
3725 SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
3728 if test "x$USE_NGHTTP2" = "x1"; then
3729 SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
3732 AC_SUBST(SUPPORT_FEATURES)
3734 dnl For supported protocols in pkg-config file
3735 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3736 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
3737 if test "x$SSL_ENABLED" = "x1"; then
3738 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS"
3741 if test "x$CURL_DISABLE_FTP" != "x1"; then
3742 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP"
3743 if test "x$SSL_ENABLED" = "x1"; then
3744 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS"
3747 if test "x$CURL_DISABLE_FILE" != "x1"; then
3748 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE"
3750 if test "x$CURL_DISABLE_TELNET" != "x1"; then
3751 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET"
3753 if test "x$CURL_DISABLE_LDAP" != "x1"; then
3754 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP"
3755 if test "x$CURL_DISABLE_LDAPS" != "x1"; then
3756 if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") ||
3757 (test "x$USE_OPENLDAP" != "x1" && test "x$HAVE_LDAP_SSL" = "x1"); then
3758 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS"
3762 if test "x$CURL_DISABLE_DICT" != "x1"; then
3763 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT"
3765 if test "x$CURL_DISABLE_TFTP" != "x1"; then
3766 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP"
3768 if test "x$CURL_DISABLE_GOPHER" != "x1"; then
3769 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER"
3771 if test "x$CURL_DISABLE_POP3" != "x1"; then
3772 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3"
3773 if test "x$SSL_ENABLED" = "x1"; then
3774 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S"
3777 if test "x$CURL_DISABLE_IMAP" != "x1"; then
3778 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP"
3779 if test "x$SSL_ENABLED" = "x1"; then
3780 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS"
3783 if test "x$CURL_DISABLE_SMB" != "x1" \
3784 -a "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" \
3785 -a \( "x$OPENSSL_ENABLED" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
3786 -o "x$GNUTLS_ENABLED" = "x1" -o "x$MBEDTLS_ENABLED" = "x1" \
3787 -o "x$NSS_ENABLED" = "x1" -o "x$DARWINSSL_ENABLED" = "x1" \); then
3788 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMB"
3789 if test "x$SSL_ENABLED" = "x1"; then
3790 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMBS"
3793 if test "x$CURL_DISABLE_SMTP" != "x1"; then
3794 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP"
3795 if test "x$SSL_ENABLED" = "x1"; then
3796 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS"
3799 if test "x$USE_LIBSSH2" = "x1"; then
3800 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP"
3801 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP"
3803 if test "x$CURL_DISABLE_RTSP" != "x1"; then
3804 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP"
3806 if test "x$USE_LIBRTMP" = "x1"; then
3807 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP"
3810 dnl replace spaces with newlines
3812 dnl replace the newlines back to spaces
3813 SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '`
3815 AC_SUBST(SUPPORT_PROTOCOLS)
3817 dnl squeeze whitespace out of some variables
3825 squeeze LIBCURL_LIBS
3826 squeeze CURL_NETWORK_LIBS
3827 squeeze CURL_NETWORK_AND_TIME_LIBS
3829 squeeze SUPPORT_FEATURES
3830 squeeze SUPPORT_PROTOCOLS
3832 XC_CHECK_BUILD_FLAGS
3834 if test "x$want_curldebug_assumed" = "xyes" &&
3835 test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then
3836 ac_configure_args="$ac_configure_args --enable-curldebug"
3839 AC_CONFIG_FILES([Makefile \
3841 docs/examples/Makefile \
3842 docs/libcurl/Makefile \
3843 docs/libcurl/opts/Makefile \
3845 include/curl/Makefile \
3851 tests/certs/Makefile \
3852 tests/certs/scripts/Makefile \
3853 tests/data/Makefile \
3854 tests/server/Makefile \
3855 tests/libtest/Makefile \
3856 tests/unit/Makefile \
3858 packages/Win32/Makefile \
3859 packages/Win32/cygwin/Makefile \
3860 packages/Linux/Makefile \
3861 packages/Linux/RPM/Makefile \
3862 packages/Linux/RPM/curl.spec \
3863 packages/Linux/RPM/curl-ssl.spec \
3864 packages/Solaris/Makefile \
3865 packages/EPM/curl.list \
3866 packages/EPM/Makefile \
3867 packages/vms/Makefile \
3868 packages/AIX/Makefile \
3869 packages/AIX/RPM/Makefile \
3870 packages/AIX/RPM/curl.spec \
3876 CURL_GENERATE_CONFIGUREHELP_PM
3878 XC_AMEND_DISTCLEAN([lib src tests/unit tests/server tests/libtest docs/examples])
3880 AC_MSG_NOTICE([Configured to build curl/libcurl:
3882 curl version: ${CURLVERSION}
3884 Install prefix: ${prefix}
3886 SSL support: ${curl_ssl_msg}
3887 SSH support: ${curl_ssh_msg}
3888 zlib support: ${curl_zlib_msg}
3889 GSS-API support: ${curl_gss_msg}
3890 TLS-SRP support: ${curl_tls_srp_msg}
3891 resolver: ${curl_res_msg}
3892 IPv6 support: ${curl_ipv6_msg}
3893 Unix sockets support: ${curl_unix_sockets_msg}
3894 IDN support: ${curl_idn_msg}
3895 Build libcurl: Shared=${enable_shared}, Static=${enable_static}
3896 Built-in manual: ${curl_manual_msg}
3897 --libcurl option: ${curl_libcurl_msg}
3898 Verbose errors: ${curl_verbose_msg}
3899 SSPI support: ${curl_sspi_msg}
3900 ca cert bundle: ${ca}${ca_warning}
3901 ca cert path: ${capath}${capath_warning}
3902 ca fallback: ${with_ca_fallback}
3903 LDAP support: ${curl_ldap_msg}
3904 LDAPS support: ${curl_ldaps_msg}
3905 RTSP support: ${curl_rtsp_msg}
3906 RTMP support: ${curl_rtmp_msg}
3907 metalink support: ${curl_mtlnk_msg}
3908 PSL support: ${curl_psl_msg}
3909 HTTP2 support: ${curl_h2_msg}
3910 Protocols: ${SUPPORT_PROTOCOLS}
3913 if test "x$soname_bump" = "xyes"; then
3916 SONAME bump: yes - WARNING: this library will be built with the SONAME
3917 number bumped due to (a detected) ABI breakage.
3918 See lib/README.curl_off_t for details on this.