1AC_PREREQ(2.57) 2 3dnl Version not hardcoded here. Fetched later from ares_version.h 4AC_INIT([c-ares], [1.7.5], 5 [c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares]) 6 7CARES_OVERRIDE_AUTOCONF 8 9AC_CONFIG_SRCDIR([ares_ipv6.h]) 10AM_CONFIG_HEADER([ares_config.h ares_build.h]) 11AC_CONFIG_MACRO_DIR([m4]) 12AM_MAINTAINER_MODE 13 14CARES_CHECK_OPTION_DEBUG 15CARES_CHECK_OPTION_OPTIMIZE 16CARES_CHECK_OPTION_WARNINGS 17CARES_CHECK_OPTION_WERROR 18CARES_CHECK_OPTION_CURLDEBUG 19CARES_CHECK_OPTION_SYMBOL_HIDING 20 21CARES_CHECK_PATH_SEPARATOR_REQUIRED 22 23dnl SED is mandatory for configure process and libtool. 24dnl Set it now, allowing it to be changed later. 25AC_PATH_PROG([SED], [sed], [not_found], 26 [$PATH:/usr/bin:/usr/local/bin]) 27if test -z "$SED" || test "$SED" = "not_found"; then 28 AC_MSG_ERROR([sed not found in PATH. Cannot continue without sed.]) 29fi 30AC_SUBST([SED]) 31 32dnl GREP is mandatory for configure process and libtool. 33dnl Set it now, allowing it to be changed later. 34AC_PATH_PROG([GREP], [grep], [not_found], 35 [$PATH:/usr/bin:/usr/local/bin]) 36if test -z "$GREP" || test "$GREP" = "not_found"; then 37 AC_MSG_ERROR([grep not found in PATH. Cannot continue without grep.]) 38fi 39AC_SUBST([GREP]) 40 41dnl EGREP is mandatory for configure process and libtool. 42dnl Set it now, allowing it to be changed later. 43if 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]) 47else 48 AC_PATH_PROG([EGREP], [egrep], [not_found], 49 [$PATH:/usr/bin:/usr/local/bin]) 50fi 51if test -z "$EGREP" || test "$EGREP" = "not_found"; then 52 AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.]) 53fi 54AC_SUBST([EGREP]) 55 56dnl AR is mandatory for configure process and libtool. 57dnl This is target dependent, so check it as a tool. 58AC_PATH_TOOL([AR], [ar], [not_found], 59 [$PATH:/usr/bin:/usr/local/bin]) 60if test -z "$AR" || test "$AR" = "not_found"; then 61 AC_MSG_ERROR([ar not found in PATH. Cannot continue without ar.]) 62fi 63AC_SUBST([AR]) 64 65dnl Remove non-configure distributed ares_build.h 66if test -f ${srcdir}/ares_build.h; then 67 rm -f ${srcdir}/ares_build.h 68fi 69 70AM_INIT_AUTOMAKE 71 72dnl 73dnl Detect the canonical host and target build environment 74dnl 75 76AC_CANONICAL_HOST 77dnl Get system canonical name 78AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS]) 79 80CARES_CHECK_PROG_CC 81AM_PROG_CC_C_O 82AC_PROG_INSTALL 83 84dnl This defines _ALL_SOURCE for AIX 85CARES_CHECK_AIX_ALL_SOURCE 86 87dnl Our configure and build reentrant settings 88CARES_CONFIGURE_THREAD_SAFE 89CARES_CONFIGURE_REENTRANT 90 91dnl check for how to do large files 92AC_SYS_LARGEFILE 93 94case $host_os in 95 solaris*) 96 AC_DEFINE(ETC_INET, 1, [if a /etc/inet dir is being used]) 97 ;; 98esac 99 100dnl support building of Windows DLLs 101AC_LIBTOOL_WIN32_DLL 102 103dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD 104AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)]) 105case $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 ;; 113esac 114 115AC_MSG_CHECKING([if compiler is icc (to build with PIC)]) 116case $CC in 117 icc | */icc) 118 AC_MSG_RESULT([yes]) 119 with_pic=yes 120 ;; 121 *) 122 AC_MSG_RESULT([no]) 123 ;; 124esac 125 126dnl libtool setup 127AC_PROG_LIBTOOL 128 129AC_MSG_CHECKING([if we need CARES_BUILDING_LIBRARY]) 130case $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 ;; 146esac 147 148dnl ********************************************************************** 149dnl platform/compiler/architecture specific checks/flags 150dnl ********************************************************************** 151 152CARES_CHECK_COMPILER 153CARES_SET_COMPILER_BASIC_OPTS 154CARES_SET_COMPILER_DEBUG_OPTS 155CARES_SET_COMPILER_OPTIMIZE_OPTS 156CARES_SET_COMPILER_WARNING_OPTS 157 158if 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 # 168fi 169 170CARES_CHECK_COMPILER_HALT_ON_ERROR 171CARES_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE 172CARES_CHECK_COMPILER_SYMBOL_HIDING 173 174CARES_CHECK_NO_UNDEFINED 175AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes) 176 177CARES_CHECK_CURLDEBUG 178AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes) 179 180dnl ********************************************************************** 181dnl Compilation based checks should not be done before this point. 182dnl ********************************************************************** 183 184dnl ********************************************************************** 185dnl Make sure that our checks for headers windows.h winsock.h winsock2.h 186dnl and ws2tcpip.h take precedence over any other further checks which 187dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for 188dnl this specific header files. And do them before its results are used. 189dnl ********************************************************************** 190 191CURL_CHECK_HEADER_WINDOWS 192CURL_CHECK_NATIVE_WINDOWS 193case 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 ;; 204esac 205 206dnl ********************************************************************** 207dnl Checks for libraries. 208dnl ********************************************************************** 209 210CARES_CHECK_LIB_XNET 211 212dnl gethostbyname without lib or in the nsl lib? 213AC_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 222if test "$HAVE_GETHOSTBYNAME" != "1" 223then 224 dnl gethostbyname in the socket lib? 225 AC_CHECK_LIB(socket, gethostbyname, 226 [HAVE_GETHOSTBYNAME="1" 227 LIBS="$LIBS -lsocket" 228 ]) 229fi 230 231dnl At least one system has been identified to require BOTH nsl and socket 232dnl libs at the same time to link properly. 233if test "$HAVE_GETHOSTBYNAME" != "1" 234then 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 ]) 250fi 251 252if test "$HAVE_GETHOSTBYNAME" != "1" 253then 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 301fi 302 303if test "$HAVE_GETHOSTBYNAME" != "1" 304then 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 ]) 320fi 321 322if test "$HAVE_GETHOSTBYNAME" != "1" 323then 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 ]) 339fi 340 341if test "$HAVE_GETHOSTBYNAME" != "1" 342then 343 dnl gethostbyname in the net lib - for BeOS 344 AC_CHECK_LIB(net, gethostbyname, 345 [HAVE_GETHOSTBYNAME="1" 346 LIBS="$LIBS -lnet" 347 ]) 348fi 349 350 351if test "$HAVE_GETHOSTBYNAME" != "1"; then 352 AC_MSG_ERROR([couldn't find libraries for gethostbyname()]) 353fi 354 355dnl resolve lib? 356AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ]) 357 358if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then 359 AC_CHECK_LIB(resolve, strcasecmp, 360 [LIBS="-lresolve $LIBS"], 361 , 362 -lnsl) 363fi 364ac_cv_func_strcasecmp="no" 365 366CARES_CHECK_LIBS_CONNECT 367 368dnl ********************************************************************** 369dnl In case that function clock_gettime with monotonic timer is available, 370dnl check for additional required libraries. 371dnl ********************************************************************** 372CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC 373 374AC_MSG_CHECKING([whether to use libgcc]) 375AC_ARG_ENABLE(libgcc, 376AC_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 389dnl Let's hope this split URL remains working: 390dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ 391dnl genprogc/thread_quick_ref.htm 392 393 394dnl ********************************************************************** 395dnl Back to "normal" configuring 396dnl ********************************************************************** 397 398dnl Checks for header files. 399AC_HEADER_STDC 400 401CURL_CHECK_HEADER_MALLOC 402CURL_CHECK_HEADER_MEMORY 403 404dnl check for a few basic system headers we need 405AC_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, 427dnl to do if not found 428[], 429dnl to do if found 430[], 431dnl 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 439dnl We do this default-include simply to make sure that the nameser_compat.h 440dnl header *REALLY* can be include after the new nameser.h. It seems AIX 5.1 441dnl (and others?) is not designed to allow this. 442#ifdef HAVE_ARPA_NAMESER_H 443#include <arpa/nameser.h> 444#endif 445 446dnl *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 456dnl Checks for typedefs, structures, and compiler characteristics. 457AC_C_CONST 458AC_TYPE_SIZE_T 459AC_HEADER_TIME 460CURL_CHECK_STRUCT_TIMEVAL 461 462AC_CHECK_SIZEOF(size_t) 463AC_CHECK_SIZEOF(int) 464AC_CHECK_SIZEOF(long) 465CARES_CONFIGURE_LONG 466AC_CHECK_SIZEOF(time_t) 467 468AC_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 474if 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 ]) 487fi 488 489 490# check for ssize_t 491AC_CHECK_TYPE(ssize_t, , 492 AC_DEFINE(ssize_t, int, [the signed version of size_t])) 493 494# check for bool type 495AC_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 507CARES_CONFIGURE_ARES_SOCKLEN_T 508 509TYPE_IN_ADDR_T 510 511TYPE_SOCKADDR_STORAGE 512 513TYPE_SIG_ATOMIC_T 514 515AC_TYPE_SIGNAL 516 517CURL_CHECK_FUNC_RECV 518CURL_CHECK_FUNC_RECVFROM 519CURL_CHECK_FUNC_SEND 520CURL_CHECK_MSG_NOSIGNAL 521 522CARES_CHECK_FUNC_CLOSESOCKET 523CARES_CHECK_FUNC_CLOSESOCKET_CAMEL 524CARES_CHECK_FUNC_CONNECT 525CARES_CHECK_FUNC_FCNTL 526CARES_CHECK_FUNC_FREEADDRINFO 527CARES_CHECK_FUNC_GETADDRINFO 528CARES_CHECK_FUNC_GETENV 529CARES_CHECK_FUNC_GETHOSTBYADDR 530CARES_CHECK_FUNC_GETHOSTBYNAME 531CARES_CHECK_FUNC_GETHOSTNAME 532CARES_CHECK_FUNC_GETSERVBYPORT_R 533CARES_CHECK_FUNC_INET_NET_PTON 534CARES_CHECK_FUNC_INET_NTOP 535CARES_CHECK_FUNC_INET_PTON 536CARES_CHECK_FUNC_IOCTL 537CARES_CHECK_FUNC_IOCTLSOCKET 538CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL 539CARES_CHECK_FUNC_SETSOCKOPT 540CARES_CHECK_FUNC_SOCKET 541CARES_CHECK_FUNC_STRCASECMP 542CARES_CHECK_FUNC_STRCMPI 543CARES_CHECK_FUNC_STRDUP 544CARES_CHECK_FUNC_STRICMP 545CARES_CHECK_FUNC_STRNCASECMP 546CARES_CHECK_FUNC_STRNCMPI 547CARES_CHECK_FUNC_STRNICMP 548CARES_CHECK_FUNC_WRITEV 549 550 551dnl check for AF_INET6 552CARES_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 575dnl check for PF_INET6 576CARES_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 600dnl check for the in6_addr structure 601CARES_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 627dnl check for the sockaddr_in6 structure 628CARES_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 655AC_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 682dnl check for the addrinfo structure 683AC_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 717AC_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 740AC_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 768AC_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 797dnl Check if the getnameinfo function is available 798dnl and get the types of five of its arguments. 799CURL_CHECK_FUNC_GETNAMEINFO 800 801 802AC_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 809dnl Check for user-specified random device 810AC_ARG_WITH(random, 811AC_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) 826if 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]) 830fi 831 832CARES_CHECK_OPTION_NONBLOCKING 833CARES_CHECK_NONBLOCKING_SOCKET 834 835CARES_CONFIGURE_SYMBOL_HIDING 836 837CARES_PRIVATE_LIBS="$LIBS" 838AC_SUBST(CARES_PRIVATE_LIBS) 839 840CARES_CFLAG_EXTRAS="" 841if test X"$want_werror" = Xyes; then 842 CARES_CFLAG_EXTRAS="-Werror" 843fi 844AC_SUBST(CARES_CFLAG_EXTRAS) 845 846dnl squeeze whitespace out of some variables 847 848squeeze CFLAGS 849squeeze CPPFLAGS 850squeeze DEFS 851squeeze LDFLAGS 852squeeze LIBS 853 854squeeze CARES_PRIVATE_LIBS 855 856AC_CONFIG_FILES([Makefile libcares.pc]) 857AC_OUTPUT 858