1 #***************************************************************************
3 # Project ___| | | | _ \| |
5 # | (__| |_| | _ <| |___
6 # \___|\___/|_| \_\_____|
8 # Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
10 # This software is licensed as described in the file COPYING, which
11 # you should have received as part of this distribution. The terms
12 # are also available at http://curl.haxx.se/docs/copyright.html.
14 # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15 # copies of the Software, and permit persons to whom the Software is
16 # furnished to do so, under the terms of the COPYING file.
18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 # KIND, either express or implied.
21 #***************************************************************************
22 dnl Process this file with autoconf to produce a configure script.
26 dnl We don't know the version number "statically" so we use a dash here
27 AC_INIT([curl], [-], [a suitable curl mailing list: http://curl.haxx.se/mail/])
30 CURL_OVERRIDE_AUTOCONF
32 dnl configure script copyright
33 AC_COPYRIGHT([Copyright (c) 1998 - 2011 Daniel Stenberg, <daniel@haxx.se>
34 This configure script may be copied, distributed and modified under the
35 terms of the curl license; see COPYING for more details])
37 AC_CONFIG_SRCDIR([lib/urldata.h])
38 AM_CONFIG_HEADER(lib/curl_config.h include/curl/curlbuild.h)
39 AC_CONFIG_MACRO_DIR([m4])
42 CURL_CHECK_OPTION_DEBUG
43 CURL_CHECK_OPTION_OPTIMIZE
44 CURL_CHECK_OPTION_WARNINGS
45 CURL_CHECK_OPTION_WERROR
46 CURL_CHECK_OPTION_CURLDEBUG
47 CURL_CHECK_OPTION_SYMBOL_HIDING
48 CURL_CHECK_OPTION_ARES
50 CURL_CHECK_PATH_SEPARATOR_REQUIRED
53 # save the configure arguments
55 CONFIGURE_OPTIONS="\"$ac_configure_args\""
56 AC_SUBST(CONFIGURE_OPTIONS)
59 if test X"$want_werror" = Xyes; then
60 CURL_CFLAG_EXTRAS="-Werror"
62 AC_SUBST(CURL_CFLAG_EXTRAS)
64 dnl SED is mandatory for configure process and libtool.
65 dnl Set it now, allowing it to be changed later.
66 if test -z "$SED"; then
67 dnl allow it to be overridden
68 AC_PATH_PROG([SED], [sed], [not_found],
69 [$PATH:/usr/bin:/usr/local/bin])
70 if test -z "$SED" || test "$SED" = "not_found"; then
71 AC_MSG_ERROR([sed not found in PATH. Cannot continue without sed.])
76 dnl GREP is mandatory for configure process and libtool.
77 dnl Set it now, allowing it to be changed later.
78 if test -z "$GREP"; then
79 dnl allow it to be overridden
80 AC_PATH_PROG([GREP], [grep], [not_found],
81 [$PATH:/usr/bin:/usr/local/bin])
82 if test -z "$GREP" || test "$GREP" = "not_found"; then
83 AC_MSG_ERROR([grep not found in PATH. Cannot continue without grep.])
88 dnl EGREP is mandatory for configure process and libtool.
89 dnl Set it now, allowing it to be changed later.
90 if test -z "$EGREP"; then
91 dnl allow it to be overridden
92 if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then
93 AC_MSG_CHECKING([for egrep])
95 AC_MSG_RESULT([$EGREP])
97 AC_PATH_PROG([EGREP], [egrep], [not_found],
98 [$PATH:/usr/bin:/usr/local/bin])
101 if test -z "$EGREP" || test "$EGREP" = "not_found"; then
102 AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.])
106 dnl AR is mandatory for configure process and libtool.
107 dnl This is target dependent, so check it as a tool.
108 if test -z "$AR"; then
109 dnl allow it to be overridden
110 AC_PATH_TOOL([AR], [ar], [not_found],
111 [$PATH:/usr/bin:/usr/local/bin])
112 if test -z "$AR" || test "$AR" = "not_found"; then
113 AC_MSG_ERROR([ar not found in PATH. Cannot continue without ar.])
120 dnl Remove non-configure distributed curlbuild.h
121 if test -f ${srcdir}/include/curl/curlbuild.h; then
122 rm -f ${srcdir}/include/curl/curlbuild.h
125 dnl figure out the libcurl version
126 CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h`
128 AC_MSG_CHECKING([curl version])
129 AC_MSG_RESULT($CURLVERSION)
131 AC_SUBST(CURLVERSION)
134 dnl we extract the numerical version for curl-config only
135 VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h`
138 dnl Solaris pkgadd support definitions
139 PKGADD_PKG="HAXXcurl"
140 PKGADD_NAME="cURL - a client that groks URLs"
141 PKGADD_VENDOR="curl.haxx.se"
143 AC_SUBST(PKGADD_NAME)
144 AC_SUBST(PKGADD_VENDOR)
147 dnl initialize all the info variables
148 curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls} )"
149 curl_ssh_msg="no (--with-libssh2)"
150 curl_zlib_msg="no (--with-zlib)"
151 curl_krb4_msg="no (--with-krb4*)"
152 curl_gss_msg="no (--with-gssapi)"
153 curl_spnego_msg="no (--with-spnego)"
154 curl_tls_srp_msg="no (--enable-tls-srp)"
155 curl_res_msg="default (--enable-ares / --enable-threaded-resolver)"
156 curl_ipv6_msg="no (--enable-ipv6)"
157 curl_idn_msg="no (--with-libidn)"
158 curl_manual_msg="no (--enable-manual)"
159 curl_libcurl_msg="enabled (--disable-libcurl-option)"
160 curl_verbose_msg="enabled (--disable-verbose)"
161 curl_sspi_msg="no (--enable-sspi)"
162 curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)"
163 curl_ldaps_msg="no (--enable-ldaps)"
164 curl_rtsp_msg="no (--enable-rtsp)"
165 curl_rtmp_msg="no (--with-librtmp)"
166 init_ssl_msg=${curl_ssl_msg}
167 curl_metalink_msg="no (--with-libmetalink)"
170 dnl Save anything in $LIBS for later
175 dnl Detect the canonical host and target build environment
179 dnl Get system canonical name
180 AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
182 dnl Checks for programs.
185 dnl Our curl_off_t internal and external configure settings
186 CURL_CONFIGURE_CURL_OFF_T
188 dnl This defines _ALL_SOURCE for AIX
189 CURL_CHECK_AIX_ALL_SOURCE
191 dnl Our configure and build reentrant settings
192 CURL_CONFIGURE_THREAD_SAFE
193 CURL_CONFIGURE_REENTRANT
195 dnl check for how to do large files
198 dnl support building of Windows DLLs
201 dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD
202 AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)])
204 x86_64*linux*|amd64*freebsd*|ia64*freebsd*)
213 AC_MSG_CHECKING([if compiler is icc (to build with PIC)])
227 AC_MSG_CHECKING([if we need -mimpure-text])
231 if test "$GCC" = "yes"; then
238 AC_MSG_RESULT($mimpure)
239 AM_CONDITIONAL(MIMPURE, test x$mimpure = xyes)
241 AC_MSG_CHECKING([if we need BUILDING_LIBCURL])
242 use_cppflag_building_libcurl="no"
243 use_cppflag_curl_staticlib="no"
244 CPPFLAG_CURL_STATICLIB=""
248 use_cppflag_building_libcurl="yes"
249 AC_MSG_CHECKING([if we need CURL_STATICLIB])
250 if test "X$enable_shared" = "Xno"
253 use_cppflag_curl_staticlib="yes"
254 CPPFLAG_CURL_STATICLIB="-DCURL_STATICLIB"
263 AM_CONDITIONAL(USE_CPPFLAG_BUILDING_LIBCURL, test x$use_cppflag_building_libcurl = xyes)
264 AM_CONDITIONAL(USE_CPPFLAG_CURL_STATICLIB, test x$use_cppflag_curl_staticlib = xyes)
265 AC_SUBST(CPPFLAG_CURL_STATICLIB)
267 # Determine whether all dependent libraries must be specified when linking
268 if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno"
274 AC_SUBST(REQUIRE_LIB_DEPS)
276 dnl The install stuff has already been taken care of by the automake stuff
280 dnl check if there's a way to force code inline
283 dnl **********************************************************************
284 dnl platform/compiler/architecture specific checks/flags
285 dnl **********************************************************************
288 CURL_SET_COMPILER_BASIC_OPTS
289 CURL_SET_COMPILER_DEBUG_OPTS
290 CURL_SET_COMPILER_OPTIMIZE_OPTS
291 CURL_SET_COMPILER_WARNING_OPTS
293 if test "$compiler_id" = "INTEL_UNIX_C"; then
295 if test "$compiler_num" -ge "1000"; then
296 dnl icc 10.X or later
297 CFLAGS="$CFLAGS -shared-intel"
298 elif test "$compiler_num" -ge "900"; then
300 CFLAGS="$CFLAGS -i-dynamic"
305 CURL_CHECK_COMPILER_HALT_ON_ERROR
306 CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
307 CURL_CHECK_COMPILER_SYMBOL_HIDING
309 CURL_CHECK_NO_UNDEFINED
310 AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes)
313 AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes)
315 supports_unittests=yes
316 # cross-compilation of unit tests static library/programs fails when
317 # libcurl shared library is built. This might be due to a libtool or
318 # automake issue. In this case we disable unit tests.
319 if test "x$cross_compiling" != "xno" &&
320 test "x$enable_shared" != "xno"; then
321 supports_unittests=no
324 # IRIX 6.5.24 gcc 3.3 autobuilds fail unittests library compilation due to
325 # a problem related with OpenSSL headers and library versions not matching.
326 # Disable unit tests while time to further investigate this is found.
329 if test "$compiler_id" = "GNU_C"; then
330 supports_unittests=no
335 # All AIX autobuilds fails unit tests linking against unittests library
336 # due to unittests library being built with no symbols or members. Libtool ?
337 # Disable unit tests while time to further investigate this is found.
340 supports_unittests=no
344 dnl Build unit tests when option --enable-debug is given.
345 if test "x$want_debug" = "xyes" &&
346 test "x$supports_unittests" = "xyes"; then
351 AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes)
353 dnl **********************************************************************
354 dnl Compilation based checks should not be done before this point.
355 dnl **********************************************************************
357 dnl **********************************************************************
358 dnl Make sure that our checks for headers windows.h winsock.h winsock2.h
359 dnl and ws2tcpip.h take precedence over any other further checks which
360 dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for
361 dnl this specific header files. And do them before its results are used.
362 dnl **********************************************************************
364 CURL_CHECK_HEADER_WINDOWS
365 CURL_CHECK_NATIVE_WINDOWS
366 case X-"$ac_cv_native_windows" in
368 CURL_CHECK_HEADER_WINSOCK
369 CURL_CHECK_HEADER_WINSOCK2
370 CURL_CHECK_HEADER_WS2TCPIP
371 CURL_CHECK_HEADER_WINLDAP
372 CURL_CHECK_HEADER_WINBER
375 ac_cv_header_winsock_h="no"
376 ac_cv_header_winsock2_h="no"
377 ac_cv_header_ws2tcpip_h="no"
378 ac_cv_header_winldap_h="no"
379 ac_cv_header_winber_h="no"
382 CURL_CHECK_WIN32_LARGEFILE
384 dnl ************************************************************
385 dnl switch off particular protocols
387 AC_MSG_CHECKING([whether to support http])
389 AC_HELP_STRING([--enable-http],[Enable HTTP support])
390 AC_HELP_STRING([--disable-http],[Disable HTTP support]),
391 [ case "$enableval" in
394 AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP])
395 AC_MSG_WARN([disable HTTP disables FTP over proxy and RTSP])
396 AC_SUBST(CURL_DISABLE_HTTP, [1])
397 AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
398 AC_SUBST(CURL_DISABLE_RTSP, [1])
400 *) AC_MSG_RESULT(yes)
405 AC_MSG_CHECKING([whether to support ftp])
407 AC_HELP_STRING([--enable-ftp],[Enable FTP support])
408 AC_HELP_STRING([--disable-ftp],[Disable FTP support]),
409 [ case "$enableval" in
412 AC_DEFINE(CURL_DISABLE_FTP, 1, [to disable FTP])
413 AC_SUBST(CURL_DISABLE_FTP, [1])
415 *) AC_MSG_RESULT(yes)
420 AC_MSG_CHECKING([whether to support file])
422 AC_HELP_STRING([--enable-file],[Enable FILE support])
423 AC_HELP_STRING([--disable-file],[Disable FILE support]),
424 [ case "$enableval" in
427 AC_DEFINE(CURL_DISABLE_FILE, 1, [to disable FILE])
428 AC_SUBST(CURL_DISABLE_FILE, [1])
430 *) AC_MSG_RESULT(yes)
435 AC_MSG_CHECKING([whether to support ldap])
437 AC_HELP_STRING([--enable-ldap],[Enable LDAP support])
438 AC_HELP_STRING([--disable-ldap],[Disable LDAP support]),
439 [ case "$enableval" in
442 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
443 AC_SUBST(CURL_DISABLE_LDAP, [1])
451 AC_MSG_CHECKING([whether to support ldaps])
453 AC_HELP_STRING([--enable-ldaps],[Enable LDAPS support])
454 AC_HELP_STRING([--disable-ldaps],[Disable LDAPS support]),
455 [ case "$enableval" in
458 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
459 AC_SUBST(CURL_DISABLE_LDAPS, [1])
461 *) if test "x$CURL_DISABLE_LDAP" = "x1" ; then
462 AC_MSG_RESULT(LDAP needs to be enabled to support LDAPS)
463 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
464 AC_SUBST(CURL_DISABLE_LDAPS, [1])
467 AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
468 AC_SUBST(HAVE_LDAP_SSL, [1])
472 if test "x$CURL_DISABLE_LDAP" = "x1" ; then
474 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
475 AC_SUBST(CURL_DISABLE_LDAPS, [1])
478 AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
479 AC_SUBST(HAVE_LDAP_SSL, [1])
483 AC_MSG_CHECKING([whether to support rtsp])
485 AC_HELP_STRING([--enable-rtsp],[Enable RTSP support])
486 AC_HELP_STRING([--disable-rtsp],[Disable RTSP support]),
487 [ case "$enableval" in
490 AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
491 AC_SUBST(CURL_DISABLE_RTSP, [1])
493 *) if test x$CURL_DISABLE_HTTP = x1 ; then
494 AC_MSG_ERROR(HTTP support needs to be enabled in order to enable RTSP support!)
497 curl_rtsp_msg="enabled"
501 if test "x$CURL_DISABLE_HTTP" != "x1"; then
503 curl_rtsp_msg="enabled"
509 AC_MSG_CHECKING([whether to support proxies])
511 AC_HELP_STRING([--enable-proxy],[Enable proxy support])
512 AC_HELP_STRING([--disable-proxy],[Disable proxy support]),
513 [ case "$enableval" in
516 AC_DEFINE(CURL_DISABLE_PROXY, 1, [to disable proxies])
517 AC_SUBST(CURL_DISABLE_PROXY, [1])
519 *) AC_MSG_RESULT(yes)
525 AC_MSG_CHECKING([whether to support dict])
527 AC_HELP_STRING([--enable-dict],[Enable DICT support])
528 AC_HELP_STRING([--disable-dict],[Disable DICT support]),
529 [ case "$enableval" in
532 AC_DEFINE(CURL_DISABLE_DICT, 1, [to disable DICT])
533 AC_SUBST(CURL_DISABLE_DICT, [1])
535 *) AC_MSG_RESULT(yes)
540 AC_MSG_CHECKING([whether to support telnet])
541 AC_ARG_ENABLE(telnet,
542 AC_HELP_STRING([--enable-telnet],[Enable TELNET support])
543 AC_HELP_STRING([--disable-telnet],[Disable TELNET support]),
544 [ case "$enableval" in
547 AC_DEFINE(CURL_DISABLE_TELNET, 1, [to disable TELNET])
548 AC_SUBST(CURL_DISABLE_TELNET, [1])
550 *) AC_MSG_RESULT(yes)
555 AC_MSG_CHECKING([whether to support tftp])
557 AC_HELP_STRING([--enable-tftp],[Enable TFTP support])
558 AC_HELP_STRING([--disable-tftp],[Disable TFTP support]),
559 [ case "$enableval" in
562 AC_DEFINE(CURL_DISABLE_TFTP, 1, [to disable TFTP])
563 AC_SUBST(CURL_DISABLE_TFTP, [1])
565 *) AC_MSG_RESULT(yes)
571 AC_MSG_CHECKING([whether to support pop3])
573 AC_HELP_STRING([--enable-pop3],[Enable POP3 support])
574 AC_HELP_STRING([--disable-pop3],[Disable POP3 support]),
575 [ case "$enableval" in
578 AC_DEFINE(CURL_DISABLE_POP3, 1, [to disable POP3])
579 AC_SUBST(CURL_DISABLE_POP3, [1])
581 *) AC_MSG_RESULT(yes)
588 AC_MSG_CHECKING([whether to support imap])
590 AC_HELP_STRING([--enable-imap],[Enable IMAP support])
591 AC_HELP_STRING([--disable-imap],[Disable IMAP support]),
592 [ case "$enableval" in
595 AC_DEFINE(CURL_DISABLE_IMAP, 1, [to disable IMAP])
596 AC_SUBST(CURL_DISABLE_IMAP, [1])
598 *) AC_MSG_RESULT(yes)
605 AC_MSG_CHECKING([whether to support smtp])
607 AC_HELP_STRING([--enable-smtp],[Enable SMTP support])
608 AC_HELP_STRING([--disable-smtp],[Disable SMTP support]),
609 [ case "$enableval" in
612 AC_DEFINE(CURL_DISABLE_SMTP, 1, [to disable SMTP])
613 AC_SUBST(CURL_DISABLE_SMTP, [1])
615 *) AC_MSG_RESULT(yes)
621 AC_MSG_CHECKING([whether to support gopher])
622 AC_ARG_ENABLE(gopher,
623 AC_HELP_STRING([--enable-gopher],[Enable Gopher support])
624 AC_HELP_STRING([--disable-gopher],[Disable Gopher support]),
625 [ case "$enableval" in
628 AC_DEFINE(CURL_DISABLE_GOPHER, 1, [to disable Gopher])
629 AC_SUBST(CURL_DISABLE_GOPHER, [1])
631 *) AC_MSG_RESULT(yes)
638 dnl **********************************************************************
639 dnl Check for built-in manual
640 dnl **********************************************************************
642 AC_MSG_CHECKING([whether to provide built-in manual])
643 AC_ARG_ENABLE(manual,
644 AC_HELP_STRING([--enable-manual],[Enable built-in manual])
645 AC_HELP_STRING([--disable-manual],[Disable built-in manual]),
646 [ case "$enableval" in
650 *) AC_MSG_RESULT(yes)
657 dnl The actual use of the USE_MANUAL variable is done much later in this
658 dnl script to allow other actions to disable it as well.
660 dnl ************************************************************
661 dnl disable C code generation support
663 AC_MSG_CHECKING([whether to enable generation of C code])
664 AC_ARG_ENABLE(libcurl_option,
665 AC_HELP_STRING([--enable-libcurl-option],[Enable --libcurl C code generation support])
666 AC_HELP_STRING([--disable-libcurl-option],[Disable --libcurl C code generation support]),
667 [ case "$enableval" in
670 AC_DEFINE(CURL_DISABLE_LIBCURL_OPTION, 1, [to disable --libcurl C code generation option])
671 curl_libcurl_msg="no"
673 *) AC_MSG_RESULT(yes)
679 dnl **********************************************************************
680 dnl Checks for libraries.
681 dnl **********************************************************************
685 dnl gethostbyname without lib or in the nsl lib?
686 AC_CHECK_FUNC(gethostbyname,
687 [HAVE_GETHOSTBYNAME="1"
689 [ AC_CHECK_LIB(nsl, gethostbyname,
690 [HAVE_GETHOSTBYNAME="1"
695 if test "$HAVE_GETHOSTBYNAME" != "1"
697 dnl gethostbyname in the socket lib?
698 AC_CHECK_LIB(socket, gethostbyname,
699 [HAVE_GETHOSTBYNAME="1"
700 LIBS="$LIBS -lsocket"
704 if test "$HAVE_GETHOSTBYNAME" != "1"
706 dnl gethostbyname in the watt lib?
707 AC_CHECK_LIB(watt, gethostbyname,
708 [HAVE_GETHOSTBYNAME="1"
709 CPPFLAGS="-I/dev/env/WATT_ROOT/inc"
710 LDFLAGS="-L/dev/env/WATT_ROOT/lib"
715 dnl At least one system has been identified to require BOTH nsl and socket
716 dnl libs at the same time to link properly.
717 if test "$HAVE_GETHOSTBYNAME" != "1"
719 AC_MSG_CHECKING([for gethostbyname with both nsl and socket libs])
720 my_ac_save_LIBS=$LIBS
721 LIBS="-lnsl -lsocket $LIBS"
729 HAVE_GETHOSTBYNAME="1"
732 LIBS=$my_ac_save_LIBS
736 if test "$HAVE_GETHOSTBYNAME" != "1"
738 dnl This is for winsock systems
739 if test "$ac_cv_header_windows_h" = "yes"; then
740 if test "$ac_cv_header_winsock_h" = "yes"; then
743 winsock_LIB="-lwinsock"
746 winsock_LIB="-lwsock32"
750 if test "$ac_cv_header_winsock2_h" = "yes"; then
751 winsock_LIB="-lws2_32"
753 if test ! -z "$winsock_LIB"; then
754 my_ac_save_LIBS=$LIBS
755 LIBS="$winsock_LIB $LIBS"
756 AC_MSG_CHECKING([for gethostbyname in $winsock_LIB])
759 #ifdef HAVE_WINDOWS_H
760 #ifndef WIN32_LEAN_AND_MEAN
761 #define WIN32_LEAN_AND_MEAN
764 #ifdef HAVE_WINSOCK2_H
765 #include <winsock2.h>
767 #ifdef HAVE_WINSOCK_H
773 gethostbyname("www.dummysite.com");
777 HAVE_GETHOSTBYNAME="1"
781 LIBS=$my_ac_save_LIBS
787 if test "$HAVE_GETHOSTBYNAME" != "1"
789 dnl This is for Minix 3.1
790 AC_MSG_CHECKING([for gethostbyname for Minix 3])
793 /* Older Minix versions may need <net/gen/netdb.h> here instead */
796 gethostbyname("www.dummysite.com");
800 HAVE_GETHOSTBYNAME="1"
806 if test "$HAVE_GETHOSTBYNAME" != "1"
808 dnl This is for eCos with a stubbed DNS implementation
809 AC_MSG_CHECKING([for gethostbyname for eCos])
815 gethostbyname("www.dummysite.com");
819 HAVE_GETHOSTBYNAME="1"
825 if test "$HAVE_GETHOSTBYNAME" != "1"
827 dnl gethostbyname in the network lib - for Haiku OS
828 AC_CHECK_LIB(network, gethostbyname,
829 [HAVE_GETHOSTBYNAME="1"
830 LIBS="$LIBS -lnetwork"
834 if test "$HAVE_GETHOSTBYNAME" != "1"
836 dnl gethostbyname in the net lib - for BeOS
837 AC_CHECK_LIB(net, gethostbyname,
838 [HAVE_GETHOSTBYNAME="1"
844 if test "$HAVE_GETHOSTBYNAME" != "1"; then
845 AC_MSG_ERROR([couldn't find libraries for gethostbyname()])
849 AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ])
851 if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then
852 AC_CHECK_LIB(resolve, strcasecmp,
853 [LIBS="-lresolve $LIBS"],
857 ac_cv_func_strcasecmp="no"
859 CURL_CHECK_LIBS_CONNECT
861 CURL_NETWORK_LIBS=$LIBS
863 dnl **********************************************************************
864 dnl In case that function clock_gettime with monotonic timer is available,
865 dnl check for additional required libraries.
866 dnl **********************************************************************
867 CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC
869 dnl **********************************************************************
870 dnl The preceding library checks are all potentially useful for test
871 dnl servers (for providing networking support). Save the list of required
872 dnl libraries at this point for use while linking those test servers.
873 dnl **********************************************************************
874 TEST_SERVER_LIBS=$LIBS
876 dnl **********************************************************************
877 AC_MSG_CHECKING([whether to use libgcc])
878 AC_ARG_ENABLE(libgcc,
879 AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]),
880 [ case "$enableval" in
882 ALL_LIBS="$ALL_LIBS -lgcc"
891 dnl **********************************************************************
893 dnl **********************************************************************
896 AC_ARG_WITH(ldap-lib,
897 AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of ldap lib file]),
898 [LDAPLIBNAME="$withval"])
901 AC_ARG_WITH(lber-lib,
902 AC_HELP_STRING([--with-lber-lib=libname],[Specify name of lber lib file]),
903 [LBERLIBNAME="$withval"])
905 if test x$CURL_DISABLE_LDAP != x1 ; then
907 CURL_CHECK_HEADER_LBER
908 CURL_CHECK_HEADER_LDAP
909 CURL_CHECK_HEADER_LDAPSSL
910 CURL_CHECK_HEADER_LDAP_SSL
912 if test -z "$LDAPLIBNAME" ; then
913 if test "$ac_cv_native_windows" = "yes"; then
914 dnl Windows uses a single and unique LDAP library name
915 LDAPLIBNAME="wldap32"
920 if test "$LDAPLIBNAME" ; then
921 AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [
922 AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled])
923 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
924 AC_SUBST(CURL_DISABLE_LDAP, [1])])
925 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
926 AC_SUBST(CURL_DISABLE_LDAPS, [1])
928 dnl Try to find the right ldap libraries for this system
930 case X-"$curl_cv_ldap_LIBS" in
932 AC_MSG_WARN([Cannot find libraries for LDAP support: LDAP disabled])
933 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
934 AC_SUBST(CURL_DISABLE_LDAP, [1])
935 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
936 AC_SUBST(CURL_DISABLE_LDAPS, [1])
942 if test x$CURL_DISABLE_LDAP != x1 ; then
944 if test "$LBERLIBNAME" ; then
945 dnl If name is "no" then don't define this library at all
946 dnl (it's only needed if libldap.so's dependencies are broken).
947 if test "$LBERLIBNAME" != "no" ; then
948 AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [
949 AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled])
950 AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
951 AC_SUBST(CURL_DISABLE_LDAP, [1])])
952 AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
953 AC_SUBST(CURL_DISABLE_LDAPS, [1])
958 if test x$CURL_DISABLE_LDAP != x1 ; then
959 AC_CHECK_FUNCS([ldap_url_parse ldap_init_fd])
961 if test "$LDAPLIBNAME" = "wldap32"; then
962 curl_ldap_msg="enabled (winldap)"
963 AC_DEFINE(CURL_LDAP_WIN, 1, [Use Windows LDAP implementation])
965 curl_ldap_msg="enabled (OpenLDAP)"
966 if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then
967 AC_DEFINE(USE_OPENLDAP, 1, [Use OpenLDAP-specific code])
968 AC_SUBST(USE_OPENLDAP, [1])
973 if test x$CURL_DISABLE_LDAPS != x1 ; then
974 curl_ldaps_msg="enabled"
977 dnl **********************************************************************
979 dnl **********************************************************************
981 AC_MSG_CHECKING([whether to enable ipv6])
983 AC_HELP_STRING([--enable-ipv6],[Enable ipv6 (with ipv4) support])
984 AC_HELP_STRING([--disable-ipv6],[Disable ipv6 support]),
985 [ case "$enableval" in
990 *) AC_MSG_RESULT(yes)
995 AC_TRY_RUN([ /* is AF_INET6 available? */
996 #include <sys/types.h>
997 #include <sys/socket.h>
1000 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1014 if test "$ipv6" = "yes"; then
1015 curl_ipv6_msg="enabled"
1018 # Check if struct sockaddr_in6 have sin6_scope_id member
1019 if test "$ipv6" = yes; then
1020 AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
1022 #include <sys/types.h>
1023 #include <netinet/in.h>] ,
1024 struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
1025 if test "$have_sin6_scope_id" = yes; then
1026 AC_MSG_RESULT([yes])
1027 AC_DEFINE(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID, 1, [Define to 1 if struct sockaddr_in6 has the sin6_scope_id member])
1033 dnl **********************************************************************
1034 dnl Check if the operating system allows programs to write to their own argv[]
1035 dnl **********************************************************************
1037 AC_MSG_CHECKING([if argv can be written to])
1040 int main(int argc, char ** argv) {
1042 return (argv[0][0] == ' ')?0:1;
1046 curl_cv_writable_argv=yes
1048 curl_cv_writable_argv=no
1050 curl_cv_writable_argv=cross
1052 case $curl_cv_writable_argv in
1054 AC_DEFINE(HAVE_WRITABLE_ARGV, 1, [Define this symbol if your OS supports changing the contents of argv])
1062 AC_MSG_WARN([the previous check could not be made default was used])
1066 dnl **********************************************************************
1067 dnl Check for the presence of Kerberos4 libraries and headers
1068 dnl **********************************************************************
1070 AC_ARG_WITH(krb4-includes,
1071 AC_HELP_STRING([--with-krb4-includes=DIR],
1072 [Specify location of kerberos4 headers]),[
1073 CPPFLAGS="$CPPFLAGS -I$withval"
1078 AC_ARG_WITH(krb4-libs,
1079 AC_HELP_STRING([--with-krb4-libs=DIR],[Specify location of kerberos4 libs]),[
1080 LDFLAGS="$LDFLAGS -L$withval"
1087 AC_ARG_WITH(krb4,dnl
1088 AC_HELP_STRING([--with-krb4=DIR],[where to look for Kerberos4]),[
1090 if test X"$OPT_KRB4" != Xno; then
1092 if test X"$OPT_KRB4" != Xyes; then
1093 LDFLAGS="$LDFLAGS -L$OPT_KRB4/lib$libsuff"
1094 KRB4LIB="$OPT_KRB4/lib$libsuff"
1095 CPPFLAGS="$CPPFLAGS -I$OPT_KRB4/include"
1096 KRB4INC="$OPT_KRB4/include"
1101 AC_MSG_CHECKING([if Kerberos4 support is requested])
1103 if test "$want_krb4" = yes
1105 if test "$ipv6" = "yes"; then
1106 echo krb4 is not compatible with IPv6
1111 dnl Check for & handle argument to --with-krb4
1113 AC_MSG_CHECKING(where to look for Kerberos4)
1114 if test X"$OPT_KRB4" = Xyes
1116 AC_MSG_RESULT([defaults])
1118 AC_MSG_RESULT([libs in $KRB4LIB, headers in $KRB4INC])
1121 dnl Check for DES library
1122 AC_CHECK_LIB(des, des_pcbc_encrypt,
1124 AC_CHECK_HEADERS(des.h)
1127 AC_CHECK_FUNC(res_search, , [AC_CHECK_LIB(resolv, res_search)])
1129 dnl Check for the Kerberos4 library
1130 AC_CHECK_LIB(krb, krb_net_read,
1132 dnl Check for header files
1133 AC_CHECK_HEADERS(krb.h)
1135 dnl we found the required libraries, add to LIBS
1136 LIBS="-lkrb -lcom_err -ldes $LIBS"
1138 dnl Check for function krb_get_our_ip_for_realm
1139 dnl this is needed for NAT networks
1140 AC_CHECK_FUNCS(krb_get_our_ip_for_realm)
1143 AC_DEFINE(HAVE_KRB4, 1,
1144 [if you have the Kerberos4 libraries (including -ldes)])
1146 dnl substitute it too!
1148 AC_SUBST(KRB4_ENABLED)
1150 curl_krb4_msg="enabled"
1152 dnl the krb4 stuff needs a strlcpy()
1153 AC_CHECK_FUNCS(strlcpy)
1161 dnl **********************************************************************
1162 dnl Check for FBopenssl(SPNEGO) libraries
1163 dnl **********************************************************************
1166 AC_HELP_STRING([--with-spnego=DIR],
1167 [Specify location of SPNEGO library fbopenssl]), [
1168 SPNEGO_ROOT="$withval"
1169 if test x"$SPNEGO_ROOT" != xno; then
1174 AC_MSG_CHECKING([if SPNEGO support is requested])
1175 if test x"$want_spnego" = xyes; then
1177 if test X"$SPNEGO_ROOT" = Xyes; then
1178 AC_MSG_ERROR([FBOpenSSL libs and/or directories were not found where specified!])
1181 if test -z "$SPNEGO_LIB_DIR"; then
1182 LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl"
1184 LDFLAGS="$LDFLAGS $SPNEGO_LIB_DIR"
1188 AC_DEFINE(HAVE_SPNEGO, 1,
1189 [Define this if you have the SPNEGO library fbopenssl])
1190 curl_spnego_msg="enabled"
1196 dnl **********************************************************************
1197 dnl Check for GSS-API libraries
1198 dnl **********************************************************************
1200 dnl check for gss stuff in the /usr as default
1203 AC_ARG_WITH(gssapi-includes,
1204 AC_HELP_STRING([--with-gssapi-includes=DIR],
1205 [Specify location of GSSAPI header]),
1206 [ GSSAPI_INCS="-I$withval"
1210 AC_ARG_WITH(gssapi-libs,
1211 AC_HELP_STRING([--with-gssapi-libs=DIR],
1212 [Specify location of GSSAPI libs]),
1213 [ GSSAPI_LIB_DIR="-L$withval"
1218 AC_HELP_STRING([--with-gssapi=DIR],
1219 [Where to look for GSSAPI]), [
1220 GSSAPI_ROOT="$withval"
1221 if test x"$GSSAPI_ROOT" != xno; then
1223 if test x"$GSSAPI_ROOT" = xyes; then
1224 dnl if yes, then use default root
1230 save_CPPFLAGS="$CPPFLAGS"
1231 AC_MSG_CHECKING([if GSSAPI support is requested])
1232 if test x"$want_gss" = xyes; then
1235 if test -z "$GSSAPI_INCS"; then
1236 if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
1237 GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi`
1238 elif test "$GSSAPI_ROOT" != "yes"; then
1239 GSSAPI_INCS="-I$GSSAPI_ROOT/include"
1243 CPPFLAGS="$CPPFLAGS $GSSAPI_INCS"
1245 AC_CHECK_HEADER(gss.h,
1247 dnl found in the given dirs
1248 AC_DEFINE(HAVE_GSSGNU, 1, [if you have the GNU gssapi libraries])
1252 dnl not found, check Heimdal or MIT
1253 AC_CHECK_HEADERS([gssapi/gssapi.h], [], [not_mit=1])
1255 [gssapi/gssapi_generic.h gssapi/gssapi_krb5.h],
1260 #ifdef HAVE_GSSAPI_GSSAPI_H
1261 #include <gssapi/gssapi.h>
1264 if test "x$not_mit" = "x1"; then
1265 dnl MIT not found, check for Heimdal
1266 AC_CHECK_HEADER(gssapi.h,
1269 AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries])
1272 dnl no header found, disabling GSS
1274 AC_MSG_WARN(disabling GSSAPI since no header files was found)
1279 AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
1280 dnl check if we have a really old MIT kerberos (<= 1.2)
1281 AC_MSG_CHECKING([if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE])
1284 #include <gssapi/gssapi.h>
1285 #include <gssapi/gssapi_generic.h>
1286 #include <gssapi/gssapi_krb5.h>
1291 GSS_C_NT_HOSTBASED_SERVICE,
1295 AC_MSG_RESULT([yes])
1298 AC_DEFINE(HAVE_OLD_GSSMIT, 1,
1299 [if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE])
1307 if test x"$want_gss" = xyes; then
1308 AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries])
1310 curl_gss_msg="enabled (MIT/Heimdal)"
1312 if test -n "$gnu_gss"; then
1313 curl_gss_msg="enabled (GNU GSS)"
1314 LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1316 elif test -z "$GSSAPI_LIB_DIR"; then
1319 LIBS="$LIBS -lgssapi_krb5 -lresolv"
1322 if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
1323 dnl krb5-config doesn't have --libs-only-L or similar, put everything
1325 gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi`
1326 LIBS="$LIBS $gss_libs"
1327 elif test "$GSSAPI_ROOT" != "yes"; then
1328 LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff"
1329 LIBS="$LIBS -lgssapi"
1331 LIBS="$LIBS -lgssapi"
1336 LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1337 LIBS="$LIBS -lgssapi"
1340 CPPFLAGS="$save_CPPFLAGS"
1343 dnl **********************************************************************
1344 dnl Check for the presence of SSL libraries and headers
1345 dnl **********************************************************************
1347 dnl Default to compiler & linker defaults for SSL files & libraries.
1349 dnl Default to no CA bundle
1352 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])
1353 AC_HELP_STRING([--without-ssl], [disable OpenSSL]),
1356 if test X"$OPT_SSL" != Xno; then
1357 dnl backup the pre-ssl variables
1358 CLEANLDFLAGS="$LDFLAGS"
1359 CLEANCPPFLAGS="$CPPFLAGS"
1364 dnl --with-ssl (without path) used
1365 if test x$cross_compiling != xyes; then
1366 dnl only do pkg-config magic when not cross-compiling
1369 PREFIX_OPENSSL=/usr/local/ssl
1370 LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1373 dnl no --with-ssl option given, just check default places
1374 if test x$cross_compiling != xyes; then
1375 dnl only do pkg-config magic when not cross-compiling
1381 dnl check the given --with-ssl spot
1383 PREFIX_OPENSSL=$OPT_SSL
1385 dnl Try pkg-config even when cross-compiling. Since we
1386 dnl specify PKG_CONFIG_LIBDIR we're only looking where
1387 dnl the user told us to look
1388 OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig"
1389 AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
1390 if test -f "$OPENSSL_PCDIR/openssl.pc"; then
1394 dnl in case pkg-config comes up empty, use what we got
1396 LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1397 if test "$PREFIX_OPENSSL" != "/usr" ; then
1398 SSL_LDFLAGS="-L$LIB_OPENSSL"
1399 SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include"
1401 SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl"
1405 if test "$PKGTEST" = "yes"; then
1407 CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR])
1409 if test "$PKGCONFIG" != "no" ; then
1410 SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1411 $PKGCONFIG --libs-only-l openssl 2>/dev/null`
1413 SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1414 $PKGCONFIG --libs-only-L openssl 2>/dev/null`
1416 SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1417 $PKGCONFIG --cflags-only-I openssl 2>/dev/null`
1419 AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
1420 AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
1421 AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
1423 LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'`
1425 dnl use the values pkg-config reported. This is here
1426 dnl instead of below with CPPFLAGS and LDFLAGS because we only
1427 dnl learn about this via pkg-config. If we only have
1428 dnl the argument to --with-ssl we don't know what
1429 dnl additional libs may be necessary. Hope that we
1431 LIBS="$LIBS $SSL_LIBS"
1435 dnl finally, set flags to use SSL
1436 CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
1437 LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
1439 dnl This is for Msys/Mingw
1441 *-*-msys* | *-*-mingw*)
1442 AC_MSG_CHECKING([for gdi32])
1443 my_ac_save_LIBS=$LIBS
1444 LIBS="-lgdi32 $LIBS"
1445 AC_TRY_LINK([#include <windef.h>
1446 #include <wingdi.h>],
1449 AC_MSG_RESULT([yes])],
1450 [ dnl failed, restore LIBS
1451 LIBS=$my_ac_save_LIBS
1457 AC_CHECK_LIB(crypto, CRYPTO_lock,[
1459 LIBS="-lcrypto $LIBS"
1461 LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL"
1462 CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include"
1463 AC_CHECK_LIB(crypto, CRYPTO_add_lock,[
1465 LIBS="-lcrypto $LIBS"], [
1466 LDFLAGS="$CLEANLDFLAGS"
1467 CPPFLAGS="$CLEANCPPFLAGS"
1473 if test X"$HAVECRYPTO" = X"yes"; then
1474 dnl This is only reasonable to do if crypto actually is there: check for
1475 dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
1477 AC_CHECK_LIB(ssl, SSL_connect)
1479 if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1480 dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
1481 AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
1483 LIBS="$LIBS -lRSAglue -lrsaref"
1484 AC_CHECK_LIB(ssl, SSL_connect)
1485 if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1486 dnl still no SSL_connect
1495 dnl Have the libraries--check for SSLeay/OpenSSL headers
1496 AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
1497 openssl/pem.h openssl/ssl.h openssl/err.h,
1498 curl_ssl_msg="enabled (OpenSSL)"
1500 AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
1502 if test $ac_cv_header_openssl_x509_h = no; then
1503 dnl we don't use the "action" part of the AC_CHECK_HEADERS macro
1504 dnl since 'err.h' might in fact find a krb4 header with the same
1506 AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
1508 if test $ac_cv_header_x509_h = yes &&
1509 test $ac_cv_header_crypto_h = yes &&
1510 test $ac_cv_header_ssl_h = yes; then
1512 curl_ssl_msg="enabled (OpenSSL)"
1518 if test X"$OPENSSL_ENABLED" = X"1"; then
1519 AC_DEFINE(USE_SSLEAY, 1, [if SSL is enabled])
1521 dnl is there a pkcs12.h header present?
1522 AC_CHECK_HEADERS(openssl/pkcs12.h)
1526 dnl USE_SSLEAY is the historical name for what configure calls
1527 dnl OPENSSL_ENABLED; the names should really be unified
1528 USE_SSLEAY="$OPENSSL_ENABLED"
1529 AC_SUBST(USE_SSLEAY)
1531 if test X"$OPT_SSL" != Xoff &&
1532 test "$OPENSSL_ENABLED" != "1"; then
1533 AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!])
1537 if test X"$OPENSSL_ENABLED" = X"1"; then
1538 dnl If the ENGINE library seems to be around, check for the OpenSSL engine
1539 dnl stuff, it is kind of "separated" from the main SSL check
1540 AC_CHECK_FUNC(ENGINE_init,
1542 AC_CHECK_HEADERS(openssl/engine.h)
1543 AC_CHECK_FUNCS( ENGINE_load_builtin_engines )
1546 dnl these can only exist if openssl exists
1547 dnl yassl doesn't have SSL_get_shutdown
1549 AC_CHECK_FUNCS( RAND_status \
1553 CRYPTO_cleanup_all_ex_data \
1555 SSLv2_client_method )
1557 dnl Make an attempt to detect if this is actually yassl's headers and
1558 dnl OpenSSL emulation layer. We still leave everything else believing
1559 dnl and acting like OpenSSL.
1561 AC_MSG_CHECKING([for yaSSL using OpenSSL compatibility mode])
1564 #include <openssl/ssl.h>
1566 #if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER)
1567 int dummy = SSL_ERROR_NONE;
1569 Not the yaSSL OpenSSL compatibility header.
1573 AC_MSG_RESULT([yes])
1574 AC_DEFINE_UNQUOTED(USE_YASSLEMUL, 1,
1575 [Define to 1 if using yaSSL in OpenSSL compatibility mode.])
1576 curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)"
1582 if test "$OPENSSL_ENABLED" = "1"; then
1583 if test -n "$LIB_OPENSSL"; then
1584 dnl when the ssl shared libs were found in a path that the run-time
1585 dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
1586 dnl to prevent further configure tests to fail due to this
1587 if test "x$cross_compiling" != "xyes"; then
1588 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL"
1589 export LD_LIBRARY_PATH
1590 AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH])
1593 CURL_CHECK_OPENSSL_API
1598 dnl **********************************************************************
1599 dnl Check for the presence of ZLIB libraries and headers
1600 dnl **********************************************************************
1602 dnl Check for & handle argument to --with-zlib.
1607 AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])
1608 AC_HELP_STRING([--without-zlib],[disable use of zlib]),
1609 [OPT_ZLIB="$withval"])
1611 if test "$OPT_ZLIB" = "no" ; then
1612 AC_MSG_WARN([zlib disabled])
1614 if test "$OPT_ZLIB" = "yes" ; then
1618 if test -z "$OPT_ZLIB" ; then
1619 dnl check for the lib first without setting any new path, since many
1620 dnl people have it in the default path
1622 AC_CHECK_LIB(z, inflateEnd,
1623 dnl libz found, set the variable
1625 dnl if no lib found, try /usr/local
1626 [OPT_ZLIB="/usr/local"])
1630 dnl Add a nonempty path to the compiler flags
1631 if test -n "$OPT_ZLIB"; then
1632 CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
1633 LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
1636 AC_CHECK_HEADER(zlib.h,
1638 dnl zlib.h was found
1640 dnl if the lib wasn't found already, try again with the new paths
1641 if test "$HAVE_LIBZ" != "1"; then
1642 AC_CHECK_LIB(z, gzread,
1644 dnl the lib was found!
1647 [ CPPFLAGS=$_cppflags
1652 dnl zlib.h was not found, restore the flags
1657 if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
1659 AC_MSG_WARN([configure found only the libz lib, not the header file!])
1661 elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
1663 AC_MSG_WARN([configure found only the libz header file, not the lib!])
1664 elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1"
1666 dnl both header and lib were found!
1668 AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file])
1669 AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available])
1671 CURL_LIBS="$CURL_LIBS -lz"
1674 dnl replace 'HAVE_LIBZ' in the automake makefile.ams
1676 AC_MSG_NOTICE([found both libz and libz.h header])
1677 curl_zlib_msg="enabled"
1681 dnl set variable for use in automakefile(s)
1682 AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
1684 dnl **********************************************************************
1685 dnl Check for the random seed preferences
1686 dnl **********************************************************************
1688 if test X"$OPENSSL_ENABLED" = X"1"; then
1689 AC_ARG_WITH(egd-socket,
1690 AC_HELP_STRING([--with-egd-socket=FILE],
1691 [Entropy Gathering Daemon socket pathname]),
1692 [ EGD_SOCKET="$withval" ]
1694 if test -n "$EGD_SOCKET" ; then
1695 AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET",
1696 [your Entropy Gathering Daemon socket pathname] )
1699 dnl Check for user-specified random device
1701 AC_HELP_STRING([--with-random=FILE],
1702 [read randomness from FILE (default=/dev/urandom)]),
1703 [ RANDOM_FILE="$withval" ],
1705 if test x$cross_compiling != xyes; then
1706 dnl Check for random device
1707 AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
1709 AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling])
1713 if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
1714 AC_SUBST(RANDOM_FILE)
1715 AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE",
1716 [a suitable file to read random data from])
1721 dnl We require OpenSSL with SRP support.
1723 if test "$OPENSSL_ENABLED" = "1"; then
1724 AC_CHECK_LIB(crypto, SRP_Calc_client_key,
1726 AC_DEFINE(HAVE_SSLEAY_SRP, 1, [if you have the function SRP_Calc_client_key])
1727 AC_SUBST(HAVE_SSLEAY_SRP, [1])
1731 dnl ----------------------------------------------------
1732 dnl check for GnuTLS
1733 dnl ----------------------------------------------------
1735 dnl Default to compiler & linker defaults for GnuTLS files & libraries.
1738 AC_ARG_WITH(gnutls,dnl
1739 AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root])
1740 AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
1741 OPT_GNUTLS=$withval)
1743 if test "$OPENSSL_ENABLED" != "1"; then
1745 if test X"$OPT_GNUTLS" != Xno; then
1748 if test "x$OPT_GNUTLS" = "xyes"; then
1749 dnl this is with no partiular path given
1750 CURL_CHECK_PKGCONFIG(gnutls)
1752 if test "$PKGCONFIG" != "no" ; then
1753 addlib=`$PKGCONFIG --libs-only-l gnutls`
1754 addld=`$PKGCONFIG --libs-only-L gnutls`
1755 addcflags=`$PKGCONFIG --cflags-only-I gnutls`
1756 version=`$PKGCONFIG --modversion gnutls`
1757 gtlslib=`echo $addld | $SED -e 's/-L//'`
1759 dnl without pkg-config, we try libgnutls-config as that was how it
1761 check=`libgnutls-config --version 2>/dev/null`
1762 if test -n "$check"; then
1763 addlib=`libgnutls-config --libs`
1764 addcflags=`libgnutls-config --cflags`
1765 version=`libgnutls-config --version`
1766 gtlslib=`libgnutls-config --prefix`/lib$libsuff
1770 dnl this is with a given path, first check if there's a libgnutls-config
1771 dnl there and if not, make an educated guess
1772 cfg=$OPT_GNUTLS/bin/libgnutls-config
1773 check=`$cfg --version 2>/dev/null`
1774 if test -n "$check"; then
1775 addlib=`$cfg --libs`
1776 addcflags=`$cfg --cflags`
1777 version=`$cfg --version`
1778 gtlslib=`$cfg --prefix`/lib$libsuff
1780 dnl without pkg-config and libgnutls-config, we guess a lot!
1782 addld=-L$OPT_GNUTLS/lib$libsuff
1783 addcflags=-I$OPT_GNUTLS/include
1784 version="" # we just don't know
1785 gtlslib=$OPT_GNUTLS/lib$libsuff
1789 if test -z "$version"; then
1790 dnl lots of efforts, still no go
1794 if test -n "$addlib"; then
1797 CLEANCPPFLAGS="$CPPFLAGS"
1798 CLEADLDFLAGS="$LDFLAGS"
1800 LIBS="$LIBS $addlib"
1801 LDFLAGS="$LDFLAGS $addld"
1802 if test "$addcflags" != "-I/usr/include"; then
1803 CPPFLAGS="$CPPFLAGS $addcflags"
1806 AC_CHECK_LIB(gnutls, gnutls_check_version,
1808 AC_DEFINE(USE_GNUTLS, 1, [if GnuTLS is enabled])
1809 AC_SUBST(USE_GNUTLS, [1])
1812 curl_ssl_msg="enabled (GnuTLS)"
1816 CPPFLAGS="$CLEANCPPFLAGS"
1819 if test "x$USE_GNUTLS" = "xyes"; then
1820 AC_MSG_NOTICE([detected GnuTLS version $version])
1822 if test -n "$gtlslib"; then
1823 dnl when shared libs were found in a path that the run-time
1824 dnl linker doesn't search through, we need to add it to
1825 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1827 if test "x$cross_compiling" != "xyes"; then
1828 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
1829 export LD_LIBRARY_PATH
1830 AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
1837 fi dnl GNUTLS not disabled
1842 dnl Check which crypto backend GnuTLS uses
1845 if test "$GNUTLS_ENABLED" = "1"; then
1847 # First check if we can detect either crypto library via transitive linking
1848 AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1849 if test "$USE_GNUTLS_NETTLE" = ""; then
1850 AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1852 # If not, try linking directly to both of them to see if they are available
1853 if test "$USE_GNUTLS_NETTLE" = ""; then
1854 AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1856 if test "$USE_GNUTLS_NETTLE" = ""; then
1857 AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1859 if test "$USE_GNUTLS_NETTLE" = ""; then
1860 AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found])
1862 if test "$USE_GNUTLS_NETTLE" = "1"; then
1863 AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend])
1864 AC_SUBST(USE_GNUTLS_NETTLE, [1])
1865 LIBS="$LIBS -lnettle"
1867 LIBS="$LIBS -lgcrypt"
1872 dnl We require GnuTLS with SRP support.
1874 if test "$GNUTLS_ENABLED" = "1"; then
1875 AC_CHECK_LIB(gnutls, gnutls_srp_verifier,
1877 AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier])
1878 AC_SUBST(HAVE_GNUTLS_SRP, [1])
1882 dnl ----------------------------------------------------
1883 dnl check for PolarSSL
1884 dnl ----------------------------------------------------
1886 dnl Default to compiler & linker defaults for PolarSSL files & libraries.
1891 AC_ARG_WITH(polarssl,dnl
1892 AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root])
1893 AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]),
1894 OPT_POLARSSL=$withval)
1896 if test "$OPENSSL_ENABLED" != "1"; then
1898 if test X"$OPT_POLARSSL" != Xno; then
1900 if test "$OPT_POLARSSL" = "yes"; then
1904 if test -z "$OPT_POLARSSL" ; then
1905 dnl check for lib first without setting any new path
1907 AC_CHECK_LIB(polarssl, havege_init,
1908 dnl libpolarssl found, set the variable
1910 AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1911 AC_SUBST(USE_POLARSSL, [1])
1914 curl_ssl_msg="enabled (PolarSSL)"
1918 if test "x$USE_POLARSSL" != "xyes"; then
1919 dnl add the path and test again
1920 addld=-L$OPT_POLARSSL/lib$libsuff
1921 addcflags=-I$OPT_POLARSSL/include
1922 polarssllib=$OPT_POLARSSL/lib$libsuff
1924 LDFLAGS="$LDFLAGS $addld"
1925 if test "$addcflags" != "-I/usr/include"; then
1926 CPPFLAGS="$CPPFLAGS $addcflags"
1929 AC_CHECK_LIB(polarssl, ssl_init,
1931 AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1932 AC_SUBST(USE_POLARSSL, [1])
1935 curl_ssl_msg="enabled (PolarSSL)"
1943 if test "x$USE_POLARSSL" = "xyes"; then
1944 AC_MSG_NOTICE([detected PolarSSL])
1946 CURL_LIBS="$CURL_LIBS -lpolarssl"
1947 LIBS="$LIBS -lpolarssl"
1949 if test -n "$polarssllib"; then
1950 dnl when shared libs were found in a path that the run-time
1951 dnl linker doesn't search through, we need to add it to
1952 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1954 if test "x$cross_compiling" != "xyes"; then
1955 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib"
1956 export LD_LIBRARY_PATH
1957 AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH])
1962 fi dnl PolarSSL not disabled
1966 dnl ----------------------------------------------------
1967 dnl check for CyaSSL
1968 dnl ----------------------------------------------------
1970 dnl Default to compiler & linker defaults for CyaSSL files & libraries.
1975 AC_ARG_WITH(cyassl,dnl
1976 AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
1977 AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
1978 OPT_CYASSL=$withval)
1980 if test "$OPENSSL_ENABLED" != "1"; then
1982 if test X"$OPT_CYASSL" != Xno; then
1984 if test "$OPT_CYASSL" = "yes"; then
1988 if test -z "$OPT_CYASSL" ; then
1989 dnl check for lib in system default first
1991 AC_CHECK_LIB(cyassl, CyaSSL_Init,
1992 dnl libcyassl found, set the variable
1994 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
1995 AC_SUBST(USE_CYASSL, [1])
1998 curl_ssl_msg="enabled (CyaSSL)"
2002 if test "x$USE_CYASSL" != "xyes"; then
2003 dnl add the path and test again
2004 addld=-L$OPT_CYASSL/lib$libsuff
2005 addcflags=-I$OPT_CYASSL/include
2006 cyassllib=$OPT_CYASSL/lib$libsuff
2008 LDFLAGS="$LDFLAGS $addld"
2009 if test "$addcflags" != "-I/usr/include"; then
2010 CPPFLAGS="$CPPFLAGS $addcflags"
2013 AC_CHECK_LIB(cyassl, CyaSSL_Init,
2015 AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2016 AC_SUBST(USE_CYASSL, [1])
2019 curl_ssl_msg="enabled (CyaSSL)"
2027 if test "x$USE_CYASSL" = "xyes"; then
2028 AC_MSG_NOTICE([detected CyaSSL])
2030 CURL_LIBS="$CURL_LIBS -lcyassl -lm"
2031 LIBS="$LIBS -lcyassl -lm"
2033 if test -n "$cyassllib"; then
2034 dnl when shared libs were found in a path that the run-time
2035 dnl linker doesn't search through, we need to add it to
2036 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2038 if test "x$cross_compiling" != "xyes"; then
2039 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
2040 export LD_LIBRARY_PATH
2041 AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH])
2047 fi dnl CyaSSL not disabled
2051 dnl ----------------------------------------------------
2052 dnl NSS. Only check if GnuTLS and OpenSSL are not enabled
2053 dnl ----------------------------------------------------
2055 dnl Default to compiler & linker defaults for NSS files & libraries.
2059 AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root])
2060 AC_HELP_STRING([--without-nss], [disable NSS detection]),
2063 if test "$OPENSSL_ENABLED" != "1" -a "$GNUTLS_ENABLED" != "1"; then
2065 if test X"$OPT_NSS" != Xno; then
2066 if test "x$OPT_NSS" = "xyes"; then
2068 CURL_CHECK_PKGCONFIG(nss)
2070 if test "$PKGCONFIG" != "no" ; then
2071 addlib=`$PKGCONFIG --libs nss`
2072 addcflags=`$PKGCONFIG --cflags nss`
2073 version=`$PKGCONFIG --modversion nss`
2074 nssprefix=`$PKGCONFIG --variable=prefix nss`
2076 dnl Without pkg-config, we check for nss-config
2078 check=`nss-config --version 2>/dev/null`
2079 if test -n "$check"; then
2080 addlib=`nss-config --libs`
2081 addcflags=`nss-config --cflags`
2082 version=`nss-config --version`
2083 nssprefix=`nss-config --prefix`
2091 # Without pkg-config, we'll kludge in some defaults
2092 addlib="-L$OPT_NSS/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
2093 addcflags="-I$OPT_NSS/include"
2098 if test -n "$addlib"; then
2101 CLEANCPPFLAGS="$CPPFLAGS"
2103 LIBS="$LIBS $addlib"
2104 if test "$addcflags" != "-I/usr/include"; then
2105 CPPFLAGS="$CPPFLAGS $addcflags"
2108 dnl The function PK11_CreateGenericObject is needed to load libnsspem.so
2109 AC_CHECK_LIB(nss3, PK11_CreateGenericObject,
2111 AC_DEFINE(USE_NSS, 1, [if NSS is enabled])
2112 AC_SUBST(USE_NSS, [1])
2115 curl_ssl_msg="enabled (NSS)"
2119 CPPFLAGS="$CLEANCPPFLAGS"
2122 if test "x$USE_NSS" = "xyes"; then
2123 AC_MSG_NOTICE([detected NSS version $version])
2125 dnl NSS_InitContext() was introduced in NSS 3.12.5 and helps to prevent
2126 dnl collisions on NSS initialization/shutdown with other libraries
2127 AC_CHECK_FUNC(NSS_InitContext,
2129 AC_DEFINE(HAVE_NSS_INITCONTEXT, 1, [if you have the NSS_InitContext function])
2130 AC_SUBST(HAVE_NSS_INITCONTEXT, [1])
2133 dnl when shared libs were found in a path that the run-time
2134 dnl linker doesn't search through, we need to add it to
2135 dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2137 if test "x$cross_compiling" != "xyes"; then
2138 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff"
2139 export LD_LIBRARY_PATH
2140 AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH])
2146 fi dnl NSS not disabled
2148 fi dnl OPENSSL != 1 -a GNUTLS_ENABLED != 1
2152 AC_ARG_WITH(axtls,dnl
2153 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.])
2154 AC_HELP_STRING([--without-axtls], [disable axTLS]),
2157 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2158 if test X"$OPT_AXTLS" != Xno; then
2159 dnl backup the pre-axtls variables
2160 CLEANLDFLAGS="$LDFLAGS"
2161 CLEANCPPFLAGS="$CPPFLAGS"
2164 case "$OPT_AXTLS" in
2166 dnl --with-axtls (without path) used
2167 PREFIX_AXTLS=/usr/local
2168 LIB_AXTLS="$PREFIX_AXTLS/lib"
2169 LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2170 CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2173 dnl no --with-axtls option given, just check default places
2177 dnl check the given --with-axtls spot
2178 PREFIX_AXTLS=$OPT_AXTLS
2179 LIB_AXTLS="$PREFIX_AXTLS/lib"
2180 LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2181 CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2185 AC_CHECK_LIB(axtls, ssl_version,[
2186 LIBS="-laxtls $LIBS"
2187 AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled])
2188 AC_SUBST(USE_AXTLS, [1])
2191 curl_ssl_msg="enabled (axTLS)"
2194 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS"
2195 export LD_LIBRARY_PATH
2196 AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH])
2198 LDFLAGS="$CLEANLDFLAGS"
2199 CPPFLAGS="$CLEANCPPFLAGS"
2205 if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED" = "x"; then
2206 AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
2207 AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss or --with-axtls to address this.])
2209 # SSL is enabled, genericly
2210 AC_SUBST(SSL_ENABLED)
2214 dnl **********************************************************************
2215 dnl Check for the CA bundle
2216 dnl **********************************************************************
2218 CURL_CHECK_CA_BUNDLE
2220 dnl **********************************************************************
2221 dnl Check for libmetalink
2222 dnl **********************************************************************
2226 AC_ARG_WITH(libmetalink,dnl
2227 AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root])
2228 AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]),
2229 OPT_LIBMETALINK=$withval)
2231 if test X"$OPT_LIBMETALINK" != Xno; then
2239 if test "x$OPT_LIBMETALINK" = "xyes"; then
2240 dnl this is with no partiular path given
2242 CURL_CHECK_PKGCONFIG(libmetalink)
2244 dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path.
2245 LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig"
2246 AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"])
2247 if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then
2250 if test "$PKGTEST" = "yes"; then
2251 CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR])
2254 if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then
2255 addlib=`$PKGCONFIG --libs-only-l libmetalink`
2256 addld=`$PKGCONFIG --libs-only-L libmetalink`
2257 addcflags=`$PKGCONFIG --cflags-only-I libmetalink`
2258 version=`$PKGCONFIG --modversion libmetalink`
2259 libmetalinklib=`echo $addld | $SED -e 's/-L//'`
2261 if test -n "$addlib"; then
2263 AC_MSG_NOTICE([detected libmetalink version $version])
2264 curl_metalink_msg="enabled"
2265 LIBMETALINK_LIBS=$addlib
2266 LIBMETALINK_LDFLAGS=$addld
2267 LIBMETALINK_CFLAGS=$addcflags
2268 AC_SUBST([LIBMETALINK_LIBS])
2269 AC_SUBST([LIBMETALINK_LDFLAGS])
2270 AC_SUBST([LIBMETALINK_CFLAGS])
2271 AC_DEFINE(HAVE_LIBMETALINK, 1, [if libmetalink is available])
2275 AM_CONDITIONAL([HAVE_LIBMETALINK], [test -n "x$LIBMETALINK_LIBS"])
2277 dnl **********************************************************************
2278 dnl Check for the presence of LIBSSH2 libraries and headers
2279 dnl **********************************************************************
2281 dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
2283 AC_ARG_WITH(libssh2,dnl
2284 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])
2285 AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
2286 OPT_LIBSSH2=$withval)
2288 if test X"$OPT_LIBSSH2" != Xno; then
2289 dnl backup the pre-libssh2 variables
2290 CLEANLDFLAGS="$LDFLAGS"
2291 CLEANCPPFLAGS="$CPPFLAGS"
2294 case "$OPT_LIBSSH2" in
2296 dnl --with-libssh2 (without path) used
2297 CURL_CHECK_PKGCONFIG(libssh2)
2299 if test "$PKGCONFIG" != "no" ; then
2300 LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2`
2301 LD_SSH2=`$PKGCONFIG --libs-only-L libssh2`
2302 CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2`
2303 version=`$PKGCONFIG --modversion libssh2`
2304 DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'`
2309 dnl no --with-libssh2 option given, just check default places
2312 dnl use the given --with-libssh2 spot
2313 PREFIX_SSH2=$OPT_LIBSSH2
2317 dnl if given with a prefix, we set -L and -I based on that
2318 if test -n "$PREFIX_SSH2"; then
2320 LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff
2321 CPP_SSH2=-I${PREFIX_SSH2}/include
2322 DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
2325 LDFLAGS="$LDFLAGS $LD_SSH2"
2326 CPPFLAGS="$CPPFLAGS $CPP_SSH2"
2327 LIBS="$LIBS $LIB_SSH2"
2329 AC_CHECK_LIB(ssh2, libssh2_channel_open_ex)
2331 AC_CHECK_HEADERS(libssh2.h,
2332 curl_ssh_msg="enabled (libSSH2)"
2334 AC_DEFINE(USE_LIBSSH2, 1, [if libSSH2 is in use])
2335 AC_SUBST(USE_LIBSSH2, [1])
2338 if test X"$OPT_LIBSSH2" != Xoff &&
2339 test "$LIBSSH2_ENABLED" != "1"; then
2340 AC_MSG_ERROR([libSSH2 libs and/or directories were not found where specified!])
2343 if test "$LIBSSH2_ENABLED" = "1"; then
2344 if test -n "$DIR_SSH2"; then
2345 dnl when the libssh2 shared libs were found in a path that the run-time
2346 dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
2347 dnl to prevent further configure tests to fail due to this
2349 dnl libssh2_version is a post 1.0 addition
2350 dnl libssh2_init and libssh2_exit were added in 1.2.5
2351 dnl libssh2_scp_send64 was added in 1.2.6
2352 dnl libssh2_session_handshake was added in 1.2.8
2353 AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \
2354 libssh2_scp_send64 libssh2_session_handshake)
2355 if test "x$cross_compiling" != "xyes"; then
2356 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
2357 export LD_LIBRARY_PATH
2358 AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH])
2362 dnl no libssh2, revert back to clean variables
2363 LDFLAGS=$CLEANLDFLAGS
2364 CPPFLAGS=$CLEANCPPFLAGS
2369 dnl **********************************************************************
2370 dnl Check for the presence of LIBRTMP libraries and headers
2371 dnl **********************************************************************
2373 dnl Default to compiler & linker defaults for LIBRTMP files & libraries.
2375 AC_ARG_WITH(librtmp,dnl
2376 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])
2377 AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]),
2378 OPT_LIBRTMP=$withval)
2380 if test X"$OPT_LIBRTMP" != Xno; then
2381 dnl backup the pre-librtmp variables
2382 CLEANLDFLAGS="$LDFLAGS"
2383 CLEANCPPFLAGS="$CPPFLAGS"
2386 case "$OPT_LIBRTMP" in
2388 dnl --with-librtmp (without path) used
2389 CURL_CHECK_PKGCONFIG(librtmp)
2391 if test "$PKGCONFIG" != "no" ; then
2392 LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp`
2393 LD_RTMP=`$PKGCONFIG --libs-only-L librtmp`
2394 CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp`
2395 version=`$PKGCONFIG --modversion librtmp`
2396 DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'`
2398 dnl To avoid link errors, we do not allow --librtmp without
2399 dnl a pkgconfig file
2400 AC_MSG_ERROR([--librtmp was specified but could not find librtmp pkgconfig file.])
2405 dnl no --with-librtmp option given, just check default places
2409 dnl use the given --with-librtmp spot
2410 PREFIX_RTMP=$OPT_LIBRTMP
2414 dnl if given with a prefix, we set -L and -I based on that
2415 if test -n "$PREFIX_RTMP"; then
2416 LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff
2417 CPP_RTMP=-I${PREFIX_RTMP}/include
2418 DIR_RTMP=${PREFIX_RTMP}/lib$libsuff
2421 LDFLAGS="$LDFLAGS $LD_RTMP"
2422 CPPFLAGS="$CPPFLAGS $CPP_RTMP"
2423 LIBS="$LIBS $LIB_RTMP"
2425 AC_CHECK_LIB(rtmp, RTMP_Init,
2427 AC_CHECK_HEADERS(librtmp/rtmp.h,
2428 curl_rtmp_msg="enabled (librtmp)"
2430 AC_DEFINE(USE_LIBRTMP, 1, [if librtmp is in use])
2431 AC_SUBST(USE_LIBRTMP, [1])
2434 dnl not found, revert back to clean variables
2435 LDFLAGS=$CLEANLDFLAGS
2436 CPPFLAGS=$CLEANCPPFLAGS
2440 if test X"$OPT_LIBRTMP" != Xoff &&
2441 test "$LIBRTMP_ENABLED" != "1"; then
2442 AC_MSG_ERROR([librtmp libs and/or directories were not found where specified!])
2447 dnl **********************************************************************
2448 dnl Check for linker switch for versioned symbols
2449 dnl **********************************************************************
2451 versioned_symbols_flavour=
2452 AC_MSG_CHECKING([whether versioned symbols are wanted])
2453 AC_ARG_ENABLE(versioned-symbols,
2454 AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library])
2455 AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]),
2456 [ case "$enableval" in
2457 yes) AC_MSG_RESULT(yes)
2458 AC_MSG_CHECKING([if libraries can be versioned])
2459 GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
2460 if test -z "$GLD"; then
2462 AC_MSG_WARN([You need an ld version supporting the --version-script option])
2465 if test "x$OPENSSL_ENABLED" = "x1"; then
2466 versioned_symbols_flavour="OPENSSL_"
2467 elif test "x$GNUTLS_ENABLED" == "x1"; then
2468 versioned_symbols_flavour="GNUTLS_"
2469 elif test "x$NSS_ENABLED" == "x1"; then
2470 versioned_symbols_flavour="NSS_"
2471 elif test "x$POLARSSL_ENABLED" == "x1"; then
2472 versioned_symbols_flavour="POLARSSL_"
2473 elif test "x$CYASSL_ENABLED" == "x1"; then
2474 versioned_symbols_flavour="CYASSL_"
2475 elif test "x$AXTLS_ENABLED" == "x1"; then
2476 versioned_symbols_flavour="AXTLS_"
2478 versioned_symbols_flavour=""
2480 versioned_symbols="yes"
2484 *) AC_MSG_RESULT(no)
2492 AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"])
2493 AM_CONDITIONAL(VERSIONED_SYMBOLS, test "x$versioned_symbols" = "xyes")
2496 dnl **********************************************************************
2497 dnl Check for the presence of IDN libraries and headers
2498 dnl **********************************************************************
2500 AC_MSG_CHECKING([whether to build with libidn])
2503 AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage])
2504 AC_HELP_STRING([--without-libidn],[Disable libidn usage]),
2508 dnl --without-libidn option used
2513 dnl configure option not specified
2515 want_idn_path="default"
2516 AC_MSG_RESULT([(assumed) yes])
2519 dnl --with-libidn option used without path
2521 want_idn_path="default"
2522 AC_MSG_RESULT([yes])
2525 dnl --with-libidn option used with path
2527 want_idn_path="$withval"
2528 AC_MSG_RESULT([yes ($withval)])
2532 if test "$want_idn" = "yes"; then
2533 dnl idn library support has been requested
2534 clean_CPPFLAGS="$CPPFLAGS"
2535 clean_LDFLAGS="$LDFLAGS"
2539 if test "$want_idn_path" != "default"; then
2540 dnl path has been specified
2541 IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
2542 CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR])
2543 if test "$PKGCONFIG" != "no"; then
2544 IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2545 $PKGCONFIG --libs-only-l libidn 2>/dev/null`
2546 IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2547 $PKGCONFIG --libs-only-L libidn 2>/dev/null`
2548 IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2549 $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2550 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2552 dnl pkg-config not available or provides no info
2554 IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
2555 IDN_CPPFLAGS="-I$want_idn_path/include"
2556 IDN_DIR="$want_idn_path/lib$libsuff"
2559 dnl path not specified
2560 CURL_CHECK_PKGCONFIG(libidn)
2561 if test "$PKGCONFIG" != "no"; then
2562 IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
2563 IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
2564 IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2565 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2567 dnl pkg-config not available or provides no info
2572 if test "$PKGCONFIG" != "no"; then
2573 AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"])
2574 AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"])
2575 AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2576 AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"])
2578 AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"])
2579 AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"])
2580 AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2581 AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
2584 CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
2585 LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
2586 LIBS="$IDN_LIBS $LIBS"
2588 AC_MSG_CHECKING([if idna_to_ascii_4i can be linked])
2590 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i])
2592 AC_MSG_RESULT([yes])
2593 tst_links_libidn="yes"
2596 tst_links_libidn="no"
2598 if test "$tst_links_libidn" = "no"; then
2599 AC_MSG_CHECKING([if idna_to_ascii_lz can be linked])
2601 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz])
2603 AC_MSG_RESULT([yes])
2604 tst_links_libidn="yes"
2607 tst_links_libidn="no"
2611 if test "$tst_links_libidn" = "yes"; then
2612 AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).])
2613 dnl different versions of libidn have different setups of these:
2614 AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror )
2615 AC_CHECK_HEADERS( idn-free.h tld.h )
2616 if test "x$ac_cv_header_tld_h" = "xyes"; then
2617 AC_SUBST([IDN_ENABLED], [1])
2618 curl_idn_msg="enabled"
2619 if test -n "$IDN_DIR"; then
2620 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
2621 export LD_LIBRARY_PATH
2622 AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH])
2625 AC_MSG_WARN([Libraries for IDN support too old: IDN disabled])
2626 CPPFLAGS="$clean_CPPFLAGS"
2627 LDFLAGS="$clean_LDFLAGS"
2631 AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2632 CPPFLAGS="$clean_CPPFLAGS"
2633 LDFLAGS="$clean_LDFLAGS"
2639 dnl Let's hope this split URL remains working:
2640 dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
2641 dnl genprogc/thread_quick_ref.htm
2644 dnl **********************************************************************
2645 dnl Back to "normal" configuring
2646 dnl **********************************************************************
2648 dnl Checks for header files.
2651 CURL_CHECK_HEADER_MALLOC
2652 CURL_CHECK_HEADER_MEMORY
2654 dnl Now check for the very most basic headers. Then we can use these
2655 dnl ones as default-headers when checking for the rest!
2698 dnl to do if not found
2702 dnl default includes
2704 #ifdef HAVE_SYS_TYPES_H
2705 #include <sys/types.h>
2707 #ifdef HAVE_SYS_TIME_H
2708 #include <sys/time.h>
2710 #ifdef HAVE_SYS_SELECT_H
2711 #include <sys/select.h>
2713 #ifdef HAVE_SYS_SOCKET_H
2714 #include <sys/socket.h>
2716 #ifdef HAVE_NETINET_IN_H
2717 #include <netinet/in.h>
2719 #ifdef HAVE_SYS_UN_H
2725 dnl Checks for typedefs, structures, and compiler characteristics.
2727 CURL_CHECK_VARIADIC_MACROS
2730 CURL_CHECK_STRUCT_TIMEVAL
2731 CURL_VERIFY_RUNTIMELIBS
2733 AC_CHECK_SIZEOF(size_t)
2734 AC_CHECK_SIZEOF(long)
2735 AC_CHECK_SIZEOF(int)
2736 AC_CHECK_SIZEOF(short)
2738 AC_CHECK_SIZEOF(time_t)
2739 AC_CHECK_SIZEOF(off_t)
2742 if test x"$ac_cv_native_windows" != "xyes" &&
2743 test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then
2744 AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous])
2745 AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.])
2750 AC_CHECK_TYPE(long long,
2751 [AC_DEFINE(HAVE_LONGLONG, 1,
2752 [Define to 1 if the compiler supports the 'long long' data type.])]
2756 if test "xyes" = "x$longlong"; then
2757 AC_MSG_CHECKING([if numberLL works])
2761 long long val = 1000LL;
2764 AC_MSG_RESULT([yes])
2765 AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL])
2773 AC_CHECK_TYPE(ssize_t, ,
2774 AC_DEFINE(ssize_t, int, [the signed version of size_t]))
2776 # check for bool type
2777 AC_CHECK_TYPE([bool],[
2778 AC_DEFINE(HAVE_BOOL_T, 1,
2779 [Define to 1 if bool is an available type.])
2781 #ifdef HAVE_SYS_TYPES_H
2782 #include <sys/types.h>
2784 #ifdef HAVE_STDBOOL_H
2785 #include <stdbool.h>
2789 CURL_CONFIGURE_CURL_SOCKLEN_T
2793 TYPE_SOCKADDR_STORAGE
2799 CURL_CHECK_FUNC_SELECT
2801 CURL_CHECK_FUNC_RECV
2802 CURL_CHECK_FUNC_RECVFROM
2803 CURL_CHECK_FUNC_SEND
2804 CURL_CHECK_MSG_NOSIGNAL
2806 CURL_CHECK_FUNC_ALARM
2807 CURL_CHECK_FUNC_BASENAME
2808 CURL_CHECK_FUNC_CLOSESOCKET
2809 CURL_CHECK_FUNC_CLOSESOCKET_CAMEL
2810 CURL_CHECK_FUNC_CONNECT
2811 CURL_CHECK_FUNC_FCNTL
2812 CURL_CHECK_FUNC_FDOPEN
2813 CURL_CHECK_FUNC_FREEADDRINFO
2814 CURL_CHECK_FUNC_FREEIFADDRS
2815 CURL_CHECK_FUNC_FSETXATTR
2816 CURL_CHECK_FUNC_FTRUNCATE
2817 CURL_CHECK_FUNC_GETADDRINFO
2818 CURL_CHECK_FUNC_GAI_STRERROR
2819 CURL_CHECK_FUNC_GETHOSTBYADDR
2820 CURL_CHECK_FUNC_GETHOSTBYADDR_R
2821 CURL_CHECK_FUNC_GETHOSTBYNAME
2822 CURL_CHECK_FUNC_GETHOSTBYNAME_R
2823 CURL_CHECK_FUNC_GETHOSTNAME
2824 CURL_CHECK_FUNC_GETIFADDRS
2825 CURL_CHECK_FUNC_GETSERVBYPORT_R
2826 CURL_CHECK_FUNC_GMTIME_R
2827 CURL_CHECK_FUNC_INET_NTOA_R
2828 CURL_CHECK_FUNC_INET_NTOP
2829 CURL_CHECK_FUNC_INET_PTON
2830 CURL_CHECK_FUNC_IOCTL
2831 CURL_CHECK_FUNC_IOCTLSOCKET
2832 CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL
2833 CURL_CHECK_FUNC_LOCALTIME_R
2834 CURL_CHECK_FUNC_MEMRCHR
2835 CURL_CHECK_FUNC_POLL
2836 CURL_CHECK_FUNC_SETSOCKOPT
2837 CURL_CHECK_FUNC_SIGACTION
2838 CURL_CHECK_FUNC_SIGINTERRUPT
2839 CURL_CHECK_FUNC_SIGNAL
2840 CURL_CHECK_FUNC_SIGSETJMP
2841 CURL_CHECK_FUNC_SOCKET
2842 CURL_CHECK_FUNC_SOCKETPAIR
2843 CURL_CHECK_FUNC_STRCASECMP
2844 CURL_CHECK_FUNC_STRCASESTR
2845 CURL_CHECK_FUNC_STRCMPI
2846 CURL_CHECK_FUNC_STRDUP
2847 CURL_CHECK_FUNC_STRERROR_R
2848 CURL_CHECK_FUNC_STRICMP
2849 CURL_CHECK_FUNC_STRLCAT
2850 CURL_CHECK_FUNC_STRNCASECMP
2851 CURL_CHECK_FUNC_STRNCMPI
2852 CURL_CHECK_FUNC_STRNICMP
2853 CURL_CHECK_FUNC_STRSTR
2854 CURL_CHECK_FUNC_STRTOK_R
2855 CURL_CHECK_FUNC_STRTOLL
2856 CURL_CHECK_FUNC_WRITEV
2862 AC_MSG_NOTICE([skip check for pipe on msdosdjgpp])
2866 AC_CHECK_FUNCS([fork \
2885 eval skipcheck=\$skipcheck_$func
2886 if test "x$skipcheck" != "xyes"; then
2887 AC_MSG_CHECKING([deeper for $func])
2894 AC_MSG_RESULT([yes])
2895 eval "ac_cv_func_$func=yes"
2896 AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1],
2897 [Define to 1 if you have the $func function.])
2899 AC_MSG_RESULT([but still no])
2904 dnl Check if the getnameinfo function is available
2905 dnl and get the types of five of its arguments.
2906 CURL_CHECK_FUNC_GETNAMEINFO
2908 if test "$ipv6" = "yes"; then
2909 if test "$ac_cv_func_getaddrinfo" = "yes"; then
2910 AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support])
2912 AC_SUBST(IPV6_ENABLED)
2914 CURL_CHECK_NI_WITHSCOPEID
2917 dnl ************************************************************
2918 dnl enable non-blocking communications
2920 CURL_CHECK_OPTION_NONBLOCKING
2921 CURL_CHECK_NONBLOCKING_SOCKET
2923 dnl ************************************************************
2924 dnl nroff tool stuff
2927 AC_PATH_PROG( PERL, perl, ,
2928 $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
2931 AC_PATH_PROGS( NROFF, gnroff nroff, ,
2932 $PATH:/usr/bin/:/usr/local/bin )
2935 if test -n "$NROFF"; then
2936 dnl only check for nroff options if an nroff command was found
2938 AC_MSG_CHECKING([how to use *nroff to get plain text from man pages])
2940 mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
2941 if test -z "$mancheck"; then
2943 mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
2944 if test -z "$mancheck"; then
2946 AC_MSG_RESULT([failed])
2947 AC_MSG_WARN([found no *nroff option to get plaintext from man pages])
2949 AC_MSG_RESULT([$MANOPT])
2952 AC_MSG_RESULT([$MANOPT])
2957 if test -z "$MANOPT"
2959 dnl if no nroff tool was found, or no option that could convert man pages
2960 dnl was found, then disable the built-in manual stuff
2961 AC_MSG_WARN([disabling built-in manual])
2965 dnl *************************************************************************
2966 dnl If the manual variable still is set, then we go with providing a built-in
2969 if test "$USE_MANUAL" = "1"; then
2970 AC_DEFINE(USE_MANUAL, 1, [If you want to build curl with the built-in manual])
2971 curl_manual_msg="enabled"
2974 dnl set variable for use in automakefile(s)
2975 AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)
2978 AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
2980 if test "x$ac_cv_native_windows" != "xyes" &&
2981 test "x$enable_shared" = "xyes"; then
2982 build_libhostname=yes
2984 build_libhostname=no
2986 AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes)
2988 CURL_CHECK_OPTION_THREADED_RESOLVER
2990 if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
2992 [Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
2995 if test "$want_thres" = "yes"; then
2996 AC_CHECK_HEADER(pthread.h,
2997 [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
2998 save_CFLAGS="$CFLAGS"
2999 CFLAGS="$CFLAGS -pthread"
3000 AC_CHECK_LIB(pthread, pthread_create,
3001 [ AC_MSG_NOTICE([using POSIX threaded DNS lookup])
3002 AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
3004 curl_res_msg="threaded"
3006 [ CFLAGS="$save_CFLAGS"])
3010 dnl ************************************************************
3011 dnl disable verbose text strings
3013 AC_MSG_CHECKING([whether to enable verbose strings])
3014 AC_ARG_ENABLE(verbose,
3015 AC_HELP_STRING([--enable-verbose],[Enable verbose strings])
3016 AC_HELP_STRING([--disable-verbose],[Disable verbose strings]),
3017 [ case "$enableval" in
3020 AC_DEFINE(CURL_DISABLE_VERBOSE_STRINGS, 1, [to disable verbose strings])
3021 curl_verbose_msg="no"
3023 *) AC_MSG_RESULT(yes)
3029 dnl ************************************************************
3030 dnl enable SSPI support
3032 AC_MSG_CHECKING([whether to enable SSPI support (Windows native builds only)])
3034 AC_HELP_STRING([--enable-sspi],[Enable SSPI])
3035 AC_HELP_STRING([--disable-sspi],[Disable SSPI]),
3036 [ case "$enableval" in
3038 if test "$ac_cv_native_windows" = "yes"; then
3040 AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
3041 AC_SUBST(USE_WINDOWS_SSPI, [1])
3042 curl_sspi_msg="enabled"
3045 AC_MSG_WARN([--enable-sspi Ignored. Only supported on native Windows builds.])
3055 dnl ************************************************************
3056 dnl disable cryptographic authentication
3058 AC_MSG_CHECKING([whether to enable cryptographic authentication methods])
3059 AC_ARG_ENABLE(crypto-auth,
3060 AC_HELP_STRING([--enable-crypto-auth],[Enable cryptographic authentication])
3061 AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]),
3062 [ case "$enableval" in
3065 AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication])
3067 *) AC_MSG_RESULT(yes)
3073 CURL_CHECK_OPTION_NTLM_WB
3077 dnl ************************************************************
3078 dnl disable TLS-SRP authentication
3080 AC_MSG_CHECKING([whether to enable TLS-SRP authentication])
3081 AC_ARG_ENABLE(tls-srp,
3082 AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication])
3083 AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]),
3084 [ case "$enableval" in
3087 AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication])
3090 *) AC_MSG_RESULT(yes)
3098 if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_SSLEAY_SRP" = "x1") ; then
3099 AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication])
3101 curl_tls_srp_msg="enabled"
3104 dnl ************************************************************
3105 dnl disable cookies support
3107 AC_MSG_CHECKING([whether to enable support for cookies])
3108 AC_ARG_ENABLE(cookies,
3109 AC_HELP_STRING([--enable-cookies],[Enable cookies support])
3110 AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
3111 [ case "$enableval" in
3114 AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support])
3116 *) AC_MSG_RESULT(yes)
3122 dnl ************************************************************
3123 dnl hiding of library internal symbols
3125 CURL_CONFIGURE_SYMBOL_HIDING
3127 dnl ************************************************************
3128 dnl enforce SONAME bump
3131 AC_MSG_CHECKING([whether to enforce SONAME bump])
3132 AC_ARG_ENABLE(soname-bump,
3133 AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump])
3134 AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]),
3135 [ case "$enableval" in
3136 yes) AC_MSG_RESULT(yes)
3143 AC_MSG_RESULT($soname_bump)
3145 AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
3148 dnl ************************************************************
3149 if test ! -z "$winsock_LIB"; then
3151 dnl If ws2_32 is wanted, make sure it is the _last_ lib in LIBS (makes
3152 dnl things work when built with c-ares). But we can't just move it last
3153 dnl since then other stuff (SSL) won't build. So we simply append it to the
3156 LIBS="$LIBS $winsock_LIB"
3157 TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB"
3162 dnl All the library dependencies put into $LIB apply to libcurl only.
3163 dnl Those in $CURL_LIBS apply to the curl command-line client only.
3164 dnl Those in $TEST_SERVER_LIBS apply to test servers only.
3165 dnl Those in $ALL_LIBS apply to all targets, including test targets.
3169 AC_SUBST(LIBCURL_LIBS)
3171 AC_SUBST(TEST_SERVER_LIBS)
3172 AC_SUBST(CURL_NETWORK_LIBS)
3173 LIBS=$ALL_LIBS dnl LIBS is a magic variable that's used for every link
3175 AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
3178 ENABLE_SHARED="$enable_shared"
3179 AC_SUBST(ENABLE_SHARED)
3182 dnl For keeping supported features and protocols also in pkg-config file
3183 dnl since it is more cross-compile frient than curl-config
3186 if test "x$USE_SSLEAY" = "x1"; then
3187 SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3188 elif test -n "$SSL_ENABLED"; then
3189 SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3191 if test "@KRB4_ENABLED@" = "x1"; then
3192 SUPPORT_FEATURES="$SUPPORT_FEATURES KRB4"
3194 if test "x$IPV6_ENABLED" = "x1"; then
3195 SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
3197 if test "x$HAVE_LIBZ" = "x1"; then
3198 SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
3200 if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then
3201 SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
3203 if test "x$IDN_ENABLED" = "x1"; then
3204 SUPPORT_FEATURES="$SUPPORT_FEATURES IDN"
3206 if test "x$USE_WINDOWS_SSPI" = "x1"; then
3207 SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI"
3209 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3210 if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
3211 -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1"; then
3212 SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM"
3213 if test "x$NTLM_WB_ENABLED" = "x1"; then
3214 SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB"
3218 if test "x$USE_TLS_SRP" = "x1"; then
3219 SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
3222 AC_SUBST(SUPPORT_FEATURES)
3224 dnl For supported protocols in pkg-config file
3225 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3226 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
3227 if test "x$SSL_ENABLED" = "x1"; then
3228 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS"
3231 if test "x$CURL_DISABLE_FTP" != "x1"; then
3232 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP"
3233 if test "x$SSL_ENABLED" = "x1"; then
3234 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS"
3237 if test "x$CURL_DISABLE_FILE" != "x1"; then
3238 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE"
3240 if test "x$CURL_DISABLE_TELNET" != "x1"; then
3241 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET"
3243 if test "x$CURL_DISABLE_LDAP" != "x1"; then
3244 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP"
3245 if test "x$CURL_DISABLE_LDAPS" != "x1"; then
3246 if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") ||
3247 (test "x$USE_OPENLDAP" != "x1" && test "x$HAVE_LDAP_SSL" = "x1"); then
3248 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS"
3252 if test "x$CURL_DISABLE_DICT" != "x1"; then
3253 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT"
3255 if test "x$CURL_DISABLE_TFTP" != "x1"; then
3256 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP"
3258 if test "x$CURL_DISABLE_GOPHER" != "x1"; then
3259 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER"
3261 if test "x$CURL_DISABLE_POP3" != "x1"; then
3262 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3"
3263 if test "x$SSL_ENABLED" = "x1"; then
3264 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S"
3267 if test "x$CURL_DISABLE_IMAP" != "x1"; then
3268 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP"
3269 if test "x$SSL_ENABLED" = "x1"; then
3270 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS"
3273 if test "x$CURL_DISABLE_SMTP" != "x1"; then
3274 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP"
3275 if test "x$SSL_ENABLED" = "x1"; then
3276 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS"
3279 if test "x$USE_LIBSSH2" = "x1"; then
3280 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP"
3281 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP"
3283 if test "x$CURL_DISABLE_RTSP" != "x1"; then
3284 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP"
3286 if test "x$USE_LIBRTMP" = "x1"; then
3287 SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP"
3290 dnl replace spaces with newlines
3292 dnl replace the newlines back to spaces
3293 SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '`
3295 AC_SUBST(SUPPORT_PROTOCOLS)
3297 dnl squeeze whitespace out of some variables
3306 squeeze LIBCURL_LIBS
3307 squeeze TEST_SERVER_LIBS
3308 squeeze CURL_NETWORK_LIBS
3310 squeeze SUPPORT_FEATURES
3311 squeeze SUPPORT_PROTOCOLS
3313 if test "x$want_curldebug_assumed" = "xyes" &&
3314 test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then
3315 ac_configure_args="$ac_configure_args --enable-curldebug"
3318 AC_CONFIG_FILES([Makefile \
3320 docs/examples/Makefile \
3321 docs/libcurl/Makefile \
3323 include/curl/Makefile \
3328 tests/data/Makefile \
3329 tests/server/Makefile \
3330 tests/libtest/Makefile \
3331 tests/unit/Makefile \
3333 packages/Win32/Makefile \
3334 packages/Win32/cygwin/Makefile \
3335 packages/Linux/Makefile \
3336 packages/Linux/RPM/Makefile \
3337 packages/Linux/RPM/curl.spec \
3338 packages/Linux/RPM/curl-ssl.spec \
3339 packages/Solaris/Makefile \
3340 packages/EPM/curl.list \
3341 packages/EPM/Makefile \
3342 packages/vms/Makefile \
3343 packages/AIX/Makefile \
3344 packages/AIX/RPM/Makefile \
3345 packages/AIX/RPM/curl.spec \
3351 CURL_GENERATE_CONFIGUREHELP_PM
3353 AC_MSG_NOTICE([Configured to build curl/libcurl:
3355 curl version: ${CURLVERSION}
3357 Install prefix: ${prefix}
3359 SSL support: ${curl_ssl_msg}
3360 SSH support: ${curl_ssh_msg}
3361 zlib support: ${curl_zlib_msg}
3362 krb4 support: ${curl_krb4_msg}
3363 GSSAPI support: ${curl_gss_msg}
3364 SPNEGO support: ${curl_spnego_msg}
3365 TLS-SRP support: ${curl_tls_srp_msg}
3366 resolver: ${curl_res_msg}
3367 ipv6 support: ${curl_ipv6_msg}
3368 IDN support: ${curl_idn_msg}
3369 Build libcurl: Shared=${enable_shared}, Static=${enable_static}
3370 Built-in manual: ${curl_manual_msg}
3371 --libcurl option: ${curl_libcurl_msg}
3372 Verbose errors: ${curl_verbose_msg}
3373 SSPI support: ${curl_sspi_msg}
3374 ca cert bundle: ${ca}
3375 ca cert path: ${capath}
3376 LDAP support: ${curl_ldap_msg}
3377 LDAPS support: ${curl_ldaps_msg}
3378 RTSP support: ${curl_rtsp_msg}
3379 RTMP support: ${curl_rtmp_msg}
3380 metalink support: ${curl_metalink_msg}
3381 Protocols: ${SUPPORT_PROTOCOLS}
3384 if test "x$soname_bump" = "xyes"; then
3387 SONAME bump: yes - WARNING: this library will be built with the SONAME
3388 number bumped due to (a detected) ABI breakage.
3389 See lib/README.curl_off_t for details on this.