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