1 AC_PREREQ(2.57) 2 3 dnl Version not hardcoded here. Fetched later from ares_version.h 4 AC_INIT([c-ares], [1.7.5], 5 [c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares]) 6 7 CARES_OVERRIDE_AUTOCONF 8 9 AC_CONFIG_SRCDIR([ares_ipv6.h]) 10 AM_CONFIG_HEADER([ares_config.h ares_build.h]) 11 AC_CONFIG_MACRO_DIR([m4]) 12 AM_MAINTAINER_MODE 13 14 CARES_CHECK_OPTION_DEBUG 15 CARES_CHECK_OPTION_OPTIMIZE 16 CARES_CHECK_OPTION_WARNINGS 17 CARES_CHECK_OPTION_WERROR 18 CARES_CHECK_OPTION_CURLDEBUG 19 CARES_CHECK_OPTION_SYMBOL_HIDING 20 21 CARES_CHECK_PATH_SEPARATOR_REQUIRED 22 23 dnl SED is mandatory for configure process and libtool. 24 dnl Set it now, allowing it to be changed later. 25 AC_PATH_PROG([SED], [sed], [not_found], 26 [$PATH:/usr/bin:/usr/local/bin]) 27 if test -z "$SED" || test "$SED" = "not_found"; then 28 AC_MSG_ERROR([sed not found in PATH. Cannot continue without sed.]) 29 fi 30 AC_SUBST([SED]) 31 32 dnl GREP is mandatory for configure process and libtool. 33 dnl Set it now, allowing it to be changed later. 34 AC_PATH_PROG([GREP], [grep], [not_found], 35 [$PATH:/usr/bin:/usr/local/bin]) 36 if test -z "$GREP" || test "$GREP" = "not_found"; then 37 AC_MSG_ERROR([grep not found in PATH. Cannot continue without grep.]) 38 fi 39 AC_SUBST([GREP]) 40 41 dnl EGREP is mandatory for configure process and libtool. 42 dnl Set it now, allowing it to be changed later. 43 if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then 44 AC_MSG_CHECKING([for egrep]) 45 EGREP="$GREP -E" 46 AC_MSG_RESULT([$EGREP]) 47 else 48 AC_PATH_PROG([EGREP], [egrep], [not_found], 49 [$PATH:/usr/bin:/usr/local/bin]) 50 fi 51 if test -z "$EGREP" || test "$EGREP" = "not_found"; then 52 AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.]) 53 fi 54 AC_SUBST([EGREP]) 55 56 dnl AR is mandatory for configure process and libtool. 57 dnl This is target dependent, so check it as a tool. 58 AC_PATH_TOOL([AR], [ar], [not_found], 59 [$PATH:/usr/bin:/usr/local/bin]) 60 if test -z "$AR" || test "$AR" = "not_found"; then 61 AC_MSG_ERROR([ar not found in PATH. Cannot continue without ar.]) 62 fi 63 AC_SUBST([AR]) 64 65 dnl Remove non-configure distributed ares_build.h 66 if test -f ${srcdir}/ares_build.h; then 67 rm -f ${srcdir}/ares_build.h 68 fi 69 70 AM_INIT_AUTOMAKE 71 72 dnl 73 dnl Detect the canonical host and target build environment 74 dnl 75 76 AC_CANONICAL_HOST 77 dnl Get system canonical name 78 AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS]) 79 80 CARES_CHECK_PROG_CC 81 AM_PROG_CC_C_O 82 AC_PROG_INSTALL 83 84 dnl This defines _ALL_SOURCE for AIX 85 CARES_CHECK_AIX_ALL_SOURCE 86 87 dnl Our configure and build reentrant settings 88 CARES_CONFIGURE_THREAD_SAFE 89 CARES_CONFIGURE_REENTRANT 90 91 dnl check for how to do large files 92 AC_SYS_LARGEFILE 93 94 case $host_os in 95 solaris*) 96 AC_DEFINE(ETC_INET, 1, [if a /etc/inet dir is being used]) 97 ;; 98 esac 99 100 dnl support building of Windows DLLs 101 AC_LIBTOOL_WIN32_DLL 102 103 dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD 104 AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)]) 105 case $host in 106 x86_64*linux*|amd64*freebsd*|ia64*freebsd*) 107 AC_MSG_RESULT([yes]) 108 with_pic=yes 109 ;; 110 *) 111 AC_MSG_RESULT([no]) 112 ;; 113 esac 114 115 AC_MSG_CHECKING([if compiler is icc (to build with PIC)]) 116 case $CC in 117 icc | */icc) 118 AC_MSG_RESULT([yes]) 119 with_pic=yes 120 ;; 121 *) 122 AC_MSG_RESULT([no]) 123 ;; 124 esac 125 126 dnl libtool setup 127 AC_PROG_LIBTOOL 128 129 AC_MSG_CHECKING([if we need CARES_BUILDING_LIBRARY]) 130 case $host in 131 *-*-mingw*) 132 AC_DEFINE(CARES_BUILDING_LIBRARY, 1, [when building c-ares library]) 133 AC_MSG_RESULT(yes) 134 AC_MSG_CHECKING([if we need CARES_STATICLIB]) 135 if test "X$enable_shared" = "Xno" 136 then 137 AC_DEFINE(CARES_STATICLIB, 1, [when not building a shared library]) 138 AC_MSG_RESULT(yes) 139 else 140 AC_MSG_RESULT(no) 141 fi 142 ;; 143 *) 144 AC_MSG_RESULT(no) 145 ;; 146 esac 147 148 dnl ********************************************************************** 149 dnl platform/compiler/architecture specific checks/flags 150 dnl ********************************************************************** 151 152 CARES_CHECK_COMPILER 153 CARES_SET_COMPILER_BASIC_OPTS 154 CARES_SET_COMPILER_DEBUG_OPTS 155 CARES_SET_COMPILER_OPTIMIZE_OPTS 156 CARES_SET_COMPILER_WARNING_OPTS 157 158 if test "$compiler_id" = "INTEL_UNIX_C"; then 159 # 160 if test "$compiler_num" -ge "1000"; then 161 dnl icc 10.X or later 162 CFLAGS="$CFLAGS -shared-intel" 163 elif test "$compiler_num" -ge "900"; then 164 dnl icc 9.X specific 165 CFLAGS="$CFLAGS -i-dynamic" 166 fi 167 # 168 fi 169 170 CARES_CHECK_COMPILER_HALT_ON_ERROR 171 CARES_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE 172 CARES_CHECK_COMPILER_SYMBOL_HIDING 173 174 CARES_CHECK_NO_UNDEFINED 175 AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes) 176 177 CARES_CHECK_CURLDEBUG 178 AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes) 179 180 dnl ********************************************************************** 181 dnl Compilation based checks should not be done before this point. 182 dnl ********************************************************************** 183 184 dnl ********************************************************************** 185 dnl Make sure that our checks for headers windows.h winsock.h winsock2.h 186 dnl and ws2tcpip.h take precedence over any other further checks which 187 dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for 188 dnl this specific header files. And do them before its results are used. 189 dnl ********************************************************************** 190 191 CURL_CHECK_HEADER_WINDOWS 192 CURL_CHECK_NATIVE_WINDOWS 193 case X-"$ac_cv_native_windows" in 194 X-yes) 195 CURL_CHECK_HEADER_WINSOCK 196 CURL_CHECK_HEADER_WINSOCK2 197 CURL_CHECK_HEADER_WS2TCPIP 198 ;; 199 *) 200 ac_cv_header_winsock_h="no" 201 ac_cv_header_winsock2_h="no" 202 ac_cv_header_ws2tcpip_h="no" 203 ;; 204 esac 205 206 dnl ********************************************************************** 207 dnl Checks for libraries. 208 dnl ********************************************************************** 209 210 CARES_CHECK_LIB_XNET 211 212 dnl gethostbyname without lib or in the nsl lib? 213 AC_CHECK_FUNC(gethostbyname, 214 [HAVE_GETHOSTBYNAME="1" 215 ], 216 [ AC_CHECK_LIB(nsl, gethostbyname, 217 [HAVE_GETHOSTBYNAME="1" 218 LIBS="$LIBS -lnsl" 219 ]) 220 ]) 221 222 if test "$HAVE_GETHOSTBYNAME" != "1" 223 then 224 dnl gethostbyname in the socket lib? 225 AC_CHECK_LIB(socket, gethostbyname, 226 [HAVE_GETHOSTBYNAME="1" 227 LIBS="$LIBS -lsocket" 228 ]) 229 fi 230 231 dnl At least one system has been identified to require BOTH nsl and socket 232 dnl libs at the same time to link properly. 233 if test "$HAVE_GETHOSTBYNAME" != "1" 234 then 235 AC_MSG_CHECKING([for gethostbyname with both nsl and socket libs]) 236 my_ac_save_LIBS=$LIBS 237 LIBS="-lnsl -lsocket $LIBS" 238 AC_LINK_IFELSE([ 239 AC_LANG_PROGRAM([[ 240 ]],[[ 241 gethostbyname(); 242 ]]) 243 ],[ 244 AC_MSG_RESULT([yes]) 245 HAVE_GETHOSTBYNAME="1" 246 ],[ 247 AC_MSG_RESULT([no]) 248 LIBS=$my_ac_save_LIBS 249 ]) 250 fi 251 252 if test "$HAVE_GETHOSTBYNAME" != "1" 253 then 254 dnl This is for winsock systems 255 if test "$ac_cv_header_windows_h" = "yes"; then 256 if test "$ac_cv_header_winsock_h" = "yes"; then 257 case $host in 258 *-*-mingw32ce*) 259 winsock_LIB="-lwinsock" 260 ;; 261 *) 262 winsock_LIB="-lwsock32" 263 ;; 264 esac 265 fi 266 if test "$ac_cv_header_winsock2_h" = "yes"; then 267 winsock_LIB="-lws2_32" 268 fi 269 if test ! -z "$winsock_LIB"; then 270 my_ac_save_LIBS=$LIBS 271 LIBS="$winsock_LIB $LIBS" 272 AC_MSG_CHECKING([for gethostbyname in $winsock_LIB]) 273 AC_LINK_IFELSE([ 274 AC_LANG_PROGRAM([[ 275 #ifdef HAVE_WINDOWS_H 276 #ifndef WIN32_LEAN_AND_MEAN 277 #define WIN32_LEAN_AND_MEAN 278 #endif 279 #include <windows.h> 280 #ifdef HAVE_WINSOCK2_H 281 #include <winsock2.h> 282 #else 283 #ifdef HAVE_WINSOCK_H 284 #include <winsock.h> 285 #endif 286 #endif 287 #endif 288 ]],[[ 289 gethostbyname("www.dummysite.com"); 290 ]]) 291 ],[ 292 AC_MSG_RESULT([yes]) 293 HAVE_GETHOSTBYNAME="1" 294 ],[ 295 AC_MSG_RESULT([no]) 296 winsock_LIB="" 297 LIBS=$my_ac_save_LIBS 298 ]) 299 fi 300 fi 301 fi 302 303 if test "$HAVE_GETHOSTBYNAME" != "1" 304 then 305 dnl This is for Minix 3.1 306 AC_MSG_CHECKING([for gethostbyname for Minix 3]) 307 AC_LINK_IFELSE([ 308 AC_LANG_PROGRAM([[ 309 /* Older Minix versions may need <net/gen/netdb.h> here instead */ 310 #include <netdb.h> 311 ]],[[ 312 gethostbyname("www.dummysite.com"); 313 ]]) 314 ],[ 315 AC_MSG_RESULT([yes]) 316 HAVE_GETHOSTBYNAME="1" 317 ],[ 318 AC_MSG_RESULT([no]) 319 ]) 320 fi 321 322 if test "$HAVE_GETHOSTBYNAME" != "1" 323 then 324 dnl This is for eCos with a stubbed DNS implementation 325 AC_MSG_CHECKING([for gethostbyname for eCos]) 326 AC_LINK_IFELSE([ 327 AC_LANG_PROGRAM([[ 328 #include <stdio.h> 329 #include <netdb.h> 330 ]],[[ 331 gethostbyname("www.dummysite.com"); 332 ]]) 333 ],[ 334 AC_MSG_RESULT([yes]) 335 HAVE_GETHOSTBYNAME="1" 336 ],[ 337 AC_MSG_RESULT([no]) 338 ]) 339 fi 340 341 if test "$HAVE_GETHOSTBYNAME" != "1" 342 then 343 dnl gethostbyname in the net lib - for BeOS 344 AC_CHECK_LIB(net, gethostbyname, 345 [HAVE_GETHOSTBYNAME="1" 346 LIBS="$LIBS -lnet" 347 ]) 348 fi 349 350 351 if test "$HAVE_GETHOSTBYNAME" != "1"; then 352 AC_MSG_ERROR([couldn't find libraries for gethostbyname()]) 353 fi 354 355 dnl resolve lib? 356 AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ]) 357 358 if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then 359 AC_CHECK_LIB(resolve, strcasecmp, 360 [LIBS="-lresolve $LIBS"], 361 , 362 -lnsl) 363 fi 364 ac_cv_func_strcasecmp="no" 365 366 CARES_CHECK_LIBS_CONNECT 367 368 dnl ********************************************************************** 369 dnl In case that function clock_gettime with monotonic timer is available, 370 dnl check for additional required libraries. 371 dnl ********************************************************************** 372 CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC 373 374 AC_MSG_CHECKING([whether to use libgcc]) 375 AC_ARG_ENABLE(libgcc, 376 AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]), 377 [ case "$enableval" in 378 yes) 379 LIBS="$LIBS -lgcc" 380 AC_MSG_RESULT(yes) 381 ;; 382 *) AC_MSG_RESULT(no) 383 ;; 384 esac ], 385 AC_MSG_RESULT(no) 386 ) 387 388 389 dnl Let's hope this split URL remains working: 390 dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ 391 dnl genprogc/thread_quick_ref.htm 392 393 394 dnl ********************************************************************** 395 dnl Back to "normal" configuring 396 dnl ********************************************************************** 397 398 dnl Checks for header files. 399 AC_HEADER_STDC 400 401 CURL_CHECK_HEADER_MALLOC 402 CURL_CHECK_HEADER_MEMORY 403 404 dnl check for a few basic system headers we need 405 AC_CHECK_HEADERS( 406 sys/types.h \ 407 sys/time.h \ 408 sys/select.h \ 409 sys/socket.h \ 410 sys/ioctl.h \ 411 sys/param.h \ 412 sys/uio.h \ 413 assert.h \ 414 netdb.h \ 415 netinet/in.h \ 416 netinet/tcp.h \ 417 net/if.h \ 418 errno.h \ 419 socket.h \ 420 strings.h \ 421 stdbool.h \ 422 time.h \ 423 limits.h \ 424 arpa/nameser.h \ 425 arpa/nameser_compat.h \ 426 arpa/inet.h, 427 dnl to do if not found 428 [], 429 dnl to do if found 430 [], 431 dnl default includes 432 [ 433 #ifdef HAVE_SYS_TYPES_H 434 #include <sys/types.h> 435 #endif 436 #ifdef HAVE_SYS_TIME_H 437 #include <sys/time.h> 438 #endif 439 dnl We do this default-include simply to make sure that the nameser_compat.h 440 dnl header *REALLY* can be include after the new nameser.h. It seems AIX 5.1 441 dnl (and others?) is not designed to allow this. 442 #ifdef HAVE_ARPA_NAMESER_H 443 #include <arpa/nameser.h> 444 #endif 445 446 dnl *Sigh* these are needed in order for net/if.h to get properly detected. 447 #ifdef HAVE_SYS_SOCKET_H 448 #include <sys/socket.h> 449 #endif 450 #ifdef HAVE_NETINET_IN_H 451 #include <netinet/in.h> 452 #endif 453 ] 454 ) 455 456 dnl Checks for typedefs, structures, and compiler characteristics. 457 AC_C_CONST 458 AC_TYPE_SIZE_T 459 AC_HEADER_TIME 460 CURL_CHECK_STRUCT_TIMEVAL 461 462 AC_CHECK_SIZEOF(size_t) 463 AC_CHECK_SIZEOF(int) 464 AC_CHECK_SIZEOF(long) 465 CARES_CONFIGURE_LONG 466 AC_CHECK_SIZEOF(time_t) 467 468 AC_CHECK_TYPE(long long, 469 [AC_DEFINE(HAVE_LONGLONG, 1, 470 [Define to 1 if the compiler supports the 'long long' data type.])] 471 longlong="yes" 472 ) 473 474 if test "xyes" = "x$longlong"; then 475 AC_MSG_CHECKING([if numberLL works]) 476 AC_COMPILE_IFELSE([ 477 AC_LANG_PROGRAM([[ 478 ]],[[ 479 long long val = 1000LL; 480 ]]) 481 ],[ 482 AC_MSG_RESULT([yes]) 483 AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL]) 484 ],[ 485 AC_MSG_RESULT([no]) 486 ]) 487 fi 488 489 490 # check for ssize_t 491 AC_CHECK_TYPE(ssize_t, , 492 AC_DEFINE(ssize_t, int, [the signed version of size_t])) 493 494 # check for bool type 495 AC_CHECK_TYPE([bool],[ 496 AC_DEFINE(HAVE_BOOL_T, 1, 497 [Define to 1 if bool is an available type.]) 498 ], ,[ 499 #ifdef HAVE_SYS_TYPES_H 500 #include <sys/types.h> 501 #endif 502 #ifdef HAVE_STDBOOL_H 503 #include <stdbool.h> 504 #endif 505 ]) 506 507 CARES_CONFIGURE_ARES_SOCKLEN_T 508 509 TYPE_IN_ADDR_T 510 511 TYPE_SOCKADDR_STORAGE 512 513 TYPE_SIG_ATOMIC_T 514 515 AC_TYPE_SIGNAL 516 517 CURL_CHECK_FUNC_RECV 518 CURL_CHECK_FUNC_RECVFROM 519 CURL_CHECK_FUNC_SEND 520 CURL_CHECK_MSG_NOSIGNAL 521 522 CARES_CHECK_FUNC_CLOSESOCKET 523 CARES_CHECK_FUNC_CLOSESOCKET_CAMEL 524 CARES_CHECK_FUNC_CONNECT 525 CARES_CHECK_FUNC_FCNTL 526 CARES_CHECK_FUNC_FREEADDRINFO 527 CARES_CHECK_FUNC_GETADDRINFO 528 CARES_CHECK_FUNC_GETENV 529 CARES_CHECK_FUNC_GETHOSTBYADDR 530 CARES_CHECK_FUNC_GETHOSTBYNAME 531 CARES_CHECK_FUNC_GETHOSTNAME 532 CARES_CHECK_FUNC_GETSERVBYPORT_R 533 CARES_CHECK_FUNC_INET_NET_PTON 534 CARES_CHECK_FUNC_INET_NTOP 535 CARES_CHECK_FUNC_INET_PTON 536 CARES_CHECK_FUNC_IOCTL 537 CARES_CHECK_FUNC_IOCTLSOCKET 538 CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL 539 CARES_CHECK_FUNC_SETSOCKOPT 540 CARES_CHECK_FUNC_SOCKET 541 CARES_CHECK_FUNC_STRCASECMP 542 CARES_CHECK_FUNC_STRCMPI 543 CARES_CHECK_FUNC_STRDUP 544 CARES_CHECK_FUNC_STRICMP 545 CARES_CHECK_FUNC_STRNCASECMP 546 CARES_CHECK_FUNC_STRNCMPI 547 CARES_CHECK_FUNC_STRNICMP 548 CARES_CHECK_FUNC_WRITEV 549 550 551 dnl check for AF_INET6 552 CARES_CHECK_CONSTANT( 553 [ 554 #undef inline 555 #ifdef HAVE_WINDOWS_H 556 #ifndef WIN32_LEAN_AND_MEAN 557 #define WIN32_LEAN_AND_MEAN 558 #endif 559 #include <windows.h> 560 #ifdef HAVE_WINSOCK2_H 561 #include <winsock2.h> 562 #endif 563 #else 564 #ifdef HAVE_SYS_TYPES_H 565 #include <sys/types.h> 566 #endif 567 #ifdef HAVE_SYS_SOCKET_H 568 #include <sys/socket.h> 569 #endif 570 #endif 571 ], [PF_INET6], 572 AC_DEFINE_UNQUOTED(HAVE_PF_INET6,1,[Define to 1 if you have PF_INET6.]) 573 ) 574 575 dnl check for PF_INET6 576 CARES_CHECK_CONSTANT( 577 [ 578 #undef inline 579 #ifdef HAVE_WINDOWS_H 580 #ifndef WIN32_LEAN_AND_MEAN 581 #define WIN32_LEAN_AND_MEAN 582 #endif 583 #include <windows.h> 584 #ifdef HAVE_WINSOCK2_H 585 #include <winsock2.h> 586 #endif 587 #else 588 #ifdef HAVE_SYS_TYPES_H 589 #include <sys/types.h> 590 #endif 591 #ifdef HAVE_SYS_SOCKET_H 592 #include <sys/socket.h> 593 #endif 594 #endif 595 ], [AF_INET6], 596 AC_DEFINE_UNQUOTED(HAVE_AF_INET6,1,[Define to 1 if you have AF_INET6.]) 597 ) 598 599 600 dnl check for the in6_addr structure 601 CARES_CHECK_STRUCT( 602 [ 603 #undef inline 604 #ifdef HAVE_WINDOWS_H 605 #ifndef WIN32_LEAN_AND_MEAN 606 #define WIN32_LEAN_AND_MEAN 607 #endif 608 #include <windows.h> 609 #ifdef HAVE_WINSOCK2_H 610 #include <winsock2.h> 611 #ifdef HAVE_WS2TCPIP_H 612 #include <ws2tcpip.h> 613 #endif 614 #endif 615 #else 616 #ifdef HAVE_SYS_TYPES_H 617 #include <sys/types.h> 618 #endif 619 #ifdef HAVE_NETINET_IN_H 620 #include <netinet/in.h> 621 #endif 622 #endif 623 ], [in6_addr], 624 AC_DEFINE_UNQUOTED(HAVE_STRUCT_IN6_ADDR,1,[Define to 1 if you have struct in6_addr.]) 625 ) 626 627 dnl check for the sockaddr_in6 structure 628 CARES_CHECK_STRUCT( 629 [ 630 #undef inline 631 #ifdef HAVE_WINDOWS_H 632 #ifndef WIN32_LEAN_AND_MEAN 633 #define WIN32_LEAN_AND_MEAN 634 #endif 635 #include <windows.h> 636 #ifdef HAVE_WINSOCK2_H 637 #include <winsock2.h> 638 #ifdef HAVE_WS2TCPIP_H 639 #include <ws2tcpip.h> 640 #endif 641 #endif 642 #else 643 #ifdef HAVE_SYS_TYPES_H 644 #include <sys/types.h> 645 #endif 646 #ifdef HAVE_NETINET_IN_H 647 #include <netinet/in.h> 648 #endif 649 #endif 650 ], [sockaddr_in6], 651 AC_DEFINE_UNQUOTED(HAVE_STRUCT_SOCKADDR_IN6,1, 652 [Define to 1 if you have struct sockaddr_in6.]) ac_have_sockaddr_in6=yes 653 ) 654 655 AC_CHECK_MEMBER(struct sockaddr_in6.sin6_scope_id, 656 AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID,1, 657 [Define to 1 if your struct sockaddr_in6 has sin6_scope_id.]) 658 , , 659 [ 660 #undef inline 661 #ifdef HAVE_WINDOWS_H 662 #ifndef WIN32_LEAN_AND_MEAN 663 #define WIN32_LEAN_AND_MEAN 664 #endif 665 #include <windows.h> 666 #ifdef HAVE_WINSOCK2_H 667 #include <winsock2.h> 668 #ifdef HAVE_WS2TCPIP_H 669 #include <ws2tcpip.h> 670 #endif 671 #endif 672 #else 673 #ifdef HAVE_SYS_TYPES_H 674 #include <sys/types.h> 675 #endif 676 #ifdef HAVE_NETINET_IN_H 677 #include <netinet/in.h> 678 #endif 679 #endif 680 ]) 681 682 dnl check for the addrinfo structure 683 AC_CHECK_MEMBER(struct addrinfo.ai_flags, 684 AC_DEFINE_UNQUOTED(HAVE_STRUCT_ADDRINFO,1, 685 [Define to 1 if you have struct addrinfo.]),, 686 [ 687 #undef inline 688 #ifdef HAVE_WINDOWS_H 689 #ifndef WIN32_LEAN_AND_MEAN 690 #define WIN32_LEAN_AND_MEAN 691 #endif 692 #include <windows.h> 693 #ifdef HAVE_WINSOCK2_H 694 #include <winsock2.h> 695 #ifdef HAVE_WS2TCPIP_H 696 #include <ws2tcpip.h> 697 #endif 698 #endif 699 #else 700 #ifdef HAVE_SYS_TYPES_H 701 #include <sys/types.h> 702 #endif 703 #ifdef HAVE_NETINET_IN_H 704 #include <netinet/in.h> 705 #endif 706 #ifdef HAVE_SYS_SOCKET_H 707 #include <sys/socket.h> 708 #endif 709 #ifdef HAVE_NETDB_H 710 #include <netdb.h> 711 #endif 712 #endif 713 ] 714 ) 715 716 717 AC_CHECK_FUNCS([bitncmp \ 718 gettimeofday \ 719 if_indextoname 720 ],[ 721 ],[ 722 func="$ac_func" 723 AC_MSG_CHECKING([deeper for $func]) 724 AC_LINK_IFELSE([ 725 AC_LANG_PROGRAM([[ 726 ]],[[ 727 $func (); 728 ]]) 729 ],[ 730 AC_MSG_RESULT([yes]) 731 eval "ac_cv_func_$func=yes" 732 AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1], 733 [Define to 1 if you have the $func function.]) 734 ],[ 735 AC_MSG_RESULT([but still no]) 736 ]) 737 ]) 738 739 740 AC_CHECK_SIZEOF(struct in6_addr, , 741 [ 742 #undef inline 743 #ifdef HAVE_WINDOWS_H 744 #ifndef WIN32_LEAN_AND_MEAN 745 #define WIN32_LEAN_AND_MEAN 746 #endif 747 #include <windows.h> 748 #ifdef HAVE_WINSOCK2_H 749 #include <winsock2.h> 750 #ifdef HAVE_WS2TCPIP_H 751 #include <ws2tcpip.h> 752 #endif 753 #endif 754 #else 755 #ifdef HAVE_SYS_TYPES_H 756 #include <sys/types.h> 757 #endif 758 #ifdef HAVE_SYS_SOCKET_H 759 #include <sys/socket.h> 760 #endif 761 #ifdef HAVE_NETINET_IN_H 762 #include <netinet/in.h> 763 #endif 764 #endif 765 ] 766 ) 767 768 AC_CHECK_SIZEOF(struct in_addr, , 769 [ 770 #undef inline 771 #ifdef HAVE_WINDOWS_H 772 #ifndef WIN32_LEAN_AND_MEAN 773 #define WIN32_LEAN_AND_MEAN 774 #endif 775 #include <windows.h> 776 #ifdef HAVE_WINSOCK2_H 777 #include <winsock2.h> 778 #ifdef HAVE_WS2TCPIP_H 779 #include <ws2tcpip.h> 780 #endif 781 #endif 782 #else 783 #ifdef HAVE_SYS_TYPES_H 784 #include <sys/types.h> 785 #endif 786 #ifdef HAVE_SYS_SOCKET_H 787 #include <sys/socket.h> 788 #endif 789 #ifdef HAVE_NETINET_IN_H 790 #include <netinet/in.h> 791 #endif 792 #endif 793 ] 794 ) 795 796 797 dnl Check if the getnameinfo function is available 798 dnl and get the types of five of its arguments. 799 CURL_CHECK_FUNC_GETNAMEINFO 800 801 802 AC_C_BIGENDIAN( 803 [AC_DEFINE(ARES_BIG_ENDIAN, 1, 804 [define this if ares is built for a big endian system])], 805 , 806 [AC_MSG_WARN([couldn't figure out endianess, assuming little endian!])] 807 ) 808 809 dnl Check for user-specified random device 810 AC_ARG_WITH(random, 811 AC_HELP_STRING([--with-random=FILE], 812 [read randomness from FILE (default=/dev/urandom)]), 813 [ RANDOM_FILE="$withval" ], 814 [ 815 dnl Check for random device. If we're cross compiling, we can't 816 dnl check, and it's better to assume it doesn't exist than it is 817 dnl to fail on AC_CHECK_FILE or later. 818 if test "$cross_compiling" = "no"; then 819 AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] ) 820 else 821 AC_MSG_WARN([cannot check for /dev/urandom while cross compiling; assuming none]) 822 fi 823 824 ] 825 ) 826 if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then 827 AC_SUBST(RANDOM_FILE) 828 AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE", 829 [a suitable file/device to read random data from]) 830 fi 831 832 CARES_CHECK_OPTION_NONBLOCKING 833 CARES_CHECK_NONBLOCKING_SOCKET 834 835 CARES_CONFIGURE_SYMBOL_HIDING 836 837 CARES_PRIVATE_LIBS="$LIBS" 838 AC_SUBST(CARES_PRIVATE_LIBS) 839 840 CARES_CFLAG_EXTRAS="" 841 if test X"$want_werror" = Xyes; then 842 CARES_CFLAG_EXTRAS="-Werror" 843 fi 844 AC_SUBST(CARES_CFLAG_EXTRAS) 845 846 dnl squeeze whitespace out of some variables 847 848 squeeze CFLAGS 849 squeeze CPPFLAGS 850 squeeze DEFS 851 squeeze LDFLAGS 852 squeeze LIBS 853 854 squeeze CARES_PRIVATE_LIBS 855 856 AC_CONFIG_FILES([Makefile libcares.pc]) 857 AC_OUTPUT 858