1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3m4_include([../version.m4]) 4AC_PREREQ([2.61]) 5AC_INIT([sntp], [VERSION_NUMBER]) 6AC_CONFIG_MACRO_DIR([../m4]) 7AC_CONFIG_AUX_DIR([.]) 8 9# Increment sntp_configure_cache_version by one for each change to 10# configure.ac or .m4 files which invalidates cached values from 11# previous versions. 12# 13# If the change affects cache variables used only by the main NTP 14# configure.ac, then only its version number should be bumped, while 15# the subdir configure.ac version numbers should be unchanged. The 16# same is true for a test/variable that is used only by one subdir 17# being changed incompatibly; only that subdir's cache version needs 18# bumping. 19# 20# If a change affects variables shared by all NTP configure scripts, 21# please bump the version numbers of all three. If you are not sure, 22# the safe choice is to bump all three on any cache-invalidating change. 23# 24# In order to avoid the risk of version stamp collision between -stable 25# and -dev branches, do not simply increment the version, instead use 26# the date YYYYMMDD optionally with -HHMM if there is more than one 27# bump in a day. 28 29sntp_configure_cache_version=20091117 30 31# When the version of config.cache and configure do not 32# match, NTP_CACHEVERSION will flush the cache. 33 34NTP_CACHEVERSION([sntp], [$sntp_configure_cache_version]) 35 36AM_INIT_AUTOMAKE 37AC_CANONICAL_BUILD 38AC_CANONICAL_HOST 39dnl the 'build' machine is where we run configure and compile 40dnl the 'host' machine is where the resulting stuff runs. 41AC_DEFINE_UNQUOTED([STR_SYSTEM], "$host", [canonical system (cpu-vendor-os) of where we should run]) 42AC_CONFIG_HEADER([config.h]) 43dnl AC_ARG_PROGRAM 44 45# Checks for programs. 46AM_PROG_CC_C_O 47AC_PROG_CPP 48 49# AC_PROG_CC_STDC has two functions. It attempts to find a compiler 50# capable of C99, or failing that, for C89. CC is set afterward with 51# the selected invocation, such as "gcc --std=gnu99". Also, the 52# ac_cv_prog_cc_stdc variable is no if the compiler selected for CC 53# does not accept C89. 54 55AC_PROG_CC_STDC 56 57case "$ac_cv_prog_cc_stdc" in 58 no) 59 AC_MSG_WARN([ANSI C89/ISO C90 is the minimum to compile SNTP ] 60 [version 4.2.5 and higher.]) 61esac 62 63AC_CACHE_CHECK( 64 [if $CC can handle @%:@warning], 65 [ntp_cv_cpp_warning], 66 [AC_COMPILE_IFELSE( 67 [AC_LANG_PROGRAM([[]], [[#warning foo]])], 68 [ntp_cv_cpp_warning=yes], 69 [ntp_cv_cpp_warning=no] 70 )] 71) 72case "$ntp_cv_cpp_warning" in 73 no) 74 AC_DEFINE([NO_OPTION_NAME_WARNINGS], [1], 75 [Should we avoid @%:@warning on option name collisions?]) 76esac 77 78case "$GCC" in 79 yes) 80 SAVED_CFLAGS_NTP="$CFLAGS" 81 CFLAGS="$CFLAGS -Wstrict-overflow" 82 AC_CACHE_CHECK( 83 [if $CC can handle -Wstrict-overflow], 84 [ntp_cv_gcc_Wstrict_overflow], 85 [AC_COMPILE_IFELSE( 86 [AC_LANG_PROGRAM([[]], [[]])], 87 [ntp_cv_gcc_Wstrict_overflow=yes], 88 [ntp_cv_gcc_Wstrict_overflow=no] 89 ) ] 90 ) 91 # 92 # $ntp_cv_gcc_Wstrict_overflow is tested later to add the 93 # flag to CFLAGS. 94 # 95 CFLAGS="$SAVED_CFLAGS_NTP -Winit-self" 96 AC_CACHE_CHECK( 97 [if $CC can handle -Winit-self], 98 [ntp_cv_gcc_Winit_self], 99 [ 100 AC_COMPILE_IFELSE( 101 [AC_LANG_PROGRAM([[]], [[]])], 102 [ntp_cv_gcc_Winit_self=yes], 103 [ntp_cv_gcc_Winit_self=no] 104 ) 105 ] 106 ) 107 CFLAGS="$SAVED_CFLAGS_NTP" 108 AS_UNSET([SAVED_CFLAGS_NTP]) 109 # 110 # $ntp_cv_gcc_Winit_self is tested later to add the 111 # flag to CFLAGS. 112 # 113esac 114 115# HMS: These need to be moved to AM_CPPFLAGS and/or AM_CFLAGS 116case "$host" in 117 *-*-solaris*) 118 # see "man standards". 119 # -D_XOPEN_SOURCE=500 is probably OK for c89 and before 120 # -D_XOPEN_SOURCE=600 seems OK for c99 121 #CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500 -D__EXTENSIONS__" 122 CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__" 123 libxnet=-lxnet 124 ;; 125esac 126 127AC_DISABLE_SHARED 128 129# NTP has (so far) been relying on leading-edge autogen. 130# Therefore, by default: 131# - use the version we ship with 132# - do not install it 133# - build a static copy (AC_DISABLE_SHARED - done earlier) 134case "${enable_local_libopts+set}" in 135 set) ;; 136 *) enable_local_libopts=yes ;; 137esac 138case "${enable_libopts_install+set}" in 139 set) ;; 140 *) enable_libopts_install=no ;; 141esac 142LIBOPTS_CHECK 143 144AC_PROG_LIBTOOL 145NTP_DIR_SEP 146 147# Checks for libraries. 148NTP_LIB_M 149 150case "$GCC" in 151 yes) 152 CFLAGS="$CFLAGS -Wall" 153 # CFLAGS="$CFLAGS -Wcast-align" 154 CFLAGS="$CFLAGS -Wcast-qual" 155 # CFLAGS="$CFLAGS -Wconversion" 156 # CFLAGS="$CFLAGS -Werror" 157 # CFLAGS="$CFLAGS -Wextra" 158 # CFLAGS="$CFLAGS -Wfloat-equal" 159 CFLAGS="$CFLAGS -Wmissing-prototypes" 160 CFLAGS="$CFLAGS -Wpointer-arith" 161 CFLAGS="$CFLAGS -Wshadow" 162 # CFLAGS="$CFLAGS -Wtraditional" 163 # CFLAGS="$CFLAGS -Wwrite-strings" 164 case "$ntp_cv_gcc_Winit_self" in 165 yes) 166 CFLAGS="$CFLAGS -Winit-self" 167 esac 168 case "$ntp_cv_gcc_Wstrict_overflow" in 169 yes) 170 CFLAGS="$CFLAGS -Wstrict-overflow" 171 esac 172 # -W[no-]strict-prototypes is added later depending on OpenSSL 173esac 174 175AC_CHECK_FUNC([gethostent], , 176 [AC_SEARCH_LIBS([gethostent], [nsl], , , [$libxnet -lsocket])]) 177AC_CHECK_FUNC([openlog], , 178 [AC_SEARCH_LIBS([openlog], [gen], , 179 [AC_SEARCH_LIBS([openlog], [syslog], , , [$libxnet -lsocket])])]) 180 181AC_SEARCH_LIBS([setsockopt], [socket xnet]) 182 183# Checks for header files. 184AC_HEADER_STDC 185 186dnl HP-UX 11.31 on HPPA has a net/if.h that can't be compiled with gcc4 187dnl due to an incomplete type (a union) mpinfou used in an array. gcc3 188dnl compiles it without complaint. The mpinfou union is defined later 189dnl in the resulting preprocessed source than the spu_info array in 190dnl /usr/include/machine/sys/getppdp.h: 191dnl extern union mpinfou spu_info[]; 192dnl triggering the error. Our strategy is on HP-UX only, test for 193dnl net/netmp.h, which is the file included by net/if.h that leads to 194dnl getppdp.h. If it is present but can't be compiled, try adding 195dnl a duplicate definition of mpinfou, which should then allow the 196dnl following net/if.h and net/if6.h tests to proceed normally. 197dnl Using net/netmp.h allows us to avoid polluting test results for 198dnl net/if.h. 199# 200case "$host" in 201 *-hp-hpux*) 202 AC_CHECK_HEADERS( 203 [net/netmp.h], 204 [netmp_h_works=yes], 205 [netmp_h_works=no] 206 ) 207 case "$netmp_h_works" in 208 no) 209 cat >>confdefs.h <<_ACEOF 210#ifndef MPINFOU_PREDECLARED 211# define MPINFOU_PREDECLARED 212typedef union mpinfou { /* For lint */ 213 struct pdk_mpinfo *pdkptr; 214 struct mpinfo *pikptr; 215} mpinfou_t; 216#endif 217_ACEOF 218 AH_BOTTOM([ 219#ifndef MPINFOU_PREDECLARED 220# define MPINFOU_PREDECLARED 221typedef union mpinfou { /* For lint */ 222 struct pdk_mpinfo *pdkptr; 223 struct mpinfo *pikptr; 224} mpinfou_t; 225#endif 226]) 227 ;; 228 esac 229 ;; 230esac 231 232AC_CHECK_HEADERS([netdb.h netinet/in.h stdlib.h string.h strings.h syslog.h]) 233AC_CHECK_HEADERS([sys/socket.h sys/time.h]) 234AC_HEADER_TIME 235 236# Checks for typedefs, structures, and compiler characteristics. 237AC_HEADER_STDBOOL 238AC_C_CONST 239AC_TYPE_SIZE_T 240AC_CHECK_SIZEOF([time_t]) 241 242AC_C_INLINE 243 244case "$ac_cv_c_inline" in 245 '') 246 ;; 247 *) 248 AC_DEFINE(HAVE_INLINE,1,[inline keyword or macro available]) 249 AC_SUBST(HAVE_INLINE) 250esac 251 252AC_C_CHAR_UNSIGNED dnl CROSS_COMPILE? 253AC_CHECK_SIZEOF([signed char]) 254AC_CHECK_SIZEOF([int]) 255AC_CHECK_SIZEOF([long]) 256 257AC_CHECK_TYPES([s_char]) 258case "$ac_cv_c_char_unsigned$ac_cv_sizeof_signed_char$ac_cv_type_s_char" in 259 *yes) 260 # We have a typedef for s_char. Might as well believe it... 261 ;; 262 no0no) 263 # We have signed chars, can't say 'signed char', no s_char typedef. 264 AC_DEFINE([NEED_S_CHAR_TYPEDEF], 1, [Do we need an s_char typedef?]) 265 ;; 266 no1no) 267 # We have signed chars, can say 'signed char', no s_char typedef. 268 AC_DEFINE([NEED_S_CHAR_TYPEDEF]) 269 ;; 270 yes0no) 271 # We have unsigned chars, can't say 'signed char', no s_char typedef. 272 AC_MSG_ERROR([No way to specify a signed character!]) 273 ;; 274 yes1no) 275 # We have unsigned chars, can say 'signed char', no s_char typedef. 276 AC_DEFINE([NEED_S_CHAR_TYPEDEF]) 277 ;; 278esac 279AC_TYPE_UID_T 280 281NTP_OPENSSL 282 283AC_CACHE_CHECK( 284 [type of socklen arg for getsockname()], 285 [ntp_cv_getsockname_socklen_type], 286 [ 287 getsockname_socklen_type_found=no 288 for getsockname_arg2 in 'struct sockaddr *' 'void *'; do 289 for ntp_cv_getsockname_socklen_type in 'socklen_t' 'size_t' 'unsigned int' 'int'; do 290 AC_COMPILE_IFELSE( 291 [AC_LANG_PROGRAM( 292 [[ 293 #ifdef HAVE_SYS_TYPES_H 294 # include <sys/types.h> 295 #endif 296 #ifdef HAVE_SYS_SOCKET_H 297 # include <sys/socket.h> 298 #endif 299 ]], [[ 300 extern 301 getsockname(int, $getsockname_arg2, 302 $ntp_cv_getsockname_socklen_type *); 303 ]] 304 )], 305 [getsockname_socklen_type_found=yes ; break 2], 306 [] 307 ) 308 done 309 done 310 case "$getsockname_socklen_type_found" in 311 no) 312 ntp_cv_getsockname_socklen_type='socklen_t' 313 esac 314 AS_UNSET([getsockname_arg2]) 315 AS_UNSET([getsockname_socklen_type_found]) 316 ] 317) 318AC_DEFINE_UNQUOTED([GETSOCKNAME_SOCKLEN_TYPE], 319 $ntp_cv_getsockname_socklen_type, 320 [What is getsockname()'s socklen type?]) 321 322AC_CACHE_CHECK( 323 [for struct sockaddr_storage], 324 [ntp_cv_sockaddr_storage], 325 [AC_COMPILE_IFELSE( 326 [AC_LANG_PROGRAM( 327 [[ 328 #ifdef HAVE_SYS_TYPES_H 329 # include <sys/types.h> 330 #endif 331 #ifdef HAVE_SYS_SOCKET_H 332 # include <sys/socket.h> 333 #endif 334 #ifdef HAVE_NETINET_IN_H 335 # include <netinet/in.h> 336 #endif 337 ]], 338 [[ 339 struct sockaddr_storage n; 340 ]] 341 )], 342 [ntp_cv_sockaddr_storage=yes], 343 [ntp_cv_sockaddr_storage=no] 344 )] 345) 346case "$ntp_cv_sockaddr_storage" in 347 yes) 348 AC_DEFINE([HAVE_STRUCT_SOCKADDR_STORAGE], [1], 349 [Does a system header define struct sockaddr_storage?]) 350esac 351 352AC_CACHE_CHECK( 353 [for sockaddr_storage.ss_family], 354 [ntp_cv_have_ss_family], 355 [AC_COMPILE_IFELSE( 356 [AC_LANG_PROGRAM( 357 [[ 358 #ifdef HAVE_SYS_TYPES_H 359 # include <sys/types.h> 360 #endif 361 #ifdef HAVE_SYS_SOCKET_H 362 # include <sys/socket.h> 363 #endif 364 #ifdef HAVE_NETINET_IN_H 365 # include <netinet/in.h> 366 #endif 367 ]], 368 [[ 369 struct sockaddr_storage s; 370 s.ss_family = 1; 371 ]] 372 )], 373 [ntp_cv_have_ss_family=yes], 374 [ntp_cv_have_ss_family=no] 375 )] 376) 377 378case "$ntp_cv_have_ss_family" in 379 no) 380 AC_CACHE_CHECK( 381 [for sockaddr_storage.__ss_family], 382 [ntp_cv_have___ss_family], 383 [AC_COMPILE_IFELSE( 384 [AC_LANG_PROGRAM( 385 [[ 386 #ifdef HAVE_SYS_TYPES_H 387 # include <sys/types.h> 388 #endif 389 #ifdef HAVE_SYS_SOCKET_H 390 # include <sys/socket.h> 391 #endif 392 #ifdef HAVE_NETINET_IN_H 393 # include <netinet/in.h> 394 #endif 395 ]], 396 [[ 397 struct sockaddr_storage s; 398 s.__ss_family = 1; 399 ]] 400 )], 401 [ntp_cv_have___ss_family=yes], 402 [ntp_cv_have___ss_family=no] 403 )] 404 ) 405 case "$ntp_cv_have___ss_family" in 406 yes) 407 AC_DEFINE([HAVE___SS_FAMILY_IN_SS], [1], 408 [Does struct sockaddr_storage have __ss_family?]) 409 esac 410esac 411 412AH_VERBATIM( 413 [HAVE___SS_FAMILY_IN_SS_VERBATIM], 414 [ 415 /* Handle sockaddr_storage.__ss_family */ 416 #ifdef HAVE___SS_FAMILY_IN_SS 417 # define ss_family __ss_family 418 #endif /* HAVE___SS_FAMILY_IN_SS */ 419 ] 420) 421 422AC_CACHE_CHECK( 423 [for sockaddr_storage.ss_len], 424 [ntp_cv_have_ss_len], 425 [AC_COMPILE_IFELSE( 426 [AC_LANG_PROGRAM( 427 [[ 428 #ifdef HAVE_SYS_TYPES_H 429 # include <sys/types.h> 430 #endif 431 #ifdef HAVE_SYS_SOCKET_H 432 # include <sys/socket.h> 433 #endif 434 #ifdef HAVE_NETINET_IN_H 435 # include <netinet/in.h> 436 #endif 437 ]], 438 [[ 439 struct sockaddr_storage s; 440 s.ss_len = 1; 441 ]] 442 )], 443 [ntp_cv_have_ss_len=yes], 444 [ntp_cv_have_ss_len=no] 445 )] 446) 447 448case "$ntp_cv_have_ss_len" in 449 no) 450 AC_CACHE_CHECK( 451 [for sockaddr_storage.__ss_len], 452 [ntp_cv_have___ss_len], 453 [AC_COMPILE_IFELSE( 454 [AC_LANG_PROGRAM( 455 [[ 456 #ifdef HAVE_SYS_TYPES_H 457 # include <sys/types.h> 458 #endif 459 #ifdef HAVE_SYS_SOCKET_H 460 # include <sys/socket.h> 461 #endif 462 #ifdef HAVE_NETINET_IN_H 463 # include <netinet/in.h> 464 #endif 465 ]], 466 [[ 467 struct sockaddr_storage s; 468 s.__ss_len = 1; 469 ]] 470 )], 471 [ntp_cv_have___ss_len=yes], 472 [ntp_cv_have___ss_len=no] 473 )] 474 ) 475 case "$ntp_cv_have___ss_len" in 476 yes) 477 AC_DEFINE([HAVE___SS_LEN_IN_SS], [1], 478 [Does struct sockaddr_storage have __ss_len?]) 479 esac 480esac 481 482AH_VERBATIM( 483 [HAVE___SS_LEN_IN_SS_VERBATIM], 484 [ 485 /* Handle sockaddr_storage.__ss_len */ 486 #ifdef HAVE___SS_LEN_IN_SS 487 # define ss_len __ss_len 488 #endif /* HAVE___SS_LEN_IN_SS */ 489 ] 490) 491 492# 493# Look for in_port_t. 494# 495AC_CACHE_CHECK( 496 [for in_port_t], 497 [isc_cv_have_in_port_t], 498 [AC_COMPILE_IFELSE( 499 [AC_LANG_PROGRAM( 500 [[ 501 #include <sys/types.h> 502 #include <netinet/in.h> 503 ]], 504 [[ 505 in_port_t port = 25; 506 return (0); 507 ]] 508 )], 509 [isc_cv_have_in_port_t=yes], 510 [isc_cv_have_in_port_t=no] 511 )] 512) 513case "$isc_cv_have_in_port_t" in 514 no) 515 AC_DEFINE([ISC_PLATFORM_NEEDPORTT], [1], 516 [Declare in_port_t?]) 517esac 518 519AC_CACHE_CHECK( 520 [for multicast IP support], 521 [ntp_cv_multicast], 522 [ 523 ntp_cv_multicast=no 524 case "$host" in 525 i386-sequent-sysv4) 526 ;; 527 *) 528 AC_COMPILE_IFELSE( 529 [AC_LANG_PROGRAM( 530 [[ 531 #ifdef HAVE_NETINET_IN_H 532 #include <netinet/in.h> 533 #endif 534 ]], 535 [[ 536 struct ip_mreq ipmr; 537 ipmr.imr_interface.s_addr = 0; 538 ]] 539 )], 540 [ntp_cv_multicast=yes], 541 [] 542 ) 543 esac 544 ] 545) 546case "$ntp_cv_multicast" in 547 yes) 548 AC_DEFINE([MCAST], [1], [Does the target support multicast IP?]) 549 AC_CACHE_CHECK( 550 [arg type needed for setsockopt() IP*_MULTICAST_LOOP], 551 [ntp_cv_typeof_ip_multicast_loop], 552 [ 553 case "$host" in 554 *-*-netbsd*|*-*-*linux*) 555 ntp_cv_typeof_ip_multicast_loop=u_int 556 ;; 557 *) 558 ntp_cv_typeof_ip_multicast_loop=u_char 559 esac 560 ] 561 ) 562 AC_DEFINE_UNQUOTED([TYPEOF_IP_MULTICAST_LOOP], 563 $ntp_cv_typeof_ip_multicast_loop, 564 [What type to use for setsockopt]) 565esac 566 567# HMS: We don't need res_init, but since we may be using cached 568# values from ntpd we need to test the same way 569AC_SEARCH_LIBS([res_init], [resolv], , , [-lsocket -lnsl]) 570AC_SEARCH_LIBS([inet_ntop], [resolv], , , [-lsocket -lnsl]) 571AC_CHECK_FUNC([inet_ntop], [], 572 [AC_DEFINE([ISC_PLATFORM_NEEDNTOP], [1], [ISC: provide inet_ntop()])]) 573AC_CHECK_FUNC([inet_pton], [], 574 [AC_DEFINE([ISC_PLATFORM_NEEDPTON], [1], [ISC: provide inet_pton()])]) 575 576AC_CACHE_CHECK( 577 [struct sockaddr for sa_len], 578 [isc_cv_platform_havesalen], 579 [AC_COMPILE_IFELSE( 580 [AC_LANG_PROGRAM( 581 [[ 582 #include <sys/types.h> 583 #include <sys/socket.h> 584 ]], 585 [[ 586 extern struct sockaddr *ps; 587 return ps->sa_len; 588 ]] 589 )], 590 [isc_cv_platform_havesalen=yes], 591 [isc_cv_platform_havesalen=no] 592 )] 593) 594case "$isc_cv_platform_havesalen" in 595 yes) 596 AC_DEFINE([ISC_PLATFORM_HAVESALEN], [1], 597 [struct sockaddr has sa_len?]) 598esac 599 600AC_ARG_ENABLE( 601 [ipv6], 602 [AS_HELP_STRING( 603 [--enable-ipv6], 604 [s use IPv6?] 605 )] 606) 607 608case "$enable_ipv6" in 609 yes|''|autodetect) 610 case "$host" in 611 powerpc-ibm-aix4*) 612 ;; 613 *) 614 AC_DEFINE([WANT_IPV6], [1], [configure --enable-ipv6]) 615 ;; 616 esac 617 ;; 618 no) 619 ;; 620esac 621 622 623dnl [Bug 1984] ntp/libisc fails to compile on OS X 10.7 (Lion) 624case "$host" in 625 *-*-darwin*) 626 AC_DEFINE([__APPLE_USE_RFC_3542], [1], [Are we _special_?]) 627esac 628 629 630AC_CACHE_CHECK( 631 [for IPv6 structures], 632 [isc_cv_found_ipv6], 633 [AC_COMPILE_IFELSE( 634 [AC_LANG_PROGRAM( 635 [[ 636 #include <sys/types.h> 637 #include <sys/socket.h> 638 #include <netinet/in.h> 639 ]], 640 [[ 641 struct sockaddr_in6 sin6; 642 ]] 643 )], 644 [isc_cv_found_ipv6=yes], 645 [isc_cv_found_ipv6=no] 646 )] 647) 648 649# 650# See whether IPv6 support is provided via a Kame add-on. 651# This is done before other IPv6 linking tests so LIBS is properly set. 652# 653AC_MSG_CHECKING([for Kame IPv6 support]) 654AC_ARG_WITH( 655 [kame], 656 [AS_HELP_STRING( 657 [--with-kame], 658 [- =/usr/local/v6] 659 )], 660 [use_kame="$withval"], 661 [use_kame="no"] 662) 663case "$use_kame" in 664 no) 665 ;; 666 yes) 667 kame_path=/usr/local/v6 668 ;; 669 *) 670 kame_path="$use_kame" 671 ;; 672esac 673case "$use_kame" in 674 no) 675 AC_MSG_RESULT([no]) 676 ;; 677 *) 678 if test -f $kame_path/lib/libinet6.a; then 679 AC_MSG_RESULT([$kame_path/lib/libinet6.a]) 680 LIBS="-L$kame_path/lib -linet6 $LIBS" 681 else 682 AC_MSG_ERROR([$kame_path/lib/libinet6.a not found. 683 684Please choose the proper path with the following command: 685 686 configure --with-kame=PATH 687]) 688 fi 689 ;; 690esac 691 692# 693# Whether netinet6/in6.h is needed has to be defined in isc/platform.h. 694# Including it on Kame-using platforms is very bad, though, because 695# Kame uses #error against direct inclusion. So include it on only 696# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1. 697# This is done before the in6_pktinfo check because that's what 698# netinet6/in6.h is needed for. 699# 700case "$host" in 701 *-bsdi4.[[01]]*) 702 AC_DEFINE([ISC_PLATFORM_NEEDNETINET6IN6H], [1], 703 [Do we need netinet6/in6.h?]) 704 isc_netinet6in6_hack="#include <netinet6/in6.h>" 705 ;; 706 *) 707 isc_netinet6in6_hack="" 708 ;; 709esac 710 711# 712# This is similar to the netinet6/in6.h issue. 713# 714case "$host" in 715 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*) 716 AC_DEFINE([ISC_PLATFORM_FIXIN6ISADDR], [1], 717 [Do we need to fix in6isaddr?]) 718 isc_netinetin6_hack="#include <netinet/in6.h>" 719 ;; 720 *) 721 isc_netinetin6_hack="" 722 ;; 723esac 724 725 726case "$isc_cv_found_ipv6" in 727 yes) 728 AC_DEFINE([ISC_PLATFORM_HAVEIPV6], [1], [have IPv6?]) 729 AC_CACHE_CHECK( 730 [for in6_pktinfo], 731 [isc_cv_have_in6_pktinfo], 732 [AC_COMPILE_IFELSE( 733 [AC_LANG_PROGRAM( 734 [[ 735 #include <sys/types.h> 736 #include <sys/socket.h> 737 #include <netinet/in.h> 738 $isc_netinetin6_hack 739 $isc_netinet6in6_hack 740 ]], 741 [[ 742 struct in6_pktinfo xyzzy; 743 ]] 744 )], 745 [isc_cv_have_in6_pktinfo=yes], 746 [isc_cv_have_in6_pktinfo=no] 747 )] 748 ) 749 case "$isc_cv_have_in6_pktinfo" in 750 yes) 751 AC_DEFINE([ISC_PLATFORM_HAVEIN6PKTINFO], [1], 752 [have struct in6_pktinfo?]) 753 esac 754 755 756 # HMS: Use HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID instead? 757 AC_CACHE_CHECK( 758 [for sockaddr_in6.sin6_scope_id], 759 [isc_cv_have_sin6_scope_id], 760 [AC_COMPILE_IFELSE( 761 [AC_LANG_PROGRAM( 762 [[ 763 #include <sys/types.h> 764 #include <sys/socket.h> 765 #include <netinet/in.h> 766 $isc_netinetin6_hack 767 $isc_netinet6in6_hack 768 ]], 769 [[ 770 struct sockaddr_in6 xyzzy; 771 xyzzy.sin6_scope_id = 0; 772 ]] 773 )], 774 [isc_cv_have_sin6_scope_id=yes], 775 [isc_cv_have_sin6_scope_id=no] 776 )] 777 ) 778 779 case "$isc_cv_have_sin6_scope_id" in 780 yes) 781 AC_DEFINE([ISC_PLATFORM_HAVESCOPEID], [1], [sin6_scope_id?]) 782 esac 783esac 784 785 786# We need this check run even without isc_cv_found_ipv6=yes 787 788AC_CACHE_CHECK( 789 [for in6addr_any], 790 [isc_cv_have_in6addr_any], 791 [AC_LINK_IFELSE( 792 [AC_LANG_PROGRAM( 793 [[ 794 #include <sys/types.h> 795 #include <sys/socket.h> 796 #include <netinet/in.h> 797 $isc_netinetin6_hack 798 $isc_netinet6in6_hack 799 ]], 800 [[ 801 struct in6_addr in6; 802 in6 = in6addr_any; 803 ]] 804 )], 805 [isc_cv_have_in6addr_any=yes], 806 [isc_cv_have_in6addr_any=no] 807 )] 808) 809 810case "$isc_cv_have_in6addr_any" in 811 no) 812 AC_DEFINE([ISC_PLATFORM_NEEDIN6ADDRANY], [1], [missing in6addr_any?]) 813esac 814 815 816AC_CACHE_CHECK( 817 [for struct if_laddrconf], 818 [isc_cv_struct_if_laddrconf], 819 [AC_COMPILE_IFELSE( 820 [AC_LANG_PROGRAM( 821 [[ 822 #include <sys/types.h> 823 #include <net/if6.h> 824 ]], 825 [[ 826 struct if_laddrconf a; 827 ]] 828 )], 829 [isc_cv_struct_if_laddrconf=yes], 830 [isc_cv_struct_if_laddrconf=no] 831 )] 832) 833 834case "$isc_cv_struct_if_laddrconf" in 835 yes) 836 AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRCONF], [1], 837 [have struct if_laddrconf?]) 838esac 839 840AC_CACHE_CHECK( 841 [for struct if_laddrreq], 842 isc_cv_struct_if_laddrreq, 843 [AC_COMPILE_IFELSE( 844 [AC_LANG_PROGRAM( 845 [[ 846 #include <sys/types.h> 847 #include <net/if6.h> 848 ]], 849 [[ 850 struct if_laddrreq a; 851 ]] 852 )], 853 [isc_cv_struct_if_laddrreq=yes], 854 [isc_cv_struct_if_laddrreq=no] 855 )] 856) 857 858case "$isc_cv_struct_if_laddrreq" in 859 yes) 860 AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRREQ], [1], 861 [have struct if_laddrreq?]) 862esac 863 864 865### 866 867# Hacks 868# these need work if we're to move libntp under sntp 869AC_DEFINE([HAVE_NO_NICE], 1, [sntp does not care about 'nice']) 870AC_DEFINE([HAVE_TERMIOS], 1, [sntp does not care about TTY stuff]) 871 872# Checks for library functions. 873AC_CHECK_FUNCS([socket vsnprintf vsprintf]) 874 875AC_MSG_CHECKING([for bin subdirectory]) 876AC_ARG_WITH( 877 [binsubdir], 878 [AS_HELP_STRING( 879 [--with-binsubdir], 880 [bin ={bin,sbin}] 881 )], 882 [use_binsubdir="$withval"], 883 [use_binsubdir="bin"] 884) 885case "$use_binsubdir" in 886 bin) 887 ;; 888 sbin) 889 ;; 890 *) 891 AC_MSG_ERROR([<$use_binsubdir> is illegal - must be "bin" or "sbin"]) 892 ;; 893esac 894AC_MSG_RESULT([$use_binsubdir]) 895 896BINSUBDIR=$use_binsubdir 897AC_SUBST([BINSUBDIR]) 898AM_CONDITIONAL([NTP_BINSUBDIR_IS_BIN], [test "bin" = "$BINSUBDIR"]) 899 900AC_CONFIG_FILES([Makefile]) 901AC_OUTPUT 902