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