1dnl NTP top-level configure.ac -*- Autoconf -*- 2dnl 3m4_include([sntp/m4/version.m4]) 4AC_PREREQ([2.68]) 5AC_INIT( 6 [ntp], 7 [VERSION_NUMBER], 8 [https://bugs.ntp.org/], 9 [], 10 [https://www.ntp.org/]dnl 11) 12AC_CONFIG_MACRO_DIR([sntp/m4]) 13AC_CONFIG_AUX_DIR([sntp/libevent/build-aux]) 14AC_LANG([C]) 15 16AC_PRESERVE_HELP_ORDER 17 18# Bump ntp_configure_cache_version for each change to configure.ac or 19# .m4 files which invalidates cached values from previous configure 20# runs. 21# 22# If the change affects cache variables used only by the main NTP 23# configure.ac, then only its version number should be bumped, while 24# the subdir configure.ac version numbers should be unchanged. The 25# same is true for a test/variable that is used only by one subdir 26# being changed incompatibly; only that subdir's cache version needs 27# bumping. 28# 29# If a change affects variables shared by all NTP configure scripts, 30# please bump the version numbers of each. If you are not sure, the 31# safe choice is to bump all on any cache-invalidating change. 32# 33# In order to avoid the risk of version stamp collision between -stable 34# and -dev branches, do not simply increment the version, instead use 35# the date YYYYMMDD optionally with -HHMM if there is more than one 36# bump in a day. 37 38ntp_configure_cache_version=20240218 39 40# When the cache version of config.cache and configure do not 41# match, NTP_CACHEVERSION will flush the cache. 42 43NTP_CACHEVERSION([main], [$ntp_configure_cache_version]) 44 45AM_INIT_AUTOMAKE([1.15 foreign subdir-objects -Wall -Wno-gnu]) 46 47AM_SILENT_RULES([yes]) 48 49AC_CANONICAL_BUILD 50AC_CANONICAL_HOST 51dnl the 'build' machine is where we run configure and compile 52dnl the 'host' machine is where the resulting stuff runs. 53AC_DEFINE_UNQUOTED([STR_SYSTEM], ["$host"], 54 [canonical system (cpu-vendor-os) of where we should run]) 55AC_CONFIG_HEADERS([config.h]) 56dnl AC_ARG_PROGRAM 57 58AC_MSG_CHECKING([if we should enable build framework help]) 59AC_ARG_ENABLE( 60 [build-framework-help], 61 [AS_HELP_STRING( 62 [--enable-build-framework-help], 63 [+ enable build framework help] 64 )], 65 [ntp_ok=$enableval], 66 [ntp_ok=yes] 67) 68case "$ntp_ok" in 69 yes) 70 ntp_cv_build_framework_help=yes ;; 71 *) ntp_cv_build_framework_help=no ;; 72esac 73AC_MSG_RESULT([$ntp_ok]) 74 75ntp_atom_ok=${ntp_atom_ok=no} 76ntp_oncore_ok=${ntp_oncore_ok=no} 77ntp_parse_ok=${ntp_parse_ok=no} 78ntp_ripe_ncc_ok=${ntp_parse_ok=no} 79ntp_jupiter_ok=${ntp_jupiter_ok=no} 80 81NTP_PROG_CC 82NTP_COMPILER 83 84AC_PROG_YACC 85dnl AC_PROG_CC_C_O # called by NTP_COMPILER 86AX_C99_STRUCT_INIT 87 88NTP_HARDEN([sntp]) 89 90NTP_VPATH_HACK dnl used by ntpd/Makefile.am libparse/Makefile.am 91 92NTP_LOCINFO([sntp]) dnl takes over from NTP_BINDIR, in NTP_LIBNTP 93 94AM_PROG_AR 95 96# So far, the only shared library we might use is libopts. 97# It's a small library - we might as well use a static version of it. 98LT_INIT([disable-shared]) 99AC_SUBST([LIBTOOL_DEPS]) 100 101# NTP has (so far) been relying on leading-edge autogen, which 102# means we need the appropriate corresponding libopts as well. 103# Therefore, by default: 104# - use the version of libopts we ship with 105# - do not install it 106# - build a static copy (disable-shared - done earlier) 107case "${enable_local_libopts+set}" in 108 set) ;; 109 *) enable_local_libopts=yes ;; 110esac 111case "${enable_libopts_install+set}" in 112 set) ;; 113 *) enable_libopts_install=no ;; 114esac 115enable_nls=no 116LIBOPTS_CHECK_NOBUILD([sntp/libopts]) 117 118NTP_LIBEVENT_CHECK_NOBUILD([2], [sntp/libevent]) 119 120NTP_LIBNTP 121 122dnl we need to check for cross compile tools for vxWorks here 123AC_PROG_AWK 124AS_UNSET([ac_cv_prog_AWK]) 125AC_SUBST([AWK]) dnl scripts/ntpver.in 126AC_PROG_MAKE_SET 127 128AC_PROG_LN_S 129 130 131AC_PATH_PROG([PATH_PERL], [perl]) 132dnl Saving cached hardcoded paths rather than searching $PATH during a 133dnl cached configure run is an optimization not worth the the cost of 134dnl preventing newly-installed tools from being found. Short-circuit 135dnl the caching after the tests so preset overrides still work. 136AS_UNSET([ac_cv_path_PATH_PERL]) 137AC_PATH_PROG([PATH_TEST], [test]) 138AS_UNSET([ac_cv_path_PATH_TEST]) 139test -z "$CONFIG_SHELL" && CONFIG_SHELL=/bin/sh 140AC_SUBST([CONFIG_SHELL]) dnl for scripts #!/path/to/sh 141 142AC_ARG_WITH( 143 [net-snmp-config], 144 [AS_HELP_STRING( 145 [--with-net-snmp-config], 146 [+ =net-snmp-config] 147 )], 148 [ans=$withval], 149 [ans=yes] 150) 151case "$ans" in 152 no) 153 ;; 154 yes) 155 ans=net-snmp-config 156 ;; 157 /*) 158 ;; 159 */*) 160 AC_MSG_ERROR([--with-net-snmp-config takes either a name or an absolute path]) 161 ;; 162 *) 163 ;; 164esac 165PROG_NET_SNMP_CONFIG=$ans 166case "$PROG_NET_SNMP_CONFIG" in 167 no) ;; 168 /*) 169 PATH_NET_SNMP_CONFIG=$PROG_NET_SNMP_CONFIG 170 ;; 171 *) 172 AC_PATH_PROG([PATH_NET_SNMP_CONFIG], [$PROG_NET_SNMP_CONFIG]) 173 AS_UNSET([ac_cv_path_PATH_NET_SNMP_CONFIG]) 174;; 175esac 176AC_MSG_CHECKING([for net-snmp-config path]) 177AC_MSG_RESULT([$PATH_NET_SNMP_CONFIG]) 178 179case "$PATH_NET_SNMP_CONFIG" in 180 /*) AC_CACHE_CHECK( 181 [for net-snmp version], 182 [ntp_cv_net_snmp_version], 183 [ntp_cv_net_snmp_version=`$PATH_NET_SNMP_CONFIG --version`] 184 ) 185 ;; 186esac 187 188case "$host" in 189 *-*-vxworks*) 190 ac_link="$ac_link $VX_KERNEL" 191 ;; 192esac 193 194# HMS: a check for -lnsl used to be here - now being done in NTP_LIBNTP 195AC_SEARCH_LIBS([openlog], [gen syslog]) 196# XXX library list will be in ac_cv_search_openlog 197 198# LIBSECCOMP is off by default -- needs testing with all the features 199# Please send bug reports to loganaden@gmail.com 200AC_MSG_CHECKING([if we want to use libseccomp sandboxing (EXPERIMENTAL)]) 201AC_ARG_ENABLE( 202 [libseccomp], 203 [AS_HELP_STRING( 204 [--enable-libseccomp], 205 [EXPERIMENTAL: enable support for libseccomp sandboxing (default is no) ] 206 )], 207 [ntp_ok=$enableval], 208 [ntp_ok=no] 209) 210AC_MSG_RESULT([$ntp_ok]) 211case "$ntp_ok" in 212 yes) 213 AC_SEARCH_LIBS( 214 [seccomp_init], 215 [seccomp], 216 [AC_DEFINE([LIBSECCOMP], [1], 217 [Define to any value to include libseccomp sandboxing.])] 218 ) 219 AC_TRY_RUN([ 220 #include <stdio.h> 221 #include <stdlib.h> 222 #include <errno.h> 223 #include <sys/prctl.h> 224 #include <linux/seccomp.h> 225 226 int main(void) 227 { 228 int ret; 229 ret = prctl(PR_GET_SECCOMP, 0, 0, 0, 0); 230 if (ret < 0) { 231 switch (errno) { 232 case ENOSYS: 233 return 1; 234 case EINVAL: 235 return 1; 236 default: 237 return 1; 238 } 239 } 240 ret = 241 prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, NULL, 0, 0); 242 if (ret < 0) { 243 switch (errno) { 244 case EINVAL: 245 return 1; 246 case EFAULT: 247 return 0; 248 default: 249 return 1; 250 } 251 } 252return 1; 253} 254] 255, AC_DEFINE([KERN_SECCOMP], 1, 256[Define to use libseccomp system call filtering.]) 257, [] 258) 259 ;; 260esac 261 262NTP_FACILITYNAMES 263 264dnl Digital UNIX V4.0 and Solaris 7 have POSIX.1c functions in -lrt 265dnl Solaris 2.6 only has -lposix4; in Solaris 7, this is a symlink to -lrt, 266dnl so only use one of them. Linux (glibc-2.1.2 and -2.2.2, at least) 267dnl does Strange Things with extra processes using the Posix-compatibility 268dnl real-time library, so we don't want to use it. 269dnl 270dnl 081118 Harlan got tired of looking for a way to get the sched*() 271dnl functions to link OK with either cc or gcc. 272 273case "$host" in 274 *-*-*linux*) ;; 275 *-*-osf4*) ;; 276 *-*-osf5*) ;; 277 *) 278 # HMS: Make sure we check for -lrt for clock_* before this... 279 case "$ac_cv_search_clock_gettime" in 280 '') AC_MSG_FAILURE([Internal Error: Haven't looked for clock_gettime() yet!]) ;; 281 esac 282 AC_SEARCH_LIBS([sched_setscheduler], [rt posix4]) 283 ;; 284esac 285 286AC_CHECK_HEADERS([bstring.h sys/procctl.h]) 287AC_CHECK_HEADER( 288 [dns_sd.h], 289 [AC_SEARCH_LIBS( 290 [DNSServiceRegister], 291 [dns_sd], 292 [AC_DEFINE([HAVE_DNSREGISTRATION], [1], 293 [Use Rendezvous/DNS-SD registration])] 294 )] 295) 296AC_CHECK_HEADERS([fcntl.h fnmatch.h ieeefp.h inttypes.h kvm.h math.h]) 297 298AC_CHECK_HEADERS([memory.h netdb.h poll.h]) 299AC_CHECK_HEADERS([sgtty.h stdatomic.h]) 300AC_HEADER_STDBOOL 301AC_CHECK_HEADERS([stdlib.h string.h termio.h]) 302AC_CHECK_HEADERS([termios.h timepps.h timex.h unistd.h]) 303 304case "$host" in 305 *-*-aix*) 306 AC_CHECK_HEADERS([utmpx.h]) 307 case "$ac_cv_header_utmpx_h" in 308 yes) 309 ;; 310 *) 311 AC_CHECK_HEADERS([utmp.h]) 312 ;; 313 esac 314 ;; 315 *) 316 AC_CHECK_HEADERS([utmp.h utmpx.h]) 317 ;; 318esac 319 320# 321# On Suns only (so far) getpass() truncates the typed password to 8 322# characters, but getpassphrase() allows up to 257. Most systems' 323# getpass() does not truncate, at least not so as to affect ntpq and 324# ntpdc password prompts. 325# 326# So check for getpassphrase(), but only on Sun operating systems. 327# 328case "$host" in 329 *-*-sunos*|*-*-solaris*) 330 AC_CHECK_FUNCS([getpassphrase]) 331esac 332 333 334AC_CHECK_HEADERS([net/if6.h]) 335AC_CHECK_HEADERS([net/route.h], [], [], [ 336 #include <sys/types.h> 337 #include <sys/socket.h> 338 #include <net/if.h> 339]) 340 341AC_CHECK_HEADERS([netinfo/ni.h]) 342case "$ac_cv_header_netinfo_ni_h" in 343 yes) 344 AC_DEFINE([HAVE_NETINFO], [1], [NetInfo support?]) 345esac 346AC_CHECK_HEADERS([sun/audioio.h sys/audioio.h sys/file.h]) 347case "$host" in 348 *-*-sunos4*) 349 ;; 350 *) 351 AC_CHECK_HEADERS([sys/ioctl.h]) 352 ;; 353esac 354AC_CHECK_HEADERS([sys/ipc.h sys/lock.h sys/mman.h]) 355# HMS: Check sys/proc.h and sys/resource.h after some others 356AC_CHECK_HEADERS([sys/modem.h sys/ppsclock.h sys/ppstime.h sched.h]) 357case "$ac_cv_header_sched_h" in 358 yes) 359 ;; 360 *) 361 AC_CHECK_HEADERS([sys/sched.h]) 362 ;; 363esac 364# HMS: Check sys/shm.h after some others 365AC_CHECK_HEADERS([sys/select.h sys/signal.h sys/sockio.h]) 366# HMS: Checked sys/socket.h earlier 367case "$host" in 368 *-*-netbsd*) 369 ;; 370 *) 371 AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h]) 372 ;; 373esac 374AC_CHECK_HEADERS([sys/stat.h sys/stream.h stropts.h sys/stropts.h sys/syssgi.h]) 375AC_CHECK_HEADERS([sys/systune.h sys/termios.h sys/tpro.h sys/wait.h]) 376AC_CHECK_FUNCS([waitpid]) 377case "$host" in 378*-convex-*) 379 AC_CHECK_HEADERS([/sys/sync/queue.h /sys/sync/sema.h]) 380 ;; 381*-*-bsdi*) 382 AC_CHECK_HEADERS([machine/inline.h sys/pcl720.h sys/i8253.h]) 383 ;; 384esac 385 386case "$ac_cv_header_stdatomic_h" in 387 yes) 388 AC_CHECK_FUNCS([atomic_thread_fence]) 389 AC_CACHE_CHECK( 390 [for atomic_thread_fence()], 391 [ntp_cv_func_atomic_thread_fence], 392 [AC_COMPILE_IFELSE( 393 [AC_LANG_PROGRAM( 394 [[ 395 #include <stdatomic.h> 396 ]], 397 [[ 398 atomic_thread_fence(memory_order_seq_cst); 399 ]] 400 )], 401 [ntp_cv_func_atomic_thread_fence=yes], 402 [ntp_cv_func_atomic_thread_fence=no] 403 )] 404 ) 405 ;; 406esac 407 408case "$host" in 409 *-*-solaris2.6) 410 # Broken... 411 ;; 412 *) 413 AC_CHECK_FUNCS([ntp_adjtime ntp_gettime]) 414 ;; 415esac 416 417case "$host" in 418 *-*-*linux*) 419 case "$ac_cv_func_ntp_gettime" in 420 yes) 421 ;; 422 *) 423 AC_CHECK_FUNCS([__ntp_gettime]) 424 case "$ac_cv_func___ntp_gettime" in 425 yes) 426 AC_DEFINE([ntp_gettime], [__ntp_gettime], [deviant]) 427 AC_DEFINE([HAVE_NTP_GETTIME], [1], [via __ntp_gettime]) 428 esac 429 ;; 430 esac 431 AC_CHECK_FUNCS([adjtimex]) 432 case "$ac_cv_func_adjtimex" in 433 yes) 434 AC_DEFINE([ntp_adjtime], [adjtimex], [deviant]) 435 AC_DEFINE([HAVE_NTP_ADJTIME], [1], [via adjtimex]) 436 have_adjtimex=1 437 ;; 438 *) 439 AC_CHECK_FUNCS([__adjtimex]) 440 case "$ac_cv_func___adjtimex" in 441 yes) 442 AC_DEFINE([ntp_adjtime], [__adjtimex], [deviant]) 443 AC_DEFINE([HAVE_NTP_ADJTIME], [1], [via __adjtimex]) 444 AC_DEFINE([adjtimex], [__adjtimex], [deviant]) 445 AC_DEFINE([HAVE_ADJTIMEX], [1], [via __adjtimex]) 446 have_adjtimex=1 447 esac 448 ;; 449 esac 450esac 451case "$have_adjtimex" in 452 '') 453 # nlist stuff is only needed for tickadj. 454 saved_LIBS="$LIBS" 455 LIBS= 456 AC_SEARCH_LIBS([nlist], [elf ld mld]) 457 # XXX ac_cv_search_nlist will be 'none required', 'no', or '-l...' 458 AC_SEARCH_LIBS([kvm_open], [kvm]) dnl We already know about -lelf here... 459 # XXX ac_cv_search_kvm_open will be 'none required', 'no', or '-l...' 460 AC_CHECK_HEADERS([nlist.h sys/var.h]) 461 case "$ac_cv_header_nlist_h" in 462 yes) 463 AC_DEFINE([NLIST_STRUCT], [1], [nlist stuff]) 464 AC_CACHE_CHECK( 465 [for n_un in struct nlist], 466 [ntp_cv_struct_nlist_n_un], 467 [AC_COMPILE_IFELSE( 468 [AC_LANG_PROGRAM( 469 [[ 470 #include <nlist.h> 471 ]], 472 [[ 473 struct nlist n; 474 n.n_un.n_name = 0; 475 ]] 476 )], 477 [ntp_cv_struct_nlist_n_un=yes], 478 [ntp_cv_struct_nlist_n_un=no] 479 )] 480 ) 481 case "$ntp_cv_struct_nlist_n_un" in 482 yes) 483 AC_DEFINE([NLIST_NAME_UNION], [1], 484 [does struct nlist use a name union?]) 485 esac 486 esac 487 AC_SUBST([LDADD_NLIST]) 488 LDADD_NLIST="$LIBS" 489 LIBS="$saved_LIBS" 490 AS_UNSET([saved_LIBS]) 491esac 492 493AC_CHECK_HEADERS([sys/proc.h], [], [], [ 494 #ifdef HAVE_SYS_TYPES_H 495 # include <sys/types.h> 496 #endif 497 #ifdef HAVE_SYS_TIME_H 498 # include <sys/time.h> 499 #endif 500]) 501 502AC_CHECK_HEADERS([sys/resource.h], [], [], [ 503 #ifdef HAVE_SYS_TIME_H 504 # include <sys/time.h> 505 #endif 506]) 507 508AC_CHECK_HEADERS([sys/shm.h], [], [], [ 509 #ifdef HAVE_SYS_TYPES_H 510 # include <sys/types.h> 511 #endif 512 #ifdef HAVE_SYS_IPC_H 513 # include <sys/ipc.h> 514 #endif 515]) 516 517AC_CHECK_HEADERS([sys/timex.h], [], [], [ 518 #ifdef HAVE_SYS_TIME_H 519 # include <sys/time.h> 520 #endif 521]) 522 523NTP_AF_UNSPEC 524 525AC_TYPE_SIGNAL 526AC_TYPE_OFF_T 527AC_STRUCT_TM dnl defines TM_IN_SYS_TIME used by refclock_parse.c 528 529AC_CACHE_CHECK( 530 [for a fallback value for HZ], 531 [ntp_cv_default_hz], 532 [ 533 ntp_cv_default_hz=100 534 case "$host" in 535 alpha*-dec-osf4*|alpha*-dec-osf5*) 536 ntp_cv_default_hz=1024 537 ;; 538 mips-dec-ultrix4*) 539 ntp_cv_default_hz=256 540 ;; 541 esac 542 ] 543) 544AC_DEFINE_UNQUOTED([DEFAULT_HZ], [$ntp_cv_default_hz], 545 [What is the fallback value for HZ?]) 546 547AC_CACHE_CHECK( 548 [if we need to override the system's value for HZ], 549 [ntp_cv_override_hz], 550 [ 551 ntp_cv_override_hz=no 552 case "$host" in 553 alpha*-dec-osf4*|alpha*-dec-osf5*) 554 ntp_cv_override_hz=yes 555 ;; 556 mips-dec-ultrix4*) 557 ntp_cv_override_hz=yes 558 ;; 559 *-*-freebsd*) 560 ntp_cv_override_hz=yes 561 ;; 562 *-*-sunos4*) 563 ntp_cv_override_hz=yes 564 ;; 565 *-*-kfreebsd*) 566 ntp_cv_override_hz=yes 567 ;; 568 esac 569 ] 570) 571case "$ntp_cv_override_hz" in 572 yes) 573 AC_DEFINE([OVERRIDE_HZ], [1], 574 [Do we need to override the system's idea of HZ?]) 575esac 576 577dnl AC_CACHE_CHECK(ut_host in struct utmp, ac_cv_func_ut_host_in_utmp, 578dnl [AC_TRY_LINK([#include <sys/types.h> 579dnl #include <utmp.h>], [struct utmp ut; ut.ut_host;], 580dnl ac_cv_func_ut_host_in_utmp=yes, ac_cv_func_ut_host_in_utmp=no)]) 581dnl if test $su_cv_func_ut_host_in_utmp = yes; then 582dnl AC_DEFINE(HAVE_UT_HOST) 583dnl fi 584 585dnl AC_MSG_CHECKING(if we can get the system boot time) 586dnl AC_CACHE_VAL(su_cv_have_boot_time, 587dnl [AC_EGREP_CPP(yes, 588dnl [#ifdef HAVE_UTMPX_H 589dnl #include <utmpx.h> 590dnl #else 591dnl #include <utmp.h> 592dnl #endif 593dnl #ifdef BOOT_TIME 594dnl yes 595dnl #endif 596dnl ], su_cv_have_boot_time=yes, su_cv_have_boot_time=no)]) 597dnl AC_MSG_RESULT($su_cv_have_boot_time) 598 599AC_CACHE_CHECK( 600 [for struct rt_msghdr], 601 [ntp_cv_struct_rt_msghdr], 602 [AC_COMPILE_IFELSE( 603 [AC_LANG_PROGRAM( 604 [[ 605 #include <sys/types.h> 606 #include <sys/socket.h> 607 #include <net/if.h> 608 #include <net/route.h> 609 ]], 610 [[ 611 struct rt_msghdr p; 612 ]] 613 )], 614 [ntp_cv_struct_rt_msghdr=yes], 615 [ntp_cv_struct_rt_msghdr=no] 616 )] 617) 618 619AC_CACHE_CHECK( 620 [for struct rtattr], 621 [ntp_cv_rtattr], 622 [AC_COMPILE_IFELSE( 623 [AC_LANG_PROGRAM( 624 [[ 625 #include <stddef.h> 626 #include <sys/socket.h> 627 #include <linux/rtnetlink.h> 628 ]], 629 [[ 630 struct rtattr p; 631 ]] 632 )], 633 [ntp_cv_rtattr=yes], 634 [ntp_cv_rtattr=no] 635 )] 636) 637 638case "$ntp_cv_struct_rt_msghdr$ntp_cv_rtattr" in 639 *yes*) 640 AC_DEFINE([HAS_ROUTING_SOCKET], [1], 641 [Do we have a routing socket (rt_msghdr or rtattr)?]) 642 case "$ntp_cv_rtattr" in 643 yes) 644 AC_DEFINE([HAVE_RTNETLINK], [1], 645 [Do we have Linux routing socket?]) 646 esac 647esac 648 649AC_CACHE_CHECK( 650 [struct sigaction for sa_sigaction], 651 [ntp_cv_struct_sigaction_has_sa_sigaction], 652 [AC_COMPILE_IFELSE( 653 [AC_LANG_PROGRAM( 654 [[ 655 #include <signal.h> 656 ]], 657 [[ 658 struct sigaction act; 659 act.sa_sigaction = 0; 660 ]] 661 )], 662 [ntp_cv_struct_sigaction_has_sa_sigaction=yes], 663 [ntp_cv_struct_sigaction_has_sa_sigaction=no] 664 )] 665) 666case "$ntp_cv_struct_sigaction_has_sa_sigaction" in 667 yes) 668 AC_DEFINE([HAVE_SA_SIGACTION_IN_STRUCT_SIGACTION], [1], [Obvious]) 669esac 670 671AC_CACHE_CHECK( 672 [for struct ppsclockev], 673 [ntp_cv_struct_ppsclockev], 674 [AC_COMPILE_IFELSE( 675 [AC_LANG_PROGRAM( 676 [[ 677 #ifdef HAVE_SYS_TYPES_H 678 # include <sys/types.h> 679 #endif 680 #ifdef HAVE_SYS_TERMIOS_H 681 # include <sys/termios.h> 682 #endif 683 #ifdef HAVE_SYS_TIME_H 684 # include <sys/time.h> 685 #endif 686 #ifdef HAVE_SYS_PPSCLOCK_H 687 # include <sys/ppsclock.h> 688 #endif 689 ]], 690 [[ 691 extern struct ppsclockev *pce; 692 return pce->serial; 693 ]] 694 )], 695 [ntp_cv_struct_ppsclockev=yes], 696 [ntp_cv_struct_ppsclockev=no] 697 )] 698) 699case "$ntp_cv_struct_ppsclockev" in 700 yes) 701 AC_DEFINE([HAVE_STRUCT_PPSCLOCKEV], [1], 702 [Does a system header define struct ppsclockev?]) 703esac 704 705case "$ac_cv_header_machine_soundcard_h$ac_cv_header_sys_soundcard_h" in 706 *yes*) 707 AC_CACHE_CHECK( 708 [for struct snd_size], 709 [ntp_cv_struct_snd_size], 710 [AC_COMPILE_IFELSE( 711 [AC_LANG_PROGRAM( 712 [[ 713 #ifdef HAVE_MACHINE_SOUNDCARD_H 714 # include <machine/soundcard.h> 715 #endif 716 #ifdef HAVE_SYS_SOUNDCARD_H 717 # include <sys/soundcard.h> 718 #endif 719 ]], 720 [[ 721 extern struct snd_size *ss; 722 return ss->rec_size; 723 ]] 724 )], 725 [ntp_cv_struct_snd_size=yes], 726 [ntp_cv_struct_snd_size=no] 727 )] 728 ) 729 case "$ntp_cv_struct_snd_size" in 730 yes) 731 AC_DEFINE([HAVE_STRUCT_SND_SIZE], [1], 732 [Do we have struct snd_size?]) 733 esac 734esac 735 736AC_CACHE_CHECK( 737 [struct clockinfo for hz], 738 [ntp_cv_struct_clockinfo_has_hz], 739 [AC_COMPILE_IFELSE( 740 [AC_LANG_PROGRAM( 741 [[ 742 #include <sys/time.h> 743 ]], 744 [[ 745 extern struct clockinfo *pc; 746 return pc->hz; 747 ]] 748 )], 749 [ntp_cv_struct_clockinfo_has_hz=yes], 750 [ntp_cv_struct_clockinfo_has_hz=no] 751 )] 752) 753case "$ntp_cv_struct_clockinfo_has_hz" in 754 yes) 755 AC_DEFINE([HAVE_HZ_IN_STRUCT_CLOCKINFO], [1], [Obvious]) 756esac 757 758AC_CACHE_CHECK( 759 [struct clockinfo for tickadj], 760 [ntp_cv_struct_clockinfo_has_hz], 761 [AC_COMPILE_IFELSE( 762 [AC_LANG_PROGRAM( 763 [[ 764 #include <sys/time.h> 765 ]], 766 [[ 767 extern struct clockinfo *pc; 768 return pc->tickadj; 769 ]] 770 )], 771 [ntp_cv_struct_clockinfo_has_hz=yes], 772 [ntp_cv_struct_clockinfo_has_hz=no] 773 )] 774) 775case "$ntp_cv_struct_clockinfo_has_hz" in 776 yes) 777 AC_DEFINE([HAVE_TICKADJ_IN_STRUCT_CLOCKINFO], [1], [Obvious]) 778esac 779 780case "$ntp_cv_struct_ntptimeval" in 781 yes) 782 AC_CHECK_MEMBERS( 783 [struct ntptimeval.time.tv_nsec], 784 [], 785 [], 786 [ 787 #ifdef HAVE_SYS_TIME_H 788 # include <sys/time.h> 789 #else 790 # ifdef HAVE_TIME_H 791 # include <time.h> 792 # endif 793 #endif 794 #ifdef HAVE_SYS_TIMEX_H 795 # include <sys/timex.h> 796 #else 797 # ifdef HAVE_TIMEX_H 798 # include <timex.h> 799 # endif 800 #endif 801 ] 802 ) 803esac 804 805#### 806 807AC_CHECK_FUNCS([arc4random_buf]) 808 809#### 810 811saved_LIBS="$LIBS" 812LIBS="$LIBS $LDADD_LIBNTP" 813AC_CHECK_FUNCS([daemon]) 814# XXX if we keep everything in LIBS and also keep separate lists, this simplifies. 815LIBS="$saved_LIBS" 816AS_UNSET([saved_LIBS]) 817 818AC_CHECK_FUNCS( 819 [finite], 820 [], 821 [AC_CHECK_FUNCS( 822 [isfinite], 823 [], 824 [ 825 AC_MSG_CHECKING([for isfinite with <math.h>]) 826 _libs=$LIBS 827 # XXX 828 LIBS="$LIBS -lm" 829 AC_LINK_IFELSE( 830 [AC_LANG_PROGRAM( 831 [[ 832 #include <math.h> 833 ]], 834 [[ 835 float f = 0.0; 836 isfinite(f); 837 ]] 838 )], 839 [ans=yes], 840 [ans=no] 841 ) 842 LIBS=$_libs 843 AC_MSG_RESULT([$ans]) 844 case "$ans" in 845 yes) 846 AC_DEFINE([HAVE_ISFINITE], [1]) 847 esac 848 ] 849 )] 850) 851 852AC_CHECK_FUNCS([fnmatch getbootfile getuid getrusage nanosleep strsignal ]dnl 853 [strsignal closefrom getdtablesize]) 854 855 856# kvm_open() is only used by tickadj. Also see above. 857case "$ac_cv_header_kvm_h" in 858 yes) 859 AC_CHECK_FUNCS([kvm_open]) 860 ;; 861esac 862 863case "$host" in 864 *-*-sco3.2v5.0.*) 865 # Just stubs. Sigh. 866 ;; 867 *) AC_CHECK_FUNCS([mkstemp]) 868 ;; 869esac 870AC_CHECK_FUNCS([mktime]) 871case "$host" in 872 *-*-aix[[4-9]]*) 873 # XXX only verified thru AIX6. 874 # Just a stub. Sigh. 875 ;; 876 *-*-irix[[45]]*) 877 # Just a stub in "old" Irix. Sigh. 878 ;; 879# In the belief that the fix for bug 1223 fixes mlockall() under linux... 880# *-*-*linux*) 881# # there, but more trouble than it is worth for now (resolver problems) 882# ;; 883 *-*-qnx*) 884 # Apparently there but not working in QNX. Sigh? 885 ;; 886 *-*-sco3.2v5.0.*) 887 # Just a stub. Sigh. 888 ;; 889 alpha*-dec-osf4*|alpha*-dec-osf5*) 890 # mlockall is there, as a #define calling memlk via <sys/mman.h> 891 # Not easy to test for - cheat. 892 AC_CHECK_FUNCS([memlk], [ac_cv_func_mlockall=yes]) 893 AC_CHECK_FUNCS([mlockall]) 894 ;; 895 *) AC_CHECK_FUNCS([mlockall]) 896 ;; 897esac 898AC_CHECK_FUNCS([nice plock pututline pututxline readlink rtprio]) 899NTP_FUNC_REALPATH 900case "$host" in 901 *-*-aix[[4-9]]*) 902 # XXX only verified thru AIX6. 903 # Just a stub in AIX 4. Sigh. 904 ;; 905 *-*-solaris2.5*) 906 # Just stubs in solaris2.5. Sigh. 907 ;; 908 *) AC_CHECK_FUNCS([sched_setscheduler]) 909 ;; 910esac 911AC_CHECK_FUNCS([setlinebuf setpgid setpriority setsid setvbuf]) 912AC_CHECK_FUNCS([strdup strnlen memchr strerror setrlimit strchr]) 913case "$host" in 914 *-*-aix[[4-9]]*) 915 # XXX only verified thru AIX6. 916 # Just stubs. Sigh. 917 ;; 918 *-*-netbsd1*) 919 # Just stubs. Sigh. 920 ;; 921 *-*-netbsdelf1*) 922 # Just stubs. Sigh. 923 ;; 924 *-*-openbsd*) 925 # Just stubs. Sigh. 926 ;; 927 *) 928 AC_CHECK_FUNCS([timer_create]) 929 ;; 930esac 931 932NTP_RLIMIT_ITEMS 933 934# some OSes prefer _exit() in forked children to exit() 935AC_CHECK_FUNCS([_exit]) 936ntp_worker_child_exit=exit 937case "$ac_cv_func__exit::$host_os" in 938 yes::netbsd*) 939 ntp_worker_child_exit=_exit 940 ;; 941 yes::openbsd*) 942 ntp_worker_child_exit=_exit 943 ;; 944esac 945AC_DEFINE_UNQUOTED([WORKER_CHILD_EXIT], [$ntp_worker_child_exit], 946 [routine worker child proc uses to exit.]) 947 948AC_CHECK_FUNCS([umask uname updwtmp updwtmpx]) 949 950### 951 952# http://bugs.ntp.org/737 953case "$ac_cv_func_recvmsg" in 954 yes) 955 AC_CACHE_CHECK( 956 [if we need extra help to define struct iovec], 957 [ntp_cv_struct_iovec_help], 958 [ 959 compiled=no 960 for ntp_cv_struct_iovec_help in '0' '1'; do 961 AC_COMPILE_IFELSE( 962 [AC_LANG_PROGRAM( 963 [[ 964 #ifdef HAVE_SYS_TYPES_H 965 # include <sys/types.h> 966 #endif 967 #ifdef HAVE_SYS_SOCKET_H 968 # include <sys/socket.h> 969 #endif 970 #if $ntp_cv_struct_iovec_help 971 # include <sys/uio.h> 972 #endif 973 ]], 974 [[ 975 void foo(void) { 976 ssize_t x; 977 int s = 0; 978 struct iovec iov; 979 struct msghdr mh; 980 int flags = 0; 981 982 mh.msg_iov = &iov; 983 x = recvmsg(s, &mh, flags); 984 } 985 ]] 986 )], 987 [compiled=yes ; break 1], 988 [] 989 ) 990 done 991 case "$compiled" in 992 no) 993 ntp_cv_struct_iovec_help=0 994 esac 995 AS_UNSET([compiled]) 996 ] 997 ) 998 case "$ntp_cv_struct_iovec_help" in 999 1) 1000 AC_DEFINE([HAVE_SYS_UIO_H], [1], 1001 [Use sys/uio.h for struct iovec help]) 1002 esac 1003esac 1004 1005AC_CACHE_CHECK( 1006 [number of arguments taken by setpgrp()], 1007 [ntp_cv_func_setpgrp_nargs], 1008 [AC_COMPILE_IFELSE( 1009 [AC_LANG_PROGRAM( 1010 [[ 1011 #ifdef HAVE_SYS_TYPES_H 1012 # include <sys/types.h> 1013 #endif 1014 #ifdef HAVE_UNISTD_H 1015 # include <unistd.h> 1016 #endif 1017 ]], 1018 [[ 1019 setpgrp(0, 0); 1020 ]] 1021 )], 1022 [ntp_cv_func_setpgrp_nargs=2], 1023 [ntp_cv_func_setpgrp_nargs=0] 1024 )] 1025) 1026case "$ntp_cv_func_setpgrp_nargs" in 1027 0) 1028 AC_DEFINE([HAVE_SETPGRP_0], [1], 1029 [define if setpgrp takes 0 arguments]) 1030esac 1031 1032AC_CACHE_CHECK( 1033 [if we need to declare 'errno'], 1034 [ntp_cv_decl_errno], 1035 [AC_COMPILE_IFELSE( 1036 [AC_LANG_PROGRAM( 1037 [[ 1038 #ifdef HAVE_ERRNO_H 1039 # include <errno.h> 1040 #endif 1041 ]], 1042 [[ 1043 errno = 0; 1044 ]] 1045 )], 1046 [ntp_cv_decl_errno=no], 1047 [ntp_cv_decl_errno=yes] 1048 )] 1049) 1050case "$ntp_cv_decl_errno" in 1051 yes) 1052 AC_DEFINE([DECL_ERRNO], [1], [Declare errno?]) 1053esac 1054 1055dnl (prr) aix 4.3 defines h_errno as (*(int *)h_errno_which()) for 1056dnl MT purposes. This makes the line "extern int h_errno" choke 1057dnl the compiler. Hopefully adding !defined(h_errno) fixes this 1058dnl without breaking any other platforms. 1059dnl 1060AC_CACHE_CHECK( 1061 [if we may declare 'h_errno'], 1062 [ntp_cv_decl_h_errno], 1063 [AC_COMPILE_IFELSE( 1064 [AC_LANG_PROGRAM( 1065 [[ 1066 #include <sys/types.h> 1067 #ifdef HAVE_NETINET_IN_H 1068 # include <netinet/in.h> 1069 #endif 1070 #ifdef HAVE_ARPA_NAMESER_H 1071 # include <arpa/nameser.h> 1072 #endif 1073 #ifdef HAVE_NETDB_H 1074 # include <netdb.h> 1075 #endif 1076 #ifdef HAVE_RESOLV_H 1077 # include <resolv.h> 1078 #endif 1079 ]], 1080 [[ 1081 extern int h_errno; 1082 ]] 1083 )], 1084 [ntp_cv_decl_h_errno=yes], 1085 [ntp_cv_decl_h_errno=no] 1086 )] 1087) 1088case "$ntp_cv_decl_h_errno" in 1089 yes) 1090 AC_DEFINE([DECL_H_ERRNO], [1], [Declare h_errno?]) 1091esac 1092 1093AC_CACHE_CHECK( 1094 [if declaring 'syscall()' is ok], 1095 [ntp_cv_decl_syscall], 1096 [AC_COMPILE_IFELSE( 1097 [AC_LANG_PROGRAM( 1098 [[ 1099 #ifdef HAVE_SYS_TYPES_H 1100 # include <sys/types.h> 1101 #endif 1102 #ifdef HAVE_UNISTD_H 1103 # include <unistd.h> 1104 #endif 1105 ]], 1106 [[ 1107 extern int syscall (int, ...); 1108 ]] 1109 )], 1110 [ntp_cv_decl_syscall=yes], 1111 [ntp_cv_decl_syscall=no] 1112 )] 1113) 1114case "$ntp_cv_decl_syscall" in 1115 yes) 1116 AC_DEFINE([DECL_SYSCALL], [1], [Declare syscall()?]) 1117esac 1118 1119case "$host" in 1120 *-*-aix4.3.*) 1121 AC_DEFINE([DECL_HSTRERROR_0], [1], [Declaration style]) # Needed for XLC under AIX 4.3.2 1122 ;; 1123 *-*-mpeix*) 1124 AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) 1125 AC_DEFINE([DECL_INET_NTOA_0], [1], [Declaration style]) 1126 AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style]) 1127 AC_DEFINE([DECL_SELECT_0], [1], [Declaration style]) 1128 AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style]) 1129 AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style]) 1130 AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) 1131 ;; 1132 *-*-osf[[45]]*) 1133 AC_DEFINE([DECL_PLOCK_0], [1], [Declaration style]) 1134 AC_DEFINE([DECL_STIME_1], [1], [Declaration style]) 1135 ;; 1136 *-*-qnx*) 1137 AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) 1138 ;; 1139 *-*-riscos4*) 1140 AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) 1141 AC_DEFINE([DECL_BZERO_0], [1], [Declaration style]) 1142 AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style]) 1143 AC_DEFINE([DECL_IPC_0], [1], [Declaration style]) 1144 AC_DEFINE([DECL_MEMMOVE_0], [1], [Declaration style]) 1145 AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style]) 1146 AC_DEFINE([DECL_RENAME_0], [1], [Declaration style]) 1147 AC_DEFINE([DECL_SELECT_0], [1], [Declaration style]) 1148 AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style]) 1149 AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style]) 1150 AC_DEFINE([DECL_STDIO_0], [1], [Declaration style]) 1151 AC_DEFINE([DECL_STRTOL_0], [1], [Declaration style]) 1152 AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style]) 1153 AC_DEFINE([DECL_TIME_0], [1], [Declaration style]) 1154 AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) 1155 AC_DEFINE([DECL_TOLOWER_0], [1], [Declaration style]) 1156 ;; 1157 *-*-solaris2*) 1158 AC_DEFINE([DECL_MKSTEMP_0], [1], [Declaration style]) 1159 AC_DEFINE([DECL_SETPRIORITY_1], [1], [Declaration style]) 1160 case "$host" in 1161 *-*-solaris2.4) 1162 AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) 1163 ;; 1164 esac 1165 ;; 1166 *-*-sunos4*) 1167 AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) 1168 AC_DEFINE([DECL_BCOPY_0], [1], [Declaration style]) 1169 AC_DEFINE([DECL_BZERO_0], [1], [Declaration style]) 1170 AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style]) 1171 AC_DEFINE([DECL_IPC_0], [1], [Declaration style]) 1172 AC_DEFINE([DECL_MEMMOVE_0], [1], [Declaration style]) 1173 AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style]) 1174 AC_DEFINE([DECL_MKSTEMP_0], [1], [Declaration style]) 1175 AC_DEFINE([DECL_RENAME_0], [1], [Declaration style]) 1176 AC_DEFINE([DECL_SELECT_0], [1], [Declaration style]) 1177 AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style]) 1178 AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style]) 1179 AC_DEFINE([DECL_SIGVEC_0], [1], [Declaration style]) 1180 case "`basename $ac_cv_prog_CC`" in 1181 acc*) ;; 1182 *) AC_DEFINE([DECL_STDIO_0], [1], [Declaration style]) 1183 ;; 1184 esac 1185 AC_DEFINE([DECL_STRTOL_0], [1], [Declaration style]) 1186 AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style]) 1187 AC_DEFINE([DECL_TIME_0], [1], [Declaration style]) 1188 AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) 1189 AC_DEFINE([DECL_TOLOWER_0], [1], [Declaration style]) 1190 AC_DEFINE([DECL_TOUPPER_0], [1], [Declaration style]) 1191 AC_DEFINE([DECL_STRERROR_0], [1], [Declaration style]) 1192 ;; 1193 *-*-ultrix4*) 1194 AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) 1195 AC_DEFINE([DECL_BZERO_0], [1], [Declaration style]) 1196 AC_DEFINE([DECL_CFSETISPEED_0], [1], [Declaration style]) 1197 AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style]) 1198 AC_DEFINE([DECL_IPC_0], [1], [Declaration style]) 1199 AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style]) 1200 AC_DEFINE([DECL_NLIST_0], [1], [Declaration style]) 1201 AC_DEFINE([DECL_PLOCK_0], [1], [Declaration style]) 1202 AC_DEFINE([DECL_SELECT_0], [1], [Declaration style]) 1203 AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style]) 1204 AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style]) 1205 AC_DEFINE([DECL_STIME_0], [1], [Declaration style]) 1206 AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style]) 1207 AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) 1208 ;; 1209esac 1210 1211case "$host" in 1212 *-*-sco3.2*) 1213 AC_DEFINE([TERMIOS_NEEDS__SVID3], [1], 1214 [Do we need to #define _SVID3 when we #include <termios.h>?]) 1215 ;; 1216esac 1217 1218case "$host" in 1219 *-*-hpux[[567]]*) 1220 AC_DEFINE([NEED_RCVBUF_SLOP], [1], 1221 [Do we need extra room for SO_RCVBUF? (HPUX < 8)]) 1222esac 1223 1224dnl Using AC_CACHE_CHECK to honor preset ntp_cv_var_open_bcast_socket 1225AC_CACHE_CHECK( 1226 [if we will open the broadcast socket], 1227 [ntp_cv_var_open_bcast_socket], 1228 [ 1229 ans=yes 1230 case "$host" in 1231 *-*-domainos) 1232 ans=no 1233 esac 1234 ntp_cv_var_open_bcast_socket=$ans 1235 ] 1236) 1237case "$ntp_cv_var_open_bcast_socket" in 1238 yes) 1239 AC_DEFINE([OPEN_BCAST_SOCKET], [1], 1240 [Should we open the broadcast socket?]) 1241esac 1242 1243case "$host" in 1244 *-*-hpux*) 1245 AC_DEFINE([NEED_HPUX_FINDCONFIG], [1], 1246 [Do we want the HPUX FindConfig()?]) 1247esac 1248 1249dnl using AC_CACHE_CHECK to honor preset $ntp_cv_arg_setpgrp_negpid 1250AC_CACHE_CHECK( 1251 [if process groups are set with -pid], 1252 [ntp_cv_arg_setpgrp_negpid], 1253 [ 1254 case "$host" in 1255 *-*-hpux[[567]]*) 1256 ans=no 1257 ;; 1258 *-*-hpux*) 1259 ans=yes 1260 ;; 1261 *-*-*linux*) 1262 ans=yes 1263 ;; 1264 *-*-sunos3*) 1265 ans=yes 1266 ;; 1267 *-*-ultrix2*) 1268 ans=yes 1269 ;; 1270 *) 1271 ans=no 1272 ;; 1273 esac 1274 ntp_cv_arg_setpgrp_negpid=$ans 1275 ] 1276) 1277case "$ntp_cv_arg_setpgrp_negpid" in 1278 yes) 1279 AC_DEFINE([UDP_BACKWARDS_SETOWN], [1], 1280 [Do we set process groups with -pid?]) 1281esac 1282 1283AC_CACHE_CHECK( 1284 [if we need a ctty for F_SETOWN], 1285 [ntp_cv_func_ctty_for_f_setown], 1286 [ 1287 case "$host" in 1288 *-*-bsdi[[23]]*) 1289 ans=yes 1290 ;; 1291 *-*-freebsd*) 1292 ans=yes 1293 ;; 1294 # NetBSD versions prior to 3.99.8 require a CTTY for F_SETOWN, 1295 # while later versions will fail a ioctl(TIOCSCTTY, 0) call in 1296 # some cases and so should not have USE_FSETOWNCTTY. "netbsd" 1297 # in $host may be followed by "aout", "ecoff", or "elf". 1298 *-*-netbsd*[[a-z]]3.[[0-8]]*|*-*-netbsd*[[a-z]][[0-2]].*|*-*-netbsd*[[a-z]]3.99.[[0-7]]) 1299 ans=yes 1300 ;; 1301 *-*-netbsd3.[[0-8]]*|*-*-netbsd[[0-2]].*|*-*-netbsd3.99.[[0-7]]) 1302 ans=yes 1303 ;; 1304 *-*-openbsd*) 1305 ans=yes 1306 ;; 1307 *-*-osf*) 1308 ans=yes 1309 ;; 1310 *-*-darwin*) 1311 ans=yes 1312 ;; 1313 *) 1314 ans=no 1315 ;; 1316 esac 1317 ntp_cv_func_ctty_for_f_setown=$ans 1318 ] 1319) 1320case "$ntp_cv_func_ctty_for_f_setown" in 1321 yes) 1322 AC_DEFINE([USE_FSETOWNCTTY], [1], [Must we have a CTTY for fsetown?]) 1323esac 1324 1325AC_CACHE_CHECK( 1326 [if the OS clears cached routes when more specifics become available], 1327 [ntp_cv_os_routeupdates], 1328 [ 1329 case "$host" in 1330 *-*-netbsd*) 1331 ans=yes 1332 ;; 1333 *) 1334 ans=no 1335 ;; 1336 esac 1337 ntp_cv_os_routeupdates=$ans 1338 ] 1339) 1340case "$ntp_cv_os_routeupdates" in 1341 yes) 1342 AC_DEFINE([OS_MISSES_SPECIFIC_ROUTE_UPDATES], [1], 1343 [need to recreate sockets on changed routing?]) 1344esac 1345 1346AC_CACHE_CHECK( 1347 [if the wildcard socket needs REUSEADDR to bind other addresses], 1348 [ntp_cv_os_wildcardreuse], 1349 [ 1350 case "$host" in 1351 *-*-*linux*) 1352 ans=yes 1353 ;; 1354 *) ans=no 1355 ;; 1356 esac 1357 ntp_cv_os_wildcardreuse=$ans 1358 ] 1359) 1360case "$ntp_cv_os_wildcardreuse" in 1361 yes) 1362 AC_DEFINE([OS_NEEDS_REUSEADDR_FOR_IFADDRBIND], [1], 1363 [wildcard socket needs REUSEADDR to bind interface addresses]) 1364esac 1365 1366case "$host" in 1367 *-*-aix*) 1368 AC_DEFINE([NLIST_EXTRA_INDIRECTION], [1], 1369 [Might nlist() values require an extra level of indirection (AIX)?]) 1370esac 1371 1372AC_CACHE_CHECK( 1373 [for a minimum recommended value of tickadj], 1374 [ntp_cv_var_min_rec_tickadj], 1375 [ 1376 ans=no 1377 case "$host" in 1378 *-*-aix*) 1379 ans=40 1380 ;; 1381 esac 1382 ntp_cv_var_min_rec_tickadj=$ans 1383 ] 1384) 1385case "$ntp_cv_var_min_rec_tickadj" in 1386 ''|no) 1387 ;; 1388 *) 1389 AC_DEFINE_UNQUOTED([MIN_REC_TICKADJ], [$ntp_cv_var_min_rec_tickadj], 1390 [Should we recommend a minimum value for tickadj?]) 1391esac 1392 1393AC_CACHE_CHECK( 1394 [if the TTY code permits PARENB and IGNPAR], 1395 [ntp_cv_no_parenb_ignpar], 1396 [ 1397 ans=no 1398 case "$host" in 1399 i?86-*-*linux*) 1400 ans=yes 1401 ;; 1402 mips-sgi-irix*) 1403 ans=yes 1404 ;; 1405 i?86-*-freebsd[[123]].*) 1406 ;; 1407 i?86-*-freebsd*) 1408 ans=yes 1409 ;; 1410 *-*-unicosmp*) 1411 ans=yes 1412 ;; 1413 esac 1414 ntp_cv_no_parenb_ignpar=$ans 1415 ] 1416) 1417case "$ntp_cv_no_parenb_ignpar" in 1418 yes) 1419 AC_DEFINE([NO_PARENB_IGNPAR], [1], 1420 [Is there a problem using PARENB and IGNPAR?]) 1421esac 1422 1423AC_MSG_CHECKING([if we're including processing time debugging code]) 1424AC_ARG_ENABLE( 1425 [debug-timing], 1426 [AS_HELP_STRING( 1427 [--enable-debug-timing], 1428 [- include processing time debugging code (costs performance)] 1429 )], 1430 [ntp_ok=$enableval], 1431 [ntp_ok=no] 1432) 1433case "$ntp_ok" in 1434 yes) 1435 AC_DEFINE([DEBUG_TIMING], [1], [Enable processing time debugging?]) 1436esac 1437AC_MSG_RESULT([$ntp_ok]) 1438 1439AC_MSG_CHECKING([for a the number of minutes in a DST adjustment]) 1440AC_ARG_ENABLE( 1441 [dst-minutes], 1442 [AS_HELP_STRING( 1443 [--enable-dst-minutes], 1444 [=60 minutes per DST adjustment]) dnl @<:@ is [, @:>@ is ] 1445 ], 1446 [ans=$enableval], 1447 [ans=60] 1448) 1449AC_DEFINE_UNQUOTED([DSTMINUTES], [$ans], 1450 [The number of minutes in a DST adjustment]) 1451AC_MSG_RESULT([$ans]) 1452 1453AC_MSG_CHECKING([if ntpd will retry permanent DNS failures]) 1454AC_ARG_ENABLE( 1455 [ignore-dns-errors], 1456 [AS_HELP_STRING( 1457 [--enable-ignore-dns-errors], 1458 [- retry DNS queries on any error] 1459 )], 1460 [ans=$enableval], 1461 [ans=no] 1462) 1463case "$ans" in 1464 yes) 1465 AC_DEFINE([IGNORE_DNS_ERRORS], [1], 1466 [Retry queries on _any_ DNS error?]) 1467esac 1468AC_MSG_RESULT([$ans]) 1469 1470AC_CACHE_CHECK( 1471 [availability of ntp_{adj,get}time()], 1472 [ntp_cv_var_ntp_syscalls], 1473 [ 1474 ntp_cv_var_ntp_syscalls=no 1475 case "$ac_cv_func_ntp_adjtime$ac_cv_func_ntp_gettime$ac_cv_func___adjtimex" in 1476 yesyes*) 1477 ntp_cv_var_ntp_syscalls=libc 1478 ;; 1479 *yes) 1480 ntp_cv_var_ntp_syscalls=inline 1481 ;; 1482 *) 1483 AC_PREPROC_IFELSE( 1484 [AC_LANG_SOURCE( 1485 [ 1486 #include <sys/syscall.h> 1487 #if !defined(SYS_ntp_gettime) || !defined(SYS_ntp_adjtime) 1488 # error 1489 #endif 1490 ])], 1491 [ntp_cv_var_ntp_syscalls=kernel] 1492 ) 1493 ;; 1494 esac 1495 ] 1496) 1497case "$ntp_cv_var_ntp_syscalls" in 1498 libc) 1499 AC_DEFINE([NTP_SYSCALLS_LIBC], [1], 1500 [Do we have ntp_{adj,get}time in libc?]) 1501 ;; 1502 kernel) 1503 AC_DEFINE([NTP_SYSCALLS_STD], [1], 1504 [Do we have ntp_{adj,get}time in the kernel?]) 1505 ;; 1506esac 1507 1508AC_CACHE_CHECK( 1509 [if sys/timex.h has STA_FLL], 1510 [ntp_cv_var_sta_fll], 1511 [AC_PREPROC_IFELSE( 1512 [AC_LANG_SOURCE( 1513 [ 1514 #include <sys/timex.h> 1515 #ifndef STA_FLL 1516 # error 1517 #endif 1518 ])], 1519 [ntp_cv_var_sta_fll=yes], 1520 [ntp_cv_var_sta_fll=no] 1521 )] 1522) 1523 1524AC_CACHE_CHECK( 1525 [if we have kernel PLL support], 1526 [ntp_cv_var_kernel_pll], 1527 [dnl ntp_cv_var_ntp_syscalls is {no,libc,kernel} 1528 case "$ac_cv_header_sys_timex_h$ntp_cv_struct_ntptimeval$ntp_cv_var_sta_fll$ntp_cv_var_ntp_syscalls" in 1529 *no*) 1530 ntp_cv_var_kernel_pll=no 1531 ;; 1532 *) ntp_cv_var_kernel_pll=yes 1533 ;; 1534 esac 1535 ] 1536) 1537case "$ntp_cv_var_kernel_pll" in 1538 yes) 1539 AC_DEFINE([KERNEL_PLL], [1], 1540 [Does the kernel support precision time discipline?]) 1541esac 1542 1543AC_CACHE_CHECK( 1544 [if SIOCGIFCONF returns buffer size in the buffer], 1545 [ntp_cv_size_returned_in_buffer], 1546 [ 1547 ans=no 1548 case "$host" in 1549 *-fujitsu-uxp*) 1550 ans=yes 1551 ;; 1552 *-ncr-sysv4*) 1553 ans=yes 1554 ;; 1555 *-univel-sysv*) 1556 ans=yes 1557 ;; 1558 esac 1559 ntp_cv_size_returned_in_buffer=$ans 1560 ] 1561) 1562case "$ntp_cv_size_returned_in_buffer" in 1563 yes) 1564 AC_DEFINE([SIZE_RETURNED_IN_BUFFER], [1], 1565 [Does SIOCGIFCONF return size in the buffer?]) 1566esac 1567 1568# Check for ioctls TIOCGPPSEV 1569AC_MSG_CHECKING([for TTY PPS ioctl TIOCGPPSEV]) 1570case "$ac_cv_header_termios_h" in 1571 yes) 1572 AC_PREPROC_IFELSE( 1573 [AC_LANG_SOURCE([ 1574 #include <termios.h> 1575 #ifndef TIOCGPPSEV 1576 # error 1577 #endif 1578 ])], 1579 [ntp_ok=yes], 1580 [ntp_ok=no] 1581 ) 1582 ;; 1583 *) 1584 ntp_ok=no 1585 ;; 1586esac 1587case "$ntp_ok" in 1588 yes) 1589 AC_DEFINE([HAVE_TIOCGPPSEV], [1], 1590 [Do we have the TIOCGPPSEV ioctl (Solaris)?]) 1591esac 1592AC_MSG_RESULT([$ntp_ok]) 1593 1594# Check for ioctls TIOCSPPS 1595AC_MSG_CHECKING([for TTY PPS ioctl TIOCSPPS]) 1596case "$ac_cv_header_termios_h" in 1597 yes) 1598 AC_PREPROC_IFELSE( 1599 [AC_LANG_SOURCE([ 1600 #include <termios.h> 1601 #ifndef TIOCSPPS 1602 # error 1603 #endif 1604 ])], 1605 [ntp_ok=yes], 1606 [ntp_ok=no] 1607 ) 1608 ;; 1609 *) 1610 ntp_ok=no 1611 ;; 1612esac 1613case "$ntp_ok" in 1614 yes) 1615 AC_DEFINE([HAVE_TIOCSPPS], [1], 1616 [Do we have the TIOCSPPS ioctl (Solaris)?]) 1617esac 1618AC_MSG_RESULT([$ntp_ok]) 1619 1620# Check for ioctls CIOGETEV 1621AC_MSG_CHECKING([for TTY PPS ioctl CIOGETEV]) 1622case "$ac_cv_header_sys_ppsclock_h" in 1623 yes) 1624 AC_PREPROC_IFELSE( 1625 [AC_LANG_SOURCE([ 1626 #include <sys/ppsclock.h> 1627 #ifndef CIOGETEV 1628 # error 1629 #endif 1630 ])], 1631 [ntp_ok=yes], 1632 [ntp_ok=no] 1633 ) 1634 ;; 1635 *) 1636 ntp_ok=no 1637 ;; 1638esac 1639case "$ntp_ok" in 1640 yes) 1641 AC_DEFINE([HAVE_CIOGETEV], [1], 1642 [Do we have the CIOGETEV ioctl (SunOS, Linux)?]) 1643esac 1644AC_MSG_RESULT([$ntp_ok]) 1645 1646# ATOM/PPSAPI stuff. 1647 1648ntp_atom_ok=yes 1649 1650# Check for header timepps.h, if found then we have PPS API (Draft RFC) stuff. 1651 1652# The PPSAPI headers need "inline" ($ac_cv_c_inline='inline') 1653# The PPSAPI needs struct timespec. 1654# The PPSAPI also needs a timepps header. 1655 1656case "$ac_cv_c_inline$ntp_cv_struct_timespec" in 1657 inlineyes) 1658 case "$ac_cv_header_timepps_h$ac_cv_header_sys_timepps_h$host_os" in 1659 *yes* | *sunos* | *solaris* | *sco* | *netbsd* ) 1660 AC_DEFINE(HAVE_PPSAPI, 1, [Do we have the PPS API per the Draft RFC?]) 1661 ntp_jupiter_ok=yes 1662 ntp_oncore_ok=yes 1663 ntp_parse_ok=yes 1664 ntp_ripe_ncc_ok=yes 1665 ;; 1666 esac 1667 ;; 1668esac 1669 1670# Check for ioctls TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG 1671AC_CHECK_HEADER([linux/serial.h]) 1672case "$ac_cv_header_sys_ppsclock_h$ac_cv_header_linux_serial_h" in 1673 yesyes) 1674 AC_MSG_CHECKING([ioctl TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG]) 1675 AC_PREPROC_IFELSE( 1676 [AC_LANG_SOURCE([ 1677 #include <sys/time.h> 1678 typedef int u_int; 1679 #include <sys/ppsclock.h> 1680 #include <linux/serial.h> 1681 1682 #ifndef TIOCGSERIAL 1683 # error 1684 #endif 1685 #ifndef TIOCSSERIAL 1686 # error 1687 #endif 1688 #ifndef ASYNC_PPS_CD_POS 1689 # error 1690 #endif 1691 #ifndef ASYNC_PPS_CD_NEG 1692 # error 1693 #endif 1694 #ifndef CIOGETEV 1695 # error 1696 #endif 1697 ])], 1698 [ntp_ok=yes], 1699 [ntp_ok=no] 1700 ) 1701 AC_MSG_RESULT([$ntp_ok]) 1702 ;; 1703 *) 1704 ntp_ok=no 1705 ;; 1706esac 1707case "$ntp_ok" in 1708 yes) 1709 AC_DEFINE([HAVE_TIO_SERIAL_STUFF], 1, 1710 [Do we have the TIO serial stuff?]) 1711esac 1712 1713# Check for SHMEM_STATUS support 1714AC_MSG_CHECKING([SHMEM_STATUS support]) 1715case "$ac_cv_header_sys_mman_h" in 1716 yes) 1717 ntp_ok=yes 1718 ;; 1719 *) 1720 ntp_ok=no 1721 ;; 1722esac 1723case "$ntp_ok" in 1724 yes) 1725 AC_DEFINE([ONCORE_SHMEM_STATUS], [1], 1726 [Do we have support for SHMEM_STATUS?]) 1727esac 1728AC_MSG_RESULT([$ntp_ok]) 1729 1730ntp_refclock=no 1731 1732# HPUX only, and by explicit request 1733AC_MSG_CHECKING([Datum/Bancomm bc635/VME interface]) 1734AC_ARG_ENABLE( 1735 [BANCOMM], 1736 [AS_HELP_STRING( 1737 [--enable-BANCOMM], 1738 [- Datum/Bancomm bc635/VME interface] 1739 )], 1740 [ntp_ok=$enableval], 1741 [ntp_ok=no] 1742) 1743case "$ntp_ok" in 1744 yes) 1745 ntp_refclock=yes 1746 AC_DEFINE([CLOCK_BANC], [1], [Datum/Bancomm bc635/VME interface?]) 1747 AC_SEARCH_LIBS([bcStartPci], [bcsdk], , , []) 1748 ;; 1749esac 1750AC_MSG_RESULT([$ntp_ok]) 1751case "$ntp_ok$host" in 1752 yes*-*-hpux*) ;; 1753 yes*) AC_MSG_WARN([*** But the expected answer is... no ***]) ;; 1754esac 1755 1756#HPUX only, and only by explicit request 1757AC_MSG_CHECKING([TrueTime GPS receiver/VME interface]) 1758AC_ARG_ENABLE( 1759 [GPSVME], 1760 [AS_HELP_STRING( 1761 [--enable-GPSVME], 1762 [- TrueTime GPS receiver/VME interface] 1763 )], 1764 [ntp_ok=$enableval], 1765 [ntp_ok=no] 1766) 1767case "$ntp_ok" in 1768 yes) 1769 ntp_refclock=yes 1770 AC_DEFINE([CLOCK_GPSVME], 1, [TrueTime GPS receiver/VME interface?]) 1771 ;; 1772esac 1773AC_MSG_RESULT([$ntp_ok]) 1774case "$ntp_ok$host" in 1775 yes*-*-hpux*) ;; 1776 yes*) AC_MSG_WARN([*** But the expected answer is... no ***]) ;; 1777esac 1778 1779AC_MSG_CHECKING([for PCL720 clock support]) 1780case "$ac_cv_header_machine_inline_h$ac_cv_header_sys_pcl720_h$ac_cv_header_sys_i8253_h" in 1781 yesyesyes) 1782 AC_DEFINE([CLOCK_PPS720], 1, [PCL 720 clock support]) 1783 ans=yes 1784 ;; 1785 *) 1786 ans=no 1787 ;; 1788esac 1789AC_MSG_RESULT([$ans]) 1790 1791AC_MSG_CHECKING([for default inclusion of all suitable non-PARSE clocks]) 1792AC_ARG_ENABLE( 1793 [all-clocks], 1794 [AS_HELP_STRING( 1795 [--enable-all-clocks], 1796 [+ include all suitable non-PARSE clocks:] 1797 )], 1798 [ntp_eac=$enableval], 1799 [ntp_eac=yes] 1800) 1801AC_MSG_RESULT([$ntp_eac]) 1802 1803# HMS: Should we also require ntp_parse_ok? 1804AC_MSG_CHECKING([if we have support for PARSE clocks]) 1805case "$ntp_atom_ok$ac_cv_header_termio_h$ac_cv_header_termios_h" in 1806 yes*yes*) 1807 ntp_canparse=yes 1808 ;; 1809 *) ntp_canparse=no 1810 ;; 1811esac 1812AC_MSG_RESULT([$ntp_canparse]) 1813 1814AC_MSG_CHECKING([if we have support for audio clocks]) 1815case "$ac_cv_header_sun_audioio_h$ac_cv_header_sys_audioio_h$ac_cv_header_machine_soundcard_h$ac_cv_header_sys_soundcard_h" in 1816 *yes*) 1817 ntp_canaudio=yes 1818 AC_DEFINE([HAVE_AUDIO], [], [Do we have audio support?]) 1819 ;; 1820 *) ntp_canaudio=no ;; 1821esac 1822AC_MSG_RESULT([$ntp_canaudio]) 1823 1824AC_MSG_CHECKING([if we have support for the SHM refclock interface]) 1825case "$ac_cv_header_sys_ipc_h$ac_cv_header_sys_shm_h" in 1826 yesyes) 1827 ntp_canshm=yes 1828 ;; 1829 *) ntp_canshm=no ;; 1830esac 1831AC_MSG_RESULT([$ntp_canshm]) 1832 1833# Test for termios TIOCMBIS modem control (ACTS, Heath, Palisade) 1834AC_CACHE_CHECK( 1835 [for termios modem control], 1836 [ntp_cv_modem_control], 1837 [AC_COMPILE_IFELSE( 1838 [AC_LANG_PROGRAM( 1839 [[ 1840 #ifdef HAVE_UNISTD_H 1841 # include <unistd.h> 1842 #endif 1843 #ifdef HAVE_TERMIOS_H 1844 # include <termios.h> 1845 #endif 1846 #ifdef HAVE_SYS_IOCTL_H 1847 # include <sys/ioctl.h> 1848 #endif 1849 ]], 1850 [[ 1851 int dtr = TIOCM_DTR; 1852 1853 ioctl(1, TIOCMBIS, (char *)&dtr); 1854 ]] 1855 )], 1856 [ntp_cv_modem_control=yes], 1857 [ntp_cv_modem_control=no] 1858 )] 1859) 1860case "$ntp_eac::$ntp_cv_modem_control" in 1861 yes::yes) 1862 ntp_enable_all_modem_control_clocks=yes 1863 ;; 1864 *) 1865 ntp_enable_all_modem_control_clocks=no 1866 ;; 1867esac 1868 1869# Requires modem control 1870AC_MSG_CHECKING([ACTS modem service]) 1871AC_ARG_ENABLE( 1872 [ACTS], 1873 [AS_HELP_STRING( 1874 [--enable-ACTS], 1875 [s ACTS modem service] 1876 )], 1877 [ntp_ok=$enableval], 1878 [ntp_ok=$ntp_enable_all_modem_control_clocks] 1879) 1880case "$ntp_ok" in 1881 yes) 1882 ntp_refclock=yes 1883 AC_DEFINE([CLOCK_ACTS], [1], [ACTS modem service]) 1884 ;; 1885esac 1886AC_MSG_RESULT([$ntp_ok]) 1887 1888AC_MSG_CHECKING([Arbiter 1088A/B GPS receiver]) 1889AC_ARG_ENABLE( 1890 [ARBITER], 1891 [AS_HELP_STRING( 1892 [--enable-ARBITER], 1893 [+ Arbiter 1088A/B GPS receiver] 1894 )], 1895 [ntp_ok=$enableval], 1896 [ntp_ok=$ntp_eac] 1897) 1898case "$ntp_ok" in 1899 yes) 1900 ntp_refclock=yes 1901 AC_DEFINE([CLOCK_ARBITER], [1], [Arbiter 1088A/B GPS receiver]) 1902 ;; 1903esac 1904AC_MSG_RESULT([$ntp_ok]) 1905 1906AC_MSG_CHECKING([Arcron MSF receiver]) 1907AC_ARG_ENABLE( 1908 [ARCRON_MSF], 1909 [AS_HELP_STRING( 1910 [--enable-ARCRON-MSF], 1911 [+ Arcron MSF receiver] 1912 )], 1913 [ntp_ok=$enableval], 1914 [ntp_ok=$ntp_eac] 1915) 1916case "$ntp_ok" in 1917 yes) 1918 ntp_refclock=yes 1919 AC_DEFINE([CLOCK_ARCRON_MSF], [1], [ARCRON support?]) 1920 ;; 1921esac 1922AC_MSG_RESULT([$ntp_ok]) 1923 1924AC_MSG_CHECKING([Austron 2200A/2201A GPS receiver]) 1925AC_ARG_ENABLE( 1926 [AS2201], 1927 [AS_HELP_STRING( 1928 [--enable-AS2201], 1929 [+ Austron 2200A/2201A GPS receiver] 1930 )], 1931 [ntp_ok=$enableval], 1932 [ntp_ok=$ntp_eac] 1933) 1934case "$ntp_ok" in 1935 yes) 1936 ntp_refclock=yes 1937 AC_DEFINE([CLOCK_AS2201], [1], [Austron 2200A/2201A GPS receiver?]) 1938 ;; 1939esac 1940AC_MSG_RESULT([$ntp_ok]) 1941 1942AC_MSG_CHECKING([ATOM PPS interface]) 1943AC_ARG_ENABLE( 1944 [ATOM], 1945 [AS_HELP_STRING( 1946 [--enable-ATOM], 1947 [s ATOM PPS interface] 1948 )], 1949 [ntp_ok=$enableval], 1950 [ntp_ok=$ntp_eac] 1951) 1952case "$ntp_atom_ok" in 1953 no) ntp_ok=no ;; 1954esac 1955case "$ntp_ok" in 1956 yes) 1957 ntp_refclock=yes 1958 AC_DEFINE([CLOCK_ATOM], [1], [PPS interface?]) 1959 ;; 1960esac 1961AC_MSG_RESULT([$ntp_ok]) 1962 1963AC_MSG_CHECKING([Chrono-log K-series WWVB receiver]) 1964AC_ARG_ENABLE( 1965 [CHRONOLOG], 1966 [AS_HELP_STRING( 1967 [--enable-CHRONOLOG], 1968 [+ Chrono-log K-series WWVB receiver] 1969 )], 1970 [ntp_ok=$enableval], 1971 [ntp_ok=$ntp_eac] 1972) 1973case "$ntp_ok" in 1974 yes) 1975 ntp_refclock=yes 1976 AC_DEFINE([CLOCK_CHRONOLOG], [1], [Chronolog K-series WWVB receiver?]) 1977 ;; 1978esac 1979AC_MSG_RESULT([$ntp_ok]) 1980 1981AC_MSG_CHECKING([CHU modem/decoder]) 1982AC_ARG_ENABLE( 1983 [CHU], 1984 [AS_HELP_STRING( 1985 [--enable-CHU], 1986 [+ CHU modem/decoder] 1987 )], 1988 [ntp_ok=$enableval], 1989 [ntp_ok=$ntp_eac] 1990) 1991case "$ntp_ok" in 1992 yes) 1993 ntp_refclock=yes 1994 AC_DEFINE([CLOCK_CHU], [1], [CHU modem/decoder]) 1995 ;; 1996esac 1997AC_MSG_RESULT([$ntp_ok]) 1998ntp_refclock_chu=$ntp_ok 1999 2000AC_MSG_CHECKING([CHU audio/decoder]) 2001AC_ARG_ENABLE( 2002 [AUDIO-CHU], 2003 [AS_HELP_STRING( 2004 [--enable-AUDIO-CHU], 2005 [s CHU audio/decoder] 2006 )], 2007 [ntp_ok=$enableval], 2008 [ 2009 case "$ntp_eac$ntp_refclock_chu$ntp_canaudio" in 2010 *no*) ntp_ok=no ;; 2011 *) ntp_ok=yes ;; 2012 esac 2013 ] 2014) 2015AC_MSG_RESULT([$ntp_ok]) 2016# We used to check for sunos/solaris target... 2017case "$ntp_ok$ntp_refclock_chu$ntp_canaudio" in 2018 yes*no*) AC_MSG_WARN([*** But the expected answer is...no ***]) 2019esac 2020 2021# Not under HP-UX 2022AC_MSG_CHECKING([Datum Programmable Time System]) 2023AC_ARG_ENABLE( 2024 [DATUM], 2025 [AS_HELP_STRING( 2026 [--enable-DATUM], 2027 [s Datum Programmable Time System] 2028 )], 2029 [ntp_ok=$enableval], 2030 [ 2031 case "$ac_cv_header_termios_h" in 2032 yes) 2033 ntp_ok=$ntp_eac 2034 ;; 2035 *) ntp_ok=no 2036 ;; 2037 esac 2038 ] 2039) 2040case "$ntp_ok" in 2041 yes) 2042 ntp_refclock=yes 2043 AC_DEFINE([CLOCK_DATUM], [1], [Datum Programmable Time System?]) 2044 ;; 2045esac 2046AC_MSG_RESULT([$ntp_ok]) 2047 2048AC_MSG_CHECKING([Dumb generic hh:mm:ss local clock]) 2049AC_ARG_ENABLE( 2050 [DUMBCLOCK], 2051 [AS_HELP_STRING( 2052 [--enable-DUMBCLOCK], 2053 [+ Dumb generic hh:mm:ss local clock] 2054 )], 2055 [ntp_ok=$enableval], 2056 [ntp_ok=$ntp_eac] 2057) 2058case "$ntp_ok" in 2059 yes) 2060 ntp_refclock=yes 2061 AC_DEFINE([CLOCK_DUMBCLOCK], [1], [Dumb generic hh:mm:ss local clock?]) 2062 ;; 2063esac 2064AC_MSG_RESULT([$ntp_ok]) 2065 2066AC_MSG_CHECKING([Forum Graphic GPS]) 2067AC_ARG_ENABLE( 2068 [FG], 2069 [AS_HELP_STRING( 2070 [--enable-FG], 2071 [+ Forum Graphic GPS] 2072 )], 2073 [ntp_ok=$enableval], 2074 [ntp_ok=$ntp_eac] 2075) 2076case "$ntp_ok" in 2077 yes) 2078 ntp_refclock=yes 2079 AC_DEFINE([CLOCK_FG], [1], [Forum Graphic GPS datating station driver?]) 2080 ;; 2081esac 2082AC_MSG_RESULT([$ntp_ok]) 2083 2084# Requires modem control 2085AC_MSG_CHECKING([Heath GC-1000 WWV/WWVH receiver]) 2086AC_ARG_ENABLE( 2087 [HEATH], 2088 [AS_HELP_STRING( 2089 [--enable-HEATH], 2090 [s Heath GC-1000 WWV/WWVH receiver] 2091 )], 2092 [ntp_ok=$enableval], 2093 [ntp_ok=$ntp_enable_all_modem_control_clocks] 2094) 2095case "$ntp_ok" in 2096 yes) 2097 ntp_refclock=yes 2098 AC_DEFINE([CLOCK_HEATH], [1], [Heath GC-1000 WWV/WWVH receiver?]) 2099 ;; 2100esac 2101AC_MSG_RESULT([$ntp_ok]) 2102 2103AC_MSG_CHECKING([for hopf serial clock device]) 2104AC_ARG_ENABLE( 2105 [HOPFSERIAL], 2106 [AS_HELP_STRING( 2107 [--enable-HOPFSERIAL], 2108 [+ hopf serial clock device] 2109 )], 2110 [ntp_ok=$enableval], 2111 [ntp_ok=$ntp_eac] 2112) 2113case "$ntp_ok" in 2114 yes) 2115 ntp_refclock=yes 2116 AC_DEFINE([CLOCK_HOPF_SERIAL], [1], [HOPF serial clock device?]) 2117 ;; 2118esac 2119AC_MSG_RESULT([$ntp_ok]) 2120 2121AC_MSG_CHECKING([for hopf PCI clock 6039]) 2122AC_ARG_ENABLE( 2123 [HOPFPCI], 2124 [AS_HELP_STRING( 2125 [--enable-HOPFPCI], 2126 [+ hopf 6039 PCI board] 2127 )], 2128 [ntp_ok=$enableval], 2129 [ntp_ok=$ntp_eac] 2130) 2131case "$ntp_ok" in 2132 yes) 2133 ntp_refclock=yes 2134 AC_DEFINE([CLOCK_HOPF_PCI], [1], [HOPF PCI clock device?]) 2135 ;; 2136esac 2137AC_MSG_RESULT([$ntp_ok]) 2138 2139AC_MSG_CHECKING([HP 58503A GPS receiver]) 2140AC_ARG_ENABLE( 2141 [HPGPS], 2142 [AS_HELP_STRING( 2143 [--enable-HPGPS], 2144 [+ HP 58503A GPS receiver] 2145 )], 2146 [ntp_ok=$enableval], 2147 [ntp_ok=$ntp_eac] 2148) 2149case "$ntp_ok" in 2150 yes) 2151 ntp_refclock=yes 2152 AC_DEFINE([CLOCK_HPGPS], 1, [HP 58503A GPS receiver?]) 2153 ;; 2154esac 2155AC_MSG_RESULT([$ntp_ok]) 2156 2157AC_MSG_CHECKING([IRIG audio decoder]) 2158AC_ARG_ENABLE( 2159 [IRIG], 2160 [AS_HELP_STRING( 2161 [--enable-IRIG], 2162 [s IRIG audio decoder] 2163 )], 2164 [ntp_ok=$enableval], 2165 [ 2166 case "$ntp_eac$ntp_canaudio" in 2167 *no*) ntp_ok=no ;; 2168 *) ntp_ok=yes ;; 2169 esac 2170 ] 2171) 2172case "$ntp_ok" in 2173 yes) 2174 ntp_refclock=yes 2175 AC_DEFINE([CLOCK_IRIG], [1], [IRIG audio decoder?]) 2176 ;; 2177esac 2178AC_MSG_RESULT([$ntp_ok]) 2179case "$ntp_ok$ntp_canaudio" in 2180 yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) 2181esac 2182 2183AC_MSG_CHECKING([for JJY receiver]) 2184AC_ARG_ENABLE( 2185 [JJY], 2186 [AS_HELP_STRING( 2187 [--enable-JJY], 2188 [+ JJY receiver] 2189 )], 2190 [ntp_ok=$enableval], 2191 [ntp_ok=$ntp_eac] 2192) 2193case "$ntp_ok" in 2194 yes) 2195 ntp_refclock=yes 2196 AC_DEFINE([CLOCK_JJY], [1], [JJY receiver?]) 2197 ;; 2198esac 2199AC_MSG_RESULT([$ntp_ok]) 2200 2201AC_MSG_CHECKING([Rockwell Jupiter GPS receiver]) 2202AC_ARG_ENABLE( 2203 [JUPITER], 2204 [AS_HELP_STRING( 2205 [--enable-JUPITER], 2206 [s Rockwell Jupiter GPS receiver] 2207 )], 2208 [ntp_ok=$enableval], [ntp_ok=$ntp_eac]) 2209case "$ntp_jupiter_ok" in 2210 no) ntp_ok=no ;; 2211esac 2212case "$ntp_ok" in 2213 yes) 2214 ntp_refclock=yes 2215 AC_DEFINE([CLOCK_JUPITER], [1], [Rockwell Jupiter GPS clock?]) 2216 ;; 2217esac 2218AC_MSG_RESULT([$ntp_ok]) 2219 2220AC_MSG_CHECKING([Leitch CSD 5300 Master Clock System Driver]) 2221AC_ARG_ENABLE( 2222 [LEITCH], 2223 [AS_HELP_STRING( 2224 [--enable-LEITCH], 2225 [+ Leitch CSD 5300 Master Clock System Driver] 2226 )], 2227 [ntp_ok=$enableval], 2228 [ntp_ok=$ntp_eac] 2229) 2230case "$ntp_ok" in 2231 yes) 2232 ntp_refclock=yes 2233 AC_DEFINE([CLOCK_LEITCH], [1], 2234 [Leitch CSD 5300 Master Clock System Driver?]) 2235 ;; 2236esac 2237AC_MSG_RESULT([$ntp_ok]) 2238 2239AC_MSG_CHECKING([local clock reference]) 2240AC_ARG_ENABLE( 2241 [LOCAL-CLOCK], 2242 [AS_HELP_STRING( 2243 [--enable-LOCAL-CLOCK], 2244 [+ local clock reference] 2245 )], 2246 [ntp_ok=$enableval], 2247 [ntp_ok=$ntp_eac] 2248) 2249case "$ntp_ok" in 2250 yes) 2251 ntp_refclock=yes 2252 AC_DEFINE([CLOCK_LOCAL], [1], [local clock reference?]) 2253 ;; 2254esac 2255AC_MSG_RESULT([$ntp_ok]) 2256 2257dnl Bug 340: longstanding unfixed bugs 2258dnl AC_MSG_CHECKING([EES M201 MSF receiver]) 2259dnl AC_ARG_ENABLE([MSFEES], 2260dnl [AS_HELP_STRING([--enable-MSFEES], [+ EES M201 MSF receiver])], 2261dnl [ntp_ok=$enableval], [ntp_ok=$ntp_eac]) 2262dnl if test "$ntp_ok" = "yes"; then 2263dnl ntp_refclock=yes 2264dnl AC_DEFINE([CLOCK_MSFEES], [1], [EES M201 MSF receiver]) 2265dnl fi 2266dnl AC_MSG_RESULT([$ntp_ok]) 2267 2268# Not Ultrix 2269AC_MSG_CHECKING([Magnavox MX4200 GPS receiver]) 2270AC_ARG_ENABLE( 2271 [MX4200], 2272 [AS_HELP_STRING( 2273 [--enable-MX4200 ], 2274 [s Magnavox MX4200 GPS receiver] 2275 )], 2276 [ntp_ok=$enableval], 2277 [ 2278 case "$ac_cv_var_ppsclock" in 2279 yes) 2280 ntp_ok=$ntp_eac 2281 ;; 2282 *) 2283 ntp_ok=no 2284 ;; 2285 esac 2286 ] 2287) 2288case "$ntp_ok" in 2289 yes) 2290 ntp_refclock=yes 2291 AC_DEFINE([CLOCK_MX4200], [1], [Magnavox MX4200 GPS receiver]) 2292 ;; 2293esac 2294AC_MSG_RESULT([$ntp_ok]) 2295case "$ntp_ok$host" in 2296 yes*-*-ultrix*) AC_MSG_WARN([*** But the expected answer is... no ***]) 2297esac 2298 2299AC_MSG_CHECKING([for NeoClock4X receiver]) 2300AC_ARG_ENABLE( 2301 [NEOCLOCK4X], 2302 [AS_HELP_STRING( 2303 [--enable-NEOCLOCK4X], 2304 [+ NeoClock4X DCF77 / TDF receiver] 2305 )], 2306 [ntp_ok=$enableval], 2307 [ntp_ok=$ntp_eac] 2308) 2309case "$ntp_ok" in 2310 yes) 2311 ntp_refclock=yes 2312 AC_DEFINE([CLOCK_NEOCLOCK4X], [1], [NeoClock4X]) 2313 ;; 2314esac 2315AC_MSG_RESULT([$ntp_ok]) 2316 2317AC_MSG_CHECKING([NMEA GPS receiver]) 2318AC_ARG_ENABLE( 2319 [NMEA], 2320 [AS_HELP_STRING( 2321 [--enable-NMEA], 2322 [+ NMEA GPS receiver] 2323 )], 2324 [ntp_ok=$enableval], 2325 [ntp_ok=$ntp_eac] 2326) 2327case "$ntp_ok" in 2328 yes) 2329 ntp_refclock=yes 2330 AC_DEFINE([CLOCK_NMEA], [1], [NMEA GPS receiver]) 2331 ;; 2332esac 2333AC_MSG_RESULT([$ntp_ok]) 2334 2335AC_CHECK_FUNCS([strtoll]) 2336AC_MSG_CHECKING([for GPSD JSON receiver]) 2337AC_ARG_ENABLE( 2338 [GPSD], 2339 [AS_HELP_STRING( 2340 [--enable-GPSD], 2341 [+ GPSD JSON receiver] 2342 )], 2343 [ntp_ok=$enableval], 2344 [case "$ac_cv_func_strtoll" in 2345 yes) ntp_ok=$ntp_eac ;; 2346 *) ntp_ok="no" ;; 2347 esac] 2348) 2349case "$ntp_ok" in 2350 yes) 2351 ntp_refclock=yes 2352 AC_DEFINE([CLOCK_GPSDJSON], [1], [GPSD JSON receiver]) 2353 ;; 2354esac 2355AC_MSG_RESULT([$ntp_ok]) 2356 2357AC_MSG_CHECKING([for ONCORE Motorola VP/UT Oncore GPS]) 2358AC_ARG_ENABLE( 2359 [ONCORE], 2360 [AS_HELP_STRING( 2361 [--enable-ONCORE], 2362 [s Motorola VP/UT Oncore GPS receiver] 2363 )], 2364 [ntp_ok=$enableval], 2365 [ntp_ok=$ntp_eac] 2366) 2367case "$ntp_oncore_ok" in 2368 no) ntp_ok=no ;; 2369esac 2370case "$ntp_ok" in 2371 yes) 2372 ntp_refclock=yes 2373 AC_DEFINE([CLOCK_ONCORE], 1, [Motorola UT Oncore GPS]) 2374 ;; 2375esac 2376AC_MSG_RESULT([$ntp_ok]) 2377 2378# Requires modem control 2379AC_MSG_CHECKING([for Palisade clock]) 2380AC_ARG_ENABLE( 2381 [PALISADE], 2382 [AS_HELP_STRING( 2383 [--enable-PALISADE], 2384 [s Palisade clock] 2385 )], 2386 [ntp_ok=$enableval], 2387 [ntp_ok=$ntp_enable_all_modem_control_clocks] 2388) 2389case "$ntp_ok" in 2390 yes) 2391 ntp_refclock=yes 2392 AC_DEFINE([CLOCK_PALISADE], [1], [Palisade clock]) 2393 ;; 2394esac 2395AC_MSG_RESULT([$ntp_ok]) 2396 2397AC_MSG_CHECKING([Conrad parallel port radio clock]) 2398AC_ARG_ENABLE( 2399 [PCF], 2400 [AS_HELP_STRING( 2401 [--enable-PCF ], 2402 [+ Conrad parallel port radio clock] 2403 )], 2404 [ntp_ok=$enableval], 2405 [ntp_ok=$ntp_eac] 2406) 2407case "$ntp_ok" in 2408 yes) 2409 ntp_refclock=yes 2410 AC_DEFINE([CLOCK_PCF], [1], [Conrad parallel port radio clock]) 2411 ;; 2412esac 2413AC_MSG_RESULT([$ntp_ok]) 2414 2415AC_MSG_CHECKING([PST/Traconex 1020 WWV/WWVH receiver]) 2416AC_ARG_ENABLE( 2417 [PST], 2418 [AS_HELP_STRING( 2419 [--enable-PST], 2420 [+ PST/Traconex 1020 WWV/WWVH receiver] 2421 )], 2422 [ntp_ok=$enableval], 2423 [ntp_ok=$ntp_eac] 2424) 2425case "$ntp_ok" in 2426 yes) 2427 ntp_refclock=yes 2428 AC_DEFINE([CLOCK_PST], [1], [PST/Traconex 1020 WWV/WWVH receiver]) 2429 ;; 2430esac 2431AC_MSG_RESULT([$ntp_ok]) 2432 2433AC_MSG_CHECKING([RIPENCC specific Trimble driver]) 2434AC_ARG_ENABLE( 2435 [RIPENCC], 2436 [AS_HELP_STRING( 2437 [--enable-RIPENCC], 2438 [- RIPENCC specific Trimble driver] 2439 )], 2440 [ntp_ok=$enableval], 2441 [ntp_ok=no] 2442) 2443# 020629: HMS: s/$ntp_eac -> -/no because of ptr += sprintf(ptr, ...) usage 2444case "$ntp_ripe_ncc_ok" in 2445 no) ntp_ok=no ;; 2446esac 2447case "$ntp_ok" in 2448 yes) 2449 ntp_refclock=yes 2450 AC_DEFINE([CLOCK_RIPENCC], [],[RIPE NCC Trimble clock]) 2451 ;; 2452esac 2453AC_MSG_RESULT([$ntp_ok]) 2454 2455# Danny Meyer says SHM compiles (with a few warnings) under Win32. 2456# For *IX, we need sys/ipc.h and sys/shm.h. 2457AC_MSG_CHECKING([for SHM clock attached thru shared memory]) 2458AC_ARG_ENABLE( 2459 [SHM], 2460 [AS_HELP_STRING( 2461 [--enable-SHM], 2462 [s SHM clock attached thru shared memory] 2463 )], 2464 [ntp_ok=$enableval], 2465 [ 2466 case "$ntp_eac$ntp_canshm" in 2467 *no*) ntp_ok=no ;; 2468 *) ntp_ok=yes ;; 2469 esac 2470 ] 2471) 2472case "$ntp_ok" in 2473 yes) 2474 ntp_refclock=yes 2475 AC_DEFINE([CLOCK_SHM], [1], [clock thru shared memory]) 2476 ;; 2477esac 2478AC_MSG_RESULT([$ntp_ok]) 2479 2480AC_MSG_CHECKING([Spectracom 8170/Netclock/2 WWVB receiver]) 2481AC_ARG_ENABLE( 2482 [SPECTRACOM], 2483 [AS_HELP_STRING( 2484 [--enable-SPECTRACOM], 2485 [+ Spectracom 8170/Netclock/2 WWVB receiver] 2486 )], 2487 [ntp_ok=$enableval], 2488 [ntp_ok=$ntp_eac] 2489) 2490case "$ntp_ok" in 2491 yes) 2492 ntp_refclock=yes 2493 AC_DEFINE([CLOCK_SPECTRACOM], [1], 2494 [Spectracom 8170/Netclock/2 WWVB receiver]) 2495 ;; 2496esac 2497AC_MSG_RESULT([$ntp_ok]) 2498 2499AC_MSG_CHECKING([KSI/Odetics TPRO/S GPS receiver/IRIG interface]) 2500AC_ARG_ENABLE( 2501 [TPRO], 2502 [AS_HELP_STRING( 2503 [--enable-TPRO], 2504 [s KSI/Odetics TPRO/S GPS receiver/IRIG interface] 2505 )], 2506 [ntp_ok=$enableval], 2507 [ 2508 case "$ac_cv_header_sys_tpro_h" in 2509 yes) 2510 ntp_ok=$ntp_eac 2511 ;; 2512 *) 2513 ntp_ok=no 2514 ;; 2515 esac 2516 ] 2517) 2518case "$ntp_ok" in 2519 yes) 2520 ntp_refclock=yes 2521 AC_DEFINE([CLOCK_TPRO], [1], 2522 [KSI/Odetics TPRO/S GPS receiver/IRIG interface]) 2523 ;; 2524esac 2525AC_MSG_RESULT([$ntp_ok]) 2526case "$ntp_ok$ac_cv_header_sys_tpro" in 2527 yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) 2528esac 2529 2530# Not on a vax-dec-bsd 2531AC_MSG_CHECKING([Kinemetrics/TrueTime receivers]) 2532AC_ARG_ENABLE( 2533 [TRUETIME], 2534 [AS_HELP_STRING( 2535 [--enable-TRUETIME], 2536 [s Kinemetrics/TrueTime receivers] 2537 )], 2538 [ntp_ok=$enableval], 2539 [ 2540 case "$host" in 2541 vax-dec-bsd) 2542 ntp_ok=no 2543 ;; 2544 *) 2545 ntp_ok=$ntp_eac 2546 ;; 2547 esac 2548 ] 2549) 2550case "$ntp_ok" in 2551 yes) 2552 ntp_refclock=yes 2553 AC_DEFINE([CLOCK_TRUETIME], [1], [Kinemetrics/TrueTime receivers]) 2554 ;; 2555esac 2556AC_MSG_RESULT([$ntp_ok]) 2557case "$ntp_ok$host" in 2558 yesvax-dec-bsd) AC_MSG_WARN([*** But the expected answer is... no ***]) 2559esac 2560 2561AC_MSG_CHECKING([TrueTime 560 IRIG-B decoder]) 2562AC_ARG_ENABLE( 2563 [TT560], 2564 [AS_HELP_STRING( 2565 [--enable-TT560], 2566 [- TrueTime 560 IRIG-B decoder] 2567 )], 2568 [ntp_ok=$enableval], 2569 [ntp_ok=no] 2570) 2571case "$ntp_ok" in 2572 yes) 2573 ntp_refclock=yes 2574 AC_DEFINE([CLOCK_TT560], [], [TrueTime 560 IRIG-B decoder?]) 2575 ;; 2576esac 2577AC_MSG_RESULT([$ntp_ok]) 2578 2579AC_MSG_CHECKING([Ultralink M320 WWVB receiver]) 2580AC_ARG_ENABLE( 2581 [ULINK], 2582 [AS_HELP_STRING( 2583 [--enable-ULINK], 2584 [+ Ultralink WWVB receiver] 2585 )], 2586 [ntp_ok=$enableval], 2587 [ntp_ok=$ntp_eac] 2588) 2589case "$ntp_ok" in 2590 yes) 2591 ntp_refclock=yes 2592 AC_DEFINE([CLOCK_ULINK], [1], [Ultralink M320 WWVB receiver?]) 2593 ;; 2594esac 2595AC_MSG_RESULT([$ntp_ok]) 2596 2597AC_MSG_CHECKING([Spectracom TSYNC PCI timing board]) 2598AC_ARG_ENABLE( 2599 [TSYNCPCI], 2600 [AS_HELP_STRING( 2601 [--enable-TSYNCPCI], 2602 [s Spectracom TSYNC timing board] 2603 )], 2604 [ntp_ok=$enableval], 2605 [ 2606 case "$host" in 2607 *-*-*linux*) 2608 ntp_ok=$ntp_eac 2609 ;; 2610 *) 2611 ntp_ok=no 2612 esac 2613 ] 2614) 2615case "$ntp_ok" in 2616 yes) 2617 ntp_refclock=yes 2618 AC_DEFINE([CLOCK_TSYNCPCI], [1], [Spectracom TSYNC timing board]) 2619 ;; 2620esac 2621AC_MSG_RESULT([$ntp_ok]) 2622 2623AC_MSG_CHECKING([WWV receiver]) 2624AC_ARG_ENABLE( 2625 [WWV], 2626 [AS_HELP_STRING( 2627 [--enable-WWV], 2628 [s WWV Audio receiver] 2629 )], 2630 [ntp_ok=$enableval], 2631 [ 2632 case "$ntp_eac$ntp_canaudio" in 2633 *no*) ntp_ok=no ;; 2634 *) ntp_ok=yes ;; 2635 esac 2636 ] 2637) 2638case "$ntp_ok" in 2639 yes) 2640 ntp_refclock=yes 2641 AC_DEFINE([CLOCK_WWV], [1], [WWV audio driver]) 2642 ;; 2643esac 2644AC_MSG_RESULT([$ntp_ok]) 2645case "$ntp_ok$ntp_canaudio" in 2646 yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) 2647esac 2648 2649AC_MSG_CHECKING([for Zyfer receiver]) 2650AC_ARG_ENABLE( 2651 [ZYFER], 2652 [AS_HELP_STRING( 2653 [--enable-ZYFER], 2654 [+ Zyfer GPStarplus receiver] 2655 )], 2656 [ntp_ok=$enableval], 2657 [ntp_ok=$ntp_eac] 2658) 2659case "$ntp_ok" in 2660 yes) 2661 ntp_refclock=yes 2662 AC_DEFINE([CLOCK_ZYFER], [1], [Zyfer GPStarplus]) 2663 ;; 2664esac 2665AC_MSG_RESULT([$ntp_ok]) 2666 2667AC_MSG_CHECKING([for default inclusion of all suitable PARSE clocks]) 2668AC_ARG_ENABLE( 2669 [parse-clocks], 2670 [AS_HELP_STRING( 2671 [--enable-parse-clocks], 2672 [- include all suitable PARSE clocks:] 2673 )], 2674 [ntp_eapc=$enableval], 2675 [ 2676 case "$ntp_eac" in 2677 yes) ntp_eapc=$ntp_canparse ;; 2678 *) ntp_eapc=no ;; 2679 esac 2680 # Delete the next line one of these days 2681 ntp_eapc=no 2682 ] 2683) 2684AC_MSG_RESULT($ntp_eapc) 2685 2686case "$ntp_eac$ntp_eapc$ntp_canparse" in 2687 noyes*) 2688 AC_MSG_ERROR(["--enable-parse-clocks" requires "--enable-all-clocks".]) 2689 ;; 2690 yesyesno) 2691 AC_MSG_ERROR([You said "--enable-parse-clocks" but PARSE isn't supported on this platform!]) 2692 ;; 2693esac 2694 2695ntp_libparse=no 2696ntp_parseutil=no 2697ntp_rawdcf=no 2698 2699AC_MSG_CHECKING([Diem Computime Radio Clock]) 2700AC_ARG_ENABLE( 2701 [COMPUTIME], 2702 [AS_HELP_STRING( 2703 [--enable-COMPUTIME], 2704 [s Diem Computime Radio Clock] 2705 )], 2706 [ntp_ok=$enableval], 2707 [ntp_ok=$ntp_eapc] 2708) 2709case "$ntp_ok" in 2710 yes) 2711 ntp_libparse=yes 2712 ntp_refclock=yes 2713 AC_DEFINE([CLOCK_COMPUTIME], [1], [Diems Computime Radio Clock?]) 2714 ;; 2715esac 2716AC_MSG_RESULT([$ntp_ok]) 2717case "$ntp_ok$ntp_canparse" in 2718 yesno) 2719 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2720esac 2721 2722AC_MSG_CHECKING([ELV/DCF7000 clock]) 2723AC_ARG_ENABLE( 2724 [DCF7000], 2725 [AS_HELP_STRING( 2726 [--enable-DCF7000], 2727 [s ELV/DCF7000 clock] 2728 )], 2729 [ntp_ok=$enableval], 2730 [ntp_ok=$ntp_eapc] 2731) 2732case "$ntp_ok" in 2733 yes) 2734 ntp_libparse=yes 2735 ntp_refclock=yes 2736 AC_DEFINE([CLOCK_DCF7000], [1], [ELV/DCF7000 clock?]) 2737 ;; 2738esac 2739AC_MSG_RESULT([$ntp_ok]) 2740case "$ntp_ok$ntp_canparse" in 2741 yesno) 2742 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2743esac 2744 2745AC_MSG_CHECKING([HOPF 6021 clock]) 2746AC_ARG_ENABLE( 2747 [HOPF6021], 2748 [AS_HELP_STRING( 2749 [--enable-HOPF6021], 2750 [s HOPF 6021 clock] 2751 )], 2752 [ntp_ok=$enableval], 2753 [ntp_ok=$ntp_eapc] 2754) 2755case "$ntp_ok" in 2756 yes) 2757 ntp_libparse=yes 2758 ntp_refclock=yes 2759 AC_DEFINE([CLOCK_HOPF6021], [1], [HOPF 6021 clock?]) 2760 ;; 2761esac 2762AC_MSG_RESULT([$ntp_ok]) 2763case "$ntp_ok$ntp_canparse" in 2764 yesno) 2765 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2766esac 2767 2768AC_MSG_CHECKING([Meinberg clocks]) 2769AC_ARG_ENABLE( 2770 [MEINBERG], 2771 [AS_HELP_STRING( 2772 [--enable-MEINBERG], 2773 [s Meinberg clocks] 2774 )], 2775 [ntp_ok=$enableval], 2776 [ntp_ok=$ntp_eapc] 2777) 2778case "$ntp_ok" in 2779 yes) 2780 ntp_libparse=yes 2781 ntp_refclock=yes 2782 AC_DEFINE([CLOCK_MEINBERG], [1], [Meinberg clocks]) 2783 ;; 2784esac 2785AC_MSG_RESULT([$ntp_ok]) 2786case "$ntp_ok$ntp_canparse" in 2787 yesno) 2788 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2789esac 2790 2791AC_MSG_CHECKING([DCF77 raw time code]) 2792AC_ARG_ENABLE( 2793 [RAWDCF], 2794 [AS_HELP_STRING( 2795 [--enable-RAWDCF], 2796 [s DCF77 raw time code] 2797 )], 2798 [ntp_ok=$enableval], 2799 [ntp_ok=$ntp_eapc] 2800) 2801case "$ntp_ok" in 2802 yes) 2803 ntp_libparse=yes 2804 ntp_parseutil=yes 2805 ntp_refclock=yes 2806 ntp_rawdcf=yes 2807 AC_DEFINE([CLOCK_RAWDCF], [1], [DCF77 raw time code]) 2808 ;; 2809esac 2810AC_MSG_RESULT([$ntp_ok]) 2811case "$ntp_ok$ntp_canparse" in 2812 yesno) 2813 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2814esac 2815 2816case "$ntp_rawdcf" in 2817 yes) 2818 AC_CACHE_CHECK([if we must enable parity for RAWDCF], 2819 [ntp_cv_rawdcf_parity], 2820 [ 2821 ans=no 2822 case "$host" in 2823 *-*-*linux*) 2824 ans=yes 2825 ;; 2826 esac 2827 ntp_cv_rawdcf_parity=$ans 2828 ] 2829 ) 2830 case "$ntp_cv_rawdcf_parity" in 2831 yes) 2832 AC_DEFINE([RAWDCF_NO_IGNPAR], [1], 2833 [Should we not IGNPAR (Linux)?]) ;; 2834 esac 2835esac 2836 2837AC_MSG_CHECKING([RCC 8000 clock]) 2838AC_ARG_ENABLE( 2839 [RCC8000], 2840 [AS_HELP_STRING( 2841 [--enable-RCC8000], 2842 [s RCC 8000 clock] 2843 )], 2844 [ntp_ok=$enableval], 2845 [ntp_ok=$ntp_eapc] 2846) 2847case "$ntp_ok" in 2848 yes) 2849 ntp_libparse=yes 2850 ntp_refclock=yes 2851 AC_DEFINE([CLOCK_RCC8000], [1], [RCC 8000 clock]) 2852 ;; 2853esac 2854AC_MSG_RESULT([$ntp_ok]) 2855case "$ntp_ok$ntp_canparse" in 2856 yesno) 2857 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2858esac 2859 2860AC_MSG_CHECKING([Schmid DCF77 clock]) 2861AC_ARG_ENABLE( 2862 [SCHMID], 2863 [AS_HELP_STRING( 2864 [--enable-SCHMID ], 2865 [s Schmid DCF77 clock] 2866 )], 2867 [ntp_ok=$enableval], 2868 [ntp_ok=$ntp_eapc] 2869) 2870case "$ntp_ok" in 2871 yes) 2872 ntp_libparse=yes 2873 ntp_refclock=yes 2874 AC_DEFINE([CLOCK_SCHMID], [1], [Schmid DCF77 clock]) 2875 ;; 2876esac 2877AC_MSG_RESULT([$ntp_ok]) 2878case "$ntp_ok$ntp_canparse" in 2879 yesno) 2880 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2881esac 2882 2883AC_MSG_CHECKING([Trimble GPS receiver/TAIP protocol]) 2884AC_ARG_ENABLE( 2885 [TRIMTAIP], 2886 [AS_HELP_STRING( 2887 [--enable-TRIMTAIP], 2888 [s Trimble GPS receiver/TAIP protocol] 2889 )], 2890 [ntp_ok=$enableval], 2891 [ntp_ok=$ntp_eapc] 2892) 2893case "$ntp_ok" in 2894 yes) 2895 ntp_libparse=yes 2896 ntp_refclock=yes 2897 AC_DEFINE([CLOCK_TRIMTAIP], [1], 2898 [Trimble GPS receiver/TAIP protocol]) 2899 ;; 2900esac 2901AC_MSG_RESULT([$ntp_ok]) 2902case "$ntp_ok$ntp_canparse" in 2903 yesno) 2904 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2905esac 2906 2907AC_MSG_CHECKING([Trimble GPS receiver/TSIP protocol]) 2908AC_ARG_ENABLE( 2909 [TRIMTSIP], 2910 [AS_HELP_STRING( 2911 [--enable-TRIMTSIP], 2912 [s Trimble GPS receiver/TSIP protocol] 2913 )], 2914 [ntp_ok=$enableval], 2915 [ntp_ok=$ntp_eapc] 2916) 2917case "$ntp_ok" in 2918 yes) 2919 ntp_libparse=yes 2920 ntp_refclock=yes 2921 AC_DEFINE([CLOCK_TRIMTSIP], [1], 2922 [Trimble GPS receiver/TSIP protocol]) 2923 ;; 2924esac 2925AC_MSG_RESULT([$ntp_ok]) 2926case "$ntp_ok$ntp_canparse" in 2927 yesno) 2928 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2929esac 2930 2931AC_MSG_CHECKING([WHARTON 400A Series clock]) 2932AC_ARG_ENABLE( 2933 [WHARTON], 2934 [AS_HELP_STRING( 2935 [--enable-WHARTON], 2936 [s WHARTON 400A Series clock] 2937 )], 2938 [ntp_ok=$enableval], 2939 [ntp_ok=$ntp_eapc] 2940) 2941case "$ntp_ok" in 2942 yes) 2943 ntp_libparse=yes 2944 ntp_refclock=yes 2945 AC_DEFINE([CLOCK_WHARTON_400A], [1], [WHARTON 400A Series clock]) 2946 ;; 2947esac 2948AC_MSG_RESULT([$ntp_ok]) 2949case "$ntp_ok$ntp_canparse" in 2950 yesno) 2951 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2952esac 2953 2954AC_MSG_CHECKING([VARITEXT clock]) 2955AC_ARG_ENABLE( 2956 [VARITEXT], 2957 [AS_HELP_STRING( 2958 [--enable-VARITEXT], 2959 [s VARITEXT clock] 2960 )], 2961 [ntp_ok=$enableval], 2962 [ntp_ok=$ntp_eapc] 2963) 2964case "$ntp_ok" in 2965 yes) 2966 ntp_libparse=yes 2967 ntp_refclock=yes 2968 AC_DEFINE([CLOCK_VARITEXT], [1], [VARITEXT clock]) 2969 ;; 2970esac 2971AC_MSG_RESULT([$ntp_ok]) 2972case "$ntp_ok$ntp_canparse" in 2973 yesno) 2974 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2975esac 2976 2977AC_MSG_CHECKING(SEL240X clock) 2978AC_ARG_ENABLE(SEL240X, 2979 AC_HELP_STRING([--enable-SEL240X], [s SEL240X clock]), 2980 [ntp_ok=$enableval], [ntp_ok=$ntp_eapc]) 2981if test "$ntp_ok" = "yes"; then 2982 ntp_libparse=yes 2983 ntp_refclock=yes 2984 AC_DEFINE(CLOCK_SEL240X, 1, [SEL240X protocol]) 2985fi 2986AC_MSG_RESULT($ntp_ok) 2987case "$ntp_ok$ntp_canparse" in 2988 yesno) 2989 AC_MSG_ERROR(That's a parse clock and this system doesn't support it!) 2990 ;; 2991esac 2992 2993AC_SUBST([LIBPARSE]) 2994AC_SUBST([MAKE_LIBPARSE]) 2995AC_SUBST([MAKE_LIBPARSE_KERNEL]) 2996AC_SUBST([MAKE_CHECK_Y2K]) 2997 2998AC_MSG_CHECKING([if we need to make and use the parse libraries]) 2999ans=no 3000case "$ntp_libparse" in 3001 yes) 3002 ans=yes 3003 AC_DEFINE([CLOCK_PARSE], [1], [PARSE driver interface]) 3004 LIBPARSE=../libparse/libparse.a 3005 MAKE_LIBPARSE=libparse.a 3006 # HMS: check_y2k trips the 34 year problem now... 3007 false && MAKE_CHECK_Y2K=check_y2k 3008esac 3009AC_MSG_RESULT([$ans]) 3010 3011# if we have crypto, by default Autokey is enabled 3012AC_ARG_ENABLE( 3013 [autokey], 3014 AS_HELP_STRING( 3015 [--enable-autokey], 3016 [+ support NTP Autokey protocol] 3017 ), 3018 [ntp_autokey=$enableval], 3019 [ntp_autokey=$ntp_openssl] 3020) 3021case "$ntp_autokey" in 3022 no) 3023 ;; 3024 *) 3025 case "$ntp_openssl" in 3026 no) 3027 AC_MSG_WARN([Disabling Autokey, crypto unavailable.]) 3028 ntp_autokey=no 3029 ;; 3030 *) 3031 AC_DEFINE([AUTOKEY], [1], [Support NTP Autokey protocol?]) 3032 ntp_autokey=yes 3033 ;; 3034 esac 3035 ;; 3036esac 3037AC_MSG_CHECKING([if NTP Autokey protocol will be supported]) 3038AC_MSG_RESULT([$ntp_autokey]) 3039 3040AC_SUBST([MAKE_CHECK_LAYOUT]) 3041AC_MSG_CHECKING([if we want to run check-layout]) 3042case "$cross_compiling$PATH_PERL" in 3043 no/*) 3044 MAKE_CHECK_LAYOUT=check-layout 3045 ans=yes 3046 ;; 3047 *) 3048 ans=no 3049 ;; 3050esac 3051AC_MSG_RESULT([$ans]) 3052 3053AC_SUBST([TESTDCF]) 3054AC_SUBST([DCFD]) 3055AC_MSG_CHECKING([if we can make dcf parse utilities]) 3056ans=no 3057case "$ntp_parseutil" in 3058 yes) 3059 case "$host" in 3060 *-*-sunos4*|*-*-solaris2*|*-*-*linux*|*-*-netbsd*) 3061 ans="dcfd testdcf" 3062 DCFD=dcfd 3063 TESTDCF=testdcf 3064 esac 3065 ;; 3066esac 3067AC_MSG_RESULT([$ans]) 3068 3069AC_SUBST([MAKE_PARSEKMODULE]) 3070AC_MSG_CHECKING([if we can build kernel streams modules for parse]) 3071ans=no 3072case "$ntp_parseutil$ac_cv_header_sys_stropts_h" in 3073 yesyes) 3074 case "$host" in 3075 sparc-*-sunos4*) 3076 case "$ntp_cv_var_kernel_pll" in 3077 yes) 3078 AC_DEFINE([PPS_SYNC], [1], [PARSE kernel PLL PPS support]) 3079 ;; 3080 esac 3081 ans=parsestreams 3082 MAKE_PARSEKMODULE=parsestreams.loadable_module.o 3083 ;; 3084 sparc-*-solaris2*) 3085 ans=parsesolaris 3086 MAKE_PARSEKMODULE=parse 3087 AC_CHECK_HEADERS([strings.h]) 3088 ;; 3089 esac 3090 ;; 3091esac 3092AC_MSG_RESULT([$ans]) 3093 3094AC_MSG_CHECKING([if we need basic refclock support]) 3095case "$ntp_refclock" in 3096 yes) 3097 AC_DEFINE([REFCLOCK], [1], [Basic refclock support?]) 3098 ;; 3099esac 3100AC_MSG_RESULT($ntp_refclock) 3101 3102dnl Things that can be made in clockstuff 3103AC_SUBST([PROPDELAY], [propdelay]) 3104AC_SUBST([CHUTEST]) dnl needs work to compile 3105 3106AC_SUBST([MAKE_ADJTIMED]) 3107AC_MSG_CHECKING([if we want HP-UX adjtimed support]) 3108case "$host" in 3109 *-*-hpux[[56789]]*) 3110 ans=yes 3111 ;; 3112 *) ans=no 3113 ;; 3114esac 3115case "$ans" in 3116 yes) 3117 MAKE_ADJTIMED=adjtimed 3118 AC_DEFINE([NEED_HPUX_ADJTIME], [1], 3119 [Do we need HPUX adjtime() library support?]) 3120 ;; 3121 *) ADJTIMED_DB= 3122 ADJTIMED_DL= 3123 ADJTIMED_DS= 3124 ADJTIMED_MS= 3125 ;; 3126esac 3127AC_MSG_RESULT([$ans]) 3128 3129AC_MSG_CHECKING([if we want QNX adjtime support]) 3130case "$host" in 3131 *-*-qnx*) 3132 ans=yes 3133 ;; 3134 *) ans=no 3135 ;; 3136esac 3137case "$ans" in 3138 yes) 3139 AC_DEFINE([NEED_QNX_ADJTIME], [1], 3140 [Do we need the qnx adjtime call?]) 3141 ;; 3142esac 3143AC_MSG_RESULT([$ans]) 3144 3145AC_MSG_CHECKING([if we can read kmem]) 3146 3147# the default is to enable it if the system has the capability 3148 3149case "$ac_cv_func_nlist$ac_cv_func_K_open$ac_cv_func_kvm_open" in 3150 *yes*) 3151 ans=yes 3152 ;; 3153 *) ans=no 3154 ;; 3155esac 3156 3157case "$host" in 3158 *-*-domainos) # Won't be found... 3159 ans=no 3160 ;; 3161 *-*-hpux*) 3162 #ans=no 3163 ;; 3164 *-*-irix[[456]]*) 3165 ans=no 3166 ;; 3167 *-*-*linux*) 3168 ans=no 3169 ;; 3170 *-*-winnt3.5) 3171 ans=no 3172 ;; 3173 *-*-unicosmp*) 3174 ans=no 3175 ;; 3176esac 3177 3178# --enable-kmem / --disable-kmem controls if present 3179AC_ARG_ENABLE( 3180 [kmem], 3181 [AS_HELP_STRING( 3182 [--enable-kmem], 3183 [s read /dev/kmem for tick and/or tickadj] 3184 )], 3185 [ans=$enableval] 3186) 3187 3188AC_MSG_RESULT([$ans]) 3189 3190case "$ans" in 3191 yes) 3192 can_kmem=yes 3193 ;; 3194 *) 3195 can_kmem=no 3196 AC_DEFINE([NOKMEM], [1], [Should we NOT read /dev/kmem?]) 3197esac 3198 3199 3200AC_MSG_CHECKING([if adjtime is accurate]) 3201 3202# target-dependent defaults 3203 3204case "$host" in 3205 i386-sequent-ptx*) 3206 ans=no 3207 ;; 3208 i386-unknown-osf1*) 3209 ans=yes 3210 ;; 3211 mips-sgi-irix[[456]]*) 3212 ans=yes 3213 ;; 3214 *-fujitsu-uxp*) 3215 ans=yes 3216 ;; 3217 *-ibm-aix[[4-9]]*) 3218 # XXX only verified thru AIX6. 3219 ans=yes 3220 ;; 3221 *-*-*linux*) 3222 ans=yes 3223 ;; 3224 *-*-solaris2.[[01]]) 3225 ans=no 3226 ;; 3227 *-*-solaris2*) 3228 ans=yes 3229 ;; 3230 *-*-unicosmp*) 3231 ans=yes 3232 ;; 3233 *) ans=no 3234 ;; 3235esac 3236 3237# --enable-accurate-adjtime / --disable-accurate-adjtime 3238# override the default 3239AC_ARG_ENABLE( 3240 [accurate-adjtime], 3241 [AS_HELP_STRING( 3242 [--enable-accurate-adjtime], 3243 [s the adjtime() call is accurate] 3244 )], 3245 [ans=$enableval] 3246) 3247 3248AC_MSG_RESULT([$ans]) 3249 3250case "$ans" in 3251 yes) 3252 AC_DEFINE([ADJTIME_IS_ACCURATE], [1], [Is adjtime() accurate?]) 3253 adjtime_is_accurate=yes 3254 ;; 3255 *) 3256 adjtime_is_accurate=no 3257 ;; 3258esac 3259 3260AC_CACHE_CHECK( 3261 [the name of 'tick' in the kernel], 3262 [ntp_cv_nlist_tick], 3263 [ 3264 ans=_tick 3265 case "$host" in 3266 m68*-hp-hpux*) # HP9000/300? 3267 ans=_old_tick 3268 ;; 3269 *-apple-aux[[23]]*) 3270 ans=tick 3271 ;; 3272 *-hp-hpux*) 3273 ans=old_tick 3274 ;; 3275 *-ibm-aix[[3-9]]*) 3276 # XXX only verified thru AIX6. 3277 ans=no 3278 ;; 3279 *-*-mpeix*) 3280 ans=no 3281 ;; 3282 *-*-ptx*) 3283 ans=tick 3284 ;; 3285 *-*-sco3.2v[[45]]*) 3286 ans=no 3287 ;; 3288 *-*-solaris2*) 3289 ans=nsec_per_tick 3290 ;; 3291 *-*-sysv4*) 3292 ans=tick 3293 ;; 3294 esac 3295 ntp_cv_nlist_tick=$ans 3296 ] 3297) 3298case "$ntp_cv_nlist_tick" in 3299 ''|no) 3300 ;; # HMS: I think we can only get 'no' here... 3301 *) 3302 AC_DEFINE_UNQUOTED([K_TICK_NAME], ["$ntp_cv_nlist_tick"], 3303 [What is the name of TICK in the kernel?]) 3304esac 3305 3306AC_CACHE_CHECK( 3307 [for the units of 'tick'], 3308 [ntp_cv_tick_nano], 3309 [ 3310 ans=usec 3311 case "$host" in 3312 *-*-solaris2*) 3313 ans=nsec 3314 ;; 3315 esac 3316 ntp_cv_tick_nano=$ans 3317 ] 3318) 3319case "$ntp_cv_tick_nano" in 3320 nsec) 3321 AC_DEFINE([TICK_NANO], [1], [Is K_TICK_NAME in nanoseconds?]) 3322esac 3323 3324AC_CACHE_CHECK( 3325 [the name of 'tickadj' in the kernel], 3326 [ntp_cv_nlist_tickadj], 3327 [ 3328 ans=_tickadj 3329 case "$host" in 3330 m68*-hp-hpux*) # HP9000/300? 3331 ans=_tickadj 3332 ;; 3333 *-apple-aux[[23]]*) 3334 ans=tickadj 3335 ;; 3336 *-hp-hpux10*) 3337 ans=no 3338 ;; 3339 *-hp-hpux9*) 3340 ans=no 3341 ;; 3342 *-hp-hpux*) 3343 ans=tickadj 3344 ;; 3345 *-*-aix*) 3346 ans=tickadj 3347 ;; 3348 *-*-mpeix*) 3349 ans=no 3350 ;; 3351 *-*-ptx*) 3352 ans=tickadj 3353 ;; 3354 *-*-sco3.2v4*) 3355 ans=no 3356 ;; 3357 *-*-sco3.2v5.0*) 3358 ans=clock_drift 3359 ;; 3360 *-*-solaris2*) 3361 ans=no # hrestime_adj 3362 ;; 3363 *-*-sysv4*) 3364 ans=tickadj 3365 ;; 3366 esac 3367 ntp_cv_nlist_tickadj=$ans 3368 ] 3369) 3370case "$ntp_cv_nlist_tickadj" in 3371 ''|no) 3372 ;; # HMS: I think we can only get 'no' here... 3373 *) 3374 AC_DEFINE_UNQUOTED([K_TICKADJ_NAME], ["$ntp_cv_nlist_tickadj"], 3375 [What is the name of TICKADJ in the kernel?]) 3376esac 3377 3378AC_CACHE_CHECK( 3379 [for the units of 'tickadj'], 3380 [ntp_cv_tickadj_nano], 3381 [ 3382 ans=usec 3383 case "$host" in 3384 *-*-solaris2*) 3385 ans=nsec 3386 ;; 3387 esac 3388 ntp_cv_tickadj_nano=$ans 3389 ] 3390) 3391case "$ntp_cv_tickadj_nano" in 3392 nsec) 3393 AC_DEFINE([TICKADJ_NANO], [1], [Is K_TICKADJ_NAME in nanoseconds?]) 3394esac 3395 3396AC_CACHE_CHECK( 3397 [half-heartedly for 'dosynctodr' in the kernel], 3398 [ntp_cv_nlist_dosynctodr], 3399 [ 3400 case "$host" in 3401 *-apple-aux[[23]]*) 3402 ans=no 3403 ;; 3404 *-sni-sysv*) 3405 ans=dosynctodr 3406 ;; 3407 *-stratus-vos) 3408 ans=no 3409 ;; 3410 *-*-aix*) 3411 ans=dosynctodr 3412 ;; 3413 *-*-hpux*) 3414 ans=no 3415 ;; 3416 *-*-mpeix*) 3417 ans=no 3418 ;; 3419 *-*-nextstep*) 3420 ans=_dosynctodr 3421 ;; 3422 *-*-ptx*) 3423 ans=doresettodr 3424 ;; 3425 *-*-sco3.2v4*) 3426 ans=no 3427 ;; 3428 *-*-sco3.2v5*) 3429 ans=track_rtc 3430 ;; 3431 *-*-solaris2*) 3432 ans=dosynctodr 3433 ;; 3434 *-*-sysv4*) 3435 ans=doresettodr 3436 ;; 3437 *) 3438 ans=_dosynctodr 3439 ;; 3440 esac 3441 ntp_cv_nlist_dosynctodr=$ans 3442 ] 3443) 3444case "$ntp_cv_nlist_dosynctodr" in 3445 no) 3446 ;; 3447 *) 3448 AC_DEFINE_UNQUOTED([K_DOSYNCTODR_NAME], ["$ntp_cv_nlist_dosynctodr"], 3449 [What is (probably) the name of DOSYNCTODR in the kernel?]) 3450 ;; 3451esac 3452 3453AC_CACHE_CHECK( 3454 [half-heartedly for 'noprintf' in the kernel], 3455 [ntp_cv_nlist_noprintf], 3456 [ 3457 case "$host" in 3458 *-apple-aux[[23]]*) 3459 ans=no 3460 ;; 3461 *-sni-sysv*) 3462 ans=noprintf 3463 ;; 3464 *-stratus-vos) 3465 ans=no 3466 ;; 3467 *-*-aix*) 3468 ans=noprintf 3469 ;; 3470 *-*-hpux*) 3471 ans=no 3472 ;; 3473 *-*-mpeix*) 3474 ans=no 3475 ;; 3476 *-*-ptx*) 3477 ans=noprintf 3478 ;; 3479 *-*-nextstep*) 3480 ans=_noprintf 3481 ;; 3482 *-*-solaris2*) 3483 ans=noprintf 3484 ;; 3485 *-*-sysv4*) 3486 ans=noprintf 3487 ;; 3488 *) 3489 ans=_noprintf 3490 ;; 3491 esac 3492 ntp_cv_nlist_noprintf=$ans 3493 ] 3494) 3495case "$ntp_cv_nlist_noprintf" in 3496 no) 3497 ;; 3498 *) 3499 AC_DEFINE_UNQUOTED([K_NOPRINTF_NAME], ["$ntp_cv_nlist_noprintf"], 3500 [What is (probably) the name of NOPRINTF in the kernel?]) 3501 ;; 3502esac 3503 3504dnl The tick/tickadj sections were written by Skippy, who never learned 3505dnl that it's impolite (horridly gross) to show your guts in public. 3506 3507dnl tick tickadj 3508dnl 10000 80 Unixware 3509dnl 1000000L/hz tick/16 (Solaris,UXPV,HPUX) && ADJTIME_IS_ACCURATE 3510dnl 10000 150 sgi IRIX 3511dnl 1000000L/hz 1000 RS6000 && NOKMEM 3512dnl 1000000L/hz 668 DOMAINOS && NOKMEM 3513dnl 1000000L/hz 500/HZ other && NOKMEM 3514dnl txc.tick 1 Linux 3515dnl (every / 10) 50 WinNT - tickadj is roughly 500/hz 3516dnl 1000000L/hz (nlist) (Solaris && !ADJTIME_IS_ACCURATE), 3517dnl (RS6000 && !NOKMEM), SINIX MIPS 3518 3519dnl But we'll only use these "values" if we can't find anything else. 3520 3521AC_MSG_CHECKING([for a default value for 'tick']) 3522 3523# target-dependent default for tick 3524 3525case "$host" in 3526 *-*-pc-cygwin*) 3527 AC_MSG_ERROR([tick needs work for cygwin]) 3528 ;; 3529 *-univel-sysv*) 3530 ans=10000 3531 ;; 3532 *-*-irix*) 3533 ans=10000 3534 ;; 3535 *-*-*linux*) 3536 ans=txc.tick 3537 ;; 3538 *-*-mpeix*) 3539 ans=no 3540 ;; 3541 *-*-winnt3.5) 3542 ans='(every / 10)' 3543 ;; 3544 *-*-unicosmp*) 3545 ans=10000 3546 ;; 3547 *) 3548 ans='1000000L/hz' 3549 ;; 3550esac 3551 3552AC_ARG_ENABLE( 3553 [tick], 3554 [AS_HELP_STRING( 3555 [--enable-tick=VALUE], 3556 [s force a value for 'tick'] 3557 )], 3558 [ans=$enableval] 3559) 3560 3561AC_MSG_RESULT([$ans]) 3562 3563case "$ans" in 3564 ''|no) 3565 ;; # HMS: I think we can only get 'no' here... 3566 *) 3567 AC_DEFINE_UNQUOTED([PRESET_TICK], [$ans], 3568 [Preset a value for 'tick'?]) 3569esac 3570 3571AC_MSG_CHECKING([for a default value for 'tickadj']) 3572 3573# target-specific default 3574ans='500/hz' 3575case "$host" in 3576 *-fujitsu-uxp*) 3577 case "$adjtime_is_accurate" in 3578 yes) 3579 ans='tick/16' 3580 esac 3581 ;; 3582 *-univel-sysv*) 3583 ans=80 3584 ;; 3585 *-*-aix*) 3586 case "$can_kmem" in 3587 no) 3588 ans=1000 3589 ;; 3590 esac 3591 ;; 3592 *-*-domainos) # Skippy: won't be found... 3593 case "$can_kmem" in 3594 no) 3595 ans=668 3596 ;; 3597 esac 3598 ;; 3599 *-*-hpux*) 3600 case "$adjtime_is_accurate" in 3601 yes) 3602 ans='tick/16' 3603 ;; 3604 esac 3605 ;; 3606 *-*-irix*) 3607 ans=150 3608 ;; 3609 *-*-mpeix*) 3610 ans=no 3611 ;; 3612 *-*-sco3.2v5.0*) 3613 ans=10000L/hz 3614 ;; 3615 *-*-winnt3.5) 3616 ans=50 3617 ;; 3618 *-*-unicosmp*) 3619 ans=150 3620 ;; 3621esac 3622 3623AC_ARG_ENABLE( 3624 [tickadj], 3625 [AS_HELP_STRING( 3626 [--enable-tickadj=VALUE], 3627 [s force a value for 'tickadj'] 3628 )], 3629 [ans=$enableval] 3630) 3631 3632AC_MSG_RESULT([$ans]) 3633 3634default_tickadj=$ans 3635 3636case "$default_tickadj" in 3637 ''|no) 3638 ;; # HMS: I think we can only get 'no' here... 3639 *) 3640 AC_DEFINE_UNQUOTED([PRESET_TICKADJ], [$default_tickadj], 3641 [Preset a value for 'tickadj'?]) ;; 3642esac 3643 3644# Newer versions of ReliantUNIX round adjtime() values down to 3645# 1/100s (system tick). Sigh ... 3646# Unfortunately, there is no easy way to know if particular release 3647# has this "feature" or any obvious way to test for it. 3648case "$host" in 3649 mips-sni-sysv4*) 3650 AC_DEFINE([RELIANTUNIX_CLOCK], [1], 3651 [Do we want the ReliantUNIX clock hacks?]) 3652esac 3653 3654case "$host" in 3655 *-*-sco3.2v5*) 3656 AC_DEFINE([SCO5_CLOCK], [1], [Do we want the SCO clock hacks?]) 3657esac 3658 3659ntp_cv_make_tickadj=yes 3660case "$can_kmem$ac_cv_var_tick$default_tickadj" in 3661 nonono) # Don't read KMEM, no presets. Bogus. 3662 AC_MSG_WARN([Can't read kmem, no PRESET_TICK or PRESET_TICKADJ. No tickadj.]) 3663 ntp_cv_make_tickadj=no 3664 ;; 3665 nono*) # Don't read KMEM, no PRESET_TICK but PRESET_TICKADJ. Bogus. 3666 AC_MSG_WARN([Can't read kmem but no PRESET_TICK. No tickadj.]) 3667 ntp_cv_make_tickadj=no 3668 ;; 3669 no*no) # Don't read KMEM, PRESET_TICK but no PRESET_TICKADJ. Bogus. 3670 AC_MSG_WARN([Can't read kmem but no PRESET_TICKADJ. No tickadj.]) 3671 ntp_cv_make_tickadj=no 3672 ;; 3673 no*) # Don't read KMEM, PRESET_TICK and PRESET_TICKADJ. Cool. 3674 ;; 3675 yesnono) # Read KMEM, no presets. Cool. 3676 ;; 3677 yesno*) # Read KMEM, no PRESET_TICK but PRESET_TICKADJ. Bogus. 3678 AC_MSG_WARN([PRESET_TICKADJ is defined but not PRESET_TICK. Please report this.]) 3679 ;; 3680 yes*no) # Read KMEM, PRESET_TICK but no PRESET_TICKADJ. Cool. 3681 ;; 3682 yes*) # READ KMEM, PRESET_TICK and PRESET_TICKADJ. 3683 ;; 3684 *) # Generally bogus. 3685 AC_MSG_ERROR([This shouldn't happen.]) 3686 ;; 3687esac 3688 3689AC_SUBST(MAKE_NTPTIME) 3690AC_CACHE_CHECK([if we want and can make the ntptime utility], ac_cv_make_ntptime, 3691[case "$host" in 3692 *) case "$ntp_cv_struct_ntptimeval$ntp_cv_var_kernel_pll" in 3693 yesyes) 3694 ans=yes 3695 ;; 3696 *) 3697 ans=no 3698 ;; 3699 esac 3700 ;; 3701esac 3702ac_cv_make_ntptime=$ans]) 3703case "$ac_cv_make_ntptime" in 3704 yes) 3705 MAKE_NTPTIME=ntptime 3706 ;; 3707 *) 3708 NTPTIME_DB= 3709 NTPTIME_DL= 3710 NTPTIME_DS= 3711 NTPTIME_MS= 3712 ;; 3713esac 3714 3715AC_SUBST([MAKE_TICKADJ]) 3716case "$host" in 3717 mips-sni-sysv4*) 3718 # tickadj is pretty useless on newer versions of ReliantUNIX 3719 # Do not bother 3720 ntp_cv_make_tickadj=no 3721 ;; 3722 *-*-irix*) 3723 ntp_cv_make_tickadj=no 3724 ;; 3725 *-*-solaris2*) 3726 # DLM says tickadj is a no-no starting with solaris2.5 3727 case "$host" in 3728 *-*-solaris2.1[[0-9]]*) 3729 ntp_cv_make_tickadj=no 3730 ;; 3731 *-*-solaris2.[[0-4]]*) ;; 3732 *) ntp_cv_make_tickadj=no ;; 3733 esac 3734 ;; 3735 *-*-unicosmp*) 3736 ntp_cv_make_tickadj=no 3737 ;; 3738esac 3739 3740# 3741# Despite all the above, we always make tickadj. Setting 3742# ntp_cv_make_tickadj before AC_CACHE_CHECK will cause a false 3743# report that the configuration variable was cached. It may 3744# be better to simply remove the hunk above, I did not want 3745# to remove it if there is hope it will be used again. 3746# 3747AS_UNSET([ntp_cv_make_tickadj]) 3748 3749AC_CACHE_CHECK( 3750 [if we want and can make the tickadj utility], 3751 [ntp_cv_make_tickadj], 3752 [ntp_cv_make_tickadj=yes] 3753) 3754case "$ntp_cv_make_tickadj" in 3755 yes) 3756 MAKE_TICKADJ=tickadj 3757 ;; 3758 *) 3759 CALC_TICKADJ_DB= 3760 CALC_TICKADJ_DL= 3761 CALC_TICKADJ_DS= 3762 CALC_TICKADJ_MS= 3763 TICKADJ_DB= 3764 TICKADJ_DL= 3765 TICKADJ_DS= 3766 TICKADJ_MS= 3767 ;; 3768esac 3769 3770AC_SUBST([MAKE_TIMETRIM]) 3771AC_CACHE_CHECK( 3772 [if we want and can make the timetrim utility], 3773 [ntp_cv_make_timetrim], 3774 [ 3775 case "$host" in 3776 *-*-irix*) 3777 ntp_cv_make_timetrim=yes 3778 ;; 3779 *-*-unicosmp*) 3780 ntp_cv_make_timetrim=yes 3781 ;; 3782 *) 3783 ntp_cv_make_timetrim=no 3784 ;; 3785 esac 3786 ] 3787) 3788case "$ntp_cv_make_timetrim" in 3789 yes) 3790 MAKE_TIMETRIM=timetrim 3791 ;; 3792 *) TIMETRIM_DB= 3793 TIMETRIM_DL= 3794 TIMETRIM_DS= 3795 TIMETRIM_MS= 3796 ;; 3797esac 3798 3799AC_SUBST([MAKE_LIBNTPSIM]) 3800AC_SUBST([MAKE_NTPDSIM]) 3801 3802AC_MSG_CHECKING([if we want to build the NTPD simulator]) 3803AC_ARG_ENABLE( 3804 [simulator], 3805 [AS_HELP_STRING( 3806 [--enable-simulator], 3807 [- build/install the NTPD simulator?] 3808 )], 3809 [ans=$enableval], 3810 [ans=no] 3811) 3812AC_MSG_RESULT([$ans]) 3813case "$ans" in 3814 yes) 3815 MAKE_NTPDSIM=ntpdsim 3816 MAKE_LIBNTPSIM=libntpsim.a 3817 ;; 3818 *) 3819 NTPDSIM_DB= 3820 NTPDSIM_DL= 3821 NTPDSIM_DS= 3822 NTPDSIM_MS= 3823 ;; 3824esac 3825 3826case "$build" in 3827 $host) 3828 ;; 3829 *) case "$host" in 3830 *-*-vxworks*) 3831 LDFLAGS="$LDFLAGS -r" 3832 ;; 3833 esac 3834 ;; 3835esac 3836 3837NTP_WITHSNTP 3838 3839AC_MSG_CHECKING([if we want to build ntpsnmpd]) 3840AC_ARG_WITH( 3841 [ntpsnmpd], 3842 [AS_HELP_STRING( 3843 [--with-ntpsnmpd], 3844 [s Build ntpsnmpd MIB agent?] 3845 )], 3846 [ans=$withval], 3847 [ 3848 case "$PATH_NET_SNMP_CONFIG" in 3849 /*) ans=yes ;; 3850 *) ans=no ;; 3851 esac 3852 ] 3853) 3854AC_MSG_RESULT([$ans]) 3855case "$ans" in 3856 yes) 3857 case "$PATH_NET_SNMP_CONFIG" in 3858 /*) 3859 SNMP_LIBS=`$PATH_NET_SNMP_CONFIG --agent-libs` 3860 # Bug 2815. This is a bit of a hack, but it works... 3861 case "$ntp_cv_net_snmp_version" in 3862 5.3*) SNMP_LIBS=`echo $SNMP_LIBS | $SED -e 's/-lnetsnmpagent/-lnetsnmpagent -lnetsnmpmibs/'` 3863 ;; 3864 esac 3865 AC_SUBST([SNMP_LIBS]) 3866 # HMS: we really want to separate CPPFLAGS and CFLAGS 3867 foo=`$PATH_NET_SNMP_CONFIG --cflags` 3868 SNMP_CPPFLAGS= 3869 SNMP_CFLAGS= 3870 for i in $foo; do 3871 case "$i" in 3872 -D*|-U*|-I*) 3873 SNMP_CPPFLAGS="$SNMP_CPPFLAGS $i" 3874 ;; 3875 *) SNMP_CFLAGS="$SNMP_CFLAGS $i" 3876 ;; 3877 esac 3878 done 3879 AC_SUBST([SNMP_CPPFLAGS]) 3880 AC_SUBST([SNMP_CFLAGS]) 3881 3882 save_CFLAGS=$CFLAGS 3883 save_CPPFLAGS=$CPPFLAGS 3884 save_LIBS=$LIBS 3885 CFLAGS=$SNMP_CFLAGS 3886 CPPFLAGS=$SNMP_CPPFLAGS 3887 3888 AC_CHECK_HEADER( 3889 [net-snmp/net-snmp-config.h], 3890 [MAKE_NTPSNMPD=ntpsnmpd], 3891 [AC_MSG_WARN([net-snmp-config present but net-snmp headers are not available!])] 3892 ) 3893 3894 # Do this last, as we're messing up LIBS. 3895 # check -lnetsnmp for netsnmp_daemonize 3896 LIBS=`$PATH_NET_SNMP_CONFIG --libs` 3897 AC_CHECK_LIB( 3898 [netsnmp], 3899 [netsnmp_daemonize], 3900 [ans=yes], 3901 [ans=no] 3902 ) 3903 case "$ans" in 3904 no) 3905 AC_DEFINE([NEED_NETSNMP_DAEMONIZE], [1], 3906 [We need to provide netsnmp_daemonize()]) 3907 esac 3908 3909 CFLAGS=$save_CFLAGS 3910 AS_UNSET([save_CFLAGS]) 3911 CPPFLAGS=$save_CPPFLAGS 3912 AS_UNSET([save_CPPFLAGS]) 3913 LIBS=$save_LIBS 3914 AS_UNSET([save_LIBS]) 3915 ;; 3916 *) 3917 AC_MSG_WARN([Cannot build ntpsnmpd - net-snmp-config cannot be found]) 3918 ;; 3919 esac 3920 ;; 3921esac 3922AC_SUBST([MAKE_NTPSNMPD]) 3923 3924case "$MAKE_NTPSNMPD" in 3925 '') 3926 NTPSNMPD_DB= 3927 NTPSNMPD_DL= 3928 NTPSNMPD_DS= 3929 NTPSNMPD_MS= 3930 ;; 3931esac 3932 3933AC_MSG_CHECKING([if we should always slew the time]) 3934 3935# target-specific defaults 3936 3937case "$host" in 3938 *-apple-aux[[23]]*) 3939 ans=yes 3940 ;; 3941 *-*-bsdi[[012]]*) 3942 ans=no 3943 ;; 3944 *-*-bsdi*) 3945 ans=yes 3946 ;; 3947 *-*-openvms*) # HMS: won't be found 3948 ans=yes 3949 ;; 3950 *) ans=no 3951 ;; 3952esac 3953 3954# --enable-slew-always / --disable-slew-always overrides default 3955 3956AC_ARG_ENABLE( 3957 [slew-always], 3958 [AS_HELP_STRING( 3959 [--enable-slew-always], 3960 [s always slew the time] 3961 )], 3962 [ans=$enableval] 3963) 3964 3965AC_MSG_RESULT([$ans]) 3966 3967case "$ans" in 3968 yes) 3969 AC_DEFINE([SLEWALWAYS], [1], [Slew always?]) 3970esac 3971 3972AC_MSG_CHECKING([if we should step and slew the time]) 3973 3974case "$host" in 3975 *-sni-sysv*) 3976 ans=yes 3977 ;; 3978 *-stratus-vos) 3979 ans=no 3980 ;; 3981 *-univel-sysv*) 3982 ans=no 3983 ;; 3984 *-*-ptx*) 3985 ans=yes 3986 ;; 3987 *-*-solaris2.1[[0-9]]*) 3988 ans=no 3989 ;; 3990 *-*-solaris2.[[012]]*) 3991 ans=yes 3992 ;; 3993 *-*-sysv4*) # HMS: Does this catch Fujitsu UXP? 3994 ans=yes 3995 ;; 3996 *) ans=no 3997 ;; 3998esac 3999 4000AC_ARG_ENABLE( 4001 [step-slew], 4002 [AS_HELP_STRING( 4003 [--enable-step-slew], 4004 [s step and slew the time] 4005 )], 4006 [ans=$enableval] 4007) 4008 4009AC_MSG_RESULT([$ans]) 4010 4011case "$ans" in 4012 yes) 4013 AC_DEFINE([STEP_SLEW], [1], [Step, then slew the clock?]) 4014esac 4015 4016AC_MSG_CHECKING([if ntpdate should step the time]) 4017 4018case "$host" in 4019 *-apple-aux[[23]]*) 4020 ans=yes 4021 ;; 4022 *) ans=no 4023 ;; 4024esac 4025 4026AC_ARG_ENABLE( 4027 [ntpdate-step], 4028 [AS_HELP_STRING( 4029 [--enable-ntpdate-step], 4030 [s if ntpdate should step the time] 4031 )], 4032 [ans=$enableval] 4033) 4034 4035AC_MSG_RESULT([$ans]) 4036 4037case "$ans" in 4038 yes) 4039 AC_DEFINE([FORCE_NTPDATE_STEP], [1], 4040 [force ntpdate to step the clock if !defined(STEP_SLEW) ?]) 4041esac 4042 4043 4044AC_MSG_CHECKING([if we should sync TODR clock every hour]) 4045 4046case "$host" in 4047 *-*-nextstep*) 4048 ans=yes 4049 ;; 4050 *-*-openvms*) # HMS: won't be found 4051 ans=yes 4052 ;; 4053 *) 4054 ans=no 4055 ;; 4056esac 4057 4058AC_ARG_ENABLE( 4059 [hourly-todr-sync], 4060 [AS_HELP_STRING( 4061 [--enable-hourly-todr-sync], 4062 [s if we should sync TODR hourly] 4063 )], 4064 [ans=$enableval] 4065) 4066 4067AC_MSG_RESULT([$ans]) 4068 4069case "$ac_cv_var_sync_todr" in 4070 yes) 4071 AC_DEFINE([DOSYNCTODR], [1], [synch TODR hourly?]) ;; 4072esac 4073 4074 4075AC_MSG_CHECKING([if we should avoid kernel FLL bug]) 4076 4077case "$host" in 4078 *-*-solaris2.6) 4079 unamev=`uname -v` 4080 case "$unamev" in 4081 Generic_105181-*) 4082 old_IFS="$IFS" 4083 IFS="-" 4084 set $unamev 4085 IFS="$old_IFS" 4086 if test "$2" -ge 17 4087 then 4088 # Generic_105181-17 and higher 4089 ans=no 4090 else 4091 ans=yes 4092 fi 4093 ;; 4094 *) 4095 ans=yes 4096 ;; 4097 esac 4098 ;; 4099 *-*-solaris2.7) 4100 unamev=`uname -v` 4101 case "$unamev" in 4102 Generic_106541-*) 4103 old_IFS="$IFS" 4104 IFS="-" 4105 set $unamev 4106 IFS="$old_IFS" 4107 if test "$2" -ge 07 4108 then 4109 # Generic_106541-07 and higher 4110 ans=no 4111 else 4112 ans=yes 4113 fi 4114 ;; 4115 *) 4116 ans=yes 4117 ;; 4118 esac 4119 ;; 4120 *) 4121 ans=no 4122 ;; 4123esac 4124 4125AC_ARG_ENABLE( 4126 [kernel-fll-bug], 4127 [AS_HELP_STRING( 4128 [--enable-kernel-fll-bug], 4129 [s if we should avoid a kernel FLL bug] 4130 )], 4131 [ans=$enableval] 4132) 4133 4134AC_MSG_RESULT([$ans]) 4135 4136case "$ans" in 4137 yes) 4138 AC_DEFINE([KERNEL_FLL_BUG], [1], [Does the kernel have an FLL bug?]) 4139esac 4140 4141 4142AC_MSG_CHECKING([if we want new session key behavior]) 4143AC_ARG_ENABLE( 4144 [bug1243-fix], 4145 [AS_HELP_STRING( 4146 [--enable-bug1243-fix], 4147 [+ use unmodified autokey session keys] 4148 )], 4149 [ans=$enableval], 4150 [ans=yes] 4151) 4152AC_MSG_RESULT([$ans]) 4153case "$ans" in 4154 no) 4155 AC_DEFINE([DISABLE_BUG1243_FIX], [1], 4156 [use old autokey session key behavior?]) 4157esac 4158 4159 4160AC_MSG_CHECKING([if we want the explicit 127.0.0.0/8 martian filter]) 4161AC_ARG_ENABLE( 4162 [bug3020-fix], 4163 [AS_HELP_STRING( 4164 [--enable-bug3020-fix], 4165 [+ Provide the explicit 127.0.0.0/8 martian filter] 4166 )], 4167 [ans=$enableval], 4168 [ans=yes] 4169) 4170AC_MSG_RESULT([$ans]) 4171case "$ans" in 4172 yes) 4173 AC_DEFINE([ENABLE_BUG3020_FIX], [1], 4174 [Provide the explicit 127.0.0.0/8 martian filter?]) 4175esac 4176 4177 4178AC_MSG_CHECKING([if we want correct mode7 fudgetime2 behavior]) 4179AC_ARG_ENABLE( 4180 [bug3527-fix], 4181 [AS_HELP_STRING( 4182 [--enable-bug3527-fix], 4183 [+ provide correct mode7 fudgetime2 behavior] 4184 )], 4185 [ans=$enableval], 4186 [ans=yes] 4187) 4188AC_MSG_RESULT([$ans]) 4189case "$ans" in 4190 no) 4191 AC_DEFINE([DISABLE_BUG3527_FIX], [1], 4192 [use old autokey session key behavior?]) 4193esac 4194 4195 4196AC_MSG_CHECKING([if we want a debug assert on an OOB KoD RATE value]) 4197AC_ARG_ENABLE( 4198 [bug3767-fix], 4199 [AS_HELP_STRING( 4200 [--enable-bug3767-fix], 4201 [+ Disable debug assertion on OOB KoD RATE value] 4202 )], 4203 [ans=$enableval], 4204 [ans=yes] 4205) 4206AC_MSG_RESULT([$ans]) 4207case "$ans" in 4208 no) 4209 AC_DEFINE([DISABLE_BUG3767_FIX], [1], 4210 [Disable debug assertion on OOB KoD RATE value?]) 4211esac 4212 4213 4214AC_MSG_CHECKING([if we should use the IRIG sawtooth filter]) 4215 4216case "$host" in 4217 *-*-solaris2.[[89]]) 4218 ans=yes 4219 ;; 4220 *-*-solaris2.1[[0-9]]*) 4221 ans=yes 4222 ;; 4223 *) ans=no 4224 ;; 4225esac 4226 4227AC_ARG_ENABLE( 4228 [irig-sawtooth], 4229 [AS_HELP_STRING( 4230 [--enable-irig-sawtooth], 4231 [s if we should enable the IRIG sawtooth filter] 4232 )], 4233 [ans=$enableval] 4234) 4235 4236AC_MSG_RESULT([$ans]) 4237 4238case "$ans" in 4239 yes) 4240 AC_DEFINE([IRIG_SUCKS], [1], 4241 [Should we use the IRIG sawtooth filter?]) 4242esac 4243 4244AC_MSG_CHECKING([if we should enable NIST lockclock scheme]) 4245AC_ARG_ENABLE( 4246 [nist], 4247 [AS_HELP_STRING( 4248 [--enable-nist], 4249 [- if we should enable the NIST lockclock scheme] 4250 )], 4251 [ans=$enableval], 4252 [ans=no] 4253) 4254 4255AC_MSG_RESULT([$ans]) 4256 4257case "$ans" in 4258 yes) 4259 AC_DEFINE([LOCKCLOCK], [1], 4260 [Should we align with the NIST lockclock scheme?]) ;; 4261esac 4262 4263AC_MSG_CHECKING([if we want support for Samba's signing daemon]) 4264AC_ARG_ENABLE( 4265 [ntp-signd], 4266 [AS_HELP_STRING( 4267 [--enable-ntp-signd], 4268 [- Provide support for Samba's signing daemon, =/var/run/ntp_signd] 4269 )], 4270 [ans=$enableval], 4271 [ans=no] 4272) 4273 4274AC_MSG_RESULT([$ans]) 4275 4276case "$ans" in 4277 no) 4278 ntp_signd_path= 4279 ;; 4280 yes) 4281 ntp_signd_path=/var/run/ntp_signd 4282 ;; 4283 *) 4284 ntp_signd_path="$ans" 4285esac 4286 4287case "$ntp_signd_path" in 4288 '') 4289 ;; 4290 *) 4291 AC_DEFINE([HAVE_NTP_SIGND], [1], 4292 [Do we want support for Samba's signing daemon?]) 4293 AC_DEFINE_UNQUOTED([NTP_SIGND_PATH], ["$ntp_signd_path"], 4294 [Path to sign daemon rendezvous socket]) 4295 ;; 4296esac 4297 4298dnl check for 'magic pps' for Linux 4299AC_MSG_CHECKING([if we want 'magic' PPS support]) 4300AC_ARG_ENABLE( 4301 [magicpps], 4302 [AS_HELP_STRING( 4303 [--enable-magicpps], 4304 [+ try to auto-instantiate PPS devices on Linux] 4305 )], 4306 [ans=$enableval], 4307 [ans=yes] 4308) 4309AC_MSG_RESULT([$ans]) 4310case "$ans" in 4311 yes) 4312 AC_DEFINE([ENABLE_MAGICPPS], [1], 4313 [auto-instantiate missing PPS devices on Linux]) 4314 AC_CHECK_FUNCS([openat fdopendir fstatat]) 4315 ;; 4316esac 4317 4318AC_CHECK_HEADERS([libscf.h]) 4319LSCF= 4320case "$ac_cv_header_libscf_h" in 4321 yes) 4322 LSCF='-lscf' 4323esac 4324AC_SUBST([LSCF]) 4325 4326NTP_IPV6 4327 4328 4329# 4330# Look for a sysctl call to get the list of network interfaces. 4331# 4332AC_CACHE_CHECK( 4333 [for interface list sysctl], 4334 [ntp_cv_iflist_sysctl], 4335 [AC_PREPROC_IFELSE( 4336 [AC_LANG_SOURCE([ 4337 #include <sys/param.h> 4338 #include <sys/sysctl.h> 4339 #include <sys/socket.h> 4340 #ifndef NET_RT_IFLIST 4341 # error 4342 #endif 4343 ])], 4344 [ntp_cv_iflist_sysctl=yes], 4345 [ntp_cv_iflist_sysctl=no] 4346 )] 4347) 4348case "$ntp_cv_iflist_sysctl" in 4349 yes) 4350 AC_DEFINE([HAVE_IFLIST_SYSCTL], [1], [have iflist_sysctl?]) 4351esac 4352 4353### 4354 4355AC_MSG_CHECKING([if we want the saveconfig mechanism]) 4356AC_ARG_ENABLE( 4357 [saveconfig], 4358 [AS_HELP_STRING( 4359 [--enable-saveconfig], 4360 [+ saveconfig mechanism] 4361 )], 4362 [ntp_ok=$enableval], 4363 [ntp_ok=yes] 4364) 4365ntp_saveconfig_enabled=0 4366case "$ntp_ok" in 4367 yes) 4368 ntp_saveconfig_enabled=1 4369 AC_DEFINE([SAVECONFIG], [1], [saveconfig mechanism]) 4370 ;; 4371esac 4372AM_CONDITIONAL([SAVECONFIG_ENABLED], [test x$ntp_saveconfig_enabled = x1]) 4373AC_MSG_RESULT([$ntp_ok]) 4374 4375### 4376 4377AC_MSG_CHECKING([if we want the experimental leap smear code]) 4378AC_ARG_ENABLE( 4379 [leap-smear], 4380 [AS_HELP_STRING( 4381 [--enable-leap-smear], 4382 [- experimental leap smear code] 4383 )], 4384 [ntp_ok=$enableval], 4385 [ntp_ok=no] 4386) 4387ntp_leap_smear_enabled=0 4388case "$ntp_ok" in 4389 yes) 4390 ntp_leap_smear_enabled=1 4391 AC_DEFINE([LEAP_SMEAR], [1], [leap smear mechanism]) 4392 AC_SUBST([HAVE_LEAPSMEARINTERVAL]) 4393 HAVE_LEAPSMEARINTERVAL="leapsmearinterval 0" 4394 ;; 4395esac 4396AC_MSG_RESULT([$ntp_ok]) 4397 4398### 4399 4400AC_MSG_CHECKING([if we want dynamic interleave support]) 4401AC_ARG_ENABLE( 4402 [dynamic-interleave], 4403 [AS_HELP_STRING( 4404 [--enable-dynamic-interleave], 4405 [- dynamic interleave support] 4406 )], 4407 [ntp_ok=$enableval], 4408 [ntp_ok=no] 4409) 4410ntp_dynamic_interleave=0 4411case "$ntp_ok" in 4412 yes) 4413 ntp_dynamic_interleave=1 4414 ;; 4415esac 4416AC_DEFINE_UNQUOTED([DYNAMIC_INTERLEAVE], [$ntp_dynamic_interleave], 4417 [support dynamic interleave?]) 4418AC_MSG_RESULT([$ntp_ok]) 4419 4420AH_BOTTOM([ 4421 /* 4422 * Macro to use in otherwise-empty source files to comply with ANSI C 4423 * requirement that each translation unit (source file) contain some 4424 * declaration. This has commonly been done by declaring an unused 4425 * global variable of type int or char. An extern reference to abs() 4426 * serves the same purpose without bloat. We once used exit() but 4427 * that can produce warnings on systems that declare exit() noreturn. 4428 */ 4429 #define NONEMPTY_TRANSLATION_UNIT extern int abs(int); 4430]) 4431 4432NTP_UNITYBUILD 4433 4434NTP_PROBLEM_TESTS 4435 4436### 4437 4438AC_CHECK_DECLS([sigsetjmp,siglongjmp], [], [], [[#include <setjmp.h>]]) 4439 4440### 4441 4442AC_DEFINE_DIR([NTP_KEYSDIR], [sysconfdir], 4443 [Default location of crypto key info]) 4444 4445AC_CONFIG_FILES([Makefile]) 4446AC_CONFIG_FILES([adjtimed/Makefile]) 4447AC_CONFIG_FILES([clockstuff/Makefile]) 4448AC_CONFIG_FILES([include/Makefile]) 4449AC_CONFIG_FILES([include/isc/Makefile]) 4450AC_CONFIG_FILES([kernel/Makefile]) 4451AC_CONFIG_FILES([kernel/sys/Makefile]) 4452AC_CONFIG_FILES([libntp/Makefile]) 4453AC_CONFIG_FILES([libparse/Makefile]) 4454AC_CONFIG_FILES([ntpd/Makefile]) 4455AC_CONFIG_FILES([ntpd/complete.conf], [$SED -e '/^rlimit$/d' -e '/^$/d' < ntpd/complete.conf > ntpd/complete.conf.new && mv ntpd/complete.conf.new ntpd/complete.conf]) 4456AC_CONFIG_FILES([ntpdate/Makefile]) 4457AC_CONFIG_FILES([ntpdc/Makefile]) 4458AC_CONFIG_FILES([ntpdc/nl.pl], [chmod +x ntpdc/nl.pl]) 4459AC_CONFIG_FILES([ntpq/Makefile]) 4460AC_CONFIG_FILES([ntpsnmpd/Makefile]) 4461AC_CONFIG_FILES([parseutil/Makefile]) 4462AC_CONFIG_FILES([scripts/Makefile]) 4463AC_CONFIG_FILES([scripts/build/Makefile]) 4464AC_CONFIG_FILES([scripts/build/genAuthors], [chmod +x scripts/build/genAuthors]) 4465AC_CONFIG_FILES([scripts/build/mkver], [chmod +x scripts/build/mkver]) 4466AC_CONFIG_FILES([scripts/calc_tickadj/Makefile]) 4467AC_CONFIG_FILES([scripts/calc_tickadj/calc_tickadj], [chmod +x scripts/calc_tickadj/calc_tickadj]) 4468AC_CONFIG_FILES([scripts/lib/Makefile]) 4469AC_CONFIG_FILES([scripts/ntp-wait/Makefile]) 4470AC_CONFIG_FILES([scripts/ntp-wait/ntp-wait], [chmod +x scripts/ntp-wait/ntp-wait]) 4471AC_CONFIG_FILES([scripts/ntpsweep/Makefile]) 4472AC_CONFIG_FILES([scripts/ntpsweep/ntpsweep], [chmod +x scripts/ntpsweep/ntpsweep]) 4473AC_CONFIG_FILES([scripts/ntptrace/Makefile]) 4474AC_CONFIG_FILES([scripts/ntptrace/ntptrace], [chmod +x scripts/ntptrace/ntptrace]) 4475AC_CONFIG_FILES([scripts/ntpver], [chmod +x scripts/ntpver]) 4476AC_CONFIG_FILES([scripts/plot_summary], [chmod +x scripts/plot_summary]) 4477AC_CONFIG_FILES([scripts/summary], [chmod +x scripts/summary]) 4478AC_CONFIG_FILES([scripts/update-leap/Makefile]) 4479AC_CONFIG_FILES([scripts/update-leap/update-leap], [chmod +x scripts/update-leap/update-leap]) 4480AC_CONFIG_FILES([tests/Makefile]) 4481AC_CONFIG_FILES([tests/bug-2803/Makefile]) 4482AC_CONFIG_FILES([tests/libntp/Makefile]) 4483AC_CONFIG_FILES([tests/ntpd/Makefile]) 4484AC_CONFIG_FILES([tests/ntpq/Makefile]) 4485AC_CONFIG_FILES([tests/sandbox/Makefile]) 4486AC_CONFIG_FILES([tests/sec-2853/Makefile]) 4487AC_CONFIG_FILES([util/Makefile]) 4488 4489perllibdir="${datadir}/ntp/lib" 4490AC_DEFINE_DIR([PERLLIBDIR], [perllibdir], [data dir]) 4491 4492calc_tickadj_opts="$srcdir/scripts/calc_tickadj/calc_tickadj-opts" 4493AC_SUBST_FILE([calc_tickadj_opts]) 4494ntp_wait_opts="$srcdir/scripts/ntp-wait/ntp-wait-opts" 4495AC_SUBST_FILE([ntp_wait_opts]) 4496ntpsweep_opts="$srcdir/scripts/ntpsweep/ntpsweep-opts" 4497AC_SUBST_FILE([ntpsweep_opts]) 4498ntptrace_opts="$srcdir/scripts/ntptrace/ntptrace-opts" 4499AC_SUBST_FILE([ntptrace_opts]) 4500summary_opts="$srcdir/scripts/summary-opts" 4501AC_SUBST_FILE([summary_opts]) 4502plot_summary_opts="$srcdir/scripts/plot_summary-opts" 4503AC_SUBST_FILE([plot_summary_opts]) 4504 4505AC_CONFIG_SUBDIRS([sntp]) 4506 4507AC_OUTPUT 4508