lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 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 https://curl.haxx.se/docs/copyright.html. |
| 13 | # |
| 14 | # You may opt to use, copy, modify, merge, publish, distribute and/or sell |
| 15 | # copies of the Software, and permit persons to whom the Software is |
| 16 | # furnished to do so, under the terms of the COPYING file. |
| 17 | # |
| 18 | # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| 19 | # KIND, either express or implied. |
| 20 | # |
| 21 | #*************************************************************************** |
| 22 | |
| 23 | # File version for 'aclocal' use. Keep it a single number. |
| 24 | # serial 19 |
| 25 | |
| 26 | dnl CURL_CHECK_OPTION_THREADED_RESOLVER |
| 27 | dnl ------------------------------------------------- |
| 28 | dnl Verify if configure has been invoked with option |
| 29 | dnl --enable-threaded-resolver or --disable-threaded-resolver, and |
| 30 | dnl set shell variable want_thres as appropriate. |
| 31 | |
| 32 | AC_DEFUN([CURL_CHECK_OPTION_THREADED_RESOLVER], [ |
| 33 | AC_MSG_CHECKING([whether to enable the threaded resolver]) |
| 34 | OPT_THRES="default" |
| 35 | AC_ARG_ENABLE(threaded_resolver, |
| 36 | AC_HELP_STRING([--enable-threaded-resolver],[Enable threaded resolver]) |
| 37 | AC_HELP_STRING([--disable-threaded-resolver],[Disable threaded resolver]), |
| 38 | OPT_THRES=$enableval) |
| 39 | case "$OPT_THRES" in |
| 40 | yes) |
| 41 | dnl --enable-threaded-resolver option used |
| 42 | want_thres="yes" |
| 43 | ;; |
| 44 | *) |
| 45 | dnl configure option not specified |
| 46 | want_thres="no" |
| 47 | ;; |
| 48 | esac |
| 49 | AC_MSG_RESULT([$want_thres]) |
| 50 | ]) |
| 51 | |
| 52 | dnl CURL_CHECK_OPTION_ARES |
| 53 | dnl ------------------------------------------------- |
| 54 | dnl Verify if configure has been invoked with option |
| 55 | dnl --enable-ares or --disable-ares, and |
| 56 | dnl set shell variable want_ares as appropriate. |
| 57 | |
| 58 | AC_DEFUN([CURL_CHECK_OPTION_ARES], [ |
| 59 | dnl AC_BEFORE([$0],[CURL_CHECK_OPTION_THREADS])dnl |
| 60 | AC_BEFORE([$0],[CURL_CHECK_LIB_ARES])dnl |
| 61 | AC_MSG_CHECKING([whether to enable c-ares for DNS lookups]) |
| 62 | OPT_ARES="default" |
| 63 | AC_ARG_ENABLE(ares, |
| 64 | AC_HELP_STRING([--enable-ares@<:@=PATH@:>@],[Enable c-ares for DNS lookups]) |
| 65 | AC_HELP_STRING([--disable-ares],[Disable c-ares for DNS lookups]), |
| 66 | OPT_ARES=$enableval) |
| 67 | case "$OPT_ARES" in |
| 68 | no) |
| 69 | dnl --disable-ares option used |
| 70 | want_ares="no" |
| 71 | ;; |
| 72 | default) |
| 73 | dnl configure option not specified |
| 74 | want_ares="no" |
| 75 | ;; |
| 76 | *) |
| 77 | dnl --enable-ares option used |
| 78 | want_ares="yes" |
| 79 | if test -n "$enableval" && test "$enableval" != "yes"; then |
| 80 | want_ares_path="$enableval" |
| 81 | fi |
| 82 | ;; |
| 83 | esac |
| 84 | AC_MSG_RESULT([$want_ares]) |
| 85 | ]) |
| 86 | |
| 87 | |
| 88 | dnl CURL_CHECK_OPTION_CURLDEBUG |
| 89 | dnl ------------------------------------------------- |
| 90 | dnl Verify if configure has been invoked with option |
| 91 | dnl --enable-curldebug or --disable-curldebug, and set |
| 92 | dnl shell variable want_curldebug value as appropriate. |
| 93 | |
| 94 | AC_DEFUN([CURL_CHECK_OPTION_CURLDEBUG], [ |
| 95 | AC_BEFORE([$0],[CURL_CHECK_CURLDEBUG])dnl |
| 96 | AC_MSG_CHECKING([whether to enable curl debug memory tracking]) |
| 97 | OPT_CURLDEBUG_BUILD="default" |
| 98 | AC_ARG_ENABLE(curldebug, |
| 99 | AC_HELP_STRING([--enable-curldebug],[Enable curl debug memory tracking]) |
| 100 | AC_HELP_STRING([--disable-curldebug],[Disable curl debug memory tracking]), |
| 101 | OPT_CURLDEBUG_BUILD=$enableval) |
| 102 | case "$OPT_CURLDEBUG_BUILD" in |
| 103 | no) |
| 104 | dnl --disable-curldebug option used |
| 105 | want_curldebug="no" |
| 106 | AC_MSG_RESULT([no]) |
| 107 | ;; |
| 108 | default) |
| 109 | dnl configure's curldebug option not specified. Initially we will |
| 110 | dnl handle this as a a request to use the same setting as option |
| 111 | dnl --enable-debug. IOW, initially, for debug-enabled builds |
| 112 | dnl this will be handled as a request to enable curldebug if |
| 113 | dnl possible, and for debug-disabled builds this will be handled |
| 114 | dnl as a request to disable curldebug. |
| 115 | if test "$want_debug" = "yes"; then |
| 116 | AC_MSG_RESULT([(assumed) yes]) |
| 117 | else |
| 118 | AC_MSG_RESULT([no]) |
| 119 | fi |
| 120 | want_curldebug_assumed="yes" |
| 121 | want_curldebug="$want_debug" |
| 122 | ;; |
| 123 | *) |
| 124 | dnl --enable-curldebug option used. |
| 125 | dnl The use of this option value is a request to enable curl's |
| 126 | dnl debug memory tracking for the libcurl library. This can only |
| 127 | dnl be done when some requisites are simultaneously satisfied. |
| 128 | dnl Later on, these requisites are verified and if they are not |
| 129 | dnl fully satisfied the option will be ignored and act as if |
| 130 | dnl --disable-curldebug had been given setting shell variable |
| 131 | dnl want_curldebug to 'no'. |
| 132 | want_curldebug="yes" |
| 133 | AC_MSG_RESULT([yes]) |
| 134 | ;; |
| 135 | esac |
| 136 | ]) |
| 137 | |
| 138 | |
| 139 | dnl CURL_CHECK_OPTION_DEBUG |
| 140 | dnl ------------------------------------------------- |
| 141 | dnl Verify if configure has been invoked with option |
| 142 | dnl --enable-debug or --disable-debug, and set shell |
| 143 | dnl variable want_debug value as appropriate. |
| 144 | |
| 145 | AC_DEFUN([CURL_CHECK_OPTION_DEBUG], [ |
| 146 | AC_BEFORE([$0],[CURL_CHECK_OPTION_WARNINGS])dnl |
| 147 | AC_BEFORE([$0],[CURL_CHECK_OPTION_CURLDEBUG])dnl |
| 148 | AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl |
| 149 | AC_MSG_CHECKING([whether to enable debug build options]) |
| 150 | OPT_DEBUG_BUILD="default" |
| 151 | AC_ARG_ENABLE(debug, |
| 152 | AC_HELP_STRING([--enable-debug],[Enable debug build options]) |
| 153 | AC_HELP_STRING([--disable-debug],[Disable debug build options]), |
| 154 | OPT_DEBUG_BUILD=$enableval) |
| 155 | case "$OPT_DEBUG_BUILD" in |
| 156 | no) |
| 157 | dnl --disable-debug option used |
| 158 | want_debug="no" |
| 159 | ;; |
| 160 | default) |
| 161 | dnl configure option not specified |
| 162 | want_debug="no" |
| 163 | ;; |
| 164 | *) |
| 165 | dnl --enable-debug option used |
| 166 | want_debug="yes" |
| 167 | ;; |
| 168 | esac |
| 169 | AC_MSG_RESULT([$want_debug]) |
| 170 | ]) |
| 171 | |
| 172 | dnl CURL_CHECK_OPTION_OPTIMIZE |
| 173 | dnl ------------------------------------------------- |
| 174 | dnl Verify if configure has been invoked with option |
| 175 | dnl --enable-optimize or --disable-optimize, and set |
| 176 | dnl shell variable want_optimize value as appropriate. |
| 177 | |
| 178 | AC_DEFUN([CURL_CHECK_OPTION_OPTIMIZE], [ |
| 179 | AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl |
| 180 | AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl |
| 181 | AC_MSG_CHECKING([whether to enable compiler optimizer]) |
| 182 | OPT_COMPILER_OPTIMIZE="default" |
| 183 | AC_ARG_ENABLE(optimize, |
| 184 | AC_HELP_STRING([--enable-optimize],[Enable compiler optimizations]) |
| 185 | AC_HELP_STRING([--disable-optimize],[Disable compiler optimizations]), |
| 186 | OPT_COMPILER_OPTIMIZE=$enableval) |
| 187 | case "$OPT_COMPILER_OPTIMIZE" in |
| 188 | no) |
| 189 | dnl --disable-optimize option used. We will handle this as |
| 190 | dnl a request to disable compiler optimizations if possible. |
| 191 | dnl If the compiler is known CFLAGS and CPPFLAGS will be |
| 192 | dnl overridden, otherwise this can not be honored. |
| 193 | want_optimize="no" |
| 194 | AC_MSG_RESULT([no]) |
| 195 | ;; |
| 196 | default) |
| 197 | dnl configure's optimize option not specified. Initially we will |
| 198 | dnl handle this as a a request contrary to configure's setting |
| 199 | dnl for --enable-debug. IOW, initially, for debug-enabled builds |
| 200 | dnl this will be handled as a request to disable optimizations if |
| 201 | dnl possible, and for debug-disabled builds this will be handled |
| 202 | dnl initially as a request to enable optimizations if possible. |
| 203 | dnl Finally, if the compiler is known and CFLAGS and CPPFLAGS do |
| 204 | dnl not have any optimizer flag the request will be honored, in |
| 205 | dnl any other case the request can not be honored. |
| 206 | dnl IOW, existing optimizer flags defined in CFLAGS or CPPFLAGS |
| 207 | dnl will always take precedence over any initial assumption. |
| 208 | if test "$want_debug" = "yes"; then |
| 209 | want_optimize="assume_no" |
| 210 | AC_MSG_RESULT([(assumed) no]) |
| 211 | else |
| 212 | want_optimize="assume_yes" |
| 213 | AC_MSG_RESULT([(assumed) yes]) |
| 214 | fi |
| 215 | ;; |
| 216 | *) |
| 217 | dnl --enable-optimize option used. We will handle this as |
| 218 | dnl a request to enable compiler optimizations if possible. |
| 219 | dnl If the compiler is known CFLAGS and CPPFLAGS will be |
| 220 | dnl overridden, otherwise this can not be honored. |
| 221 | want_optimize="yes" |
| 222 | AC_MSG_RESULT([yes]) |
| 223 | ;; |
| 224 | esac |
| 225 | ]) |
| 226 | |
| 227 | |
| 228 | dnl CURL_CHECK_OPTION_SYMBOL_HIDING |
| 229 | dnl ------------------------------------------------- |
| 230 | dnl Verify if configure has been invoked with option |
| 231 | dnl --enable-symbol-hiding or --disable-symbol-hiding, |
| 232 | dnl setting shell variable want_symbol_hiding value. |
| 233 | |
| 234 | AC_DEFUN([CURL_CHECK_OPTION_SYMBOL_HIDING], [ |
| 235 | AC_BEFORE([$0],[CURL_CHECK_COMPILER_SYMBOL_HIDING])dnl |
| 236 | AC_MSG_CHECKING([whether to enable hiding of library internal symbols]) |
| 237 | OPT_SYMBOL_HIDING="default" |
| 238 | AC_ARG_ENABLE(symbol-hiding, |
| 239 | AC_HELP_STRING([--enable-symbol-hiding],[Enable hiding of library internal symbols]) |
| 240 | AC_HELP_STRING([--disable-symbol-hiding],[Disable hiding of library internal symbols]), |
| 241 | OPT_SYMBOL_HIDING=$enableval) |
| 242 | AC_ARG_ENABLE(hidden-symbols, |
| 243 | AC_HELP_STRING([--enable-hidden-symbols],[To be deprecated, use --enable-symbol-hiding]) |
| 244 | AC_HELP_STRING([--disable-hidden-symbols],[To be deprecated, use --disable-symbol-hiding]), |
| 245 | OPT_SYMBOL_HIDING=$enableval) |
| 246 | case "$OPT_SYMBOL_HIDING" in |
| 247 | no) |
| 248 | dnl --disable-symbol-hiding option used. |
| 249 | dnl This is an indication to not attempt hiding of library internal |
| 250 | dnl symbols. Default symbol visibility will be used, which normally |
| 251 | dnl exposes all library internal symbols. |
| 252 | want_symbol_hiding="no" |
| 253 | AC_MSG_RESULT([no]) |
| 254 | ;; |
| 255 | default) |
| 256 | dnl configure's symbol-hiding option not specified. |
| 257 | dnl Handle this as if --enable-symbol-hiding option was given. |
| 258 | want_symbol_hiding="yes" |
| 259 | AC_MSG_RESULT([yes]) |
| 260 | ;; |
| 261 | *) |
| 262 | dnl --enable-symbol-hiding option used. |
| 263 | dnl This is an indication to attempt hiding of library internal |
| 264 | dnl symbols. This is only supported on some compilers/linkers. |
| 265 | want_symbol_hiding="yes" |
| 266 | AC_MSG_RESULT([yes]) |
| 267 | ;; |
| 268 | esac |
| 269 | ]) |
| 270 | |
| 271 | |
| 272 | dnl CURL_CHECK_OPTION_THREADS |
| 273 | dnl ------------------------------------------------- |
| 274 | dnl Verify if configure has been invoked with option |
| 275 | dnl --enable-threads or --disable-threads, and |
| 276 | dnl set shell variable want_threads as appropriate. |
| 277 | |
| 278 | dnl AC_DEFUN([CURL_CHECK_OPTION_THREADS], [ |
| 279 | dnl AC_BEFORE([$0],[CURL_CHECK_LIB_THREADS])dnl |
| 280 | dnl AC_MSG_CHECKING([whether to enable threads for DNS lookups]) |
| 281 | dnl OPT_THREADS="default" |
| 282 | dnl AC_ARG_ENABLE(threads, |
| 283 | dnl AC_HELP_STRING([--enable-threads@<:@=PATH@:>@],[Enable threads for DNS lookups]) |
| 284 | dnl AC_HELP_STRING([--disable-threads],[Disable threads for DNS lookups]), |
| 285 | dnl OPT_THREADS=$enableval) |
| 286 | dnl case "$OPT_THREADS" in |
| 287 | dnl no) |
| 288 | dnl dnl --disable-threads option used |
| 289 | dnl want_threads="no" |
| 290 | dnl AC_MSG_RESULT([no]) |
| 291 | dnl ;; |
| 292 | dnl default) |
| 293 | dnl dnl configure option not specified |
| 294 | dnl want_threads="no" |
| 295 | dnl AC_MSG_RESULT([(assumed) no]) |
| 296 | dnl ;; |
| 297 | dnl *) |
| 298 | dnl dnl --enable-threads option used |
| 299 | dnl want_threads="yes" |
| 300 | dnl want_threads_path="$enableval" |
| 301 | dnl AC_MSG_RESULT([yes]) |
| 302 | dnl ;; |
| 303 | dnl esac |
| 304 | dnl # |
| 305 | dnl if test "$want_ares" = "assume_yes"; then |
| 306 | dnl if test "$want_threads" = "yes"; then |
| 307 | dnl AC_MSG_CHECKING([whether to ignore c-ares enabling assumed setting]) |
| 308 | dnl AC_MSG_RESULT([yes]) |
| 309 | dnl want_ares="no" |
| 310 | dnl else |
| 311 | dnl want_ares="yes" |
| 312 | dnl fi |
| 313 | dnl fi |
| 314 | dnl if test "$want_threads" = "yes" && test "$want_ares" = "yes"; then |
| 315 | dnl AC_MSG_ERROR([options --enable-ares and --enable-threads are mutually exclusive, at most one may be enabled.]) |
| 316 | dnl fi |
| 317 | dnl ]) |
| 318 | |
| 319 | dnl CURL_CHECK_OPTION_RT |
| 320 | dnl ------------------------------------------------- |
| 321 | dnl Verify if configure has been involed with option |
| 322 | dnl --disable-rt and set shell variable dontwant_rt |
| 323 | dnl as appropriate. |
| 324 | |
| 325 | AC_DEFUN([CURL_CHECK_OPTION_RT], [ |
| 326 | AC_BEFORE([$0], [CURL_CHECK_LIB_THREADS])dnl |
| 327 | AC_MSG_CHECKING([whether to disable dependency on -lrt]) |
| 328 | OPT_RT="default" |
| 329 | AC_ARG_ENABLE(rt, |
| 330 | AC_HELP_STRING([--disable-rt],[disable dependency on -lrt]), |
| 331 | OPT_RT=$enableval) |
| 332 | case "$OPT_RT" in |
| 333 | no) |
| 334 | dnl --disable-rt used (reverse logic) |
| 335 | dontwant_rt="yes" |
| 336 | AC_MSG_RESULT([yes]) |
| 337 | ;; |
| 338 | default) |
| 339 | dnl configure option not specified (so not disabled) |
| 340 | dontwant_rt="no" |
| 341 | AC_MSG_RESULT([(assumed no)]) |
| 342 | ;; |
| 343 | *) |
| 344 | dnl --enable-rt option used (reverse logic) |
| 345 | dontwant_rt="no" |
| 346 | AC_MSG_RESULT([no]) |
| 347 | ;; |
| 348 | esac |
| 349 | ]) |
| 350 | |
| 351 | |
| 352 | dnl CURL_CHECK_OPTION_WARNINGS |
| 353 | dnl ------------------------------------------------- |
| 354 | dnl Verify if configure has been invoked with option |
| 355 | dnl --enable-warnings or --disable-warnings, and set |
| 356 | dnl shell variable want_warnings as appropriate. |
| 357 | |
| 358 | AC_DEFUN([CURL_CHECK_OPTION_WARNINGS], [ |
| 359 | AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl |
| 360 | AC_BEFORE([$0],[CURL_CHECK_OPTION_WERROR])dnl |
| 361 | AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl |
| 362 | AC_MSG_CHECKING([whether to enable strict compiler warnings]) |
| 363 | OPT_COMPILER_WARNINGS="default" |
| 364 | AC_ARG_ENABLE(warnings, |
| 365 | AC_HELP_STRING([--enable-warnings],[Enable strict compiler warnings]) |
| 366 | AC_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]), |
| 367 | OPT_COMPILER_WARNINGS=$enableval) |
| 368 | case "$OPT_COMPILER_WARNINGS" in |
| 369 | no) |
| 370 | dnl --disable-warnings option used |
| 371 | want_warnings="no" |
| 372 | ;; |
| 373 | default) |
| 374 | dnl configure option not specified, so |
| 375 | dnl use same setting as --enable-debug |
| 376 | want_warnings="$want_debug" |
| 377 | ;; |
| 378 | *) |
| 379 | dnl --enable-warnings option used |
| 380 | want_warnings="yes" |
| 381 | ;; |
| 382 | esac |
| 383 | AC_MSG_RESULT([$want_warnings]) |
| 384 | ]) |
| 385 | |
| 386 | dnl CURL_CHECK_OPTION_WERROR |
| 387 | dnl ------------------------------------------------- |
| 388 | dnl Verify if configure has been invoked with option |
| 389 | dnl --enable-werror or --disable-werror, and set |
| 390 | dnl shell variable want_werror as appropriate. |
| 391 | |
| 392 | AC_DEFUN([CURL_CHECK_OPTION_WERROR], [ |
| 393 | AC_BEFORE([$0],[CURL_CHECK_COMPILER])dnl |
| 394 | AC_MSG_CHECKING([whether to enable compiler warnings as errors]) |
| 395 | OPT_COMPILER_WERROR="default" |
| 396 | AC_ARG_ENABLE(werror, |
| 397 | AC_HELP_STRING([--enable-werror],[Enable compiler warnings as errors]) |
| 398 | AC_HELP_STRING([--disable-werror],[Disable compiler warnings as errors]), |
| 399 | OPT_COMPILER_WERROR=$enableval) |
| 400 | case "$OPT_COMPILER_WERROR" in |
| 401 | no) |
| 402 | dnl --disable-werror option used |
| 403 | want_werror="no" |
| 404 | ;; |
| 405 | default) |
| 406 | dnl configure option not specified |
| 407 | want_werror="no" |
| 408 | ;; |
| 409 | *) |
| 410 | dnl --enable-werror option used |
| 411 | want_werror="yes" |
| 412 | ;; |
| 413 | esac |
| 414 | AC_MSG_RESULT([$want_werror]) |
| 415 | ]) |
| 416 | |
| 417 | |
| 418 | dnl CURL_CHECK_NONBLOCKING_SOCKET |
| 419 | dnl ------------------------------------------------- |
| 420 | dnl Check for how to set a socket into non-blocking state. |
| 421 | |
| 422 | AC_DEFUN([CURL_CHECK_NONBLOCKING_SOCKET], [ |
| 423 | AC_REQUIRE([CURL_CHECK_FUNC_FCNTL])dnl |
| 424 | AC_REQUIRE([CURL_CHECK_FUNC_IOCTL])dnl |
| 425 | AC_REQUIRE([CURL_CHECK_FUNC_IOCTLSOCKET])dnl |
| 426 | AC_REQUIRE([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL])dnl |
| 427 | AC_REQUIRE([CURL_CHECK_FUNC_SETSOCKOPT])dnl |
| 428 | # |
| 429 | tst_method="unknown" |
| 430 | |
| 431 | AC_MSG_CHECKING([how to set a socket into non-blocking mode]) |
| 432 | if test "x$curl_cv_func_fcntl_o_nonblock" = "xyes"; then |
| 433 | tst_method="fcntl O_NONBLOCK" |
| 434 | elif test "x$curl_cv_func_ioctl_fionbio" = "xyes"; then |
| 435 | tst_method="ioctl FIONBIO" |
| 436 | elif test "x$curl_cv_func_ioctlsocket_fionbio" = "xyes"; then |
| 437 | tst_method="ioctlsocket FIONBIO" |
| 438 | elif test "x$curl_cv_func_ioctlsocket_camel_fionbio" = "xyes"; then |
| 439 | tst_method="IoctlSocket FIONBIO" |
| 440 | elif test "x$curl_cv_func_setsockopt_so_nonblock" = "xyes"; then |
| 441 | tst_method="setsockopt SO_NONBLOCK" |
| 442 | fi |
| 443 | AC_MSG_RESULT([$tst_method]) |
| 444 | if test "$tst_method" = "unknown"; then |
| 445 | AC_MSG_WARN([cannot determine non-blocking socket method.]) |
| 446 | fi |
| 447 | ]) |
| 448 | |
| 449 | |
| 450 | dnl CURL_CONFIGURE_SYMBOL_HIDING |
| 451 | dnl ------------------------------------------------- |
| 452 | dnl Depending on --enable-symbol-hiding or --disable-symbol-hiding |
| 453 | dnl configure option, and compiler capability to actually honor such |
| 454 | dnl option, this will modify compiler flags as appropriate and also |
| 455 | dnl provide needed definitions for configuration and Makefile.am files. |
| 456 | dnl This macro should not be used until all compilation tests have |
| 457 | dnl been done to prevent interferences on other tests. |
| 458 | |
| 459 | AC_DEFUN([CURL_CONFIGURE_SYMBOL_HIDING], [ |
| 460 | AC_MSG_CHECKING([whether hiding of library internal symbols will actually happen]) |
| 461 | CFLAG_CURL_SYMBOL_HIDING="" |
| 462 | doing_symbol_hiding="no" |
| 463 | if test x"$curl_cv_native_windows" != "xyes" && |
| 464 | test "$want_symbol_hiding" = "yes" && |
| 465 | test "$supports_symbol_hiding" = "yes"; then |
| 466 | doing_symbol_hiding="yes" |
| 467 | CFLAG_CURL_SYMBOL_HIDING="$symbol_hiding_CFLAGS" |
| 468 | AC_DEFINE_UNQUOTED(CURL_EXTERN_SYMBOL, $symbol_hiding_EXTERN, |
| 469 | [Definition to make a library symbol externally visible.]) |
| 470 | AC_MSG_RESULT([yes]) |
| 471 | else |
| 472 | AC_MSG_RESULT([no]) |
| 473 | fi |
| 474 | AM_CONDITIONAL(DOING_CURL_SYMBOL_HIDING, test x$doing_symbol_hiding = xyes) |
| 475 | AC_SUBST(CFLAG_CURL_SYMBOL_HIDING) |
| 476 | ]) |
| 477 | |
| 478 | |
| 479 | dnl CURL_CHECK_LIB_ARES |
| 480 | dnl ------------------------------------------------- |
| 481 | dnl When c-ares library support has been requested, |
| 482 | dnl performs necessary checks and adjustsments needed |
| 483 | dnl to enable support of this library. |
| 484 | |
| 485 | AC_DEFUN([CURL_CHECK_LIB_ARES], [ |
| 486 | # |
| 487 | if test "$want_ares" = "yes"; then |
| 488 | dnl c-ares library support has been requested |
| 489 | clean_CPPFLAGS="$CPPFLAGS" |
| 490 | clean_LDFLAGS="$LDFLAGS" |
| 491 | clean_LIBS="$LIBS" |
| 492 | embedded_ares="unknown" |
| 493 | configure_runpath=`pwd` |
| 494 | embedded_ares_builddir="$configure_runpath/ares" |
| 495 | if test -n "$want_ares_path"; then |
| 496 | dnl c-ares library path has been specified |
| 497 | ares_CPPFLAGS="-I$want_ares_path/include" |
| 498 | ares_LDFLAGS="-L$want_ares_path/lib" |
| 499 | ares_LIBS="-lcares" |
| 500 | else |
| 501 | dnl c-ares library path has not been given |
| 502 | if test -d "$srcdir/ares"; then |
| 503 | dnl c-ares sources embedded in curl tree |
| 504 | embedded_ares="yes" |
| 505 | AC_CONFIG_SUBDIRS(ares) |
| 506 | dnl c-ares has installable configured header files, path |
| 507 | dnl inclusion fully done in makefiles for in-tree builds. |
| 508 | ares_CPPFLAGS="" |
| 509 | ares_LDFLAGS="-L$embedded_ares_builddir" |
| 510 | ares_LIBS="-lcares" |
| 511 | else |
| 512 | dnl c-ares path not specified, use defaults |
| 513 | ares_CPPFLAGS="" |
| 514 | ares_LDFLAGS="" |
| 515 | ares_LIBS="-lcares" |
| 516 | fi |
| 517 | fi |
| 518 | # |
| 519 | CPPFLAGS="$clean_CPPFLAGS $ares_CPPFLAGS" |
| 520 | LDFLAGS="$clean_LDFLAGS $ares_LDFLAGS" |
| 521 | LIBS="$ares_LIBS $clean_LIBS" |
| 522 | # |
| 523 | if test "$embedded_ares" != "yes"; then |
| 524 | dnl check if c-ares new enough when not using an embedded |
| 525 | dnl source tree one which normally has not been built yet. |
| 526 | AC_MSG_CHECKING([that c-ares is good and recent enough]) |
| 527 | AC_LINK_IFELSE([ |
| 528 | AC_LANG_PROGRAM([[ |
| 529 | #include <ares.h> |
| 530 | /* set of dummy functions in case c-ares was built with debug */ |
| 531 | void curl_dofree() { } |
| 532 | void curl_sclose() { } |
| 533 | void curl_domalloc() { } |
| 534 | void curl_docalloc() { } |
| 535 | void curl_socket() { } |
| 536 | ]],[[ |
| 537 | ares_channel channel; |
| 538 | ares_cancel(channel); /* added in 1.2.0 */ |
| 539 | ares_process_fd(channel, 0, 0); /* added in 1.4.0 */ |
| 540 | ares_dup(&channel, channel); /* added in 1.6.0 */ |
| 541 | ]]) |
| 542 | ],[ |
| 543 | AC_MSG_RESULT([yes]) |
| 544 | ],[ |
| 545 | AC_MSG_RESULT([no]) |
| 546 | AC_MSG_ERROR([c-ares library defective or too old]) |
| 547 | dnl restore initial settings |
| 548 | CPPFLAGS="$clean_CPPFLAGS" |
| 549 | LDFLAGS="$clean_LDFLAGS" |
| 550 | LIBS="$clean_LIBS" |
| 551 | # prevent usage |
| 552 | want_ares="no" |
| 553 | ]) |
| 554 | fi |
| 555 | if test "$want_ares" = "yes"; then |
| 556 | dnl finally c-ares will be used |
| 557 | AC_DEFINE(USE_ARES, 1, [Define to enable c-ares support]) |
| 558 | AC_SUBST([USE_ARES], [1]) |
| 559 | curl_res_msg="c-ares" |
| 560 | fi |
| 561 | fi |
| 562 | ]) |
| 563 | |
| 564 | |
| 565 | dnl CURL_CHECK_OPTION_NTLM_WB |
| 566 | dnl ------------------------------------------------- |
| 567 | dnl Verify if configure has been invoked with option |
| 568 | dnl --enable-ntlm-wb or --disable-ntlm-wb, and set |
| 569 | dnl shell variable want_ntlm_wb and want_ntlm_wb_file |
| 570 | dnl as appropriate. |
| 571 | |
| 572 | AC_DEFUN([CURL_CHECK_OPTION_NTLM_WB], [ |
| 573 | AC_BEFORE([$0],[CURL_CHECK_NTLM_WB])dnl |
| 574 | OPT_NTLM_WB="default" |
| 575 | AC_ARG_ENABLE(ntlm-wb, |
| 576 | AC_HELP_STRING([--enable-ntlm-wb@<:@=FILE@:>@],[Enable NTLM delegation to winbind's ntlm_auth helper, where FILE is ntlm_auth's absolute filename (default: /usr/bin/ntlm_auth)]) |
| 577 | AC_HELP_STRING([--disable-ntlm-wb],[Disable NTLM delegation to winbind's ntlm_auth helper]), |
| 578 | OPT_NTLM_WB=$enableval) |
| 579 | want_ntlm_wb_file="/usr/bin/ntlm_auth" |
| 580 | case "$OPT_NTLM_WB" in |
| 581 | no) |
| 582 | dnl --disable-ntlm-wb option used |
| 583 | want_ntlm_wb="no" |
| 584 | ;; |
| 585 | default) |
| 586 | dnl configure option not specified |
| 587 | want_ntlm_wb="yes" |
| 588 | ;; |
| 589 | *) |
| 590 | dnl --enable-ntlm-wb option used |
| 591 | want_ntlm_wb="yes" |
| 592 | if test -n "$enableval" && test "$enableval" != "yes"; then |
| 593 | want_ntlm_wb_file="$enableval" |
| 594 | fi |
| 595 | ;; |
| 596 | esac |
| 597 | ]) |
| 598 | |
| 599 | |
| 600 | dnl CURL_CHECK_NTLM_WB |
| 601 | dnl ------------------------------------------------- |
| 602 | dnl Check if support for NTLM delegation to winbind's |
| 603 | dnl ntlm_auth helper will finally be enabled depending |
| 604 | dnl on given configure options and target platform. |
| 605 | |
| 606 | AC_DEFUN([CURL_CHECK_NTLM_WB], [ |
| 607 | AC_REQUIRE([CURL_CHECK_OPTION_NTLM_WB])dnl |
| 608 | AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl |
| 609 | AC_MSG_CHECKING([whether to enable NTLM delegation to winbind's helper]) |
| 610 | if test "$curl_cv_native_windows" = "yes" || |
| 611 | test "x$SSL_ENABLED" = "x"; then |
| 612 | want_ntlm_wb_file="" |
| 613 | want_ntlm_wb="no" |
| 614 | fi |
| 615 | AC_MSG_RESULT([$want_ntlm_wb]) |
| 616 | if test "$want_ntlm_wb" = "yes"; then |
| 617 | AC_DEFINE(NTLM_WB_ENABLED, 1, |
| 618 | [Define to enable NTLM delegation to winbind's ntlm_auth helper.]) |
| 619 | AC_DEFINE_UNQUOTED(NTLM_WB_FILE, "$want_ntlm_wb_file", |
| 620 | [Define absolute filename for winbind's ntlm_auth helper.]) |
| 621 | NTLM_WB_ENABLED=1 |
| 622 | fi |
| 623 | ]) |
| 624 | |