DarwinSSL: allow using NTLM authentication
[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 OPT_DARWINSSL=no
1375 AC_ARG_WITH(darwinssl,dnl
1376 AC_HELP_STRING([--with-darwinssl],[enable iOS/Mac OS X native SSL/TLS])
1377 AC_HELP_STRING([--without-darwinssl], [disable iOS/Mac OS X native SSL/TLS]),
1378   OPT_DARWINSSL=$withval)
1379
1380 AC_MSG_CHECKING([whether to enable iOS/Mac OS X native SSL/TLS])
1381 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1382   if test "x$OPT_DARWINSSL" != "xno" &&
1383      test -d "/System/Library/Frameworks/Security.framework"; then
1384     AC_MSG_RESULT(yes)
1385     AC_DEFINE(USE_DARWINSSL, 1, [to enable iOS/Mac OS X native SSL/TLS support])
1386     AC_SUBST(USE_DARWINSSL, [1])
1387     curl_ssl_msg="enabled (iOS/Mac OS X-native)"
1388     DARWINSSL_ENABLED=1
1389     LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
1390   else
1391     AC_MSG_RESULT(no)
1392   fi
1393 else
1394   AC_MSG_RESULT(no)
1395 fi
1396
1397 dnl **********************************************************************
1398 dnl Check for the presence of SSL libraries and headers
1399 dnl **********************************************************************
1400
1401 dnl Default to compiler & linker defaults for SSL files & libraries.
1402 OPT_SSL=off
1403 dnl Default to no CA bundle
1404 ca="no"
1405 AC_ARG_WITH(ssl,dnl
1406 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])
1407 AC_HELP_STRING([--without-ssl], [disable OpenSSL]),
1408   OPT_SSL=$withval)
1409
1410 if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
1411   dnl backup the pre-ssl variables
1412   CLEANLDFLAGS="$LDFLAGS"
1413   CLEANCPPFLAGS="$CPPFLAGS"
1414   CLEANLIBS="$LIBS"
1415
1416   case "$OPT_SSL" in
1417   yes)
1418     dnl --with-ssl (without path) used
1419     if test x$cross_compiling != xyes; then
1420       dnl only do pkg-config magic when not cross-compiling
1421       PKGTEST="yes"
1422     fi
1423     PREFIX_OPENSSL=/usr/local/ssl
1424     LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1425     ;;
1426   off)
1427     dnl no --with-ssl option given, just check default places
1428     if test x$cross_compiling != xyes; then
1429       dnl only do pkg-config magic when not cross-compiling
1430       PKGTEST="yes"
1431     fi
1432     PREFIX_OPENSSL=
1433     ;;
1434   *)
1435     dnl check the given --with-ssl spot
1436     PKGTEST="no"
1437     PREFIX_OPENSSL=$OPT_SSL
1438
1439     dnl Try pkg-config even when cross-compiling.  Since we
1440     dnl specify PKG_CONFIG_LIBDIR we're only looking where
1441     dnl the user told us to look
1442     OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig"
1443     AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
1444     if test -f "$OPENSSL_PCDIR/openssl.pc"; then
1445       PKGTEST="yes"
1446     fi
1447
1448     dnl in case pkg-config comes up empty, use what we got
1449     dnl via --with-ssl
1450     LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
1451     if test "$PREFIX_OPENSSL" != "/usr" ; then
1452       SSL_LDFLAGS="-L$LIB_OPENSSL"
1453       SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include"
1454     fi
1455     SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl"
1456     ;;
1457   esac
1458
1459   if test "$PKGTEST" = "yes"; then
1460
1461     CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR])
1462
1463     if test "$PKGCONFIG" != "no" ; then
1464       SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1465         $PKGCONFIG --libs-only-l openssl 2>/dev/null`
1466
1467       SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1468         $PKGCONFIG --libs-only-L openssl 2>/dev/null`
1469
1470       SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
1471         $PKGCONFIG --cflags-only-I openssl 2>/dev/null`
1472
1473       AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
1474       AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
1475       AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
1476
1477       LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'`
1478
1479       dnl use the values pkg-config reported.  This is here
1480       dnl instead of below with CPPFLAGS and LDFLAGS because we only
1481       dnl learn about this via pkg-config.  If we only have
1482       dnl the argument to --with-ssl we don't know what
1483       dnl additional libs may be necessary.  Hope that we
1484       dnl don't need any.
1485       LIBS="$LIBS $SSL_LIBS"
1486     fi
1487   fi
1488
1489   dnl finally, set flags to use SSL
1490   CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
1491   LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
1492
1493   dnl This is for Msys/Mingw
1494   case $host in
1495     *-*-msys* | *-*-mingw*)
1496       AC_MSG_CHECKING([for gdi32])
1497       my_ac_save_LIBS=$LIBS
1498       LIBS="-lgdi32 $LIBS"
1499       AC_TRY_LINK([#include <windef.h>
1500                    #include <wingdi.h>],
1501                    [GdiFlush();],
1502                    [ dnl worked!
1503                    AC_MSG_RESULT([yes])],
1504                    [ dnl failed, restore LIBS
1505                    LIBS=$my_ac_save_LIBS
1506                    AC_MSG_RESULT(no)]
1507                   )
1508       ;;
1509   esac
1510
1511   AC_CHECK_LIB(crypto, CRYPTO_lock,[
1512      HAVECRYPTO="yes"
1513      LIBS="-lcrypto $LIBS"
1514      ],[
1515      LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL"
1516      CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include"
1517      AC_CHECK_LIB(crypto, CRYPTO_add_lock,[
1518        HAVECRYPTO="yes"
1519        LIBS="-lcrypto $LIBS"], [
1520        LDFLAGS="$CLEANLDFLAGS"
1521        CPPFLAGS="$CLEANCPPFLAGS"
1522        LIBS="$CLEANLIBS"
1523        ])
1524     ])
1525
1526
1527   if test X"$HAVECRYPTO" = X"yes"; then
1528     dnl This is only reasonable to do if crypto actually is there: check for
1529     dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
1530
1531     AC_CHECK_LIB(ssl, SSL_connect)
1532
1533     if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1534         dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
1535         AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
1536         OLIBS=$LIBS
1537         LIBS="$LIBS -lRSAglue -lrsaref"
1538         AC_CHECK_LIB(ssl, SSL_connect)
1539         if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
1540             dnl still no SSL_connect
1541             AC_MSG_RESULT(no)
1542             LIBS=$OLIBS
1543         else
1544             AC_MSG_RESULT(yes)
1545         fi
1546
1547     else
1548
1549       dnl Have the libraries--check for SSLeay/OpenSSL headers
1550       AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
1551                        openssl/pem.h openssl/ssl.h openssl/err.h,
1552         curl_ssl_msg="enabled (OpenSSL)"
1553         OPENSSL_ENABLED=1
1554         AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
1555
1556       if test $ac_cv_header_openssl_x509_h = no; then
1557         dnl we don't use the "action" part of the AC_CHECK_HEADERS macro
1558         dnl since 'err.h' might in fact find a krb4 header with the same
1559         dnl name
1560         AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
1561
1562         if test $ac_cv_header_x509_h = yes &&
1563            test $ac_cv_header_crypto_h = yes &&
1564            test $ac_cv_header_ssl_h = yes; then
1565           dnl three matches
1566           curl_ssl_msg="enabled (OpenSSL)"
1567           OPENSSL_ENABLED=1
1568         fi
1569       fi
1570     fi
1571
1572     if test X"$OPENSSL_ENABLED" = X"1"; then
1573        AC_DEFINE(USE_SSLEAY, 1, [if SSL is enabled])
1574
1575        dnl is there a pkcs12.h header present?
1576        AC_CHECK_HEADERS(openssl/pkcs12.h)
1577     else
1578        LIBS="$CLEANLIBS"
1579     fi
1580     dnl USE_SSLEAY is the historical name for what configure calls
1581     dnl OPENSSL_ENABLED; the names should really be unified
1582     USE_SSLEAY="$OPENSSL_ENABLED"
1583     AC_SUBST(USE_SSLEAY)
1584
1585     if test X"$OPT_SSL" != Xoff &&
1586        test "$OPENSSL_ENABLED" != "1"; then
1587       AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!])
1588     fi
1589   fi
1590
1591   if test X"$OPENSSL_ENABLED" = X"1"; then
1592     dnl If the ENGINE library seems to be around, check for the OpenSSL engine
1593     dnl stuff, it is kind of "separated" from the main SSL check
1594     AC_CHECK_FUNC(ENGINE_init,
1595               [
1596                 AC_CHECK_HEADERS(openssl/engine.h)
1597                 AC_CHECK_FUNCS( ENGINE_load_builtin_engines )
1598               ])
1599
1600     dnl these can only exist if openssl exists
1601     dnl yassl doesn't have SSL_get_shutdown
1602
1603     AC_CHECK_FUNCS( RAND_status \
1604                     RAND_screen \
1605                     RAND_egd \
1606                     ENGINE_cleanup \
1607                     CRYPTO_cleanup_all_ex_data \
1608                     SSL_get_shutdown \
1609                     SSLv2_client_method )
1610
1611     dnl Make an attempt to detect if this is actually yassl's headers and
1612     dnl OpenSSL emulation layer. We still leave everything else believing
1613     dnl and acting like OpenSSL.
1614
1615     AC_MSG_CHECKING([for yaSSL using OpenSSL compatibility mode])
1616     AC_COMPILE_IFELSE([
1617       AC_LANG_PROGRAM([[
1618 #include <openssl/ssl.h>
1619       ]],[[
1620 #if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER)
1621         int dummy = SSL_ERROR_NONE;
1622 #else
1623         Not the yaSSL OpenSSL compatibility header.
1624 #endif
1625       ]])
1626     ],[
1627       AC_MSG_RESULT([yes])
1628       AC_DEFINE_UNQUOTED(USE_YASSLEMUL, 1,
1629         [Define to 1 if using yaSSL in OpenSSL compatibility mode.])
1630       curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)"
1631     ],[
1632       AC_MSG_RESULT([no])
1633     ])
1634   fi
1635
1636   if test "$OPENSSL_ENABLED" = "1"; then
1637     if test -n "$LIB_OPENSSL"; then
1638        dnl when the ssl shared libs were found in a path that the run-time
1639        dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
1640        dnl to prevent further configure tests to fail due to this
1641        if test "x$cross_compiling" != "xyes"; then
1642          LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL"
1643          export LD_LIBRARY_PATH
1644          AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH])
1645        fi
1646     fi
1647     CURL_CHECK_OPENSSL_API
1648   fi
1649
1650 fi
1651
1652 dnl **********************************************************************
1653 dnl Check for the presence of ZLIB libraries and headers
1654 dnl **********************************************************************
1655
1656 dnl Check for & handle argument to --with-zlib.
1657
1658 _cppflags=$CPPFLAGS
1659 _ldflags=$LDFLAGS
1660 AC_ARG_WITH(zlib,
1661 AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])
1662 AC_HELP_STRING([--without-zlib],[disable use of zlib]),
1663                [OPT_ZLIB="$withval"])
1664
1665 if test "$OPT_ZLIB" = "no" ; then
1666     AC_MSG_WARN([zlib disabled])
1667 else
1668   if test "$OPT_ZLIB" = "yes" ; then
1669      OPT_ZLIB=""
1670   fi
1671
1672   if test -z "$OPT_ZLIB" ; then
1673     dnl check for the lib first without setting any new path, since many
1674     dnl people have it in the default path
1675
1676     AC_CHECK_LIB(z, inflateEnd,
1677                    dnl libz found, set the variable
1678                    [HAVE_LIBZ="1"],
1679                    dnl if no lib found, try /usr/local
1680                    [OPT_ZLIB="/usr/local"])
1681
1682   fi
1683
1684   dnl Add a nonempty path to the compiler flags
1685   if test -n "$OPT_ZLIB"; then
1686      CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
1687      LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
1688   fi
1689
1690   AC_CHECK_HEADER(zlib.h,
1691     [
1692     dnl zlib.h was found
1693     HAVE_ZLIB_H="1"
1694     dnl if the lib wasn't found already, try again with the new paths
1695     if test "$HAVE_LIBZ" != "1"; then
1696       AC_CHECK_LIB(z, gzread,
1697                    [
1698                    dnl the lib was found!
1699                    HAVE_LIBZ="1"
1700                    ],
1701                    [ CPPFLAGS=$_cppflags
1702                    LDFLAGS=$_ldflags])
1703     fi
1704     ],
1705     [
1706       dnl zlib.h was not found, restore the flags
1707       CPPFLAGS=$_cppflags
1708       LDFLAGS=$_ldflags]
1709     )
1710
1711   if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
1712   then
1713     AC_MSG_WARN([configure found only the libz lib, not the header file!])
1714     HAVE_LIBZ=""
1715   elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
1716   then
1717     AC_MSG_WARN([configure found only the libz header file, not the lib!])
1718   elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1"
1719   then
1720     dnl both header and lib were found!
1721     AC_SUBST(HAVE_LIBZ)
1722     AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file])
1723     AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available])
1724
1725     CURL_LIBS="$CURL_LIBS -lz"
1726     LIBS="$LIBS -lz"
1727
1728     dnl replace 'HAVE_LIBZ' in the automake makefile.ams
1729     AMFIXLIB="1"
1730     AC_MSG_NOTICE([found both libz and libz.h header])
1731     curl_zlib_msg="enabled"
1732   fi
1733 fi
1734
1735 dnl set variable for use in automakefile(s)
1736 AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
1737
1738 dnl **********************************************************************
1739 dnl Check for the random seed preferences
1740 dnl **********************************************************************
1741
1742 if test X"$OPENSSL_ENABLED" = X"1"; then
1743   AC_ARG_WITH(egd-socket,
1744   AC_HELP_STRING([--with-egd-socket=FILE],
1745                  [Entropy Gathering Daemon socket pathname]),
1746       [ EGD_SOCKET="$withval" ]
1747   )
1748   if test -n "$EGD_SOCKET" ; then
1749           AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET",
1750           [your Entropy Gathering Daemon socket pathname] )
1751   fi
1752
1753   dnl Check for user-specified random device
1754   AC_ARG_WITH(random,
1755   AC_HELP_STRING([--with-random=FILE],
1756                  [read randomness from FILE (default=/dev/urandom)]),
1757       [ RANDOM_FILE="$withval" ],
1758       [
1759           if test x$cross_compiling != xyes; then
1760             dnl Check for random device
1761             AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
1762           else
1763             AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling])
1764           fi
1765       ]
1766   )
1767   if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
1768           AC_SUBST(RANDOM_FILE)
1769           AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE",
1770           [a suitable file to read random data from])
1771   fi
1772 fi
1773
1774 dnl ---
1775 dnl We require OpenSSL with SRP support.
1776 dnl ---
1777 if test "$OPENSSL_ENABLED" = "1"; then
1778   AC_CHECK_LIB(crypto, SRP_Calc_client_key,
1779    [
1780      AC_DEFINE(HAVE_SSLEAY_SRP, 1, [if you have the function SRP_Calc_client_key])
1781      AC_SUBST(HAVE_SSLEAY_SRP, [1])
1782    ])
1783 fi
1784
1785 dnl ----------------------------------------------------
1786 dnl check for GnuTLS
1787 dnl ----------------------------------------------------
1788
1789 dnl Default to compiler & linker defaults for GnuTLS files & libraries.
1790 OPT_GNUTLS=no
1791
1792 AC_ARG_WITH(gnutls,dnl
1793 AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root])
1794 AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
1795   OPT_GNUTLS=$withval)
1796
1797 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1798
1799   if test X"$OPT_GNUTLS" != Xno; then
1800
1801     addld=""
1802     if test "x$OPT_GNUTLS" = "xyes"; then
1803       dnl this is with no partiular path given
1804       CURL_CHECK_PKGCONFIG(gnutls)
1805
1806       if test "$PKGCONFIG" != "no" ; then
1807         addlib=`$PKGCONFIG --libs-only-l gnutls`
1808         addld=`$PKGCONFIG --libs-only-L gnutls`
1809         addcflags=`$PKGCONFIG --cflags-only-I gnutls`
1810         version=`$PKGCONFIG --modversion gnutls`
1811         gtlslib=`echo $addld | $SED -e 's/-L//'`
1812       else
1813         dnl without pkg-config, we try libgnutls-config as that was how it
1814         dnl used to be done
1815         check=`libgnutls-config --version 2>/dev/null`
1816         if test -n "$check"; then
1817           addlib=`libgnutls-config --libs`
1818           addcflags=`libgnutls-config --cflags`
1819           version=`libgnutls-config --version`
1820           gtlslib=`libgnutls-config --prefix`/lib$libsuff
1821         fi
1822       fi
1823     else
1824       dnl this is with a given path, first check if there's a libgnutls-config
1825       dnl there and if not, make an educated guess
1826       cfg=$OPT_GNUTLS/bin/libgnutls-config
1827       check=`$cfg --version 2>/dev/null`
1828       if test -n "$check"; then
1829         addlib=`$cfg --libs`
1830         addcflags=`$cfg --cflags`
1831         version=`$cfg --version`
1832         gtlslib=`$cfg --prefix`/lib$libsuff
1833       else
1834         dnl without pkg-config and libgnutls-config, we guess a lot!
1835         addlib=-lgnutls
1836         addld=-L$OPT_GNUTLS/lib$libsuff
1837         addcflags=-I$OPT_GNUTLS/include
1838         version="" # we just don't know
1839         gtlslib=$OPT_GNUTLS/lib$libsuff
1840       fi
1841     fi
1842
1843     if test -z "$version"; then
1844       dnl lots of efforts, still no go
1845       version="unknown"
1846     fi
1847
1848     if test -n "$addlib"; then
1849
1850       CLEANLIBS="$LIBS"
1851       CLEANCPPFLAGS="$CPPFLAGS"
1852       CLEADLDFLAGS="$LDFLAGS"
1853
1854       LIBS="$LIBS $addlib"
1855       LDFLAGS="$LDFLAGS $addld"
1856       if test "$addcflags" != "-I/usr/include"; then
1857          CPPFLAGS="$CPPFLAGS $addcflags"
1858       fi
1859
1860       AC_CHECK_LIB(gnutls, gnutls_check_version,
1861        [
1862        AC_DEFINE(USE_GNUTLS, 1, [if GnuTLS is enabled])
1863        AC_SUBST(USE_GNUTLS, [1])
1864        GNUTLS_ENABLED=1
1865        USE_GNUTLS="yes"
1866        curl_ssl_msg="enabled (GnuTLS)"
1867        ],
1868        [
1869          LIBS="$CLEANLIBS"
1870          CPPFLAGS="$CLEANCPPFLAGS"
1871        ])
1872
1873       if test "x$USE_GNUTLS" = "xyes"; then
1874         AC_MSG_NOTICE([detected GnuTLS version $version])
1875
1876         if test -n "$gtlslib"; then
1877           dnl when shared libs were found in a path that the run-time
1878           dnl linker doesn't search through, we need to add it to
1879           dnl LD_LIBRARY_PATH to prevent further configure tests to fail
1880           dnl due to this
1881           if test "x$cross_compiling" != "xyes"; then 
1882             LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
1883             export LD_LIBRARY_PATH
1884             AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
1885           fi
1886         fi
1887       fi
1888
1889     fi
1890
1891   fi dnl GNUTLS not disabled
1892
1893 fi
1894
1895 dnl ---
1896 dnl Check which crypto backend GnuTLS uses
1897 dnl ---
1898
1899 if test "$GNUTLS_ENABLED" = "1"; then
1900   USE_GNUTLS_NETTLE=
1901   # First check if we can detect either crypto library via transitive linking
1902   AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1903   if test "$USE_GNUTLS_NETTLE" = ""; then
1904     AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1905   fi
1906   # If not, try linking directly to both of them to see if they are available
1907   if test "$USE_GNUTLS_NETTLE" = ""; then
1908     AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1909   fi
1910   if test "$USE_GNUTLS_NETTLE" = ""; then
1911     AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1912   fi
1913   if test "$USE_GNUTLS_NETTLE" = ""; then
1914     AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found])
1915   fi
1916   if test "$USE_GNUTLS_NETTLE" = "1"; then
1917     AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend])
1918     AC_SUBST(USE_GNUTLS_NETTLE, [1])
1919     LIBS="$LIBS -lnettle"
1920   else
1921     LIBS="$LIBS -lgcrypt"
1922   fi
1923 fi
1924
1925 dnl ---
1926 dnl We require GnuTLS with SRP support.
1927 dnl ---
1928 if test "$GNUTLS_ENABLED" = "1"; then
1929   AC_CHECK_LIB(gnutls, gnutls_srp_verifier,
1930    [
1931      AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier])
1932      AC_SUBST(HAVE_GNUTLS_SRP, [1])
1933    ])
1934 fi
1935
1936 dnl ----------------------------------------------------
1937 dnl check for PolarSSL
1938 dnl ----------------------------------------------------
1939
1940 dnl Default to compiler & linker defaults for PolarSSL files & libraries.
1941 OPT_POLARSSL=no
1942
1943 _cppflags=$CPPFLAGS
1944 _ldflags=$LDFLAGS
1945 AC_ARG_WITH(polarssl,dnl
1946 AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root])
1947 AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]),
1948   OPT_POLARSSL=$withval)
1949
1950 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
1951
1952   if test X"$OPT_POLARSSL" != Xno; then
1953
1954     if test "$OPT_POLARSSL" = "yes"; then
1955       OPT_POLARSSL=""
1956     fi
1957
1958     if test -z "$OPT_POLARSSL" ; then
1959       dnl check for lib first without setting any new path
1960
1961       AC_CHECK_LIB(polarssl, havege_init,
1962       dnl libpolarssl found, set the variable
1963        [
1964          AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1965          AC_SUBST(USE_POLARSSL, [1])
1966          POLARSSL_ENABLED=1
1967          USE_POLARSSL="yes"
1968          curl_ssl_msg="enabled (PolarSSL)"
1969         ])
1970     fi
1971
1972     if test "x$USE_POLARSSL" != "xyes"; then
1973       dnl add the path and test again
1974       addld=-L$OPT_POLARSSL/lib$libsuff
1975       addcflags=-I$OPT_POLARSSL/include
1976       polarssllib=$OPT_POLARSSL/lib$libsuff
1977
1978       LDFLAGS="$LDFLAGS $addld"
1979       if test "$addcflags" != "-I/usr/include"; then
1980          CPPFLAGS="$CPPFLAGS $addcflags"
1981       fi
1982
1983       AC_CHECK_LIB(polarssl, ssl_init,
1984        [
1985        AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled])
1986        AC_SUBST(USE_POLARSSL, [1])
1987        POLARSSL_ENABLED=1
1988        USE_POLARSSL="yes"
1989        curl_ssl_msg="enabled (PolarSSL)"
1990        ],
1991        [
1992          CPPFLAGS=$_cppflags
1993          LDFLAGS=$_ldflags
1994        ])
1995     fi
1996
1997     if test "x$USE_POLARSSL" = "xyes"; then
1998       AC_MSG_NOTICE([detected PolarSSL])
1999
2000       CURL_LIBS="$CURL_LIBS -lpolarssl"
2001       LIBS="$LIBS -lpolarssl"
2002
2003       if test -n "$polarssllib"; then
2004         dnl when shared libs were found in a path that the run-time
2005         dnl linker doesn't search through, we need to add it to
2006         dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2007         dnl due to this
2008         if test "x$cross_compiling" != "xyes"; then
2009           LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib"
2010           export LD_LIBRARY_PATH
2011           AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH])
2012         fi
2013       fi
2014     fi
2015
2016   fi dnl PolarSSL not disabled
2017
2018 fi
2019
2020 dnl ----------------------------------------------------
2021 dnl check for CyaSSL
2022 dnl ----------------------------------------------------
2023
2024 dnl Default to compiler & linker defaults for CyaSSL files & libraries.
2025 OPT_CYASSL=no
2026
2027 _cppflags=$CPPFLAGS
2028 _ldflags=$LDFLAGS
2029 AC_ARG_WITH(cyassl,dnl
2030 AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
2031 AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
2032   OPT_CYASSL=$withval)
2033
2034 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2035
2036   if test X"$OPT_CYASSL" != Xno; then
2037
2038     if test "$OPT_CYASSL" = "yes"; then
2039       OPT_CYASSL=""
2040     fi
2041
2042     if test -z "$OPT_CYASSL" ; then
2043       dnl check for lib in system default first
2044
2045       AC_CHECK_LIB(cyassl, CyaSSL_Init,
2046       dnl libcyassl found, set the variable
2047        [
2048          AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2049          AC_SUBST(USE_CYASSL, [1])
2050          CYASSL_ENABLED=1
2051          USE_CYASSL="yes"
2052          curl_ssl_msg="enabled (CyaSSL)"
2053         ])
2054     fi
2055
2056     if test "x$USE_CYASSL" != "xyes"; then
2057       dnl add the path and test again
2058       addld=-L$OPT_CYASSL/lib$libsuff
2059       addcflags=-I$OPT_CYASSL/include
2060       cyassllib=$OPT_CYASSL/lib$libsuff
2061
2062       LDFLAGS="$LDFLAGS $addld"
2063       if test "$addcflags" != "-I/usr/include"; then
2064          CPPFLAGS="$CPPFLAGS $addcflags"
2065       fi
2066
2067       AC_CHECK_LIB(cyassl, CyaSSL_Init,
2068        [
2069        AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
2070        AC_SUBST(USE_CYASSL, [1])
2071        CYASSL_ENABLED=1
2072        USE_CYASSL="yes"
2073        curl_ssl_msg="enabled (CyaSSL)"
2074        ],
2075        [
2076          CPPFLAGS=$_cppflags
2077          LDFLAGS=$_ldflags
2078        ])
2079     fi
2080
2081     if test "x$USE_CYASSL" = "xyes"; then
2082       AC_MSG_NOTICE([detected CyaSSL])
2083
2084       CURL_LIBS="$CURL_LIBS -lcyassl -lm"
2085       LIBS="$LIBS -lcyassl -lm"
2086
2087       if test -n "$cyassllib"; then
2088         dnl when shared libs were found in a path that the run-time
2089         dnl linker doesn't search through, we need to add it to
2090         dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2091         dnl due to this
2092         if test "x$cross_compiling" != "xyes"; then
2093           LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
2094           export LD_LIBRARY_PATH
2095           AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH])
2096         fi
2097       fi
2098
2099     fi
2100
2101   fi dnl CyaSSL not disabled
2102
2103 fi
2104
2105 dnl ----------------------------------------------------
2106 dnl NSS. Only check if GnuTLS and OpenSSL are not enabled
2107 dnl ----------------------------------------------------
2108
2109 dnl Default to compiler & linker defaults for NSS files & libraries.
2110 OPT_NSS=no
2111
2112 AC_ARG_WITH(nss,dnl
2113 AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root])
2114 AC_HELP_STRING([--without-nss], [disable NSS detection]),
2115   OPT_NSS=$withval)
2116
2117 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2118
2119   if test X"$OPT_NSS" != Xno; then
2120     if test "x$OPT_NSS" = "xyes"; then
2121
2122       CURL_CHECK_PKGCONFIG(nss)
2123
2124       if test "$PKGCONFIG" != "no" ; then
2125         addlib=`$PKGCONFIG --libs nss`
2126         addcflags=`$PKGCONFIG --cflags nss`
2127         version=`$PKGCONFIG --modversion nss`
2128         nssprefix=`$PKGCONFIG --variable=prefix nss`
2129       else
2130         dnl Without pkg-config, we check for nss-config
2131
2132         check=`nss-config --version 2>/dev/null`
2133         if test -n "$check"; then
2134           addlib=`nss-config --libs`
2135           addcflags=`nss-config --cflags`
2136           version=`nss-config --version`
2137           nssprefix=`nss-config --prefix`
2138         else
2139           addlib="-lnss3"
2140           addcflags=""
2141           version="unknown"
2142         fi
2143       fi
2144     else
2145         # Without pkg-config, we'll kludge in some defaults
2146         addlib="-L$OPT_NSS/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
2147         addcflags="-I$OPT_NSS/include"
2148         version="unknown"
2149         nssprefix=$OPT_NSS
2150     fi
2151
2152     if test -n "$addlib"; then
2153
2154       CLEANLIBS="$LIBS"
2155       CLEANCPPFLAGS="$CPPFLAGS"
2156
2157       LIBS="$LIBS $addlib"
2158       if test "$addcflags" != "-I/usr/include"; then
2159          CPPFLAGS="$CPPFLAGS $addcflags"
2160       fi
2161
2162       dnl The function PK11_CreateGenericObject is needed to load libnsspem.so
2163       AC_CHECK_LIB(nss3, PK11_CreateGenericObject,
2164        [
2165        AC_DEFINE(USE_NSS, 1, [if NSS is enabled])
2166        AC_SUBST(USE_NSS, [1])
2167        USE_NSS="yes"
2168        NSS_ENABLED=1
2169        curl_ssl_msg="enabled (NSS)"
2170        ],
2171        [
2172          LIBS="$CLEANLIBS"
2173          CPPFLAGS="$CLEANCPPFLAGS"
2174        ])
2175
2176       if test "x$USE_NSS" = "xyes"; then
2177         AC_MSG_NOTICE([detected NSS version $version])
2178
2179         dnl NSS_InitContext() was introduced in NSS 3.12.5 and helps to prevent
2180         dnl collisions on NSS initialization/shutdown with other libraries
2181         AC_CHECK_FUNC(NSS_InitContext,
2182         [
2183           AC_DEFINE(HAVE_NSS_INITCONTEXT, 1, [if you have the NSS_InitContext function])
2184           AC_SUBST(HAVE_NSS_INITCONTEXT, [1])
2185         ])
2186
2187         dnl when shared libs were found in a path that the run-time
2188         dnl linker doesn't search through, we need to add it to
2189         dnl LD_LIBRARY_PATH to prevent further configure tests to fail
2190         dnl due to this
2191         if test "x$cross_compiling" != "xyes"; then
2192           LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff"
2193           export LD_LIBRARY_PATH
2194           AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH])
2195         fi
2196       fi
2197
2198     fi
2199
2200   fi dnl NSS not disabled
2201
2202 fi dnl curl_ssl_msg = init_ssl_msg
2203
2204 OPT_AXTLS=off
2205
2206 AC_ARG_WITH(axtls,dnl
2207 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.])
2208 AC_HELP_STRING([--without-axtls], [disable axTLS]),
2209   OPT_AXTLS=$withval)
2210
2211 if test "$curl_ssl_msg" = "$init_ssl_msg"; then
2212   if test X"$OPT_AXTLS" != Xno; then
2213     dnl backup the pre-axtls variables
2214     CLEANLDFLAGS="$LDFLAGS"
2215     CLEANCPPFLAGS="$CPPFLAGS"
2216     CLEANLIBS="$LIBS"
2217
2218     case "$OPT_AXTLS" in
2219     yes)
2220       dnl --with-axtls (without path) used
2221       PREFIX_AXTLS=/usr/local
2222       LIB_AXTLS="$PREFIX_AXTLS/lib"
2223       LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2224       CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2225       ;;
2226     off)
2227       dnl no --with-axtls option given, just check default places
2228       PREFIX_AXTLS=
2229       ;;
2230     *)
2231       dnl check the given --with-axtls spot
2232       PREFIX_AXTLS=$OPT_AXTLS
2233       LIB_AXTLS="$PREFIX_AXTLS/lib"
2234       LDFLAGS="$LDFLAGS -L$LIB_AXTLS"
2235       CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include"
2236       ;;
2237     esac
2238
2239     AC_CHECK_LIB(axtls, ssl_version,[
2240       LIBS="-laxtls $LIBS"
2241       AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled])
2242       AC_SUBST(USE_AXTLS, [1])
2243       AXTLS_ENABLED=1
2244       USE_AXTLS="yes"
2245       curl_ssl_msg="enabled (axTLS)"
2246
2247
2248       LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS"
2249       export LD_LIBRARY_PATH
2250       AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH])
2251       ],[
2252       LDFLAGS="$CLEANLDFLAGS"
2253       CPPFLAGS="$CLEANCPPFLAGS"
2254       LIBS="$CLEANLIBS"
2255     ])
2256   fi
2257 fi
2258
2259 if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
2260   AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
2261   AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls or --with-winssl to address this.])
2262 else
2263   # SSL is enabled, genericly
2264   AC_SUBST(SSL_ENABLED)
2265   SSL_ENABLED="1"
2266 fi
2267
2268 dnl **********************************************************************
2269 dnl Check for the CA bundle
2270 dnl **********************************************************************
2271
2272 CURL_CHECK_CA_BUNDLE
2273
2274 dnl **********************************************************************
2275 dnl Check for libmetalink
2276 dnl **********************************************************************
2277
2278 OPT_LIBMETALINK=no
2279
2280 AC_ARG_WITH(libmetalink,dnl
2281 AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root])
2282 AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]),
2283   OPT_LIBMETALINK=$withval)
2284
2285 if test X"$OPT_LIBMETALINK" != Xno; then
2286
2287   addlib=""
2288   addld=""
2289   addcflags=""
2290   version=""
2291   libmetalinklib=""
2292   PKGTEST="no"
2293   if test "x$OPT_LIBMETALINK" = "xyes"; then
2294     dnl this is with no partiular path given
2295     PKGTEST="yes"
2296     CURL_CHECK_PKGCONFIG(libmetalink)
2297   else
2298     dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path.
2299     LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig"
2300     AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"])
2301     if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then
2302       PKGTEST="yes"
2303     fi
2304     if test "$PKGTEST" = "yes"; then
2305       CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR])
2306     fi
2307   fi
2308   if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then
2309     addlib=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2310       $PKGCONFIG --libs-only-l libmetalink`
2311     addld=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2312       $PKGCONFIG --libs-only-L libmetalink`
2313     addcflags=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2314       $PKGCONFIG --cflags-only-I libmetalink`
2315     version=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl
2316       $PKGCONFIG --modversion libmetalink`
2317     libmetalinklib=`echo $addld | $SED -e 's/-L//'`
2318   fi
2319   if test -n "$addlib"; then
2320
2321     AC_MSG_NOTICE([detected libmetalink version $version])
2322     curl_mtlnk_msg="enabled"
2323     LIBMETALINK_LIBS=$addlib
2324     LIBMETALINK_LDFLAGS=$addld
2325     LIBMETALINK_CFLAGS=$addcflags
2326     AC_SUBST([LIBMETALINK_LIBS])
2327     AC_SUBST([LIBMETALINK_LDFLAGS])
2328     AC_SUBST([LIBMETALINK_CFLAGS])
2329     AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support])
2330
2331   fi
2332 fi
2333
2334 dnl **********************************************************************
2335 dnl Check for the presence of LIBSSH2 libraries and headers
2336 dnl **********************************************************************
2337
2338 dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
2339 OPT_LIBSSH2=off
2340 AC_ARG_WITH(libssh2,dnl
2341 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])
2342 AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
2343   OPT_LIBSSH2=$withval)
2344
2345 if test X"$OPT_LIBSSH2" != Xno; then
2346   dnl backup the pre-libssh2 variables
2347   CLEANLDFLAGS="$LDFLAGS"
2348   CLEANCPPFLAGS="$CPPFLAGS"
2349   CLEANLIBS="$LIBS"
2350
2351   case "$OPT_LIBSSH2" in
2352   yes)
2353     dnl --with-libssh2 (without path) used
2354     CURL_CHECK_PKGCONFIG(libssh2)
2355
2356     if test "$PKGCONFIG" != "no" ; then
2357       LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2`
2358       LD_SSH2=`$PKGCONFIG --libs-only-L libssh2`
2359       CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2`
2360       version=`$PKGCONFIG --modversion libssh2`
2361       DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'`
2362     fi
2363
2364     ;;
2365   off)
2366     dnl no --with-libssh2 option given, just check default places
2367     ;;
2368   *)
2369     dnl use the given --with-libssh2 spot
2370     PREFIX_SSH2=$OPT_LIBSSH2
2371     ;;
2372   esac
2373
2374   dnl if given with a prefix, we set -L and -I based on that
2375   if test -n "$PREFIX_SSH2"; then
2376     LIB_SSH2="-lssh2"
2377     LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff
2378     CPP_SSH2=-I${PREFIX_SSH2}/include
2379     DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
2380   fi
2381
2382   LDFLAGS="$LDFLAGS $LD_SSH2"
2383   CPPFLAGS="$CPPFLAGS $CPP_SSH2"
2384   LIBS="$LIBS $LIB_SSH2"
2385
2386   AC_CHECK_LIB(ssh2, libssh2_channel_open_ex)
2387
2388   AC_CHECK_HEADERS(libssh2.h,
2389     curl_ssh_msg="enabled (libSSH2)"
2390     LIBSSH2_ENABLED=1
2391     AC_DEFINE(USE_LIBSSH2, 1, [if libSSH2 is in use])
2392     AC_SUBST(USE_LIBSSH2, [1])
2393   )
2394
2395   if test X"$OPT_LIBSSH2" != Xoff &&
2396      test "$LIBSSH2_ENABLED" != "1"; then
2397     AC_MSG_ERROR([libSSH2 libs and/or directories were not found where specified!])
2398   fi
2399
2400   if test "$LIBSSH2_ENABLED" = "1"; then
2401     if test -n "$DIR_SSH2"; then
2402        dnl when the libssh2 shared libs were found in a path that the run-time
2403        dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
2404        dnl to prevent further configure tests to fail due to this
2405
2406        dnl libssh2_version is a post 1.0 addition
2407        dnl libssh2_init and libssh2_exit were added in 1.2.5
2408        dnl libssh2_scp_send64 was added in 1.2.6
2409        dnl libssh2_session_handshake was added in 1.2.8
2410        AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \
2411                        libssh2_scp_send64 libssh2_session_handshake)
2412        if test "x$cross_compiling" != "xyes"; then
2413          LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
2414          export LD_LIBRARY_PATH
2415          AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH])
2416        fi
2417     fi
2418   else
2419     dnl no libssh2, revert back to clean variables
2420     LDFLAGS=$CLEANLDFLAGS
2421     CPPFLAGS=$CLEANCPPFLAGS
2422     LIBS=$CLEANLIBS
2423   fi
2424 fi
2425
2426 dnl **********************************************************************
2427 dnl Check for the presence of LIBRTMP libraries and headers
2428 dnl **********************************************************************
2429
2430 dnl Default to compiler & linker defaults for LIBRTMP files & libraries.
2431 OPT_LIBRTMP=off
2432 AC_ARG_WITH(librtmp,dnl
2433 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])
2434 AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]),
2435   OPT_LIBRTMP=$withval)
2436
2437 if test X"$OPT_LIBRTMP" != Xno; then
2438   dnl backup the pre-librtmp variables
2439   CLEANLDFLAGS="$LDFLAGS"
2440   CLEANCPPFLAGS="$CPPFLAGS"
2441   CLEANLIBS="$LIBS"
2442
2443   case "$OPT_LIBRTMP" in
2444   yes)
2445     dnl --with-librtmp (without path) used
2446     CURL_CHECK_PKGCONFIG(librtmp)
2447
2448     if test "$PKGCONFIG" != "no" ; then
2449       LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp`
2450       LD_RTMP=`$PKGCONFIG --libs-only-L librtmp`
2451       CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp`
2452       version=`$PKGCONFIG --modversion librtmp`
2453       DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'`
2454     else
2455       dnl To avoid link errors, we do not allow --librtmp without
2456       dnl a pkgconfig file
2457       AC_MSG_ERROR([--librtmp was specified but could not find librtmp pkgconfig file.])
2458     fi
2459
2460     ;;
2461   off)
2462     dnl no --with-librtmp option given, just check default places
2463     LIB_RTMP="-lrtmp"
2464     ;;
2465   *)
2466     dnl use the given --with-librtmp spot
2467     PREFIX_RTMP=$OPT_LIBRTMP
2468     ;;
2469   esac
2470
2471   dnl if given with a prefix, we set -L and -I based on that
2472   if test -n "$PREFIX_RTMP"; then
2473     LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff
2474     CPP_RTMP=-I${PREFIX_RTMP}/include
2475     DIR_RTMP=${PREFIX_RTMP}/lib$libsuff
2476   fi
2477
2478   LDFLAGS="$LDFLAGS $LD_RTMP"
2479   CPPFLAGS="$CPPFLAGS $CPP_RTMP"
2480   LIBS="$LIBS $LIB_RTMP"
2481
2482   AC_CHECK_LIB(rtmp, RTMP_Init,
2483     [
2484      AC_CHECK_HEADERS(librtmp/rtmp.h,
2485         curl_rtmp_msg="enabled (librtmp)"
2486         LIBRTMP_ENABLED=1
2487         AC_DEFINE(USE_LIBRTMP, 1, [if librtmp is in use])
2488         AC_SUBST(USE_LIBRTMP, [1])
2489      )
2490     ],
2491       dnl not found, revert back to clean variables
2492       LDFLAGS=$CLEANLDFLAGS
2493       CPPFLAGS=$CLEANCPPFLAGS
2494       LIBS=$CLEANLIBS
2495   )
2496
2497   if test X"$OPT_LIBRTMP" != Xoff &&
2498      test "$LIBRTMP_ENABLED" != "1"; then
2499     AC_MSG_ERROR([librtmp libs and/or directories were not found where specified!])
2500   fi
2501
2502 fi
2503
2504 dnl **********************************************************************
2505 dnl Check for linker switch for versioned symbols
2506 dnl **********************************************************************
2507
2508 versioned_symbols_flavour=
2509 AC_MSG_CHECKING([whether versioned symbols are wanted])
2510 AC_ARG_ENABLE(versioned-symbols,
2511 AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library])
2512 AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]),
2513 [ case "$enableval" in
2514   yes) AC_MSG_RESULT(yes)
2515     AC_MSG_CHECKING([if libraries can be versioned])
2516     GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
2517     if test -z "$GLD"; then
2518         AC_MSG_RESULT(no)
2519         AC_MSG_WARN([You need an ld version supporting the --version-script option])
2520     else
2521         AC_MSG_RESULT(yes)
2522         if test "x$OPENSSL_ENABLED" = "x1"; then
2523           versioned_symbols_flavour="OPENSSL_"
2524         elif test "x$GNUTLS_ENABLED" == "x1"; then
2525           versioned_symbols_flavour="GNUTLS_"
2526         elif test "x$NSS_ENABLED" == "x1"; then
2527           versioned_symbols_flavour="NSS_"
2528         elif test "x$POLARSSL_ENABLED" == "x1"; then
2529           versioned_symbols_flavour="POLARSSL_"
2530         elif test "x$CYASSL_ENABLED" == "x1"; then
2531           versioned_symbols_flavour="CYASSL_"
2532         elif test "x$AXTLS_ENABLED" == "x1"; then
2533           versioned_symbols_flavour="AXTLS_"
2534         elif test "x$WINSSL_ENABLED" == "x1"; then
2535           versioned_symbols_flavour="WINSSL_"
2536         elif test "x$DARWINSSL_ENABLED" == "x1"; then
2537           versioned_symbols_flavour="DARWINSSL_"
2538         else
2539           versioned_symbols_flavour=""
2540         fi
2541         versioned_symbols="yes"
2542     fi
2543     ;;
2544
2545   *)   AC_MSG_RESULT(no)
2546     ;;
2547   esac
2548 ], [
2549 AC_MSG_RESULT(no)
2550 ]
2551 )
2552
2553 AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"])
2554 AM_CONDITIONAL(VERSIONED_SYMBOLS, test "x$versioned_symbols" = "xyes")
2555
2556
2557 dnl **********************************************************************
2558 dnl Check for the presence of IDN libraries and headers
2559 dnl **********************************************************************
2560
2561 AC_MSG_CHECKING([whether to build with libidn])
2562 OPT_IDN="default"
2563 AC_ARG_WITH(libidn,
2564 AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage])
2565 AC_HELP_STRING([--without-libidn],[Disable libidn usage]),
2566   [OPT_IDN=$withval])
2567 case "$OPT_IDN" in
2568   no)
2569     dnl --without-libidn option used
2570     want_idn="no"
2571     AC_MSG_RESULT([no])
2572     ;;
2573   default)
2574     dnl configure option not specified
2575     want_idn="yes"
2576     want_idn_path="default"
2577     AC_MSG_RESULT([(assumed) yes])
2578     ;;
2579   yes)
2580     dnl --with-libidn option used without path
2581     want_idn="yes"
2582     want_idn_path="default"
2583     AC_MSG_RESULT([yes])
2584     ;;
2585   *)
2586     dnl --with-libidn option used with path
2587     want_idn="yes"
2588     want_idn_path="$withval"
2589     AC_MSG_RESULT([yes ($withval)])
2590     ;;
2591 esac
2592
2593 if test "$want_idn" = "yes"; then
2594   dnl idn library support has been requested
2595   clean_CPPFLAGS="$CPPFLAGS"
2596   clean_LDFLAGS="$LDFLAGS"
2597   clean_LIBS="$LIBS"
2598   PKGCONFIG="no"
2599   #
2600   if test "$want_idn_path" != "default"; then
2601     dnl path has been specified
2602     IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
2603     CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR])
2604     if test "$PKGCONFIG" != "no"; then
2605       IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2606         $PKGCONFIG --libs-only-l libidn 2>/dev/null`
2607       IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2608         $PKGCONFIG --libs-only-L libidn 2>/dev/null`
2609       IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2610         $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2611       IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2612     else
2613       dnl pkg-config not available or provides no info
2614       IDN_LIBS="-lidn"
2615       IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
2616       IDN_CPPFLAGS="-I$want_idn_path/include"
2617       IDN_DIR="$want_idn_path/lib$libsuff"
2618     fi
2619   else
2620     dnl path not specified
2621     CURL_CHECK_PKGCONFIG(libidn)
2622     if test "$PKGCONFIG" != "no"; then
2623       IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
2624       IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
2625       IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2626       IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2627     else
2628       dnl pkg-config not available or provides no info
2629       IDN_LIBS="-lidn"
2630     fi
2631   fi
2632   #
2633   if test "$PKGCONFIG" != "no"; then
2634     AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"])
2635     AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"])
2636     AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2637     AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"])
2638   else
2639     AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"])
2640     AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"])
2641     AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2642     AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
2643   fi
2644   #
2645   CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
2646   LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
2647   LIBS="$IDN_LIBS $LIBS"
2648   #
2649   AC_MSG_CHECKING([if idna_to_ascii_4i can be linked])
2650   AC_LINK_IFELSE([
2651     AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i])
2652   ],[
2653     AC_MSG_RESULT([yes])
2654     tst_links_libidn="yes"
2655   ],[
2656     AC_MSG_RESULT([no])
2657     tst_links_libidn="no"
2658   ])
2659   if test "$tst_links_libidn" = "no"; then
2660     AC_MSG_CHECKING([if idna_to_ascii_lz can be linked])
2661     AC_LINK_IFELSE([
2662       AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz])
2663     ],[
2664       AC_MSG_RESULT([yes])
2665       tst_links_libidn="yes"
2666     ],[
2667       AC_MSG_RESULT([no])
2668       tst_links_libidn="no"
2669     ])
2670   fi
2671   #
2672   if test "$tst_links_libidn" = "yes"; then
2673     AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).])
2674     dnl different versions of libidn have different setups of these:
2675     AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror )
2676     AC_CHECK_HEADERS( idn-free.h tld.h )
2677     if test "x$ac_cv_header_tld_h" = "xyes"; then
2678       AC_SUBST([IDN_ENABLED], [1])
2679       curl_idn_msg="enabled"
2680       if test -n "$IDN_DIR"; then
2681         LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
2682         export LD_LIBRARY_PATH
2683         AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH])
2684       fi
2685     else
2686       AC_MSG_WARN([Libraries for IDN support too old: IDN disabled])
2687       CPPFLAGS="$clean_CPPFLAGS"
2688       LDFLAGS="$clean_LDFLAGS"
2689       LIBS="$clean_LIBS"
2690     fi
2691   else
2692     AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2693     CPPFLAGS="$clean_CPPFLAGS"
2694     LDFLAGS="$clean_LDFLAGS"
2695     LIBS="$clean_LIBS"
2696   fi
2697 fi
2698
2699
2700 dnl Let's hope this split URL remains working:
2701 dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
2702 dnl genprogc/thread_quick_ref.htm
2703
2704
2705 dnl **********************************************************************
2706 dnl Back to "normal" configuring
2707 dnl **********************************************************************
2708
2709 dnl Checks for header files.
2710 AC_HEADER_STDC
2711
2712 CURL_CHECK_HEADER_MALLOC
2713 CURL_CHECK_HEADER_MEMORY
2714
2715 dnl Now check for the very most basic headers. Then we can use these
2716 dnl ones as default-headers when checking for the rest!
2717 AC_CHECK_HEADERS(
2718         sys/types.h \
2719         sys/time.h \
2720         sys/select.h \
2721         sys/socket.h \
2722         sys/ioctl.h \
2723         sys/uio.h \
2724         assert.h \
2725         unistd.h \
2726         stdlib.h \
2727         limits.h \
2728         arpa/inet.h \
2729         net/if.h \
2730         netinet/in.h \
2731         sys/un.h \
2732         netinet/tcp.h \
2733         netdb.h \
2734         sys/sockio.h \
2735         sys/stat.h \
2736         sys/param.h \
2737         termios.h \
2738         termio.h \
2739         sgtty.h \
2740         fcntl.h \
2741         alloca.h \
2742         time.h \
2743         io.h \
2744         pwd.h \
2745         utime.h \
2746         sys/utime.h \
2747         sys/poll.h \
2748         poll.h \
2749         socket.h \
2750         sys/resource.h \
2751         libgen.h \
2752         locale.h \
2753         errno.h \
2754         stdbool.h \
2755         arpa/tftp.h \
2756         sys/filio.h \
2757         sys/wait.h \
2758         setjmp.h,
2759 dnl to do if not found
2760 [],
2761 dnl to do if found
2762 [],
2763 dnl default includes
2764 [
2765 #ifdef HAVE_SYS_TYPES_H
2766 #include <sys/types.h>
2767 #endif
2768 #ifdef HAVE_SYS_TIME_H
2769 #include <sys/time.h>
2770 #endif
2771 #ifdef HAVE_SYS_SELECT_H
2772 #include <sys/select.h>
2773 #endif
2774 #ifdef HAVE_SYS_SOCKET_H
2775 #include <sys/socket.h>
2776 #endif
2777 #ifdef HAVE_NETINET_IN_H
2778 #include <netinet/in.h>
2779 #endif
2780 #ifdef HAVE_SYS_UN_H
2781 #include <sys/un.h>
2782 #endif
2783 ]
2784 )
2785
2786 dnl Checks for typedefs, structures, and compiler characteristics.
2787 AC_C_CONST
2788 CURL_CHECK_VARIADIC_MACROS
2789 AC_TYPE_SIZE_T
2790 AC_HEADER_TIME
2791 CURL_CHECK_STRUCT_TIMEVAL
2792 CURL_VERIFY_RUNTIMELIBS
2793
2794 AC_CHECK_SIZEOF(size_t)
2795 AC_CHECK_SIZEOF(long)
2796 AC_CHECK_SIZEOF(int)
2797 AC_CHECK_SIZEOF(short)
2798 CURL_CONFIGURE_LONG
2799 AC_CHECK_SIZEOF(time_t)
2800 AC_CHECK_SIZEOF(off_t)
2801
2802 soname_bump=no
2803 if test x"$ac_cv_native_windows" != "xyes" &&
2804    test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then
2805   AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous])
2806   AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.])
2807   soname_bump=yes
2808 fi
2809
2810
2811 AC_CHECK_TYPE(long long,
2812    [AC_DEFINE(HAVE_LONGLONG, 1,
2813       [Define to 1 if the compiler supports the 'long long' data type.])]
2814    longlong="yes"
2815 )
2816
2817 if test "xyes" = "x$longlong"; then
2818   AC_MSG_CHECKING([if numberLL works])
2819   AC_COMPILE_IFELSE([
2820     AC_LANG_PROGRAM([[
2821     ]],[[
2822       long long val = 1000LL;
2823     ]])
2824   ],[
2825     AC_MSG_RESULT([yes])
2826     AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL])
2827   ],[
2828     AC_MSG_RESULT([no])
2829   ])
2830 fi
2831
2832
2833 # check for ssize_t
2834 AC_CHECK_TYPE(ssize_t, ,
2835    AC_DEFINE(ssize_t, int, [the signed version of size_t]))
2836
2837 # check for bool type
2838 AC_CHECK_TYPE([bool],[
2839   AC_DEFINE(HAVE_BOOL_T, 1,
2840     [Define to 1 if bool is an available type.])
2841 ], ,[
2842 #ifdef HAVE_SYS_TYPES_H
2843 #include <sys/types.h>
2844 #endif
2845 #ifdef HAVE_STDBOOL_H
2846 #include <stdbool.h>
2847 #endif
2848 ])
2849
2850 CURL_CONFIGURE_CURL_SOCKLEN_T
2851
2852 TYPE_IN_ADDR_T
2853
2854 TYPE_SOCKADDR_STORAGE
2855
2856 TYPE_SIG_ATOMIC_T
2857
2858 AC_TYPE_SIGNAL
2859
2860 CURL_CHECK_FUNC_SELECT
2861
2862 CURL_CHECK_FUNC_RECV
2863 CURL_CHECK_FUNC_RECVFROM
2864 CURL_CHECK_FUNC_SEND
2865 CURL_CHECK_MSG_NOSIGNAL
2866
2867 CURL_CHECK_FUNC_ALARM
2868 CURL_CHECK_FUNC_BASENAME
2869 CURL_CHECK_FUNC_CLOSESOCKET
2870 CURL_CHECK_FUNC_CLOSESOCKET_CAMEL
2871 CURL_CHECK_FUNC_CONNECT
2872 CURL_CHECK_FUNC_FCNTL
2873 CURL_CHECK_FUNC_FDOPEN
2874 CURL_CHECK_FUNC_FREEADDRINFO
2875 CURL_CHECK_FUNC_FREEIFADDRS
2876 CURL_CHECK_FUNC_FSETXATTR
2877 CURL_CHECK_FUNC_FTRUNCATE
2878 CURL_CHECK_FUNC_GETADDRINFO
2879 CURL_CHECK_FUNC_GAI_STRERROR
2880 CURL_CHECK_FUNC_GETHOSTBYADDR
2881 CURL_CHECK_FUNC_GETHOSTBYADDR_R
2882 CURL_CHECK_FUNC_GETHOSTBYNAME
2883 CURL_CHECK_FUNC_GETHOSTBYNAME_R
2884 CURL_CHECK_FUNC_GETHOSTNAME
2885 CURL_CHECK_FUNC_GETIFADDRS
2886 CURL_CHECK_FUNC_GETSERVBYPORT_R
2887 CURL_CHECK_FUNC_GMTIME_R
2888 CURL_CHECK_FUNC_INET_NTOA_R
2889 CURL_CHECK_FUNC_INET_NTOP
2890 CURL_CHECK_FUNC_INET_PTON
2891 CURL_CHECK_FUNC_IOCTL
2892 CURL_CHECK_FUNC_IOCTLSOCKET
2893 CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL
2894 CURL_CHECK_FUNC_LOCALTIME_R
2895 CURL_CHECK_FUNC_MEMRCHR
2896 CURL_CHECK_FUNC_POLL
2897 CURL_CHECK_FUNC_SETSOCKOPT
2898 CURL_CHECK_FUNC_SIGACTION
2899 CURL_CHECK_FUNC_SIGINTERRUPT
2900 CURL_CHECK_FUNC_SIGNAL
2901 CURL_CHECK_FUNC_SIGSETJMP
2902 CURL_CHECK_FUNC_SOCKET
2903 CURL_CHECK_FUNC_SOCKETPAIR
2904 CURL_CHECK_FUNC_STRCASECMP
2905 CURL_CHECK_FUNC_STRCASESTR
2906 CURL_CHECK_FUNC_STRCMPI
2907 CURL_CHECK_FUNC_STRDUP
2908 CURL_CHECK_FUNC_STRERROR_R
2909 CURL_CHECK_FUNC_STRICMP
2910 CURL_CHECK_FUNC_STRLCAT
2911 CURL_CHECK_FUNC_STRNCASECMP
2912 CURL_CHECK_FUNC_STRNCMPI
2913 CURL_CHECK_FUNC_STRNICMP
2914 CURL_CHECK_FUNC_STRSTR
2915 CURL_CHECK_FUNC_STRTOK_R
2916 CURL_CHECK_FUNC_STRTOLL
2917 CURL_CHECK_FUNC_WRITEV
2918
2919 case $host in
2920   *msdosdjgpp)
2921      ac_cv_func_pipe=no
2922      skipcheck_pipe=yes
2923      AC_MSG_NOTICE([skip check for pipe on msdosdjgpp])
2924     ;;
2925 esac
2926
2927 AC_CHECK_FUNCS([fork \
2928   geteuid \
2929   getpass_r \
2930   getppid \
2931   getprotobyname \
2932   getpwuid \
2933   getrlimit \
2934   gettimeofday \
2935   inet_addr \
2936   perror \
2937   pipe \
2938   setlocale \
2939   setmode \
2940   setrlimit \
2941   uname \
2942   utime
2943 ],[
2944 ],[
2945   func="$ac_func"
2946   eval skipcheck=\$skipcheck_$func
2947   if test "x$skipcheck" != "xyes"; then
2948     AC_MSG_CHECKING([deeper for $func])
2949     AC_LINK_IFELSE([
2950       AC_LANG_PROGRAM([[
2951       ]],[[
2952         $func ();
2953       ]])
2954     ],[
2955       AC_MSG_RESULT([yes])
2956       eval "ac_cv_func_$func=yes"
2957       AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1],
2958         [Define to 1 if you have the $func function.])
2959     ],[
2960       AC_MSG_RESULT([but still no])
2961     ])
2962   fi
2963 ])
2964
2965 dnl Check if the getnameinfo function is available
2966 dnl and get the types of five of its arguments.
2967 CURL_CHECK_FUNC_GETNAMEINFO
2968
2969 if test "$ipv6" = "yes"; then
2970   if test "$ac_cv_func_getaddrinfo" = "yes"; then
2971     AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support])
2972     IPV6_ENABLED=1
2973     AC_SUBST(IPV6_ENABLED)
2974   fi
2975   CURL_CHECK_NI_WITHSCOPEID
2976 fi
2977
2978 dnl ************************************************************
2979 dnl enable non-blocking communications
2980 dnl
2981 CURL_CHECK_OPTION_NONBLOCKING
2982 CURL_CHECK_NONBLOCKING_SOCKET
2983
2984 dnl ************************************************************
2985 dnl nroff tool stuff
2986 dnl
2987
2988 AC_PATH_PROG( PERL, perl, ,
2989   $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
2990 AC_SUBST(PERL)
2991
2992 AC_PATH_PROGS( NROFF, gnroff nroff, ,
2993   $PATH:/usr/bin/:/usr/local/bin )
2994 AC_SUBST(NROFF)
2995
2996 if test -n "$NROFF"; then
2997   dnl only check for nroff options if an nroff command was found
2998
2999   AC_MSG_CHECKING([how to use *nroff to get plain text from man pages])
3000   MANOPT="-man"
3001   mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
3002   if test -z "$mancheck"; then
3003     MANOPT="-mandoc"
3004    mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
3005     if test -z "$mancheck"; then
3006       MANOPT=""
3007       AC_MSG_RESULT([failed])
3008       AC_MSG_WARN([found no *nroff option to get plaintext from man pages])
3009     else
3010       AC_MSG_RESULT([$MANOPT])
3011     fi
3012   else
3013     AC_MSG_RESULT([$MANOPT])
3014   fi
3015   AC_SUBST(MANOPT)
3016 fi
3017
3018 if test -z "$MANOPT"
3019 then
3020   dnl if no nroff tool was found, or no option that could convert man pages
3021   dnl was found, then disable the built-in manual stuff
3022   AC_MSG_WARN([disabling built-in manual])
3023   USE_MANUAL="no";
3024 fi
3025
3026 dnl *************************************************************************
3027 dnl If the manual variable still is set, then we go with providing a built-in
3028 dnl manual
3029
3030 if test "$USE_MANUAL" = "1"; then
3031   AC_DEFINE(USE_MANUAL, 1, [If you want to build curl with the built-in manual])
3032   curl_manual_msg="enabled"
3033 fi
3034
3035 dnl set variable for use in automakefile(s)
3036 AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)
3037
3038 CURL_CHECK_LIB_ARES
3039 AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
3040
3041 if test "x$ac_cv_native_windows" != "xyes" &&
3042    test "x$enable_shared" = "xyes"; then
3043   build_libhostname=yes
3044 else
3045   build_libhostname=no
3046 fi
3047 AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes)
3048
3049 CURL_CHECK_OPTION_THREADED_RESOLVER
3050
3051 if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
3052   AC_MSG_ERROR(
3053 [Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
3054 fi
3055
3056 if test "$want_thres" = "yes"; then
3057   AC_CHECK_HEADER(pthread.h,
3058     [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
3059       save_CFLAGS="$CFLAGS"
3060       CFLAGS="$CFLAGS -pthread"
3061       AC_CHECK_LIB(pthread, pthread_create,
3062         [ AC_MSG_NOTICE([using POSIX threaded DNS lookup])
3063           AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
3064           USE_THREADS_POSIX=1
3065           curl_res_msg="threaded"
3066         ],
3067         [ CFLAGS="$save_CFLAGS"])
3068   ])
3069 fi
3070
3071 dnl ************************************************************
3072 dnl disable verbose text strings
3073 dnl
3074 AC_MSG_CHECKING([whether to enable verbose strings])
3075 AC_ARG_ENABLE(verbose,
3076 AC_HELP_STRING([--enable-verbose],[Enable verbose strings])
3077 AC_HELP_STRING([--disable-verbose],[Disable verbose strings]),
3078 [ case "$enableval" in
3079   no)
3080        AC_MSG_RESULT(no)
3081        AC_DEFINE(CURL_DISABLE_VERBOSE_STRINGS, 1, [to disable verbose strings])
3082        curl_verbose_msg="no"
3083        ;;
3084   *)   AC_MSG_RESULT(yes)
3085        ;;
3086   esac ],
3087        AC_MSG_RESULT(yes)
3088 )
3089
3090 dnl ************************************************************
3091 dnl enable SSPI support
3092 dnl
3093 AC_MSG_CHECKING([whether to enable SSPI support (Windows native builds only)])
3094 AC_ARG_ENABLE(sspi,
3095 AC_HELP_STRING([--enable-sspi],[Enable SSPI])
3096 AC_HELP_STRING([--disable-sspi],[Disable SSPI]),
3097 [ case "$enableval" in
3098   yes)
3099        if test "$ac_cv_native_windows" = "yes"; then
3100          AC_MSG_RESULT(yes)
3101          AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
3102          AC_SUBST(USE_WINDOWS_SSPI, [1])
3103          curl_sspi_msg="enabled"
3104        else
3105          AC_MSG_RESULT(no)
3106          AC_MSG_WARN([--enable-sspi Ignored. Only supported on native Windows builds.])
3107        fi
3108        ;;
3109   *)
3110        if test "x$WINSSL_ENABLED" = "x1"; then
3111          # --with-winssl implies --enable-sspi
3112          AC_MSG_RESULT(yes)
3113        else
3114          AC_MSG_RESULT(no)
3115        fi
3116        ;;
3117   esac ],
3118        if test "x$WINSSL_ENABLED" = "x1"; then
3119          # --with-winssl implies --enable-sspi
3120          AC_MSG_RESULT(yes)
3121        else
3122          AC_MSG_RESULT(no)
3123        fi
3124 )
3125
3126 dnl ************************************************************
3127 dnl disable cryptographic authentication
3128 dnl
3129 AC_MSG_CHECKING([whether to enable cryptographic authentication methods])
3130 AC_ARG_ENABLE(crypto-auth,
3131 AC_HELP_STRING([--enable-crypto-auth],[Enable cryptographic authentication])
3132 AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]),
3133 [ case "$enableval" in
3134   no)
3135        AC_MSG_RESULT(no)
3136        AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication])
3137        ;;
3138   *)   AC_MSG_RESULT(yes)
3139        ;;
3140   esac ],
3141        AC_MSG_RESULT(yes)
3142 )
3143
3144 CURL_CHECK_OPTION_NTLM_WB
3145
3146 CURL_CHECK_NTLM_WB
3147
3148 dnl ************************************************************
3149 dnl disable TLS-SRP authentication
3150 dnl
3151 AC_MSG_CHECKING([whether to enable TLS-SRP authentication])
3152 AC_ARG_ENABLE(tls-srp,
3153 AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication])
3154 AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]),
3155 [ case "$enableval" in
3156   no)
3157        AC_MSG_RESULT(no)
3158        AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication])
3159        want_tls_srp=no
3160        ;;
3161   *)   AC_MSG_RESULT(yes)
3162        want_tls_srp=yes
3163        ;;
3164   esac ],
3165        AC_MSG_RESULT(yes)
3166        want_tls_srp=yes
3167 )
3168
3169 if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_SSLEAY_SRP" = "x1") ; then
3170    AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication])
3171    USE_TLS_SRP=1
3172    curl_tls_srp_msg="enabled"
3173 fi
3174
3175 dnl ************************************************************
3176 dnl disable cookies support
3177 dnl
3178 AC_MSG_CHECKING([whether to enable support for cookies])
3179 AC_ARG_ENABLE(cookies,
3180 AC_HELP_STRING([--enable-cookies],[Enable cookies support])
3181 AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
3182 [ case "$enableval" in
3183   no)
3184        AC_MSG_RESULT(no)
3185        AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support])
3186        ;;
3187   *)   AC_MSG_RESULT(yes)
3188        ;;
3189   esac ],
3190        AC_MSG_RESULT(yes)
3191 )
3192
3193 dnl ************************************************************
3194 dnl hiding of library internal symbols
3195 dnl
3196 CURL_CONFIGURE_SYMBOL_HIDING
3197
3198 dnl ************************************************************
3199 dnl enforce SONAME bump
3200 dnl
3201
3202 AC_MSG_CHECKING([whether to enforce SONAME bump])
3203 AC_ARG_ENABLE(soname-bump,
3204 AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump])
3205 AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]),
3206 [ case "$enableval" in
3207   yes)   AC_MSG_RESULT(yes)
3208          soname_bump=yes
3209          ;;
3210   *)
3211          AC_MSG_RESULT(no)
3212          ;;
3213   esac ],
3214         AC_MSG_RESULT($soname_bump)
3215 )
3216 AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
3217
3218
3219 dnl ************************************************************
3220 if test ! -z "$winsock_LIB"; then
3221
3222   dnl If ws2_32 is wanted, make sure it is the _last_ lib in LIBS (makes
3223   dnl things work when built with c-ares). But we can't just move it last
3224   dnl since then other stuff (SSL) won't build. So we simply append it to the
3225   dnl end.
3226
3227   LIBS="$LIBS $winsock_LIB"
3228   TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB"
3229
3230 fi
3231
3232 dnl
3233 dnl All the library dependencies put into $LIB apply to libcurl only.
3234 dnl Those in $CURL_LIBS apply to the curl command-line client only.
3235 dnl Those in $TEST_SERVER_LIBS apply to test servers only.
3236 dnl Those in $ALL_LIBS apply to all targets, including test targets.
3237 dnl
3238 LIBCURL_LIBS=$LIBS
3239
3240 AC_SUBST(LIBCURL_LIBS)
3241 AC_SUBST(CURL_LIBS)
3242 AC_SUBST(TEST_SERVER_LIBS)
3243 AC_SUBST(CURL_NETWORK_LIBS)
3244 LIBS=$ALL_LIBS  dnl LIBS is a magic variable that's used for every link
3245
3246 AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
3247
3248 dnl yes or no
3249 ENABLE_SHARED="$enable_shared"
3250 AC_SUBST(ENABLE_SHARED)
3251
3252 dnl
3253 dnl For keeping supported features and protocols also in pkg-config file
3254 dnl since it is more cross-compile friendly than curl-config
3255 dnl
3256
3257 if test "x$USE_SSLEAY" = "x1"; then
3258   SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3259 elif test -n "$SSL_ENABLED"; then
3260   SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
3261 fi
3262 if test "@KRB4_ENABLED@" = "x1"; then
3263   SUPPORT_FEATURES="$SUPPORT_FEATURES KRB4"
3264 fi
3265 if test "x$IPV6_ENABLED" = "x1"; then
3266   SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
3267 fi
3268 if test "x$HAVE_LIBZ" = "x1"; then
3269   SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
3270 fi
3271 if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then
3272   SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
3273 fi
3274 if test "x$IDN_ENABLED" = "x1"; then
3275   SUPPORT_FEATURES="$SUPPORT_FEATURES IDN"
3276 fi
3277 if test "x$USE_WINDOWS_SSPI" = "x1"; then
3278   SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI"
3279 fi
3280 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3281   if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \
3282       -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \
3283       -o "x$DARWINSSL_ENABLED" = "x1"; then
3284     SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM"
3285     if test "x$NTLM_WB_ENABLED" = "x1"; then
3286       SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB"
3287     fi
3288   fi
3289 fi
3290 if test "x$USE_TLS_SRP" = "x1"; then
3291   SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
3292 fi
3293
3294 AC_SUBST(SUPPORT_FEATURES)
3295
3296 dnl For supported protocols in pkg-config file
3297 if test "x$CURL_DISABLE_HTTP" != "x1"; then
3298   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
3299   if test "x$SSL_ENABLED" = "x1"; then
3300     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS"
3301   fi
3302 fi
3303 if test "x$CURL_DISABLE_FTP" != "x1"; then
3304   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP"
3305   if test "x$SSL_ENABLED" = "x1"; then
3306     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS"
3307   fi
3308 fi
3309 if test "x$CURL_DISABLE_FILE" != "x1"; then
3310   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE"
3311 fi
3312 if test "x$CURL_DISABLE_TELNET" != "x1"; then
3313   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET"
3314 fi
3315 if test "x$CURL_DISABLE_LDAP" != "x1"; then
3316   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP"
3317   if test "x$CURL_DISABLE_LDAPS" != "x1"; then
3318     if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") ||
3319       (test "x$USE_OPENLDAP" != "x1"  && test "x$HAVE_LDAP_SSL" = "x1"); then
3320       SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS"
3321     fi
3322   fi
3323 fi
3324 if test "x$CURL_DISABLE_DICT" != "x1"; then
3325   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT"
3326 fi
3327 if test "x$CURL_DISABLE_TFTP" != "x1"; then
3328   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP"
3329 fi
3330 if test "x$CURL_DISABLE_GOPHER" != "x1"; then
3331   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER"
3332 fi
3333 if test "x$CURL_DISABLE_POP3" != "x1"; then
3334   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3"
3335   if test "x$SSL_ENABLED" = "x1"; then
3336     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S"
3337   fi
3338 fi
3339 if test "x$CURL_DISABLE_IMAP" != "x1"; then
3340   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP"
3341   if test "x$SSL_ENABLED" = "x1"; then
3342     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS"
3343   fi
3344 fi
3345 if test "x$CURL_DISABLE_SMTP" != "x1"; then
3346   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP"
3347   if test "x$SSL_ENABLED" = "x1"; then
3348     SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS"
3349   fi
3350 fi
3351 if test "x$USE_LIBSSH2" = "x1"; then
3352   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP"
3353   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP"
3354 fi
3355 if test "x$CURL_DISABLE_RTSP" != "x1"; then
3356   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP"
3357 fi
3358 if test "x$USE_LIBRTMP" = "x1"; then
3359   SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP"
3360 fi
3361
3362 dnl replace spaces with newlines
3363 dnl sort the lines
3364 dnl replace the newlines back to spaces
3365 SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '`
3366
3367 AC_SUBST(SUPPORT_PROTOCOLS)
3368
3369 dnl squeeze whitespace out of some variables
3370
3371 squeeze CFLAGS
3372 squeeze CPPFLAGS
3373 squeeze DEFS
3374 squeeze LDFLAGS
3375 squeeze LIBS
3376
3377 squeeze CURL_LIBS
3378 squeeze LIBCURL_LIBS
3379 squeeze TEST_SERVER_LIBS
3380 squeeze CURL_NETWORK_LIBS
3381
3382 squeeze SUPPORT_FEATURES
3383 squeeze SUPPORT_PROTOCOLS
3384
3385 if test "x$want_curldebug_assumed" = "xyes" &&
3386   test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then
3387   ac_configure_args="$ac_configure_args --enable-curldebug"
3388 fi
3389
3390 AC_CONFIG_FILES([Makefile \
3391            docs/Makefile \
3392            docs/examples/Makefile \
3393            docs/libcurl/Makefile \
3394            include/Makefile \
3395            include/curl/Makefile \
3396            src/Makefile \
3397            lib/Makefile \
3398            lib/libcurl.vers \
3399            tests/Makefile \
3400            tests/data/Makefile \
3401            tests/server/Makefile \
3402            tests/libtest/Makefile \
3403            tests/unit/Makefile \
3404            packages/Makefile \
3405            packages/Win32/Makefile \
3406            packages/Win32/cygwin/Makefile \
3407            packages/Linux/Makefile \
3408            packages/Linux/RPM/Makefile \
3409            packages/Linux/RPM/curl.spec \
3410            packages/Linux/RPM/curl-ssl.spec \
3411            packages/Solaris/Makefile \
3412            packages/EPM/curl.list \
3413            packages/EPM/Makefile \
3414            packages/vms/Makefile \
3415            packages/AIX/Makefile \
3416            packages/AIX/RPM/Makefile \
3417            packages/AIX/RPM/curl.spec \
3418            curl-config \
3419            libcurl.pc
3420 ])
3421 AC_OUTPUT
3422
3423 CURL_GENERATE_CONFIGUREHELP_PM
3424
3425 AC_MSG_NOTICE([Configured to build curl/libcurl:
3426
3427   curl version:     ${CURLVERSION}
3428   Host setup:       ${host}
3429   Install prefix:   ${prefix}
3430   Compiler:         ${CC}
3431   SSL support:      ${curl_ssl_msg}
3432   SSH support:      ${curl_ssh_msg}
3433   zlib support:     ${curl_zlib_msg}
3434   krb4 support:     ${curl_krb4_msg}
3435   GSSAPI support:   ${curl_gss_msg}
3436   SPNEGO support:   ${curl_spnego_msg}
3437   TLS-SRP support:  ${curl_tls_srp_msg}
3438   resolver:         ${curl_res_msg}
3439   ipv6 support:     ${curl_ipv6_msg}
3440   IDN support:      ${curl_idn_msg}
3441   Build libcurl:    Shared=${enable_shared}, Static=${enable_static}
3442   Built-in manual:  ${curl_manual_msg}
3443   --libcurl option: ${curl_libcurl_msg}
3444   Verbose errors:   ${curl_verbose_msg}
3445   SSPI support:     ${curl_sspi_msg}
3446   ca cert bundle:   ${ca}
3447   ca cert path:     ${capath}
3448   LDAP support:     ${curl_ldap_msg}
3449   LDAPS support:    ${curl_ldaps_msg}
3450   RTSP support:     ${curl_rtsp_msg}
3451   RTMP support:     ${curl_rtmp_msg}
3452   metalink support: ${curl_mtlnk_msg}
3453   Protocols:        ${SUPPORT_PROTOCOLS}
3454 ])
3455
3456 if test "x$soname_bump" = "xyes"; then
3457
3458 cat <<EOM
3459   SONAME bump:     yes - WARNING: this library will be built with the SONAME
3460                    number bumped due to (a detected) ABI breakage.
3461                    See lib/README.curl_off_t for details on this.
3462 EOM
3463
3464 fi
3465