configure: new option --with-winssl
[platform/upstream/curl.git] / configure.ac
1 #***************************************************************************
2 #                                  _   _ ____  _
3 #  Project                     ___| | | |  _ \| |
4 #                             / __| | | | |_) | |
5 #                            | (__| |_| |  _ <| |___
6 #                             \___|\___/|_| \_\_____|
7 #
8 # Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
9 #
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.
13 #
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.
17 #
18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 # KIND, either express or implied.
20 #
21 #***************************************************************************
22 dnl Process this file with autoconf to produce a configure script.
23
24 AC_PREREQ(2.57)
25
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/])
28
29 XC_OVR_ZZ50
30 CURL_OVERRIDE_AUTOCONF
31
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])
36
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])
40 AM_MAINTAINER_MODE
41
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
49
50 CURL_CHECK_PATH_SEPARATOR_REQUIRED
51
52 #
53 # save the configure arguments
54 #
55 CONFIGURE_OPTIONS="\"$ac_configure_args\""
56 AC_SUBST(CONFIGURE_OPTIONS)
57
58 CURL_CFLAG_EXTRAS=""
59 if test X"$want_werror" = Xyes; then
60   CURL_CFLAG_EXTRAS="-Werror"
61 fi
62 AC_SUBST(CURL_CFLAG_EXTRAS)
63
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.])
72   fi
73 fi
74 AC_SUBST([SED])
75
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.])
84   fi
85 fi
86 AC_SUBST([GREP])
87
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])
94     EGREP="$GREP -E"
95     AC_MSG_RESULT([$EGREP])
96   else
97     AC_PATH_PROG([EGREP], [egrep], [not_found],
98       [$PATH:/usr/bin:/usr/local/bin])
99   fi
100 fi
101 if test -z "$EGREP" || test "$EGREP" = "not_found"; then
102   AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.])
103 fi
104 AC_SUBST([EGREP])
105
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.])
114   fi
115 fi
116 AC_SUBST([AR])
117
118 AC_SUBST(libext)
119
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
123 fi
124
125 dnl figure out the libcurl version
126 CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h`
127 AM_INIT_AUTOMAKE
128 AC_MSG_CHECKING([curl version])
129 AC_MSG_RESULT($CURLVERSION)
130
131 AC_SUBST(CURLVERSION)
132
133 dnl
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`
136 AC_SUBST(VERSIONNUM)
137
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"
142 AC_SUBST(PKGADD_PKG)
143 AC_SUBST(PKGADD_NAME)
144 AC_SUBST(PKGADD_VENDOR)
145
146 dnl
147 dnl initialize all the info variables
148     curl_ssl_msg="no      (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl} )"
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   curl_mtlnk_msg="no      (--with-libmetalink)"
167
168     init_ssl_msg=${curl_ssl_msg}
169
170 dnl
171 dnl Save anything in $LIBS for later
172 dnl
173 ALL_LIBS=$LIBS
174
175 dnl
176 dnl Detect the canonical host and target build environment
177 dnl
178
179 AC_CANONICAL_HOST
180 dnl Get system canonical name
181 AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
182
183 dnl Checks for programs.
184 CURL_CHECK_PROG_CC
185
186 dnl Our curl_off_t internal and external configure settings
187 CURL_CONFIGURE_CURL_OFF_T
188
189 dnl This defines _ALL_SOURCE for AIX
190 CURL_CHECK_AIX_ALL_SOURCE
191
192 dnl Our configure and build reentrant settings
193 CURL_CONFIGURE_THREAD_SAFE
194 CURL_CONFIGURE_REENTRANT
195
196 dnl check for how to do large files
197 AC_SYS_LARGEFILE
198
199 dnl support building of Windows DLLs
200 AC_LIBTOOL_WIN32_DLL
201
202 dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD
203 AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)])
204 case $host in
205   x86_64*linux*|amd64*freebsd*|ia64*freebsd*)
206     AC_MSG_RESULT([yes])
207     with_pic=yes
208     ;;
209   *)
210     AC_MSG_RESULT([no])
211     ;;
212 esac
213
214 AC_MSG_CHECKING([if compiler is icc (to build with PIC)])
215 case $CC in
216   icc | */icc)
217     AC_MSG_RESULT([yes])
218     with_pic=yes
219     ;;
220   *)
221     AC_MSG_RESULT([no])
222     ;;
223 esac
224
225 dnl libtool setup
226 AC_PROG_LIBTOOL
227
228 AC_MSG_CHECKING([if we need -mimpure-text])
229 mimpure=no
230 case $host in
231   *-*-solaris2*)
232     if test "$GCC" = "yes"; then
233       mimpure="yes"
234     fi
235     ;;
236   *)
237     ;;
238 esac
239 AC_MSG_RESULT($mimpure)
240 AM_CONDITIONAL(MIMPURE, test x$mimpure = xyes)
241
242 AC_MSG_CHECKING([if we need BUILDING_LIBCURL])
243 use_cppflag_building_libcurl="no"
244 use_cppflag_curl_staticlib="no"
245 CPPFLAG_CURL_STATICLIB=""
246 case $host in
247   *-*-mingw*)
248     AC_MSG_RESULT(yes)
249     use_cppflag_building_libcurl="yes"
250     AC_MSG_CHECKING([if we need CURL_STATICLIB])
251     if test "X$enable_shared" = "Xno"
252     then
253       AC_MSG_RESULT(yes)
254       use_cppflag_curl_staticlib="yes"
255       CPPFLAG_CURL_STATICLIB="-DCURL_STATICLIB"
256     else
257       AC_MSG_RESULT(no)
258     fi
259     ;;
260   *)
261     AC_MSG_RESULT(no)
262     ;;
263 esac
264 AM_CONDITIONAL(USE_CPPFLAG_BUILDING_LIBCURL, test x$use_cppflag_building_libcurl = xyes)
265 AM_CONDITIONAL(USE_CPPFLAG_CURL_STATICLIB, test x$use_cppflag_curl_staticlib = xyes)
266 AC_SUBST(CPPFLAG_CURL_STATICLIB)
267
268 # Determine whether all dependent libraries must be specified when linking
269 if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno"
270 then
271     REQUIRE_LIB_DEPS=no
272 else
273     REQUIRE_LIB_DEPS=yes
274 fi
275 AC_SUBST(REQUIRE_LIB_DEPS)
276
277 dnl The install stuff has already been taken care of by the automake stuff
278 dnl AC_PROG_INSTALL
279 AC_PROG_MAKE_SET
280
281 dnl check if there's a way to force code inline
282 AC_C_INLINE
283
284 dnl **********************************************************************
285 dnl platform/compiler/architecture specific checks/flags
286 dnl **********************************************************************
287
288 CURL_CHECK_COMPILER
289 CURL_SET_COMPILER_BASIC_OPTS
290 CURL_SET_COMPILER_DEBUG_OPTS
291 CURL_SET_COMPILER_OPTIMIZE_OPTS
292 CURL_SET_COMPILER_WARNING_OPTS
293
294 if test "$compiler_id" = "INTEL_UNIX_C"; then
295   #
296   if test "$compiler_num" -ge "1000"; then
297     dnl icc 10.X or later
298     CFLAGS="$CFLAGS -shared-intel"
299   elif test "$compiler_num" -ge "900"; then
300     dnl icc 9.X specific
301     CFLAGS="$CFLAGS -i-dynamic"
302   fi
303   #
304 fi
305
306 CURL_CHECK_COMPILER_HALT_ON_ERROR
307 CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
308 CURL_CHECK_COMPILER_SYMBOL_HIDING
309
310 CURL_CHECK_NO_UNDEFINED
311 AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes)
312
313 CURL_CHECK_CURLDEBUG
314 AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes)
315
316 supports_unittests=yes
317 # cross-compilation of unit tests static library/programs fails when
318 # libcurl shared library is built. This might be due to a libtool or
319 # automake issue. In this case we disable unit tests.
320 if test "x$cross_compiling" != "xno" &&
321    test "x$enable_shared" != "xno"; then
322   supports_unittests=no
323 fi
324
325 # IRIX 6.5.24 gcc 3.3 autobuilds fail unittests library compilation due to
326 # a problem related with OpenSSL headers and library versions not matching.
327 # Disable unit tests while time to further investigate this is found.
328 case $host in
329   mips-sgi-irix6.5)
330     if test "$compiler_id" = "GNU_C"; then
331       supports_unittests=no
332     fi
333     ;;
334 esac
335
336 # All AIX autobuilds fails unit tests linking against unittests library
337 # due to unittests library being built with no symbols or members. Libtool ?
338 # Disable unit tests while time to further investigate this is found.
339 case $host_os in
340   aix*)
341     supports_unittests=no
342     ;;
343 esac
344
345 dnl Build unit tests when option --enable-debug is given.
346 if test "x$want_debug" = "xyes" &&
347    test "x$supports_unittests" = "xyes"; then
348   want_unittests=yes
349 else
350   want_unittests=no
351 fi
352 AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes)
353
354 dnl **********************************************************************
355 dnl Compilation based checks should not be done before this point.
356 dnl **********************************************************************
357
358 dnl **********************************************************************
359 dnl Make sure that our checks for headers windows.h winsock.h winsock2.h
360 dnl and ws2tcpip.h take precedence over any other further checks which
361 dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for
362 dnl this specific header files. And do them before its results are used.
363 dnl **********************************************************************
364
365 CURL_CHECK_HEADER_WINDOWS
366 CURL_CHECK_NATIVE_WINDOWS
367 case X-"$ac_cv_native_windows" in
368   X-yes)
369     CURL_CHECK_HEADER_WINSOCK
370     CURL_CHECK_HEADER_WINSOCK2
371     CURL_CHECK_HEADER_WS2TCPIP
372     CURL_CHECK_HEADER_WINLDAP
373     CURL_CHECK_HEADER_WINBER
374     ;;
375   *)
376     ac_cv_header_winsock_h="no"
377     ac_cv_header_winsock2_h="no"
378     ac_cv_header_ws2tcpip_h="no"
379     ac_cv_header_winldap_h="no"
380     ac_cv_header_winber_h="no"
381     ;;
382 esac
383 CURL_CHECK_WIN32_LARGEFILE
384
385 dnl ************************************************************
386 dnl switch off particular protocols
387 dnl
388 AC_MSG_CHECKING([whether to support http])
389 AC_ARG_ENABLE(http,
390 AC_HELP_STRING([--enable-http],[Enable HTTP support])
391 AC_HELP_STRING([--disable-http],[Disable HTTP support]),
392 [ case "$enableval" in
393   no)
394        AC_MSG_RESULT(no)
395        AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP])
396        AC_MSG_WARN([disable HTTP disables FTP over proxy and RTSP])
397        AC_SUBST(CURL_DISABLE_HTTP, [1])
398        AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
399        AC_SUBST(CURL_DISABLE_RTSP, [1])
400        ;;
401   *)   AC_MSG_RESULT(yes)
402        ;;
403   esac ],
404        AC_MSG_RESULT(yes)
405 )
406 AC_MSG_CHECKING([whether to support ftp])
407 AC_ARG_ENABLE(ftp,
408 AC_HELP_STRING([--enable-ftp],[Enable FTP support])
409 AC_HELP_STRING([--disable-ftp],[Disable FTP support]),
410 [ case "$enableval" in
411   no)
412        AC_MSG_RESULT(no)
413        AC_DEFINE(CURL_DISABLE_FTP, 1, [to disable FTP])
414        AC_SUBST(CURL_DISABLE_FTP, [1])
415        ;;
416   *)   AC_MSG_RESULT(yes)
417        ;;
418   esac ],
419        AC_MSG_RESULT(yes)
420 )
421 AC_MSG_CHECKING([whether to support file])
422 AC_ARG_ENABLE(file,
423 AC_HELP_STRING([--enable-file],[Enable FILE support])
424 AC_HELP_STRING([--disable-file],[Disable FILE support]),
425 [ case "$enableval" in
426   no)
427        AC_MSG_RESULT(no)
428        AC_DEFINE(CURL_DISABLE_FILE, 1, [to disable FILE])
429        AC_SUBST(CURL_DISABLE_FILE, [1])
430        ;;
431   *)   AC_MSG_RESULT(yes)
432        ;;
433   esac ],
434        AC_MSG_RESULT(yes)
435 )
436 AC_MSG_CHECKING([whether to support ldap])
437 AC_ARG_ENABLE(ldap,
438 AC_HELP_STRING([--enable-ldap],[Enable LDAP support])
439 AC_HELP_STRING([--disable-ldap],[Disable LDAP support]),
440 [ case "$enableval" in
441   no)
442        AC_MSG_RESULT(no)
443        AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
444        AC_SUBST(CURL_DISABLE_LDAP, [1])
445        ;;
446   *)
447        AC_MSG_RESULT(yes)
448        ;;
449   esac ],[
450        AC_MSG_RESULT(yes) ]
451 )
452 AC_MSG_CHECKING([whether to support ldaps])
453 AC_ARG_ENABLE(ldaps,
454 AC_HELP_STRING([--enable-ldaps],[Enable LDAPS support])
455 AC_HELP_STRING([--disable-ldaps],[Disable LDAPS support]),
456 [ case "$enableval" in
457   no)
458        AC_MSG_RESULT(no)
459        AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
460        AC_SUBST(CURL_DISABLE_LDAPS, [1])
461        ;;
462   *)   if test "x$CURL_DISABLE_LDAP" = "x1" ; then
463          AC_MSG_RESULT(LDAP needs to be enabled to support LDAPS)
464          AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
465          AC_SUBST(CURL_DISABLE_LDAPS, [1])
466        else
467          AC_MSG_RESULT(yes)
468          AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
469          AC_SUBST(HAVE_LDAP_SSL, [1])
470        fi
471        ;;
472   esac ],[
473        if test "x$CURL_DISABLE_LDAP" = "x1" ; then
474          AC_MSG_RESULT(no)
475          AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
476          AC_SUBST(CURL_DISABLE_LDAPS, [1])
477        else
478          AC_MSG_RESULT(yes)
479          AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
480          AC_SUBST(HAVE_LDAP_SSL, [1])
481        fi ]
482 )
483
484 AC_MSG_CHECKING([whether to support rtsp])
485 AC_ARG_ENABLE(rtsp,
486 AC_HELP_STRING([--enable-rtsp],[Enable RTSP support])
487 AC_HELP_STRING([--disable-rtsp],[Disable RTSP support]),
488 [ case "$enableval" in
489   no)
490        AC_MSG_RESULT(no)
491        AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
492        AC_SUBST(CURL_DISABLE_RTSP, [1])
493        ;;
494   *)   if test x$CURL_DISABLE_HTTP = x1 ; then
495           AC_MSG_ERROR(HTTP support needs to be enabled in order to enable RTSP support!)
496        else
497           AC_MSG_RESULT(yes)
498           curl_rtsp_msg="enabled"
499        fi
500        ;;
501   esac ],
502        if test "x$CURL_DISABLE_HTTP" != "x1"; then
503           AC_MSG_RESULT(yes)
504           curl_rtsp_msg="enabled"
505        else
506           AC_MSG_RESULT(no)
507        fi
508 )
509
510 AC_MSG_CHECKING([whether to support proxies])
511 AC_ARG_ENABLE(proxy,
512 AC_HELP_STRING([--enable-proxy],[Enable proxy support])
513 AC_HELP_STRING([--disable-proxy],[Disable proxy support]),
514 [ case "$enableval" in
515   no)
516        AC_MSG_RESULT(no)
517        AC_DEFINE(CURL_DISABLE_PROXY, 1, [to disable proxies])
518        AC_SUBST(CURL_DISABLE_PROXY, [1])
519        ;;
520   *)   AC_MSG_RESULT(yes)
521        ;;
522   esac ],
523        AC_MSG_RESULT(yes)
524 )
525
526 AC_MSG_CHECKING([whether to support dict])
527 AC_ARG_ENABLE(dict,
528 AC_HELP_STRING([--enable-dict],[Enable DICT support])
529 AC_HELP_STRING([--disable-dict],[Disable DICT support]),
530 [ case "$enableval" in
531   no)
532        AC_MSG_RESULT(no)
533        AC_DEFINE(CURL_DISABLE_DICT, 1, [to disable DICT])
534        AC_SUBST(CURL_DISABLE_DICT, [1])
535        ;;
536   *)   AC_MSG_RESULT(yes)
537        ;;
538   esac ],
539        AC_MSG_RESULT(yes)
540 )
541 AC_MSG_CHECKING([whether to support telnet])
542 AC_ARG_ENABLE(telnet,
543 AC_HELP_STRING([--enable-telnet],[Enable TELNET support])
544 AC_HELP_STRING([--disable-telnet],[Disable TELNET support]),
545 [ case "$enableval" in
546   no)
547        AC_MSG_RESULT(no)
548        AC_DEFINE(CURL_DISABLE_TELNET, 1, [to disable TELNET])
549        AC_SUBST(CURL_DISABLE_TELNET, [1])
550        ;;
551   *)   AC_MSG_RESULT(yes)
552        ;;
553   esac ],
554        AC_MSG_RESULT(yes)
555 )
556 AC_MSG_CHECKING([whether to support tftp])
557 AC_ARG_ENABLE(tftp,
558 AC_HELP_STRING([--enable-tftp],[Enable TFTP support])
559 AC_HELP_STRING([--disable-tftp],[Disable TFTP support]),
560 [ case "$enableval" in
561   no)
562        AC_MSG_RESULT(no)
563        AC_DEFINE(CURL_DISABLE_TFTP, 1, [to disable TFTP])
564        AC_SUBST(CURL_DISABLE_TFTP, [1])
565        ;;
566   *)   AC_MSG_RESULT(yes)
567        ;;
568   esac ],
569        AC_MSG_RESULT(yes)
570 )
571
572 AC_MSG_CHECKING([whether to support pop3])
573 AC_ARG_ENABLE(pop3,
574 AC_HELP_STRING([--enable-pop3],[Enable POP3 support])
575 AC_HELP_STRING([--disable-pop3],[Disable POP3 support]),
576 [ case "$enableval" in
577   no)
578        AC_MSG_RESULT(no)
579        AC_DEFINE(CURL_DISABLE_POP3, 1, [to disable POP3])
580        AC_SUBST(CURL_DISABLE_POP3, [1])
581        ;;
582   *)   AC_MSG_RESULT(yes)
583        ;;
584   esac ],
585        AC_MSG_RESULT(yes)
586 )
587
588
589 AC_MSG_CHECKING([whether to support imap])
590 AC_ARG_ENABLE(imap,
591 AC_HELP_STRING([--enable-imap],[Enable IMAP support])
592 AC_HELP_STRING([--disable-imap],[Disable IMAP support]),
593 [ case "$enableval" in
594   no)
595        AC_MSG_RESULT(no)
596        AC_DEFINE(CURL_DISABLE_IMAP, 1, [to disable IMAP])
597        AC_SUBST(CURL_DISABLE_IMAP, [1])
598        ;;
599   *)   AC_MSG_RESULT(yes)
600        ;;
601   esac ],
602        AC_MSG_RESULT(yes)
603 )
604
605
606 AC_MSG_CHECKING([whether to support smtp])
607 AC_ARG_ENABLE(smtp,
608 AC_HELP_STRING([--enable-smtp],[Enable SMTP support])
609 AC_HELP_STRING([--disable-smtp],[Disable SMTP support]),
610 [ case "$enableval" in
611   no)
612        AC_MSG_RESULT(no)
613        AC_DEFINE(CURL_DISABLE_SMTP, 1, [to disable SMTP])
614        AC_SUBST(CURL_DISABLE_SMTP, [1])
615        ;;
616   *)   AC_MSG_RESULT(yes)
617        ;;
618   esac ],
619        AC_MSG_RESULT(yes)
620 )
621
622 AC_MSG_CHECKING([whether to support gopher])
623 AC_ARG_ENABLE(gopher,
624 AC_HELP_STRING([--enable-gopher],[Enable Gopher support])
625 AC_HELP_STRING([--disable-gopher],[Disable Gopher support]),
626 [ case "$enableval" in
627   no)
628        AC_MSG_RESULT(no)
629        AC_DEFINE(CURL_DISABLE_GOPHER, 1, [to disable Gopher])
630        AC_SUBST(CURL_DISABLE_GOPHER, [1])
631        ;;
632   *)   AC_MSG_RESULT(yes)
633        ;;
634   esac ],
635        AC_MSG_RESULT(yes)
636 )
637
638
639 dnl **********************************************************************
640 dnl Check for built-in manual
641 dnl **********************************************************************
642
643 AC_MSG_CHECKING([whether to provide built-in manual])
644 AC_ARG_ENABLE(manual,
645 AC_HELP_STRING([--enable-manual],[Enable built-in manual])
646 AC_HELP_STRING([--disable-manual],[Disable built-in manual]),
647 [ case "$enableval" in
648   no)
649        AC_MSG_RESULT(no)
650        ;;
651   *)   AC_MSG_RESULT(yes)
652        USE_MANUAL="1"
653        ;;
654   esac ],
655        AC_MSG_RESULT(yes)
656        USE_MANUAL="1"
657 )
658 dnl The actual use of the USE_MANUAL variable is done much later in this
659 dnl script to allow other actions to disable it as well.
660
661 dnl ************************************************************
662 dnl disable C code generation support
663 dnl
664 AC_MSG_CHECKING([whether to enable generation of C code])
665 AC_ARG_ENABLE(libcurl_option,
666 AC_HELP_STRING([--enable-libcurl-option],[Enable --libcurl C code generation support])
667 AC_HELP_STRING([--disable-libcurl-option],[Disable --libcurl C code generation support]),
668 [ case "$enableval" in
669   no)
670        AC_MSG_RESULT(no)
671        AC_DEFINE(CURL_DISABLE_LIBCURL_OPTION, 1, [to disable --libcurl C code generation option])
672        curl_libcurl_msg="no"
673        ;;
674   *)   AC_MSG_RESULT(yes)
675        ;;
676   esac ],
677        AC_MSG_RESULT(yes)
678 )
679
680 dnl **********************************************************************
681 dnl Checks for libraries.
682 dnl **********************************************************************
683
684 CURL_CHECK_LIB_XNET
685
686 dnl gethostbyname without lib or in the nsl lib?
687 AC_CHECK_FUNC(gethostbyname,
688               [HAVE_GETHOSTBYNAME="1"
689               ],
690               [ AC_CHECK_LIB(nsl, gethostbyname,
691                              [HAVE_GETHOSTBYNAME="1"
692                              LIBS="$LIBS -lnsl"
693                              ])
694               ])
695
696 if test "$HAVE_GETHOSTBYNAME" != "1"
697 then
698   dnl gethostbyname in the socket lib?
699   AC_CHECK_LIB(socket, gethostbyname,
700                [HAVE_GETHOSTBYNAME="1"
701                LIBS="$LIBS -lsocket"
702                ])
703 fi
704
705 if test "$HAVE_GETHOSTBYNAME" != "1"
706 then
707   dnl gethostbyname in the watt lib?
708   AC_CHECK_LIB(watt, gethostbyname,
709                [HAVE_GETHOSTBYNAME="1"
710                CPPFLAGS="-I/dev/env/WATT_ROOT/inc"
711                LDFLAGS="-L/dev/env/WATT_ROOT/lib"
712                LIBS="$LIBS -lwatt"
713                ])
714 fi
715
716 dnl At least one system has been identified to require BOTH nsl and socket
717 dnl libs at the same time to link properly.
718 if test "$HAVE_GETHOSTBYNAME" != "1"
719 then
720   AC_MSG_CHECKING([for gethostbyname with both nsl and socket libs])
721   my_ac_save_LIBS=$LIBS
722   LIBS="-lnsl -lsocket $LIBS"
723   AC_LINK_IFELSE([
724     AC_LANG_PROGRAM([[
725     ]],[[
726       gethostbyname();
727     ]])
728   ],[
729     AC_MSG_RESULT([yes])
730     HAVE_GETHOSTBYNAME="1"
731   ],[
732     AC_MSG_RESULT([no])
733     LIBS=$my_ac_save_LIBS
734   ])
735 fi
736
737 if test "$HAVE_GETHOSTBYNAME" != "1"
738 then
739   dnl This is for winsock systems
740   if test "$ac_cv_header_windows_h" = "yes"; then
741     if test "$ac_cv_header_winsock_h" = "yes"; then
742       case $host in
743         *-*-mingw32ce*)
744           winsock_LIB="-lwinsock"
745           ;;
746         *)
747           winsock_LIB="-lwsock32"
748           ;;
749       esac
750     fi
751     if test "$ac_cv_header_winsock2_h" = "yes"; then
752       winsock_LIB="-lws2_32"
753     fi
754     if test ! -z "$winsock_LIB"; then
755       my_ac_save_LIBS=$LIBS
756       LIBS="$winsock_LIB $LIBS"
757       AC_MSG_CHECKING([for gethostbyname in $winsock_LIB])
758       AC_LINK_IFELSE([
759         AC_LANG_PROGRAM([[
760 #ifdef HAVE_WINDOWS_H
761 #ifndef WIN32_LEAN_AND_MEAN
762 #define WIN32_LEAN_AND_MEAN
763 #endif
764 #include <windows.h>
765 #ifdef HAVE_WINSOCK2_H
766 #include <winsock2.h>
767 #else
768 #ifdef HAVE_WINSOCK_H
769 #include <winsock.h>
770 #endif
771 #endif
772 #endif
773         ]],[[
774           gethostbyname("www.dummysite.com");
775         ]])
776       ],[
777         AC_MSG_RESULT([yes])
778         HAVE_GETHOSTBYNAME="1"
779       ],[
780         AC_MSG_RESULT([no])
781         winsock_LIB=""
782         LIBS=$my_ac_save_LIBS
783       ])
784     fi
785   fi
786 fi
787
788 if test "$HAVE_GETHOSTBYNAME" != "1"
789 then
790   dnl This is for Minix 3.1
791   AC_MSG_CHECKING([for gethostbyname for Minix 3])
792   AC_LINK_IFELSE([
793     AC_LANG_PROGRAM([[
794 /* Older Minix versions may need <net/gen/netdb.h> here instead */
795 #include <netdb.h>
796     ]],[[
797       gethostbyname("www.dummysite.com");
798     ]])
799   ],[
800     AC_MSG_RESULT([yes])
801     HAVE_GETHOSTBYNAME="1"
802   ],[
803     AC_MSG_RESULT([no])
804   ])
805 fi
806
807 if test "$HAVE_GETHOSTBYNAME" != "1"
808 then
809   dnl This is for eCos with a stubbed DNS implementation
810   AC_MSG_CHECKING([for gethostbyname for eCos])
811   AC_LINK_IFELSE([
812     AC_LANG_PROGRAM([[
813 #include <stdio.h>
814 #include <netdb.h>
815     ]],[[
816       gethostbyname("www.dummysite.com");
817     ]])
818   ],[
819     AC_MSG_RESULT([yes])
820     HAVE_GETHOSTBYNAME="1"
821   ],[
822     AC_MSG_RESULT([no])
823   ])
824 fi
825
826 if test "$HAVE_GETHOSTBYNAME" != "1"
827 then
828   dnl gethostbyname in the network lib - for Haiku OS
829   AC_CHECK_LIB(network, gethostbyname,
830                [HAVE_GETHOSTBYNAME="1"
831                LIBS="$LIBS -lnetwork"
832                ])
833 fi
834
835 if test "$HAVE_GETHOSTBYNAME" != "1"
836 then
837   dnl gethostbyname in the net lib - for BeOS
838   AC_CHECK_LIB(net, gethostbyname,
839                [HAVE_GETHOSTBYNAME="1"
840                LIBS="$LIBS -lnet"
841                ])
842 fi
843
844
845 if test "$HAVE_GETHOSTBYNAME" != "1"; then
846   AC_MSG_ERROR([couldn't find libraries for gethostbyname()])
847 fi
848
849 dnl resolve lib?
850 AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ])
851
852 if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then
853   AC_CHECK_LIB(resolve, strcasecmp,
854               [LIBS="-lresolve $LIBS"],
855                ,
856                -lnsl)
857 fi
858 ac_cv_func_strcasecmp="no"
859
860 CURL_CHECK_LIBS_CONNECT
861
862 CURL_NETWORK_LIBS=$LIBS
863
864 dnl **********************************************************************
865 dnl In case that function clock_gettime with monotonic timer is available,
866 dnl check for additional required libraries.
867 dnl **********************************************************************
868 CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC
869
870 dnl **********************************************************************
871 dnl The preceding library checks are all potentially useful for test
872 dnl servers (for providing networking support).  Save the list of required
873 dnl libraries at this point for use while linking those test servers.
874 dnl **********************************************************************
875 TEST_SERVER_LIBS=$LIBS
876
877 dnl **********************************************************************
878 AC_MSG_CHECKING([whether to use libgcc])
879 AC_ARG_ENABLE(libgcc,
880 AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]),
881 [ case "$enableval" in
882   yes)
883         ALL_LIBS="$ALL_LIBS -lgcc"
884        AC_MSG_RESULT(yes)
885        ;;
886   *)   AC_MSG_RESULT(no)
887        ;;
888   esac ],
889        AC_MSG_RESULT(no)
890 )
891
892 dnl **********************************************************************
893 dnl Check for LDAP
894 dnl **********************************************************************
895
896 LDAPLIBNAME=""
897 AC_ARG_WITH(ldap-lib,
898 AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of ldap lib file]),
899  [LDAPLIBNAME="$withval"])
900
901 LBERLIBNAME=""
902 AC_ARG_WITH(lber-lib,
903 AC_HELP_STRING([--with-lber-lib=libname],[Specify name of lber lib file]),
904  [LBERLIBNAME="$withval"])
905
906 if test x$CURL_DISABLE_LDAP != x1 ; then
907
908   CURL_CHECK_HEADER_LBER
909   CURL_CHECK_HEADER_LDAP
910   CURL_CHECK_HEADER_LDAPSSL
911   CURL_CHECK_HEADER_LDAP_SSL
912
913   if test -z "$LDAPLIBNAME" ; then
914     if test "$ac_cv_native_windows" = "yes"; then
915       dnl Windows uses a single and unique LDAP library name
916       LDAPLIBNAME="wldap32"
917       LBERLIBNAME="no"
918     fi
919   fi
920
921   if test "$LDAPLIBNAME" ; then
922     AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [
923       AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled])
924       AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
925       AC_SUBST(CURL_DISABLE_LDAP, [1])
926       AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
927       AC_SUBST(CURL_DISABLE_LDAPS, [1])])
928   else
929     dnl Try to find the right ldap libraries for this system
930     CURL_CHECK_LIBS_LDAP
931     case X-"$curl_cv_ldap_LIBS" in
932       X-unknown)
933         AC_MSG_WARN([Cannot find libraries for LDAP support: LDAP disabled])
934         AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
935         AC_SUBST(CURL_DISABLE_LDAP, [1])
936         AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
937         AC_SUBST(CURL_DISABLE_LDAPS, [1])
938         ;;
939     esac
940   fi
941 fi
942
943 if test x$CURL_DISABLE_LDAP != x1 ; then
944
945   if test "$LBERLIBNAME" ; then
946     dnl If name is "no" then don't define this library at all
947     dnl (it's only needed if libldap.so's dependencies are broken).
948     if test "$LBERLIBNAME" != "no" ; then
949       AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [
950         AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled])
951         AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
952         AC_SUBST(CURL_DISABLE_LDAP, [1])
953         AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
954         AC_SUBST(CURL_DISABLE_LDAPS, [1])])
955     fi
956   fi
957 fi
958
959 if test x$CURL_DISABLE_LDAP != x1 ; then
960   AC_CHECK_FUNCS([ldap_url_parse ldap_init_fd])
961
962   if test "$LDAPLIBNAME" = "wldap32"; then
963     curl_ldap_msg="enabled (winldap)"
964     AC_DEFINE(CURL_LDAP_WIN, 1, [Use Windows LDAP implementation])
965   else
966     curl_ldap_msg="enabled (OpenLDAP)"
967     if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then
968       AC_DEFINE(USE_OPENLDAP, 1, [Use OpenLDAP-specific code])
969       AC_SUBST(USE_OPENLDAP, [1])
970     fi
971   fi
972 fi
973
974 if test x$CURL_DISABLE_LDAPS != x1 ; then
975     curl_ldaps_msg="enabled"
976 fi
977
978 dnl **********************************************************************
979 dnl Checks for IPv6
980 dnl **********************************************************************
981
982 AC_MSG_CHECKING([whether to enable ipv6])
983 AC_ARG_ENABLE(ipv6,
984 AC_HELP_STRING([--enable-ipv6],[Enable ipv6 (with ipv4) support])
985 AC_HELP_STRING([--disable-ipv6],[Disable ipv6 support]),
986 [ case "$enableval" in
987   no)
988        AC_MSG_RESULT(no)
989        ipv6=no
990        ;;
991   *)   AC_MSG_RESULT(yes)
992        ipv6=yes
993        ;;
994   esac ],
995
996   AC_TRY_RUN([ /* is AF_INET6 available? */
997 #include <sys/types.h>
998 #include <sys/socket.h>
999 main()
1000 {
1001  if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1002    exit(1);
1003  else
1004    exit(0);
1005 }
1006 ],
1007   AC_MSG_RESULT(yes)
1008   ipv6=yes,
1009   AC_MSG_RESULT(no)
1010   ipv6=no,
1011   AC_MSG_RESULT(no)
1012   ipv6=no
1013 ))
1014
1015 if test "$ipv6" = "yes"; then
1016   curl_ipv6_msg="enabled"
1017 fi
1018
1019 # Check if struct sockaddr_in6 have sin6_scope_id member
1020 if test "$ipv6" = yes; then
1021   AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
1022   AC_TRY_COMPILE([
1023 #include <sys/types.h>
1024 #include <netinet/in.h>] ,
1025   struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
1026   if test "$have_sin6_scope_id" = yes; then
1027     AC_MSG_RESULT([yes])
1028     AC_DEFINE(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID, 1, [Define to 1 if struct sockaddr_in6 has the sin6_scope_id member])
1029   else
1030     AC_MSG_RESULT([no])
1031   fi
1032 fi
1033
1034 dnl **********************************************************************
1035 dnl Check if the operating system allows programs to write to their own argv[]
1036 dnl **********************************************************************
1037
1038 AC_MSG_CHECKING([if argv can be written to])
1039 AC_RUN_IFELSE([
1040   AC_LANG_SOURCE([[
1041 int main(int argc, char ** argv) {
1042     argv[0][0] = ' ';
1043     return (argv[0][0] == ' ')?0:1;
1044 }
1045   ]])
1046 ],[
1047   curl_cv_writable_argv=yes
1048 ],[
1049   curl_cv_writable_argv=no
1050 ],[
1051   curl_cv_writable_argv=cross
1052 ])
1053 case $curl_cv_writable_argv in
1054 yes)
1055         AC_DEFINE(HAVE_WRITABLE_ARGV, 1, [Define this symbol if your OS supports changing the contents of argv])
1056         AC_MSG_RESULT(yes)
1057         ;;
1058 no)
1059         AC_MSG_RESULT(no)
1060         ;;
1061 *)
1062         AC_MSG_RESULT(no)
1063         AC_MSG_WARN([the previous check could not be made default was used])
1064         ;;
1065 esac
1066
1067 dnl **********************************************************************
1068 dnl Check for the presence of Kerberos4 libraries and headers
1069 dnl **********************************************************************
1070
1071 AC_ARG_WITH(krb4-includes,
1072 AC_HELP_STRING([--with-krb4-includes=DIR],
1073                [Specify location of kerberos4 headers]),[
1074  CPPFLAGS="$CPPFLAGS -I$withval"
1075  KRB4INC="$withval"
1076  want_krb4=yes
1077  ])
1078
1079 AC_ARG_WITH(krb4-libs,
1080 AC_HELP_STRING([--with-krb4-libs=DIR],[Specify location of kerberos4 libs]),[
1081  LDFLAGS="$LDFLAGS -L$withval"
1082  KRB4LIB="$withval"
1083  want_krb4=yes
1084  ])
1085
1086
1087 OPT_KRB4=off
1088 AC_ARG_WITH(krb4,dnl
1089 AC_HELP_STRING([--with-krb4=DIR],[where to look for Kerberos4]),[
1090   OPT_KRB4="$withval"
1091   if test X"$OPT_KRB4" != Xno; then
1092     want_krb4="yes"
1093     if test X"$OPT_KRB4" != Xyes; then
1094       LDFLAGS="$LDFLAGS -L$OPT_KRB4/lib$libsuff"
1095       KRB4LIB="$OPT_KRB4/lib$libsuff"
1096       CPPFLAGS="$CPPFLAGS -I$OPT_KRB4/include"
1097       KRB4INC="$OPT_KRB4/include"
1098     fi
1099   fi
1100  ])
1101
1102 AC_MSG_CHECKING([if Kerberos4 support is requested])
1103
1104 if test "$want_krb4" = yes
1105 then
1106   if test "$ipv6" = "yes"; then
1107     echo krb4 is not compatible with IPv6
1108     exit 1
1109   fi
1110   AC_MSG_RESULT(yes)
1111
1112   dnl Check for & handle argument to --with-krb4
1113
1114   AC_MSG_CHECKING(where to look for Kerberos4)
1115   if test X"$OPT_KRB4" = Xyes
1116   then
1117     AC_MSG_RESULT([defaults])
1118   else
1119     AC_MSG_RESULT([libs in $KRB4LIB, headers in $KRB4INC])
1120   fi
1121
1122   dnl Check for DES library
1123   AC_CHECK_LIB(des, des_pcbc_encrypt,
1124   [
1125     AC_CHECK_HEADERS(des.h)
1126
1127     dnl resolv lib?
1128     AC_CHECK_FUNC(res_search, , [AC_CHECK_LIB(resolv, res_search)])
1129
1130     dnl Check for the Kerberos4 library
1131     AC_CHECK_LIB(krb, krb_net_read,
1132     [
1133       dnl Check for header files
1134       AC_CHECK_HEADERS(krb.h)
1135
1136       dnl we found the required libraries, add to LIBS
1137       LIBS="-lkrb -lcom_err -ldes $LIBS"
1138
1139       dnl Check for function krb_get_our_ip_for_realm
1140       dnl this is needed for NAT networks
1141       AC_CHECK_FUNCS(krb_get_our_ip_for_realm)
1142
1143       dnl add define KRB4
1144       AC_DEFINE(HAVE_KRB4, 1,
1145       [if you have the Kerberos4 libraries (including -ldes)])
1146
1147       dnl substitute it too!
1148       KRB4_ENABLED=1
1149       AC_SUBST(KRB4_ENABLED)
1150
1151       curl_krb4_msg="enabled"
1152
1153       dnl the krb4 stuff needs a strlcpy()
1154       AC_CHECK_FUNCS(strlcpy)
1155
1156     ])
1157   ])
1158 else
1159   AC_MSG_RESULT(no)
1160 fi
1161
1162 dnl **********************************************************************
1163 dnl Check for FBopenssl(SPNEGO) libraries
1164 dnl **********************************************************************
1165
1166 AC_ARG_WITH(spnego,
1167   AC_HELP_STRING([--with-spnego=DIR],
1168                  [Specify location of SPNEGO library fbopenssl]), [
1169   SPNEGO_ROOT="$withval"
1170   if test x"$SPNEGO_ROOT" != xno; then
1171     want_spnego="yes"
1172   fi
1173 ])
1174
1175 AC_MSG_CHECKING([if SPNEGO support is requested])
1176 if test x"$want_spnego" = xyes; then
1177
1178   if test X"$SPNEGO_ROOT" = Xyes; then
1179      AC_MSG_ERROR([FBOpenSSL libs and/or directories were not found where specified!])
1180      AC_MSG_RESULT(no)
1181   else
1182      if test -z "$SPNEGO_LIB_DIR"; then
1183         LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl"
1184      else
1185         LDFLAGS="$LDFLAGS $SPNEGO_LIB_DIR"
1186      fi
1187
1188      AC_MSG_RESULT(yes)
1189      AC_DEFINE(HAVE_SPNEGO, 1,
1190                [Define this if you have the SPNEGO library fbopenssl])
1191      curl_spnego_msg="enabled"
1192   fi
1193 else
1194   AC_MSG_RESULT(no)
1195 fi
1196
1197 dnl **********************************************************************
1198 dnl Check for GSS-API libraries
1199 dnl **********************************************************************
1200
1201 dnl check for gss stuff in the /usr as default
1202
1203 GSSAPI_ROOT="/usr"
1204 AC_ARG_WITH(gssapi-includes,
1205   AC_HELP_STRING([--with-gssapi-includes=DIR],
1206                  [Specify location of GSSAPI header]),
1207   [ GSSAPI_INCS="-I$withval"
1208     want_gss="yes" ]
1209 )
1210
1211 AC_ARG_WITH(gssapi-libs,
1212   AC_HELP_STRING([--with-gssapi-libs=DIR],
1213                  [Specify location of GSSAPI libs]),
1214   [ GSSAPI_LIB_DIR="-L$withval"
1215     want_gss="yes" ]
1216 )
1217
1218 AC_ARG_WITH(gssapi,
1219   AC_HELP_STRING([--with-gssapi=DIR],
1220                  [Where to look for GSSAPI]), [
1221   GSSAPI_ROOT="$withval"
1222   if test x"$GSSAPI_ROOT" != xno; then
1223     want_gss="yes"
1224     if test x"$GSSAPI_ROOT" = xyes; then
1225       dnl if yes, then use default root
1226       GSSAPI_ROOT="/usr"
1227     fi
1228   fi
1229 ])
1230
1231 save_CPPFLAGS="$CPPFLAGS"
1232 AC_MSG_CHECKING([if GSSAPI support is requested])
1233 if test x"$want_gss" = xyes; then
1234   AC_MSG_RESULT(yes)
1235
1236   if test -z "$GSSAPI_INCS"; then
1237      if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
1238         GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi`
1239      elif test "$GSSAPI_ROOT" != "yes"; then
1240         GSSAPI_INCS="-I$GSSAPI_ROOT/include"
1241      fi
1242   fi
1243
1244   CPPFLAGS="$CPPFLAGS $GSSAPI_INCS"
1245
1246   AC_CHECK_HEADER(gss.h,
1247     [
1248       dnl found in the given dirs
1249       AC_DEFINE(HAVE_GSSGNU, 1, [if you have the GNU gssapi libraries])
1250       gnu_gss=yes
1251     ],
1252     [
1253       dnl not found, check Heimdal or MIT
1254       AC_CHECK_HEADERS([gssapi/gssapi.h], [], [not_mit=1])
1255       AC_CHECK_HEADERS(
1256         [gssapi/gssapi_generic.h gssapi/gssapi_krb5.h],
1257         [],
1258         [not_mit=1],
1259         [
1260 AC_INCLUDES_DEFAULT
1261 #ifdef HAVE_GSSAPI_GSSAPI_H
1262 #include <gssapi/gssapi.h>
1263 #endif
1264         ])
1265       if test "x$not_mit" = "x1"; then
1266         dnl MIT not found, check for Heimdal
1267         AC_CHECK_HEADER(gssapi.h,
1268             [
1269               dnl found
1270               AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries])
1271             ],
1272             [
1273               dnl no header found, disabling GSS
1274               want_gss=no
1275               AC_MSG_WARN(disabling GSSAPI since no header files was found)
1276             ]
1277           )
1278       else
1279         dnl MIT found
1280         AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
1281         dnl check if we have a really old MIT kerberos (<= 1.2)
1282         AC_MSG_CHECKING([if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE])
1283         AC_COMPILE_IFELSE([
1284           AC_LANG_PROGRAM([[
1285 #include <gssapi/gssapi.h>
1286 #include <gssapi/gssapi_generic.h>
1287 #include <gssapi/gssapi_krb5.h>
1288           ]],[[
1289             gss_import_name(
1290                             (OM_uint32 *)0,
1291                             (gss_buffer_t)0,
1292                             GSS_C_NT_HOSTBASED_SERVICE,
1293                             (gss_name_t *)0);
1294           ]])
1295         ],[
1296           AC_MSG_RESULT([yes])
1297         ],[
1298           AC_MSG_RESULT([no])
1299           AC_DEFINE(HAVE_OLD_GSSMIT, 1,
1300             [if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE])
1301         ])
1302       fi
1303     ]
1304   )
1305 else
1306   AC_MSG_RESULT(no)
1307 fi
1308 if test x"$want_gss" = xyes; then
1309   AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries])
1310
1311   curl_gss_msg="enabled (MIT/Heimdal)"
1312
1313   if test -n "$gnu_gss"; then
1314     curl_gss_msg="enabled (GNU GSS)"
1315     LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1316     LIBS="$LIBS -lgss"
1317   elif test -z "$GSSAPI_LIB_DIR"; then
1318      case $host in
1319      *-*-darwin*)
1320         LIBS="$LIBS -lgssapi_krb5 -lresolv"
1321         ;;
1322      *)
1323         if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
1324            dnl krb5-config doesn't have --libs-only-L or similar, put everything
1325            dnl into LIBS
1326            gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi`
1327            LIBS="$LIBS $gss_libs"
1328         elif test "$GSSAPI_ROOT" != "yes"; then
1329            LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff"
1330            LIBS="$LIBS -lgssapi"
1331         else
1332            LIBS="$LIBS -lgssapi"
1333         fi
1334         ;;
1335      esac
1336   else
1337      LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
1338      LIBS="$LIBS -lgssapi"
1339   fi
1340 else
1341   CPPFLAGS="$save_CPPFLAGS"
1342 fi
1343
1344 dnl -------------------------------------------------
1345 dnl check winssl option before other SSL libraries
1346 dnl -------------------------------------------------
1347
1348 OPT_WINSSL=no
1349 AC_ARG_WITH(winssl,dnl
1350 AC_HELP_STRING([--with-winssl],[enable Windows native SSL/TLS])
1351 AC_HELP_STRING([--without-winssl], [disable Windows native SSL/TLS]),
1352   OPT_WINSSL=$withval)
1353
1354 AC_MSG_CHECKING([whether to enable Windows native SSL/TLS  (Windows native builds only)])
1355 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1356   if test "x$OPT_WINSSL" != "xno"  &&
1357      test "x$ac_cv_native_windows" = "xyes"; then
1358     AC_MSG_RESULT(yes)
1359     AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support])
1360     AC_SUBST(USE_SCHANNEL, [1])
1361     curl_ssl_msg="enabled (Windows-native)"
1362     WINSSL_ENABLED=1
1363     # --with-winssl implies --enable-sspi
1364     AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
1365     AC_SUBST(USE_WINDOWS_SSPI, [1])
1366     curl_sspi_msg="enabled"
1367   else
1368     AC_MSG_RESULT(no)
1369   fi
1370 else
1371   AC_MSG_RESULT(no)
1372 fi
1373
1374 dnl **********************************************************************
1375 dnl Check for the presence of SSL libraries and headers
1376 dnl **********************************************************************
1377
1378 dnl Default to compiler & linker defaults for SSL files & libraries.
1379 OPT_SSL=off
1380 dnl Default to no CA bundle
1381 ca="no"
1382 AC_ARG_WITH(ssl,dnl
1383 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])
1384 AC_HELP_STRING([--without-ssl], [disable OpenSSL]),
1385   OPT_SSL=$withval)
1386
1387 if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
1388   dnl backup the pre-ssl variables
1389   CLEANLDFLAGS="$LDFLAGS"
1390   CLEANCPPFLAGS="$CPPFLAGS"
1391   CLEANLIBS="$LIBS"
1392
1393   case "$OPT_SSL" in
1394   yes)
1395     dnl --with-ssl (without path) used
1396     if test x$cross_compiling != xyes; then
1397       dnl only do pkg-config magic when not cross-compiling
1398       PKGTEST="yes"
1399     fi
1400     PREFIX_OPENSSL=/usr/local/ssl
1401     LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1402     ;;
1403   off)
1404     dnl no --with-ssl option given, just check default places
1405     if test x$cross_compiling != xyes; then
1406       dnl only do pkg-config magic when not cross-compiling
1407       PKGTEST="yes"
1408     fi
1409     PREFIX_OPENSSL=
1410     ;;
1411   *)
1412     dnl check the given --with-ssl spot
1413     PKGTEST="no"
1414     PREFIX_OPENSSL=$OPT_SSL
1415
1416     dnl Try pkg-config even when cross-compiling.  Since we
1417     dnl specify PKG_CONFIG_LIBDIR we're only looking where
1418     dnl the user told us to look
1419     OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig"
1420     AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
1421     if test -f "$OPENSSL_PCDIR/openssl.pc"; then
1422       PKGTEST="yes"
1423     fi
1424
1425     dnl in case pkg-config comes up empty, use what we got
1426     dnl via --with-ssl
1427     LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1428     if test "$PREFIX_OPENSSL" != "/usr" ; then
1429       SSL_LDFLAGS="-L$LIB_OPENSSL"
1430       SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include"
1431     fi
1432     SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl"
1433     ;;
1434   esac
1435
1436   if test "$PKGTEST" = "yes"; then
1437
1438     CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR])
1439
1440     if test "$PKGCONFIG" != "no" ; then
1441       SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1442         $PKGCONFIG --libs-only-l openssl 2>/dev/null`
1443
1444       SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1445         $PKGCONFIG --libs-only-L openssl 2>/dev/null`
1446
1447       SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1448         $PKGCONFIG --cflags-only-I openssl 2>/dev/null`
1449
1450       AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
1451       AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
1452       AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
1453
1454       LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'`
1455
1456       dnl use the values pkg-config reported.  This is here
1457       dnl instead of below with CPPFLAGS and LDFLAGS because we only
1458       dnl learn about this via pkg-config.  If we only have
1459       dnl the argument to --with-ssl we don't know what
1460       dnl additional libs may be necessary.  Hope that we
1461       dnl don't need any.
1462       LIBS="$LIBS $SSL_LIBS"
1463     fi
1464   fi
1465
1466   dnl finally, set flags to use SSL
1467   CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
1468   LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
1469
1470   dnl This is for Msys/Mingw
1471   case $host in
1472     *-*-msys* | *-*-mingw*)
1473       AC_MSG_CHECKING([for gdi32])
1474       my_ac_save_LIBS=$LIBS
1475       LIBS="-lgdi32 $LIBS"
1476       AC_TRY_LINK([#include <windef.h>
1477                    #include <wingdi.h>],
1478                    [GdiFlush();],
1479                    [ dnl worked!
1480                    AC_MSG_RESULT([yes])],
1481                    [ dnl failed, restore LIBS
1482                    LIBS=$my_ac_save_LIBS
1483                    AC_MSG_RESULT(no)]
1484                   )
1485       ;;
1486   esac
1487
1488   AC_CHECK_LIB(crypto, CRYPTO_lock,[
1489      HAVECRYPTO="yes"
1490      LIBS="-lcrypto $LIBS"
1491      ],[
1492      LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL"
1493      CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include"
1494      AC_CHECK_LIB(crypto, CRYPTO_add_lock,[
1495        HAVECRYPTO="yes"
1496        LIBS="-lcrypto $LIBS"], [
1497        LDFLAGS="$CLEANLDFLAGS"
1498        CPPFLAGS="$CLEANCPPFLAGS"
1499        LIBS="$CLEANLIBS"
1500        ])
1501     ])
1502
1503
1504   if test X"$HAVECRYPTO" = X"yes"; then
1505     dnl This is only reasonable to do if crypto actually is there: check for
1506     dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
1507
1508     AC_CHECK_LIB(ssl, SSL_connect)
1509
1510     if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1511         dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
1512         AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
1513         OLIBS=$LIBS
1514         LIBS="$LIBS -lRSAglue -lrsaref"
1515         AC_CHECK_LIB(ssl, SSL_connect)
1516         if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1517             dnl still no SSL_connect
1518             AC_MSG_RESULT(no)
1519             LIBS=$OLIBS
1520         else
1521             AC_MSG_RESULT(yes)
1522         fi
1523
1524     else
1525
1526       dnl Have the libraries--check for SSLeay/OpenSSL headers
1527       AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
1528                        openssl/pem.h openssl/ssl.h openssl/err.h,
1529         curl_ssl_msg="enabled (OpenSSL)"
1530         OPENSSL_ENABLED=1
1531         AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
1532
1533       if test $ac_cv_header_openssl_x509_h = no; then
1534         dnl we don't use the "action" part of the AC_CHECK_HEADERS macro
1535         dnl since 'err.h' might in fact find a krb4 header with the same
1536         dnl name
1537         AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
1538
1539         if test $ac_cv_header_x509_h = yes &&
1540            test $ac_cv_header_crypto_h = yes &&
1541            test $ac_cv_header_ssl_h = yes; then
1542           dnl three matches
1543           curl_ssl_msg="enabled (OpenSSL)"
1544           OPENSSL_ENABLED=1
1545         fi
1546       fi
1547     fi
1548
1549     if test X"$OPENSSL_ENABLED" = X"1"; then
1550        AC_DEFINE(USE_SSLEAY, 1, [if SSL is enabled])
1551
1552        dnl is there a pkcs12.h header present?
1553        AC_CHECK_HEADERS(openssl/pkcs12.h)
1554     else
1555        LIBS="$CLEANLIBS"
1556     fi
1557     dnl USE_SSLEAY is the historical name for what configure calls
1558     dnl OPENSSL_ENABLED; the names should really be unified
1559     USE_SSLEAY="$OPENSSL_ENABLED"
1560     AC_SUBST(USE_SSLEAY)
1561
1562     if test X"$OPT_SSL" != Xoff &&
1563        test "$OPENSSL_ENABLED" != "1"; then
1564       AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!])
1565     fi
1566   fi
1567
1568   if test X"$OPENSSL_ENABLED" = X"1"; then
1569     dnl If the ENGINE library seems to be around, check for the OpenSSL engine
1570     dnl stuff, it is kind of "separated" from the main SSL check
1571     AC_CHECK_FUNC(ENGINE_init,
1572               [
1573                 AC_CHECK_HEADERS(openssl/engine.h)
1574                 AC_CHECK_FUNCS( ENGINE_load_builtin_engines )
1575               ])
1576
1577     dnl these can only exist if openssl exists
1578     dnl yassl doesn't have SSL_get_shutdown
1579
1580     AC_CHECK_FUNCS( RAND_status \
1581                     RAND_screen \
1582                     RAND_egd \
1583                     ENGINE_cleanup \
1584                     CRYPTO_cleanup_all_ex_data \
1585                     SSL_get_shutdown \
1586                     SSLv2_client_method )
1587
1588     dnl Make an attempt to detect if this is actually yassl's headers and
1589     dnl OpenSSL emulation layer. We still leave everything else believing
1590     dnl and acting like OpenSSL.
1591
1592     AC_MSG_CHECKING([for yaSSL using OpenSSL compatibility mode])
1593     AC_COMPILE_IFELSE([
1594       AC_LANG_PROGRAM([[
1595 #include <openssl/ssl.h>
1596       ]],[[
1597 #if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER)
1598         int dummy = SSL_ERROR_NONE;
1599 #else
1600         Not the yaSSL OpenSSL compatibility header.
1601 #endif
1602       ]])
1603     ],[
1604       AC_MSG_RESULT([yes])
1605       AC_DEFINE_UNQUOTED(USE_YASSLEMUL, 1,
1606         [Define to 1 if using yaSSL in OpenSSL compatibility mode.])
1607       curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)"
1608     ],[
1609       AC_MSG_RESULT([no])
1610     ])
1611   fi
1612
1613   if test "$OPENSSL_ENABLED" = "1"; then
1614     if test -n "$LIB_OPENSSL"; then
1615        dnl when the ssl shared libs were found in a path that the run-time
1616        dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
1617        dnl to prevent further configure tests to fail due to this
1618        if test "x$cross_compiling" != "xyes"; then
1619          LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL"
1620          export LD_LIBRARY_PATH
1621          AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH])
1622        fi
1623     fi
1624     CURL_CHECK_OPENSSL_API
1625   fi
1626
1627 fi
1628
1629 dnl **********************************************************************
1630 dnl Check for the presence of ZLIB libraries and headers
1631 dnl **********************************************************************
1632
1633 dnl Check for & handle argument to --with-zlib.
1634
1635 _cppflags=$CPPFLAGS
1636 _ldflags=$LDFLAGS
1637 AC_ARG_WITH(zlib,
1638 AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])
1639 AC_HELP_STRING([--without-zlib],[disable use of zlib]),
1640                [OPT_ZLIB="$withval"])
1641
1642 if test "$OPT_ZLIB" = "no" ; then
1643     AC_MSG_WARN([zlib disabled])
1644 else
1645   if test "$OPT_ZLIB" = "yes" ; then
1646      OPT_ZLIB=""
1647   fi
1648
1649   if test -z "$OPT_ZLIB" ; then
1650     dnl check for the lib first without setting any new path, since many
1651     dnl people have it in the default path
1652
1653     AC_CHECK_LIB(z, inflateEnd,
1654                    dnl libz found, set the variable
1655                    [HAVE_LIBZ="1"],
1656                    dnl if no lib found, try /usr/local
1657                    [OPT_ZLIB="/usr/local"])
1658
1659   fi
1660
1661   dnl Add a nonempty path to the compiler flags
1662   if test -n "$OPT_ZLIB"; then
1663      CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
1664      LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
1665   fi
1666
1667   AC_CHECK_HEADER(zlib.h,
1668     [
1669     dnl zlib.h was found
1670     HAVE_ZLIB_H="1"
1671     dnl if the lib wasn't found already, try again with the new paths
1672     if test "$HAVE_LIBZ" != "1"; then
1673       AC_CHECK_LIB(z, gzread,
1674                    [
1675                    dnl the lib was found!
1676                    HAVE_LIBZ="1"
1677                    ],
1678                    [ CPPFLAGS=$_cppflags
1679                    LDFLAGS=$_ldflags])
1680     fi
1681     ],
1682     [
1683       dnl zlib.h was not found, restore the flags
1684       CPPFLAGS=$_cppflags
1685       LDFLAGS=$_ldflags]
1686     )
1687
1688   if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
1689   then
1690     AC_MSG_WARN([configure found only the libz lib, not the header file!])
1691     HAVE_LIBZ=""
1692   elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
1693   then
1694     AC_MSG_WARN([configure found only the libz header file, not the lib!])
1695   elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1"
1696   then
1697     dnl both header and lib were found!
1698     AC_SUBST(HAVE_LIBZ)
1699     AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file])
1700     AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available])
1701
1702     CURL_LIBS="$CURL_LIBS -lz"
1703     LIBS="$LIBS -lz"
1704
1705     dnl replace 'HAVE_LIBZ' in the automake makefile.ams
1706     AMFIXLIB="1"
1707     AC_MSG_NOTICE([found both libz and libz.h header])
1708     curl_zlib_msg="enabled"
1709   fi
1710 fi
1711
1712 dnl set variable for use in automakefile(s)
1713 AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
1714
1715 dnl **********************************************************************
1716 dnl Check for the random seed preferences
1717 dnl **********************************************************************
1718
1719 if test X"$OPENSSL_ENABLED" = X"1"; then
1720   AC_ARG_WITH(egd-socket,
1721   AC_HELP_STRING([--with-egd-socket=FILE],
1722                  [Entropy Gathering Daemon socket pathname]),
1723       [ EGD_SOCKET="$withval" ]
1724   )
1725   if test -n "$EGD_SOCKET" ; then
1726           AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET",
1727           [your Entropy Gathering Daemon socket pathname] )
1728   fi
1729
1730   dnl Check for user-specified random device
1731   AC_ARG_WITH(random,
1732   AC_HELP_STRING([--with-random=FILE],
1733                  [read randomness from FILE (default=/dev/urandom)]),
1734       [ RANDOM_FILE="$withval" ],
1735       [
1736           if test x$cross_compiling != xyes; then
1737             dnl Check for random device
1738             AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
1739           else
1740             AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling])
1741           fi
1742       ]
1743   )
1744   if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
1745           AC_SUBST(RANDOM_FILE)
1746           AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE",
1747           [a suitable file to read random data from])
1748   fi
1749 fi
1750
1751 dnl ---
1752 dnl We require OpenSSL with SRP support.
1753 dnl ---
1754 if test "$OPENSSL_ENABLED" = "1"; then
1755   AC_CHECK_LIB(crypto, SRP_Calc_client_key,
1756    [
1757      AC_DEFINE(HAVE_SSLEAY_SRP, 1, [if you have the function SRP_Calc_client_key])
1758      AC_SUBST(HAVE_SSLEAY_SRP, [1])
1759    ])
1760 fi
1761
1762 dnl ----------------------------------------------------
1763 dnl check for GnuTLS
1764 dnl ----------------------------------------------------
1765
1766 dnl Default to compiler & linker defaults for GnuTLS files & libraries.
1767 OPT_GNUTLS=no
1768
1769 AC_ARG_WITH(gnutls,dnl
1770 AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root])
1771 AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
1772   OPT_GNUTLS=$withval)
1773
1774 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1775
1776   if test X"$OPT_GNUTLS" != Xno; then
1777
1778     addld=""
1779     if test "x$OPT_GNUTLS" = "xyes"; then
1780       dnl this is with no partiular path given
1781       CURL_CHECK_PKGCONFIG(gnutls)
1782
1783       if test "$PKGCONFIG" != "no" ; then
1784         addlib=`$PKGCONFIG --libs-only-l gnutls`
1785         addld=`$PKGCONFIG --libs-only-L gnutls`
1786         addcflags=`$PKGCONFIG --cflags-only-I gnutls`
1787         version=`$PKGCONFIG --modversion gnutls`
1788         gtlslib=`echo $addld | $SED -e 's/-L//'`
1789       else
1790         dnl without pkg-config, we try libgnutls-config as that was how it
1791         dnl used to be done
1792         check=`libgnutls-config --version 2>/dev/null`
1793         if test -n "$check"; then
1794           addlib=`libgnutls-config --libs`
1795           addcflags=`libgnutls-config --cflags`
1796           version=`libgnutls-config --version`
1797           gtlslib=`libgnutls-config --prefix`/lib$libsuff
1798         fi
1799       fi
1800     else
1801       dnl this is with a given path, first check if there's a libgnutls-config
1802       dnl there and if not, make an educated guess
1803       cfg=$OPT_GNUTLS/bin/libgnutls-config
1804       check=`$cfg --version 2>/dev/null`
1805       if test -n "$check"; then
1806         addlib=`$cfg --libs`
1807         addcflags=`$cfg --cflags`
1808         version=`$cfg --version`
1809         gtlslib=`$cfg --prefix`/lib$libsuff
1810       else
1811         dnl without pkg-config and libgnutls-config, we guess a lot!
1812         addlib=-lgnutls
1813         addld=-L$OPT_GNUTLS/lib$libsuff
1814         addcflags=-I$OPT_GNUTLS/include
1815         version="" # we just don't know
1816         gtlslib=$OPT_GNUTLS/lib$libsuff
1817       fi
1818     fi
1819
1820     if test -z "$version"; then
1821       dnl lots of efforts, still no go
1822       version="unknown"
1823     fi
1824
1825     if test -n "$addlib"; then
1826
1827       CLEANLIBS="$LIBS"
1828       CLEANCPPFLAGS="$CPPFLAGS"
1829       CLEADLDFLAGS="$LDFLAGS"
1830
1831       LIBS="$LIBS $addlib"
1832       LDFLAGS="$LDFLAGS $addld"
1833       if test "$addcflags" != "-I/usr/include"; then
1834          CPPFLAGS="$CPPFLAGS $addcflags"
1835       fi
1836
1837       AC_CHECK_LIB(gnutls, gnutls_check_version,
1838        [
1839        AC_DEFINE(USE_GNUTLS, 1, [if GnuTLS is enabled])
1840        AC_SUBST(USE_GNUTLS, [1])
1841        GNUTLS_ENABLED=1
1842        USE_GNUTLS="yes"
1843        curl_ssl_msg="enabled (GnuTLS)"
1844        ],
1845        [
1846          LIBS="$CLEANLIBS"
1847          CPPFLAGS="$CLEANCPPFLAGS"
1848        ])
1849
1850       if test "x$USE_GNUTLS" = "xyes"; then
1851         AC_MSG_NOTICE([detected GnuTLS version $version])
1852
1853         if test -n "$gtlslib"; then
1854           dnl when shared libs were found in a path that the run-time
1855           dnl linker doesn't search through, we need to add it to
1856           dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1857           dnl due to this
1858           if test "x$cross_compiling" != "xyes"; then 
1859             LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
1860             export LD_LIBRARY_PATH
1861             AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
1862           fi
1863         fi
1864       fi
1865
1866     fi
1867
1868   fi dnl GNUTLS not disabled
1869
1870 fi
1871
1872 dnl ---
1873 dnl Check which crypto backend GnuTLS uses
1874 dnl ---
1875
1876 if test "$GNUTLS_ENABLED" = "1"; then
1877   USE_GNUTLS_NETTLE=
1878   # First check if we can detect either crypto library via transitive linking
1879   AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1880   if test "$USE_GNUTLS_NETTLE" = ""; then
1881     AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1882   fi
1883   # If not, try linking directly to both of them to see if they are available
1884   if test "$USE_GNUTLS_NETTLE" = ""; then
1885     AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1886   fi
1887   if test "$USE_GNUTLS_NETTLE" = ""; then
1888     AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1889   fi
1890   if test "$USE_GNUTLS_NETTLE" = ""; then
1891     AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found])
1892   fi
1893   if test "$USE_GNUTLS_NETTLE" = "1"; then
1894     AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend])
1895     AC_SUBST(USE_GNUTLS_NETTLE, [1])
1896     LIBS="$LIBS -lnettle"
1897   else
1898     LIBS="$LIBS -lgcrypt"
1899   fi
1900 fi
1901
1902 dnl ---
1903 dnl We require GnuTLS with SRP support.
1904 dnl ---
1905 if test "$GNUTLS_ENABLED" = "1"; then
1906   AC_CHECK_LIB(gnutls, gnutls_srp_verifier,
1907    [
1908      AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier])
1909      AC_SUBST(HAVE_GNUTLS_SRP, [1])
1910    ])
1911 fi
1912
1913 dnl ----------------------------------------------------
1914 dnl check for PolarSSL
1915 dnl ----------------------------------------------------
1916
1917 dnl Default to compiler & linker defaults for PolarSSL files & libraries.
1918 OPT_POLARSSL=no
1919
1920 _cppflags=$CPPFLAGS
1921 _ldflags=$LDFLAGS
1922 AC_ARG_WITH(polarssl,dnl
1923 AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root])
1924 AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]),
1925   OPT_POLARSSL=$withval)
1926
1927 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1928
1929   if test X"$OPT_POLARSSL" != Xno; then
1930
1931     if test "$OPT_POLARSSL" = "yes"; then
1932       OPT_POLARSSL=""
1933     fi
1934
1935     if test -z "$OPT_POLARSSL" ; then
1936       dnl check for lib first without setting any new path
1937
1938       AC_CHECK_LIB(polarssl, havege_init,
1939       dnl libpolarssl found, set the variable
1940        [
1941          AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1942          AC_SUBST(USE_POLARSSL, [1])
1943          POLARSSL_ENABLED=1
1944          USE_POLARSSL="yes"
1945          curl_ssl_msg="enabled (PolarSSL)"
1946         ])
1947     fi
1948
1949     if test "x$USE_POLARSSL" != "xyes"; then
1950       dnl add the path and test again
1951       addld=-L$OPT_POLARSSL/lib$libsuff
1952       addcflags=-I$OPT_POLARSSL/include
1953       polarssllib=$OPT_POLARSSL/lib$libsuff
1954
1955       LDFLAGS="$LDFLAGS $addld"
1956       if test "$addcflags" != "-I/usr/include"; then
1957          CPPFLAGS="$CPPFLAGS $addcflags"
1958       fi
1959
1960       AC_CHECK_LIB(polarssl, ssl_init,
1961        [
1962        AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1963        AC_SUBST(USE_POLARSSL, [1])
1964        POLARSSL_ENABLED=1
1965        USE_POLARSSL="yes"
1966        curl_ssl_msg="enabled (PolarSSL)"
1967        ],
1968        [
1969          CPPFLAGS=$_cppflags
1970          LDFLAGS=$_ldflags
1971        ])
1972     fi
1973
1974     if test "x$USE_POLARSSL" = "xyes"; then
1975       AC_MSG_NOTICE([detected PolarSSL])
1976
1977       CURL_LIBS="$CURL_LIBS -lpolarssl"
1978       LIBS="$LIBS -lpolarssl"
1979
1980       if test -n "$polarssllib"; then
1981         dnl when shared libs were found in a path that the run-time
1982         dnl linker doesn't search through, we need to add it to
1983         dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1984         dnl due to this
1985         if test "x$cross_compiling" != "xyes"; then
1986           LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib"
1987           export LD_LIBRARY_PATH
1988           AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH])
1989         fi
1990       fi
1991     fi
1992
1993   fi dnl PolarSSL not disabled
1994
1995 fi
1996
1997 dnl ----------------------------------------------------
1998 dnl check for CyaSSL
1999 dnl ----------------------------------------------------
2000
2001 dnl Default to compiler & linker defaults for CyaSSL files & libraries.
2002 OPT_CYASSL=no
2003
2004 _cppflags=$CPPFLAGS
2005 _ldflags=$LDFLAGS
2006 AC_ARG_WITH(cyassl,dnl
2007 AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
2008 AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
2009   OPT_CYASSL=$withval)
2010
2011 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2012
2013   if test X"$OPT_CYASSL" != Xno; then
2014
2015     if test "$OPT_CYASSL" = "yes"; then
2016       OPT_CYASSL=""
2017     fi
2018
2019     if test -z "$OPT_CYASSL" ; then
2020       dnl check for lib in system default first
2021
2022       AC_CHECK_LIB(cyassl, CyaSSL_Init,
2023       dnl libcyassl found, set the variable
2024        [
2025          AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2026          AC_SUBST(USE_CYASSL, [1])
2027          CYASSL_ENABLED=1
2028          USE_CYASSL="yes"
2029          curl_ssl_msg="enabled (CyaSSL)"
2030         ])
2031     fi
2032
2033     if test "x$USE_CYASSL" != "xyes"; then
2034       dnl add the path and test again
2035       addld=-L$OPT_CYASSL/lib$libsuff
2036       addcflags=-I$OPT_CYASSL/include
2037       cyassllib=$OPT_CYASSL/lib$libsuff
2038
2039       LDFLAGS="$LDFLAGS $addld"
2040       if test "$addcflags" != "-I/usr/include"; then
2041          CPPFLAGS="$CPPFLAGS $addcflags"
2042       fi
2043
2044       AC_CHECK_LIB(cyassl, CyaSSL_Init,
2045        [
2046        AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2047        AC_SUBST(USE_CYASSL, [1])
2048        CYASSL_ENABLED=1
2049        USE_CYASSL="yes"
2050        curl_ssl_msg="enabled (CyaSSL)"
2051        ],
2052        [
2053          CPPFLAGS=$_cppflags
2054          LDFLAGS=$_ldflags
2055        ])
2056     fi
2057
2058     if test "x$USE_CYASSL" = "xyes"; then
2059       AC_MSG_NOTICE([detected CyaSSL])
2060
2061       CURL_LIBS="$CURL_LIBS -lcyassl -lm"
2062       LIBS="$LIBS -lcyassl -lm"
2063
2064       if test -n "$cyassllib"; then
2065         dnl when shared libs were found in a path that the run-time
2066         dnl linker doesn't search through, we need to add it to
2067         dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2068         dnl due to this
2069         if test "x$cross_compiling" != "xyes"; then
2070           LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
2071           export LD_LIBRARY_PATH
2072           AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH])
2073         fi
2074       fi
2075
2076     fi
2077
2078   fi dnl CyaSSL not disabled
2079
2080 fi
2081
2082 dnl ----------------------------------------------------
2083 dnl NSS. Only check if GnuTLS and OpenSSL are not enabled
2084 dnl ----------------------------------------------------
2085
2086 dnl Default to compiler & linker defaults for NSS files & libraries.
2087 OPT_NSS=no
2088
2089 AC_ARG_WITH(nss,dnl
2090 AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root])
2091 AC_HELP_STRING([--without-nss], [disable NSS detection]),
2092   OPT_NSS=$withval)
2093
2094 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2095
2096   if test X"$OPT_NSS" != Xno; then
2097     if test "x$OPT_NSS" = "xyes"; then
2098
2099       CURL_CHECK_PKGCONFIG(nss)
2100
2101       if test "$PKGCONFIG" != "no" ; then
2102         addlib=`$PKGCONFIG --libs nss`
2103         addcflags=`$PKGCONFIG --cflags nss`
2104         version=`$PKGCONFIG --modversion nss`
2105         nssprefix=`$PKGCONFIG --variable=prefix nss`
2106       else
2107         dnl Without pkg-config, we check for nss-config
2108
2109         check=`nss-config --version 2>/dev/null`
2110         if test -n "$check"; then
2111           addlib=`nss-config --libs`
2112           addcflags=`nss-config --cflags`
2113           version=`nss-config --version`
2114           nssprefix=`nss-config --prefix`
2115         else
2116           addlib="-lnss3"
2117           addcflags=""
2118           version="unknown"
2119         fi
2120       fi
2121     else
2122         # Without pkg-config, we'll kludge in some defaults
2123         addlib="-L$OPT_NSS/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
2124         addcflags="-I$OPT_NSS/include"
2125         version="unknown"
2126         nssprefix=$OPT_NSS
2127     fi
2128
2129     if test -n "$addlib"; then
2130
2131       CLEANLIBS="$LIBS"
2132       CLEANCPPFLAGS="$CPPFLAGS"
2133
2134       LIBS="$LIBS $addlib"
2135       if test "$addcflags" != "-I/usr/include"; then
2136          CPPFLAGS="$CPPFLAGS $addcflags"
2137       fi
2138
2139       dnl The function PK11_CreateGenericObject is needed to load libnsspem.so
2140       AC_CHECK_LIB(nss3, PK11_CreateGenericObject,
2141        [
2142        AC_DEFINE(USE_NSS, 1, [if NSS is enabled])
2143        AC_SUBST(USE_NSS, [1])
2144        USE_NSS="yes"
2145        NSS_ENABLED=1
2146        curl_ssl_msg="enabled (NSS)"
2147        ],
2148        [
2149          LIBS="$CLEANLIBS"
2150          CPPFLAGS="$CLEANCPPFLAGS"
2151        ])
2152
2153       if test "x$USE_NSS" = "xyes"; then
2154         AC_MSG_NOTICE([detected NSS version $version])
2155
2156         dnl NSS_InitContext() was introduced in NSS 3.12.5 and helps to prevent
2157         dnl collisions on NSS initialization/shutdown with other libraries
2158         AC_CHECK_FUNC(NSS_InitContext,
2159         [
2160           AC_DEFINE(HAVE_NSS_INITCONTEXT, 1, [if you have the NSS_InitContext function])
2161           AC_SUBST(HAVE_NSS_INITCONTEXT, [1])
2162         ])
2163
2164         dnl when shared libs were found in a path that the run-time
2165         dnl linker doesn't search through, we need to add it to
2166         dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2167         dnl due to this
2168         if test "x$cross_compiling" != "xyes"; then
2169           LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff"
2170           export LD_LIBRARY_PATH
2171           AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH])
2172         fi
2173       fi
2174
2175     fi
2176
2177   fi dnl NSS not disabled
2178
2179 fi dnl curl_ssl_msg = init_ssl_msg
2180
2181 OPT_AXTLS=off
2182
2183 AC_ARG_WITH(axtls,dnl
2184 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.])
2185 AC_HELP_STRING([--without-axtls], [disable axTLS]),
2186   OPT_AXTLS=$withval)
2187
2188 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2189   if test X"$OPT_AXTLS" != Xno; then
2190     dnl backup the pre-axtls variables
2191     CLEANLDFLAGS="$LDFLAGS"
2192     CLEANCPPFLAGS="$CPPFLAGS"
2193     CLEANLIBS="$LIBS"
2194
2195     case "$OPT_AXTLS" in
2196     yes)
2197       dnl --with-axtls (without path) used
2198       PREFIX_AXTLS=/usr/local
2199       LIB_AXTLS="$PREFIX_AXTLS/lib"
2200       LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2201       CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2202       ;;
2203     off)
2204       dnl no --with-axtls option given, just check default places
2205       PREFIX_AXTLS=
2206       ;;
2207     *)
2208       dnl check the given --with-axtls spot
2209       PREFIX_AXTLS=$OPT_AXTLS
2210       LIB_AXTLS="$PREFIX_AXTLS/lib"
2211       LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2212       CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2213       ;;
2214     esac
2215
2216     AC_CHECK_LIB(axtls, ssl_version,[
2217       LIBS="-laxtls $LIBS"
2218       AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled])
2219       AC_SUBST(USE_AXTLS, [1])
2220       AXTLS_ENABLED=1
2221       USE_AXTLS="yes"
2222       curl_ssl_msg="enabled (axTLS)"
2223
2224
2225       LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS"
2226       export LD_LIBRARY_PATH
2227       AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH])
2228       ],[
2229       LDFLAGS="$CLEANLDFLAGS"
2230       CPPFLAGS="$CLEANCPPFLAGS"
2231       LIBS="$CLEANLIBS"
2232     ])
2233   fi
2234 fi
2235
2236 if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED" = "x"; then
2237   AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
2238   AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls or --with-winssl to address this.])
2239 else
2240   # SSL is enabled, genericly
2241   AC_SUBST(SSL_ENABLED)
2242   SSL_ENABLED="1"
2243 fi
2244
2245 dnl **********************************************************************
2246 dnl Check for the CA bundle
2247 dnl **********************************************************************
2248
2249 CURL_CHECK_CA_BUNDLE
2250
2251 dnl **********************************************************************
2252 dnl Check for libmetalink
2253 dnl **********************************************************************
2254
2255 OPT_LIBMETALINK=no
2256
2257 AC_ARG_WITH(libmetalink,dnl
2258 AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root])
2259 AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]),
2260   OPT_LIBMETALINK=$withval)
2261
2262 if test X"$OPT_LIBMETALINK" != Xno; then
2263
2264   addlib=""
2265   addld=""
2266   addcflags=""
2267   version=""
2268   libmetalinklib=""
2269   PKGTEST="no"
2270   if test "x$OPT_LIBMETALINK" = "xyes"; then
2271     dnl this is with no partiular path given
2272     PKGTEST="yes"
2273     CURL_CHECK_PKGCONFIG(libmetalink)
2274   else
2275     dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path.
2276     LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig"
2277     AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"])
2278     if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then
2279       PKGTEST="yes"
2280     fi
2281     if test "$PKGTEST" = "yes"; then
2282       CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR])
2283     fi
2284   fi
2285   if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then
2286     addlib=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2287       $PKGCONFIG --libs-only-l libmetalink`
2288     addld=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2289       $PKGCONFIG --libs-only-L libmetalink`
2290     addcflags=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2291       $PKGCONFIG --cflags-only-I libmetalink`
2292     version=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2293       $PKGCONFIG --modversion libmetalink`
2294     libmetalinklib=`echo $addld | $SED -e 's/-L//'`
2295   fi
2296   if test -n "$addlib"; then
2297
2298     AC_MSG_NOTICE([detected libmetalink version $version])
2299     curl_mtlnk_msg="enabled"
2300     LIBMETALINK_LIBS=$addlib
2301     LIBMETALINK_LDFLAGS=$addld
2302     LIBMETALINK_CFLAGS=$addcflags
2303     AC_SUBST([LIBMETALINK_LIBS])
2304     AC_SUBST([LIBMETALINK_LDFLAGS])
2305     AC_SUBST([LIBMETALINK_CFLAGS])
2306     AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support])
2307
2308   fi
2309 fi
2310
2311 dnl **********************************************************************
2312 dnl Check for the presence of LIBSSH2 libraries and headers
2313 dnl **********************************************************************
2314
2315 dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
2316 OPT_LIBSSH2=off
2317 AC_ARG_WITH(libssh2,dnl
2318 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])
2319 AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
2320   OPT_LIBSSH2=$withval)
2321
2322 if test X"$OPT_LIBSSH2" != Xno; then
2323   dnl backup the pre-libssh2 variables
2324   CLEANLDFLAGS="$LDFLAGS"
2325   CLEANCPPFLAGS="$CPPFLAGS"
2326   CLEANLIBS="$LIBS"
2327
2328   case "$OPT_LIBSSH2" in
2329   yes)
2330     dnl --with-libssh2 (without path) used
2331     CURL_CHECK_PKGCONFIG(libssh2)
2332
2333     if test "$PKGCONFIG" != "no" ; then
2334       LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2`
2335       LD_SSH2=`$PKGCONFIG --libs-only-L libssh2`
2336       CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2`
2337       version=`$PKGCONFIG --modversion libssh2`
2338       DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'`
2339     fi
2340
2341     ;;
2342   off)
2343     dnl no --with-libssh2 option given, just check default places
2344     ;;
2345   *)
2346     dnl use the given --with-libssh2 spot
2347     PREFIX_SSH2=$OPT_LIBSSH2
2348     ;;
2349   esac
2350
2351   dnl if given with a prefix, we set -L and -I based on that
2352   if test -n "$PREFIX_SSH2"; then
2353     LIB_SSH2="-lssh2"
2354     LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff
2355     CPP_SSH2=-I${PREFIX_SSH2}/include
2356     DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
2357   fi
2358
2359   LDFLAGS="$LDFLAGS $LD_SSH2"
2360   CPPFLAGS="$CPPFLAGS $CPP_SSH2"
2361   LIBS="$LIBS $LIB_SSH2"
2362
2363   AC_CHECK_LIB(ssh2, libssh2_channel_open_ex)
2364
2365   AC_CHECK_HEADERS(libssh2.h,
2366     curl_ssh_msg="enabled (libSSH2)"
2367     LIBSSH2_ENABLED=1
2368     AC_DEFINE(USE_LIBSSH2, 1, [if libSSH2 is in use])
2369     AC_SUBST(USE_LIBSSH2, [1])
2370   )
2371
2372   if test X"$OPT_LIBSSH2" != Xoff &&
2373      test "$LIBSSH2_ENABLED" != "1"; then
2374     AC_MSG_ERROR([libSSH2 libs and/or directories were not found where specified!])
2375   fi
2376
2377   if test "$LIBSSH2_ENABLED" = "1"; then
2378     if test -n "$DIR_SSH2"; then
2379        dnl when the libssh2 shared libs were found in a path that the run-time
2380        dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
2381        dnl to prevent further configure tests to fail due to this
2382
2383        dnl libssh2_version is a post 1.0 addition
2384        dnl libssh2_init and libssh2_exit were added in 1.2.5
2385        dnl libssh2_scp_send64 was added in 1.2.6
2386        dnl libssh2_session_handshake was added in 1.2.8
2387        AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \
2388                        libssh2_scp_send64 libssh2_session_handshake)
2389        if test "x$cross_compiling" != "xyes"; then
2390          LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
2391          export LD_LIBRARY_PATH
2392          AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH])
2393        fi
2394     fi
2395   else
2396     dnl no libssh2, revert back to clean variables
2397     LDFLAGS=$CLEANLDFLAGS
2398     CPPFLAGS=$CLEANCPPFLAGS
2399     LIBS=$CLEANLIBS
2400   fi
2401 fi
2402
2403 dnl **********************************************************************
2404 dnl Check for the presence of LIBRTMP libraries and headers
2405 dnl **********************************************************************
2406
2407 dnl Default to compiler & linker defaults for LIBRTMP files & libraries.
2408 OPT_LIBRTMP=off
2409 AC_ARG_WITH(librtmp,dnl
2410 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])
2411 AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]),
2412   OPT_LIBRTMP=$withval)
2413
2414 if test X"$OPT_LIBRTMP" != Xno; then
2415   dnl backup the pre-librtmp variables
2416   CLEANLDFLAGS="$LDFLAGS"
2417   CLEANCPPFLAGS="$CPPFLAGS"
2418   CLEANLIBS="$LIBS"
2419
2420   case "$OPT_LIBRTMP" in
2421   yes)
2422     dnl --with-librtmp (without path) used
2423     CURL_CHECK_PKGCONFIG(librtmp)
2424
2425     if test "$PKGCONFIG" != "no" ; then
2426       LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp`
2427       LD_RTMP=`$PKGCONFIG --libs-only-L librtmp`
2428       CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp`
2429       version=`$PKGCONFIG --modversion librtmp`
2430       DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'`
2431     else
2432       dnl To avoid link errors, we do not allow --librtmp without
2433       dnl a pkgconfig file
2434       AC_MSG_ERROR([--librtmp was specified but could not find librtmp pkgconfig file.])
2435     fi
2436
2437     ;;
2438   off)
2439     dnl no --with-librtmp option given, just check default places
2440     LIB_RTMP="-lrtmp"
2441     ;;
2442   *)
2443     dnl use the given --with-librtmp spot
2444     PREFIX_RTMP=$OPT_LIBRTMP
2445     ;;
2446   esac
2447
2448   dnl if given with a prefix, we set -L and -I based on that
2449   if test -n "$PREFIX_RTMP"; then
2450     LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff
2451     CPP_RTMP=-I${PREFIX_RTMP}/include
2452     DIR_RTMP=${PREFIX_RTMP}/lib$libsuff
2453   fi
2454
2455   LDFLAGS="$LDFLAGS $LD_RTMP"
2456   CPPFLAGS="$CPPFLAGS $CPP_RTMP"
2457   LIBS="$LIBS $LIB_RTMP"
2458
2459   AC_CHECK_LIB(rtmp, RTMP_Init,
2460     [
2461      AC_CHECK_HEADERS(librtmp/rtmp.h,
2462         curl_rtmp_msg="enabled (librtmp)"
2463         LIBRTMP_ENABLED=1
2464         AC_DEFINE(USE_LIBRTMP, 1, [if librtmp is in use])
2465         AC_SUBST(USE_LIBRTMP, [1])
2466      )
2467     ],
2468       dnl not found, revert back to clean variables
2469       LDFLAGS=$CLEANLDFLAGS
2470       CPPFLAGS=$CLEANCPPFLAGS
2471       LIBS=$CLEANLIBS
2472   )
2473
2474   if test X"$OPT_LIBRTMP" != Xoff &&
2475      test "$LIBRTMP_ENABLED" != "1"; then
2476     AC_MSG_ERROR([librtmp libs and/or directories were not found where specified!])
2477   fi
2478
2479 fi
2480
2481 dnl **********************************************************************
2482 dnl Check for linker switch for versioned symbols
2483 dnl **********************************************************************
2484
2485 versioned_symbols_flavour=
2486 AC_MSG_CHECKING([whether versioned symbols are wanted])
2487 AC_ARG_ENABLE(versioned-symbols,
2488 AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library])
2489 AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]),
2490 [ case "$enableval" in
2491   yes) AC_MSG_RESULT(yes)
2492     AC_MSG_CHECKING([if libraries can be versioned])
2493     GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
2494     if test -z "$GLD"; then
2495         AC_MSG_RESULT(no)
2496         AC_MSG_WARN([You need an ld version supporting the --version-script option])
2497     else
2498         AC_MSG_RESULT(yes)
2499         if test "x$OPENSSL_ENABLED" = "x1"; then
2500           versioned_symbols_flavour="OPENSSL_"
2501         elif test "x$GNUTLS_ENABLED" == "x1"; then
2502           versioned_symbols_flavour="GNUTLS_"
2503         elif test "x$NSS_ENABLED" == "x1"; then
2504           versioned_symbols_flavour="NSS_"
2505         elif test "x$POLARSSL_ENABLED" == "x1"; then
2506           versioned_symbols_flavour="POLARSSL_"
2507         elif test "x$CYASSL_ENABLED" == "x1"; then
2508           versioned_symbols_flavour="CYASSL_"
2509         elif test "x$AXTLS_ENABLED" == "x1"; then
2510           versioned_symbols_flavour="AXTLS_"
2511         elif test "x$WINSSL_ENABLED" == "x1"; then
2512           versioned_symbols_flavour="WINSSL_"
2513         else
2514           versioned_symbols_flavour=""
2515         fi
2516         versioned_symbols="yes"
2517     fi
2518     ;;
2519
2520   *)   AC_MSG_RESULT(no)
2521     ;;
2522   esac
2523 ], [
2524 AC_MSG_RESULT(no)
2525 ]
2526 )
2527
2528 AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"])
2529 AM_CONDITIONAL(VERSIONED_SYMBOLS, test "x$versioned_symbols" = "xyes")
2530
2531
2532 dnl **********************************************************************
2533 dnl Check for the presence of IDN libraries and headers
2534 dnl **********************************************************************
2535
2536 AC_MSG_CHECKING([whether to build with libidn])
2537 OPT_IDN="default"
2538 AC_ARG_WITH(libidn,
2539 AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage])
2540 AC_HELP_STRING([--without-libidn],[Disable libidn usage]),
2541   [OPT_IDN=$withval])
2542 case "$OPT_IDN" in
2543   no)
2544     dnl --without-libidn option used
2545     want_idn="no"
2546     AC_MSG_RESULT([no])
2547     ;;
2548   default)
2549     dnl configure option not specified
2550     want_idn="yes"
2551     want_idn_path="default"
2552     AC_MSG_RESULT([(assumed) yes])
2553     ;;
2554   yes)
2555     dnl --with-libidn option used without path
2556     want_idn="yes"
2557     want_idn_path="default"
2558     AC_MSG_RESULT([yes])
2559     ;;
2560   *)
2561     dnl --with-libidn option used with path
2562     want_idn="yes"
2563     want_idn_path="$withval"
2564     AC_MSG_RESULT([yes ($withval)])
2565     ;;
2566 esac
2567
2568 if test "$want_idn" = "yes"; then
2569   dnl idn library support has been requested
2570   clean_CPPFLAGS="$CPPFLAGS"
2571   clean_LDFLAGS="$LDFLAGS"
2572   clean_LIBS="$LIBS"
2573   PKGCONFIG="no"
2574   #
2575   if test "$want_idn_path" != "default"; then
2576     dnl path has been specified
2577     IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
2578     CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR])
2579     if test "$PKGCONFIG" != "no"; then
2580       IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2581         $PKGCONFIG --libs-only-l libidn 2>/dev/null`
2582       IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2583         $PKGCONFIG --libs-only-L libidn 2>/dev/null`
2584       IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2585         $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2586       IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2587     else
2588       dnl pkg-config not available or provides no info
2589       IDN_LIBS="-lidn"
2590       IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
2591       IDN_CPPFLAGS="-I$want_idn_path/include"
2592       IDN_DIR="$want_idn_path/lib$libsuff"
2593     fi
2594   else
2595     dnl path not specified
2596     CURL_CHECK_PKGCONFIG(libidn)
2597     if test "$PKGCONFIG" != "no"; then
2598       IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
2599       IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
2600       IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2601       IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2602     else
2603       dnl pkg-config not available or provides no info
2604       IDN_LIBS="-lidn"
2605     fi
2606   fi
2607   #
2608   if test "$PKGCONFIG" != "no"; then
2609     AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"])
2610     AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"])
2611     AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2612     AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"])
2613   else
2614     AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"])
2615     AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"])
2616     AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2617     AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
2618   fi
2619   #
2620   CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
2621   LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
2622   LIBS="$IDN_LIBS $LIBS"
2623   #
2624   AC_MSG_CHECKING([if idna_to_ascii_4i can be linked])
2625   AC_LINK_IFELSE([
2626     AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i])
2627   ],[
2628     AC_MSG_RESULT([yes])
2629     tst_links_libidn="yes"
2630   ],[
2631     AC_MSG_RESULT([no])
2632     tst_links_libidn="no"
2633   ])
2634   if test "$tst_links_libidn" = "no"; then
2635     AC_MSG_CHECKING([if idna_to_ascii_lz can be linked])
2636     AC_LINK_IFELSE([
2637       AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz])
2638     ],[
2639       AC_MSG_RESULT([yes])
2640       tst_links_libidn="yes"
2641     ],[
2642       AC_MSG_RESULT([no])
2643       tst_links_libidn="no"
2644     ])
2645   fi
2646   #
2647   if test "$tst_links_libidn" = "yes"; then
2648     AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).])
2649     dnl different versions of libidn have different setups of these:
2650     AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror )
2651     AC_CHECK_HEADERS( idn-free.h tld.h )
2652     if test "x$ac_cv_header_tld_h" = "xyes"; then
2653       AC_SUBST([IDN_ENABLED], [1])
2654       curl_idn_msg="enabled"
2655       if test -n "$IDN_DIR"; then
2656         LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
2657         export LD_LIBRARY_PATH
2658         AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH])
2659       fi
2660     else
2661       AC_MSG_WARN([Libraries for IDN support too old: IDN disabled])
2662       CPPFLAGS="$clean_CPPFLAGS"
2663       LDFLAGS="$clean_LDFLAGS"
2664       LIBS="$clean_LIBS"
2665     fi
2666   else
2667     AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2668     CPPFLAGS="$clean_CPPFLAGS"
2669     LDFLAGS="$clean_LDFLAGS"
2670     LIBS="$clean_LIBS"
2671   fi
2672 fi
2673
2674
2675 dnl Let's hope this split URL remains working:
2676 dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
2677 dnl genprogc/thread_quick_ref.htm
2678
2679
2680 dnl **********************************************************************
2681 dnl Back to "normal" configuring
2682 dnl **********************************************************************
2683
2684 dnl Checks for header files.
2685 AC_HEADER_STDC
2686
2687 CURL_CHECK_HEADER_MALLOC
2688 CURL_CHECK_HEADER_MEMORY
2689
2690 dnl Now check for the very most basic headers. Then we can use these
2691 dnl ones as default-headers when checking for the rest!
2692 AC_CHECK_HEADERS(
2693         sys/types.h \
2694         sys/time.h \
2695         sys/select.h \
2696         sys/socket.h \
2697         sys/ioctl.h \
2698         sys/uio.h \
2699         assert.h \
2700         unistd.h \
2701         stdlib.h \
2702         limits.h \
2703         arpa/inet.h \
2704         net/if.h \
2705         netinet/in.h \
2706         sys/un.h \
2707         netinet/tcp.h \
2708         netdb.h \
2709         sys/sockio.h \
2710         sys/stat.h \
2711         sys/param.h \
2712         termios.h \
2713         termio.h \
2714         sgtty.h \
2715         fcntl.h \
2716         alloca.h \
2717         time.h \
2718         io.h \
2719         pwd.h \
2720         utime.h \
2721         sys/utime.h \
2722         sys/poll.h \
2723         poll.h \
2724         socket.h \
2725         sys/resource.h \
2726         libgen.h \
2727         locale.h \
2728         errno.h \
2729         stdbool.h \
2730         arpa/tftp.h \
2731         sys/filio.h \
2732         sys/wait.h \
2733         setjmp.h,
2734 dnl to do if not found
2735 [],
2736 dnl to do if found
2737 [],
2738 dnl default includes
2739 [
2740 #ifdef HAVE_SYS_TYPES_H
2741 #include <sys/types.h>
2742 #endif
2743 #ifdef HAVE_SYS_TIME_H
2744 #include <sys/time.h>
2745 #endif
2746 #ifdef HAVE_SYS_SELECT_H
2747 #include <sys/select.h>
2748 #endif
2749 #ifdef HAVE_SYS_SOCKET_H
2750 #include <sys/socket.h>
2751 #endif
2752 #ifdef HAVE_NETINET_IN_H
2753 #include <netinet/in.h>
2754 #endif
2755 #ifdef HAVE_SYS_UN_H
2756 #include <sys/un.h>
2757 #endif
2758 ]
2759 )
2760
2761 dnl Checks for typedefs, structures, and compiler characteristics.
2762 AC_C_CONST
2763 CURL_CHECK_VARIADIC_MACROS
2764 AC_TYPE_SIZE_T
2765 AC_HEADER_TIME
2766 CURL_CHECK_STRUCT_TIMEVAL
2767 CURL_VERIFY_RUNTIMELIBS
2768
2769 AC_CHECK_SIZEOF(size_t)
2770 AC_CHECK_SIZEOF(long)
2771 AC_CHECK_SIZEOF(int)
2772 AC_CHECK_SIZEOF(short)
2773 CURL_CONFIGURE_LONG
2774 AC_CHECK_SIZEOF(time_t)
2775 AC_CHECK_SIZEOF(off_t)
2776
2777 soname_bump=no
2778 if test x"$ac_cv_native_windows" != "xyes" &&
2779    test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then
2780   AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous])
2781   AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.])
2782   soname_bump=yes
2783 fi
2784
2785
2786 AC_CHECK_TYPE(long long,
2787    [AC_DEFINE(HAVE_LONGLONG, 1,
2788       [Define to 1 if the compiler supports the 'long long' data type.])]
2789    longlong="yes"
2790 )
2791
2792 if test "xyes" = "x$longlong"; then
2793   AC_MSG_CHECKING([if numberLL works])
2794   AC_COMPILE_IFELSE([
2795     AC_LANG_PROGRAM([[
2796     ]],[[
2797       long long val = 1000LL;
2798     ]])
2799   ],[
2800     AC_MSG_RESULT([yes])
2801     AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL])
2802   ],[
2803     AC_MSG_RESULT([no])
2804   ])
2805 fi
2806
2807
2808 # check for ssize_t
2809 AC_CHECK_TYPE(ssize_t, ,
2810    AC_DEFINE(ssize_t, int, [the signed version of size_t]))
2811
2812 # check for bool type
2813 AC_CHECK_TYPE([bool],[
2814   AC_DEFINE(HAVE_BOOL_T, 1,
2815     [Define to 1 if bool is an available type.])
2816 ], ,[
2817 #ifdef HAVE_SYS_TYPES_H
2818 #include <sys/types.h>
2819 #endif
2820 #ifdef HAVE_STDBOOL_H
2821 #include <stdbool.h>
2822 #endif
2823 ])
2824
2825 CURL_CONFIGURE_CURL_SOCKLEN_T
2826
2827 TYPE_IN_ADDR_T
2828
2829 TYPE_SOCKADDR_STORAGE
2830
2831 TYPE_SIG_ATOMIC_T
2832
2833 AC_TYPE_SIGNAL
2834
2835 CURL_CHECK_FUNC_SELECT
2836
2837 CURL_CHECK_FUNC_RECV
2838 CURL_CHECK_FUNC_RECVFROM
2839 CURL_CHECK_FUNC_SEND
2840 CURL_CHECK_MSG_NOSIGNAL
2841
2842 CURL_CHECK_FUNC_ALARM
2843 CURL_CHECK_FUNC_BASENAME
2844 CURL_CHECK_FUNC_CLOSESOCKET
2845 CURL_CHECK_FUNC_CLOSESOCKET_CAMEL
2846 CURL_CHECK_FUNC_CONNECT
2847 CURL_CHECK_FUNC_FCNTL
2848 CURL_CHECK_FUNC_FDOPEN
2849 CURL_CHECK_FUNC_FREEADDRINFO
2850 CURL_CHECK_FUNC_FREEIFADDRS
2851 CURL_CHECK_FUNC_FSETXATTR
2852 CURL_CHECK_FUNC_FTRUNCATE
2853 CURL_CHECK_FUNC_GETADDRINFO
2854 CURL_CHECK_FUNC_GAI_STRERROR
2855 CURL_CHECK_FUNC_GETHOSTBYADDR
2856 CURL_CHECK_FUNC_GETHOSTBYADDR_R
2857 CURL_CHECK_FUNC_GETHOSTBYNAME
2858 CURL_CHECK_FUNC_GETHOSTBYNAME_R
2859 CURL_CHECK_FUNC_GETHOSTNAME
2860 CURL_CHECK_FUNC_GETIFADDRS
2861 CURL_CHECK_FUNC_GETSERVBYPORT_R
2862 CURL_CHECK_FUNC_GMTIME_R
2863 CURL_CHECK_FUNC_INET_NTOA_R
2864 CURL_CHECK_FUNC_INET_NTOP
2865 CURL_CHECK_FUNC_INET_PTON
2866 CURL_CHECK_FUNC_IOCTL
2867 CURL_CHECK_FUNC_IOCTLSOCKET
2868 CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL
2869 CURL_CHECK_FUNC_LOCALTIME_R
2870 CURL_CHECK_FUNC_MEMRCHR
2871 CURL_CHECK_FUNC_POLL
2872 CURL_CHECK_FUNC_SETSOCKOPT
2873 CURL_CHECK_FUNC_SIGACTION
2874 CURL_CHECK_FUNC_SIGINTERRUPT
2875 CURL_CHECK_FUNC_SIGNAL
2876 CURL_CHECK_FUNC_SIGSETJMP
2877 CURL_CHECK_FUNC_SOCKET
2878 CURL_CHECK_FUNC_SOCKETPAIR
2879 CURL_CHECK_FUNC_STRCASECMP
2880 CURL_CHECK_FUNC_STRCASESTR
2881 CURL_CHECK_FUNC_STRCMPI
2882 CURL_CHECK_FUNC_STRDUP
2883 CURL_CHECK_FUNC_STRERROR_R
2884 CURL_CHECK_FUNC_STRICMP
2885 CURL_CHECK_FUNC_STRLCAT
2886 CURL_CHECK_FUNC_STRNCASECMP
2887 CURL_CHECK_FUNC_STRNCMPI
2888 CURL_CHECK_FUNC_STRNICMP
2889 CURL_CHECK_FUNC_STRSTR
2890 CURL_CHECK_FUNC_STRTOK_R
2891 CURL_CHECK_FUNC_STRTOLL
2892 CURL_CHECK_FUNC_WRITEV
2893
2894 case $host in
2895   *msdosdjgpp)
2896      ac_cv_func_pipe=no
2897      skipcheck_pipe=yes
2898      AC_MSG_NOTICE([skip check for pipe on msdosdjgpp])
2899     ;;
2900 esac
2901
2902 AC_CHECK_FUNCS([fork \
2903   geteuid \
2904   getpass_r \
2905   getppid \
2906   getprotobyname \
2907   getpwuid \
2908   getrlimit \
2909   gettimeofday \
2910   inet_addr \
2911   perror \
2912   pipe \
2913   setlocale \
2914   setmode \
2915   setrlimit \
2916   uname \
2917   utime
2918 ],[
2919 ],[
2920   func="$ac_func"
2921   eval skipcheck=\$skipcheck_$func
2922   if test "x$skipcheck" != "xyes"; then
2923     AC_MSG_CHECKING([deeper for $func])
2924     AC_LINK_IFELSE([
2925       AC_LANG_PROGRAM([[
2926       ]],[[
2927         $func ();
2928       ]])
2929     ],[
2930       AC_MSG_RESULT([yes])
2931       eval "ac_cv_func_$func=yes"
2932       AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1],
2933         [Define to 1 if you have the $func function.])
2934     ],[
2935       AC_MSG_RESULT([but still no])
2936     ])
2937   fi
2938 ])
2939
2940 dnl Check if the getnameinfo function is available
2941 dnl and get the types of five of its arguments.
2942 CURL_CHECK_FUNC_GETNAMEINFO
2943
2944 if test "$ipv6" = "yes"; then
2945   if test "$ac_cv_func_getaddrinfo" = "yes"; then
2946     AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support])
2947     IPV6_ENABLED=1
2948     AC_SUBST(IPV6_ENABLED)
2949   fi
2950   CURL_CHECK_NI_WITHSCOPEID
2951 fi
2952
2953 dnl ************************************************************
2954 dnl enable non-blocking communications
2955 dnl
2956 CURL_CHECK_OPTION_NONBLOCKING
2957 CURL_CHECK_NONBLOCKING_SOCKET
2958
2959 dnl ************************************************************
2960 dnl nroff tool stuff
2961 dnl
2962
2963 AC_PATH_PROG( PERL, perl, ,
2964   $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
2965 AC_SUBST(PERL)
2966
2967 AC_PATH_PROGS( NROFF, gnroff nroff, ,
2968   $PATH:/usr/bin/:/usr/local/bin )
2969 AC_SUBST(NROFF)
2970
2971 if test -n "$NROFF"; then
2972   dnl only check for nroff options if an nroff command was found
2973
2974   AC_MSG_CHECKING([how to use *nroff to get plain text from man pages])
2975   MANOPT="-man"
2976   mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
2977   if test -z "$mancheck"; then
2978     MANOPT="-mandoc"
2979    mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
2980     if test -z "$mancheck"; then
2981       MANOPT=""
2982       AC_MSG_RESULT([failed])
2983       AC_MSG_WARN([found no *nroff option to get plaintext from man pages])
2984     else
2985       AC_MSG_RESULT([$MANOPT])
2986     fi
2987   else
2988     AC_MSG_RESULT([$MANOPT])
2989   fi
2990   AC_SUBST(MANOPT)
2991 fi
2992
2993 if test -z "$MANOPT"
2994 then
2995   dnl if no nroff tool was found, or no option that could convert man pages
2996   dnl was found, then disable the built-in manual stuff
2997   AC_MSG_WARN([disabling built-in manual])
2998   USE_MANUAL="no";
2999 fi
3000
3001 dnl *************************************************************************
3002 dnl If the manual variable still is set, then we go with providing a built-in
3003 dnl manual
3004
3005 if test "$USE_MANUAL" = "1"; then
3006   AC_DEFINE(USE_MANUAL, 1, [If you want to build curl with the built-in manual])
3007   curl_manual_msg="enabled"
3008 fi
3009
3010 dnl set variable for use in automakefile(s)
3011 AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)
3012
3013 CURL_CHECK_LIB_ARES
3014 AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
3015
3016 if test "x$ac_cv_native_windows" != "xyes" &&
3017    test "x$enable_shared" = "xyes"; then
3018   build_libhostname=yes
3019 else
3020   build_libhostname=no
3021 fi
3022 AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes)
3023
3024 CURL_CHECK_OPTION_THREADED_RESOLVER
3025
3026 if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
3027   AC_MSG_ERROR(
3028 [Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
3029 fi
3030
3031 if test "$want_thres" = "yes"; then
3032   AC_CHECK_HEADER(pthread.h,
3033     [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
3034       save_CFLAGS="$CFLAGS"
3035       CFLAGS="$CFLAGS -pthread"
3036       AC_CHECK_LIB(pthread, pthread_create,
3037         [ AC_MSG_NOTICE([using POSIX threaded DNS lookup])
3038           AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
3039           USE_THREADS_POSIX=1
3040           curl_res_msg="threaded"
3041         ],
3042         [ CFLAGS="$save_CFLAGS"])
3043   ])
3044 fi
3045
3046 dnl ************************************************************
3047 dnl disable verbose text strings
3048 dnl
3049 AC_MSG_CHECKING([whether to enable verbose strings])
3050 AC_ARG_ENABLE(verbose,
3051 AC_HELP_STRING([--enable-verbose],[Enable verbose strings])
3052 AC_HELP_STRING([--disable-verbose],[Disable verbose strings]),
3053 [ case "$enableval" in
3054   no)
3055        AC_MSG_RESULT(no)
3056        AC_DEFINE(CURL_DISABLE_VERBOSE_STRINGS, 1, [to disable verbose strings])
3057        curl_verbose_msg="no"
3058        ;;
3059   *)   AC_MSG_RESULT(yes)
3060        ;;
3061   esac ],
3062        AC_MSG_RESULT(yes)
3063 )
3064
3065 dnl ************************************************************
3066 dnl enable SSPI support
3067 dnl
3068 AC_MSG_CHECKING([whether to enable SSPI support (Windows native builds only)])
3069 AC_ARG_ENABLE(sspi,
3070 AC_HELP_STRING([--enable-sspi],[Enable SSPI])
3071 AC_HELP_STRING([--disable-sspi],[Disable SSPI]),
3072 [ case "$enableval" in
3073   yes)
3074        if test "$ac_cv_native_windows" = "yes"; then
3075          AC_MSG_RESULT(yes)
3076          AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
3077          AC_SUBST(USE_WINDOWS_SSPI, [1])
3078          curl_sspi_msg="enabled"
3079        else
3080          AC_MSG_RESULT(no)
3081          AC_MSG_WARN([--enable-sspi Ignored. Only supported on native Windows builds.])
3082        fi
3083        ;;
3084   *)
3085        if test "x$WINSSL_ENABLED" = "x1"; then
3086          # --with-winssl implies --enable-sspi
3087          AC_MSG_RESULT(yes)
3088        else
3089          AC_MSG_RESULT(no)
3090        fi
3091        ;;
3092   esac ],
3093        if test "x$WINSSL_ENABLED" = "x1"; then
3094          # --with-winssl implies --enable-sspi
3095          AC_MSG_RESULT(yes)
3096        else
3097          AC_MSG_RESULT(no)
3098        fi
3099 )
3100
3101 dnl ************************************************************
3102 dnl disable cryptographic authentication
3103 dnl
3104 AC_MSG_CHECKING([whether to enable cryptographic authentication methods])
3105 AC_ARG_ENABLE(crypto-auth,
3106 AC_HELP_STRING([--enable-crypto-auth],[Enable cryptographic authentication])
3107 AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]),
3108 [ case "$enableval" in
3109   no)
3110        AC_MSG_RESULT(no)
3111        AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication])
3112        ;;
3113   *)   AC_MSG_RESULT(yes)
3114        ;;
3115   esac ],
3116        AC_MSG_RESULT(yes)
3117 )
3118
3119 CURL_CHECK_OPTION_NTLM_WB
3120
3121 CURL_CHECK_NTLM_WB
3122
3123 dnl ************************************************************
3124 dnl disable TLS-SRP authentication
3125 dnl
3126 AC_MSG_CHECKING([whether to enable TLS-SRP authentication])
3127 AC_ARG_ENABLE(tls-srp,
3128 AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication])
3129 AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]),
3130 [ case "$enableval" in
3131   no)
3132        AC_MSG_RESULT(no)
3133        AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication])
3134        want_tls_srp=no
3135        ;;
3136   *)   AC_MSG_RESULT(yes)
3137        want_tls_srp=yes
3138        ;;
3139   esac ],
3140        AC_MSG_RESULT(yes)
3141        want_tls_srp=yes
3142 )
3143
3144 if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_SSLEAY_SRP" = "x1") ; then
3145    AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication])
3146    USE_TLS_SRP=1
3147    curl_tls_srp_msg="enabled"
3148 fi
3149
3150 dnl ************************************************************
3151 dnl disable cookies support
3152 dnl
3153 AC_MSG_CHECKING([whether to enable support for cookies])
3154 AC_ARG_ENABLE(cookies,
3155 AC_HELP_STRING([--enable-cookies],[Enable cookies support])
3156 AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
3157 [ case "$enableval" in
3158   no)
3159        AC_MSG_RESULT(no)
3160        AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support])
3161        ;;
3162   *)   AC_MSG_RESULT(yes)
3163        ;;
3164   esac ],
3165        AC_MSG_RESULT(yes)
3166 )
3167
3168 dnl ************************************************************
3169 dnl hiding of library internal symbols
3170 dnl
3171 CURL_CONFIGURE_SYMBOL_HIDING
3172
3173 dnl ************************************************************
3174 dnl enforce SONAME bump
3175 dnl
3176
3177 AC_MSG_CHECKING([whether to enforce SONAME bump])
3178 AC_ARG_ENABLE(soname-bump,
3179 AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump])
3180 AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]),
3181 [ case "$enableval" in
3182   yes)   AC_MSG_RESULT(yes)
3183          soname_bump=yes
3184          ;;
3185   *)
3186          AC_MSG_RESULT(no)
3187          ;;
3188   esac ],
3189         AC_MSG_RESULT($soname_bump)
3190 )
3191 AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
3192
3193
3194 dnl ************************************************************
3195 if test ! -z "$winsock_LIB"; then
3196
3197   dnl If ws2_32 is wanted, make sure it is the _last_ lib in LIBS (makes
3198   dnl things work when built with c-ares). But we can't just move it last
3199   dnl since then other stuff (SSL) won't build. So we simply append it to the
3200   dnl end.
3201
3202   LIBS="$LIBS $winsock_LIB"
3203   TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB"
3204
3205 fi
3206
3207 dnl
3208 dnl All the library dependencies put into $LIB apply to libcurl only.
3209 dnl Those in $CURL_LIBS apply to the curl command-line client only.
3210 dnl Those in $TEST_SERVER_LIBS apply to test servers only.
3211 dnl Those in $ALL_LIBS apply to all targets, including test targets.
3212 dnl
3213 LIBCURL_LIBS=$LIBS
3214
3215 AC_SUBST(LIBCURL_LIBS)
3216 AC_SUBST(CURL_LIBS)
3217 AC_SUBST(TEST_SERVER_LIBS)
3218 AC_SUBST(CURL_NETWORK_LIBS)
3219 LIBS=$ALL_LIBS  dnl LIBS is a magic variable that's used for every link
3220
3221 AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
3222
3223 dnl yes or no
3224 ENABLE_SHARED="$enable_shared"
3225 AC_SUBST(ENABLE_SHARED)
3226
3227 dnl
3228 dnl For keeping supported features and protocols also in pkg-config file
3229 dnl since it is more cross-compile friendly than curl-config
3230 dnl
3231
3232 if test "x$USE_SSLEAY" = "x1"; then
3233   SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3234 elif test -n "$SSL_ENABLED"; then
3235   SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3236 fi
3237 if test "@KRB4_ENABLED@" = "x1"; then
3238   SUPPORT_FEATURES="$SUPPORT_FEATURES KRB4"
3239 fi
3240 if test "x$IPV6_ENABLED" = "x1"; then
3241   SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
3242 fi
3243 if test "x$HAVE_LIBZ" = "x1"; then
3244   SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
3245 fi
3246 if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then
3247   SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
3248 fi
3249 if test "x$IDN_ENABLED" = "x1"; then
3250   SUPPORT_FEATURES="$SUPPORT_FEATURES IDN"
3251 fi
3252 if test "x$USE_WINDOWS_SSPI" = "x1"; then
3253   SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI"
3254 fi
3255 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3256   if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
3257       -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1"; then
3258     SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM"
3259     if test "x$NTLM_WB_ENABLED" = "x1"; then
3260       SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB"
3261     fi
3262   fi
3263 fi
3264 if test "x$USE_TLS_SRP" = "x1"; then
3265   SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
3266 fi
3267
3268 AC_SUBST(SUPPORT_FEATURES)
3269
3270 dnl For supported protocols in pkg-config file
3271 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3272   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
3273   if test "x$SSL_ENABLED" = "x1"; then
3274     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS"
3275   fi
3276 fi
3277 if test "x$CURL_DISABLE_FTP" != "x1"; then
3278   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP"
3279   if test "x$SSL_ENABLED" = "x1"; then
3280     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS"
3281   fi
3282 fi
3283 if test "x$CURL_DISABLE_FILE" != "x1"; then
3284   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE"
3285 fi
3286 if test "x$CURL_DISABLE_TELNET" != "x1"; then
3287   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET"
3288 fi
3289 if test "x$CURL_DISABLE_LDAP" != "x1"; then
3290   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP"
3291   if test "x$CURL_DISABLE_LDAPS" != "x1"; then
3292     if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") ||
3293       (test "x$USE_OPENLDAP" != "x1"  && test "x$HAVE_LDAP_SSL" = "x1"); then
3294       SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS"
3295     fi
3296   fi
3297 fi
3298 if test "x$CURL_DISABLE_DICT" != "x1"; then
3299   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT"
3300 fi
3301 if test "x$CURL_DISABLE_TFTP" != "x1"; then
3302   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP"
3303 fi
3304 if test "x$CURL_DISABLE_GOPHER" != "x1"; then
3305   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER"
3306 fi
3307 if test "x$CURL_DISABLE_POP3" != "x1"; then
3308   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3"
3309   if test "x$SSL_ENABLED" = "x1"; then
3310     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S"
3311   fi
3312 fi
3313 if test "x$CURL_DISABLE_IMAP" != "x1"; then
3314   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP"
3315   if test "x$SSL_ENABLED" = "x1"; then
3316     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS"
3317   fi
3318 fi
3319 if test "x$CURL_DISABLE_SMTP" != "x1"; then
3320   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP"
3321   if test "x$SSL_ENABLED" = "x1"; then
3322     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS"
3323   fi
3324 fi
3325 if test "x$USE_LIBSSH2" = "x1"; then
3326   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP"
3327   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP"
3328 fi
3329 if test "x$CURL_DISABLE_RTSP" != "x1"; then
3330   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP"
3331 fi
3332 if test "x$USE_LIBRTMP" = "x1"; then
3333   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP"
3334 fi
3335
3336 dnl replace spaces with newlines
3337 dnl sort the lines
3338 dnl replace the newlines back to spaces
3339 SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '`
3340
3341 AC_SUBST(SUPPORT_PROTOCOLS)
3342
3343 dnl squeeze whitespace out of some variables
3344
3345 squeeze CFLAGS
3346 squeeze CPPFLAGS
3347 squeeze DEFS
3348 squeeze LDFLAGS
3349 squeeze LIBS
3350
3351 squeeze CURL_LIBS
3352 squeeze LIBCURL_LIBS
3353 squeeze TEST_SERVER_LIBS
3354 squeeze CURL_NETWORK_LIBS
3355
3356 squeeze SUPPORT_FEATURES
3357 squeeze SUPPORT_PROTOCOLS
3358
3359 if test "x$want_curldebug_assumed" = "xyes" &&
3360   test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then
3361   ac_configure_args="$ac_configure_args --enable-curldebug"
3362 fi
3363
3364 AC_CONFIG_FILES([Makefile \
3365            docs/Makefile \
3366            docs/examples/Makefile \
3367            docs/libcurl/Makefile \
3368            include/Makefile \
3369            include/curl/Makefile \
3370            src/Makefile \
3371            lib/Makefile \
3372            lib/libcurl.vers \
3373            tests/Makefile \
3374            tests/data/Makefile \
3375            tests/server/Makefile \
3376            tests/libtest/Makefile \
3377            tests/unit/Makefile \
3378            packages/Makefile \
3379            packages/Win32/Makefile \
3380            packages/Win32/cygwin/Makefile \
3381            packages/Linux/Makefile \
3382            packages/Linux/RPM/Makefile \
3383            packages/Linux/RPM/curl.spec \
3384            packages/Linux/RPM/curl-ssl.spec \
3385            packages/Solaris/Makefile \
3386            packages/EPM/curl.list \
3387            packages/EPM/Makefile \
3388            packages/vms/Makefile \
3389            packages/AIX/Makefile \
3390            packages/AIX/RPM/Makefile \
3391            packages/AIX/RPM/curl.spec \
3392            curl-config \
3393            libcurl.pc
3394 ])
3395 AC_OUTPUT
3396
3397 CURL_GENERATE_CONFIGUREHELP_PM
3398
3399 AC_MSG_NOTICE([Configured to build curl/libcurl:
3400
3401   curl version:     ${CURLVERSION}
3402   Host setup:       ${host}
3403   Install prefix:   ${prefix}
3404   Compiler:         ${CC}
3405   SSL support:      ${curl_ssl_msg}
3406   SSH support:      ${curl_ssh_msg}
3407   zlib support:     ${curl_zlib_msg}
3408   krb4 support:     ${curl_krb4_msg}
3409   GSSAPI support:   ${curl_gss_msg}
3410   SPNEGO support:   ${curl_spnego_msg}
3411   TLS-SRP support:  ${curl_tls_srp_msg}
3412   resolver:         ${curl_res_msg}
3413   ipv6 support:     ${curl_ipv6_msg}
3414   IDN support:      ${curl_idn_msg}
3415   Build libcurl:    Shared=${enable_shared}, Static=${enable_static}
3416   Built-in manual:  ${curl_manual_msg}
3417   --libcurl option: ${curl_libcurl_msg}
3418   Verbose errors:   ${curl_verbose_msg}
3419   SSPI support:     ${curl_sspi_msg}
3420   ca cert bundle:   ${ca}
3421   ca cert path:     ${capath}
3422   LDAP support:     ${curl_ldap_msg}
3423   LDAPS support:    ${curl_ldaps_msg}
3424   RTSP support:     ${curl_rtsp_msg}
3425   RTMP support:     ${curl_rtmp_msg}
3426   metalink support: ${curl_mtlnk_msg}
3427   Protocols:        ${SUPPORT_PROTOCOLS}
3428 ])
3429
3430 if test "x$soname_bump" = "xyes"; then
3431
3432 cat <<EOM
3433   SONAME bump:     yes - WARNING: this library will be built with the SONAME
3434                    number bumped due to (a detected) ABI breakage.
3435                    See lib/README.curl_off_t for details on this.
3436 EOM
3437
3438 fi
3439