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