1dnl NTP top-level configure.ac -*- Autoconf -*- 2dnl 3m4_include([sntp/m4/version.m4]) 4AC_PREREQ([2.61]) 5AC_INIT( 6 [ntp], 7 [VERSION_NUMBER], 8 [http://bugs.ntp.org./], 9 [], 10 [http://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=20120806 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.10 foreign -Wall -Wno-gnu]) 46 47dnl AM_SILENT_RULES req. automake 1.11. [yes] defaults V=0 48m4_ifdef( 49 [AM_SILENT_RULES], 50 [AM_SILENT_RULES([yes])] 51) 52AC_CANONICAL_BUILD 53AC_CANONICAL_HOST 54dnl the 'build' machine is where we run configure and compile 55dnl the 'host' machine is where the resulting stuff runs. 56AC_DEFINE_UNQUOTED([STR_SYSTEM], ["$host"], 57 [canonical system (cpu-vendor-os) of where we should run]) 58AC_CONFIG_HEADERS([config.h]) 59dnl AC_ARG_PROGRAM 60 61ntp_atom_ok=${ntp_atom_ok=no} 62ntp_oncore_ok=${ntp_oncore_ok=no} 63ntp_parse_ok=${ntp_parse_ok=no} 64ntp_ripe_ncc_ok=${ntp_parse_ok=no} 65ntp_jupiter_ok=${ntp_jupiter_ok=no} 66 67NTP_PROG_CC 68AC_PROG_CPP 69# Do we need CXX for anything besides google test? 70AC_PROG_CXX 71AC_PROG_YACC 72AC_PROG_CC_C_O 73AX_C99_STRUCT_INIT 74 75NTP_VPATH_HACK dnl used only by ntpd/Makefile.am 76 77NTP_LOCINFO([sntp]) dnl takes over from NTP_BINDIR, in NTP_LIBNTP 78 79dnl AM_PROG_AR req. automake 1.12 80m4_ifdef( 81 [AM_PROG_AR], 82 [AM_PROG_AR] 83) 84 85# So far, the only shared library we might use is libopts. 86# It's a small library - we might as well use a static version of it. 87AC_DISABLE_SHARED 88AC_PROG_LIBTOOL 89AC_SUBST([LIBTOOL_DEPS]) 90 91# NTP has (so far) been relying on leading-edge autogen, which 92# means we need the appropriate corresponding libopts as well. 93# Therefore, by default: 94# - use the version of libopts we ship with 95# - do not install it 96# - build a static copy (AC_DISABLE_SHARED - done earlier) 97case "${enable_local_libopts+set}" in 98 set) ;; 99 *) enable_local_libopts=yes ;; 100esac 101case "${enable_libopts_install+set}" in 102 set) ;; 103 *) enable_libopts_install=no ;; 104esac 105enable_nls=no 106LIBOPTS_CHECK_NOBUILD([sntp/libopts]) 107 108NTP_LIBEVENT_CHECK_NOBUILD([2], [sntp/libevent]) 109 110NTP_LIBNTP 111 112AC_MSG_CHECKING([for deprecated --with-arlib]) 113AC_ARG_WITH([arlib], 114 AS_HELP_STRING([--with-arlib], [- deprecated, arlib not distributed]), 115 [ans=$withval], [ans=no]) 116AC_MSG_RESULT([$ans]) 117 118case "$ans" in 119 yes) 120 AC_MSG_WARN([Please do not use --with-arlib, arlib is no longer included. In the future, --with-arlib will not be recognized.]) 121 ;; 122esac 123 124dnl we need to check for cross compile tools for vxWorks here 125AC_PROG_AWK 126AS_UNSET([ac_cv_prog_AWK]) 127AC_SUBST([AWK]) dnl scripts/ntpver.in 128AC_PROG_MAKE_SET 129 130AC_SUBST([CFLAGS]) 131AC_SUBST([LDFLAGS]) 132 133AC_PROG_LN_S 134AC_ISC_POSIX 135 136 137AC_PATH_PROG([PATH_PERL], [perl]) 138dnl Saving cached hardcoded paths rather than searching $PATH during a 139dnl cached configure run is an optimization not worth the the cost of 140dnl preventing newly-installed tools from being found. Short-circuit 141dnl the caching after the tests so preset overrides still work. 142AS_UNSET([ac_cv_path_PATH_PERL]) 143AC_PATH_PROG([PATH_TEST], [test]) 144AS_UNSET([ac_cv_path_PATH_TEST]) 145test -z "$CONFIG_SHELL" && CONFIG_SHELL=/bin/sh 146AC_SUBST([CONFIG_SHELL]) dnl for scripts #!/path/to/sh 147 148AC_ARG_WITH( 149 [net-snmp-config], 150 [AS_HELP_STRING( 151 [--with-net-snmp-config], 152 [+ =net-snmp-config] 153 )], 154 [ans=$withval], 155 [ans=yes] 156) 157case "$ans" in 158 no) 159 ;; 160 yes) 161 ans=net-snmp-config 162 ;; 163 /*) 164 ;; 165 */*) 166 AC_MSG_ERROR([--with-net-snmp-config takes either a name or an absolute path]) 167 ;; 168 *) 169 ;; 170esac 171PROG_NET_SNMP_CONFIG=$ans 172AC_MSG_CHECKING([for net-snmp-config path]) 173case "$PROG_NET_SNMP_CONFIG" in 174 no) ;; 175 /*) 176 PATH_NET_SNMP_CONFIG=$PROG_NET_SNMP_CONFIG 177 ;; 178 *) 179 AC_PATH_PROG([PATH_NET_SNMP_CONFIG], [$PROG_NET_SNMP_CONFIG]) 180 AS_UNSET([ac_cv_path_PATH_NET_SNMP_CONFIG]) 181;; 182esac 183AC_MSG_RESULT([$PATH_NET_SNMP_CONFIG]) 184 185case "$PATH_NET_SNMP_CONFIG" in 186 /*) AC_CACHE_CHECK( 187 [for net-snmp version], 188 [ntp_cv_net_snmp_version], 189 [ntp_cv_net_snmp_version=`$PATH_NET_SNMP_CONFIG --version`] 190 ) 191 ;; 192esac 193 194case "$host" in 195 *-*-vxworks*) 196 ac_link="$ac_link $VX_KERNEL" 197 ;; 198esac 199 200# HMS: a check for -lnsl used to be here - now being done in NTP_LIBNTP 201AC_SEARCH_LIBS([openlog], [gen syslog]) 202# XXX library list will be in ac_cv_search_openlog 203 204# LIBSECCOMP is off by default -- needs testing with all the features 205# Please send bug reports to loganaden@gmail.com 206AC_MSG_CHECKING([if we want to use libseccomp sandboxing (EXPERIMENTAL)]) 207AC_ARG_ENABLE( 208 [libseccomp], 209 [AS_HELP_STRING( 210 [--enable-libseccomp], 211 [EXPERIMENTAL: enable support for libseccomp sandboxing (default is no) ] 212 )], 213 [ntp_ok=$enableval], 214 [ntp_ok=no] 215) 216AC_MSG_RESULT([$ntp_ok]) 217case "$ntp_ok" in 218 yes) 219 AC_SEARCH_LIBS( 220 [seccomp_init], 221 [seccomp], 222 [AC_DEFINE([LIBSECCOMP], [1], 223 [Define to any value to include libseccomp sandboxing.])] 224 ) 225 AC_TRY_RUN([ 226 #include <stdio.h> 227 #include <stdlib.h> 228 #include <errno.h> 229 #include <sys/prctl.h> 230 #include <linux/seccomp.h> 231 232 int main(void) 233 { 234 int ret; 235 ret = prctl(PR_GET_SECCOMP, 0, 0, 0, 0); 236 if (ret < 0) { 237 switch (errno) { 238 case ENOSYS: 239 return 1; 240 case EINVAL: 241 return 1; 242 default: 243 return 1; 244 } 245 } 246 ret = 247 prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, NULL, 0, 0); 248 if (ret < 0) { 249 switch (errno) { 250 case EINVAL: 251 return 1; 252 case EFAULT: 253 return 0; 254 default: 255 return 1; 256 } 257 } 258return 1; 259} 260] 261, AC_DEFINE([KERN_SECCOMP], 1, 262[Define to use libseccomp system call filtering.]) 263, [] 264) 265 ;; 266esac 267 268NTP_FACILITYNAMES 269 270dnl Digital UNIX V4.0 and Solaris 7 have POSIX.1c functions in -lrt 271dnl Solaris 2.6 only has -lposix4; in Solaris 7, this is a symlink to -lrt, 272dnl so only use one of them. Linux (glibc-2.1.2 and -2.2.2, at least) 273dnl does Strange Things with extra processes using the Posix-compatibility 274dnl real-time library, so we don't want to use it. 275dnl 276dnl 081118 Harlan got tired of looking for a way to get the sched*() 277dnl functions to link OK with either cc or gcc. 278 279case "$host" in 280 *-*-*linux*) ;; 281 *-*-osf4*) ;; 282 *-*-osf5*) ;; 283 *) 284 # HMS: Make sure we check for -lrt for clock_* before this... 285 case "$ac_cv_search_clock_gettime" in 286 '') AC_MSG_ERROR([Internal Error: Haven't looked for clock_gettime() yet!]) ;; 287 esac 288 AC_SEARCH_LIBS([sched_setscheduler], [rt posix4]) 289 ;; 290esac 291 292AC_CHECK_HEADERS([bstring.h]) 293AC_CHECK_HEADER( 294 [dns_sd.h], 295 [AC_SEARCH_LIBS( 296 [DNSServiceRegister], 297 [dns_sd], 298 [AC_DEFINE([HAVE_DNSREGISTRATION], [1], 299 [Use Rendezvous/DNS-SD registration])] 300 )] 301) 302AC_CHECK_HEADERS([fcntl.h fnmatch.h ieeefp.h inttypes.h kvm.h math.h]) 303 304AC_CHECK_HEADERS([memory.h netdb.h poll.h]) 305AC_CHECK_HEADERS([sgtty.h stdatomic.h]) 306AC_HEADER_STDBOOL 307AC_CHECK_HEADERS([stdlib.h string.h termio.h]) 308AC_CHECK_HEADERS([termios.h timepps.h timex.h unistd.h]) 309 310case "$host" in 311 *-*-aix*) 312 AC_CHECK_HEADERS([utmpx.h]) 313 case "$ac_cv_header_utmpx_h" in 314 yes) 315 ;; 316 *) 317 AC_CHECK_HEADERS([utmp.h]) 318 ;; 319 esac 320 ;; 321 *) 322 AC_CHECK_HEADERS([utmp.h utmpx.h]) 323 ;; 324esac 325 326# 327# On Suns only (so far) getpass() truncates the typed password to 8 328# characters, but getpassphrase() allows up to 257. Most systems' 329# getpass() does not truncate, at least not so as to affect ntpq and 330# ntpdc password prompts. 331# 332# So check for getpassphrase(), but only on Sun operating systems. 333# 334case "$host" in 335 *-*-sunos*|*-*-solaris*) 336 AC_CHECK_FUNCS([getpassphrase]) 337esac 338 339 340AC_CHECK_HEADERS([net/if6.h]) 341AC_CHECK_HEADERS([net/route.h], [], [], [ 342 #include <sys/types.h> 343 #include <sys/socket.h> 344 #include <net/if.h> 345]) 346 347AC_CHECK_HEADERS([netinfo/ni.h]) 348case "$ac_cv_header_netinfo_ni_h" in 349 yes) 350 AC_DEFINE([HAVE_NETINFO], [1], [NetInfo support?]) 351esac 352AC_CHECK_HEADERS([sun/audioio.h sys/audioio.h sys/file.h]) 353case "$host" in 354 *-*-sunos4*) 355 ;; 356 *) 357 AC_CHECK_HEADERS([sys/ioctl.h]) 358 ;; 359esac 360AC_CHECK_HEADERS([sys/ipc.h sys/lock.h sys/mman.h]) 361# HMS: Check sys/proc.h and sys/resource.h after some others 362AC_CHECK_HEADERS([sys/modem.h sys/ppsclock.h sys/ppstime.h sched.h]) 363case "$ac_cv_header_sched_h" in 364 yes) 365 ;; 366 *) 367 AC_CHECK_HEADERS([sys/sched.h]) 368 ;; 369esac 370# HMS: Check sys/shm.h after some others 371AC_CHECK_HEADERS([sys/select.h sys/signal.h sys/sockio.h]) 372# HMS: Checked sys/socket.h earlier 373case "$host" in 374 *-*-netbsd*) 375 ;; 376 *) 377 AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h]) 378 ;; 379esac 380AC_CHECK_HEADERS([sys/stat.h sys/stream.h stropts.h sys/stropts.h sys/syssgi.h]) 381AC_CHECK_HEADERS([sys/systune.h sys/termios.h sys/tpro.h sys/wait.h]) 382case "$host" in 383*-convex-*) 384 AC_CHECK_HEADERS([/sys/sync/queue.h /sys/sync/sema.h]) 385 ;; 386*-*-bsdi*) 387 AC_CHECK_HEADERS([machine/inline.h sys/pcl720.h sys/i8253.h]) 388 ;; 389esac 390 391case "$ac_cv_header_stdatomic_h" in 392 yes) 393 AC_CHECK_FUNCS([atomic_thread_fence]) 394 AC_CACHE_CHECK( 395 [for atomic_thread_fence()], 396 [ntp_cv_func_atomic_thread_fence], 397 [AC_COMPILE_IFELSE( 398 [AC_LANG_PROGRAM( 399 [[ 400 #include <stdatomic.h> 401 ]], 402 [[ 403 atomic_thread_fence(memory_order_seq_cst); 404 ]] 405 )] 406 [ntp_cv_func_atomic_thread_fence=yes], 407 [ntp_cv_func_atomic_thread_fence=no] 408 )] 409 ) 410 ;; 411esac 412 413case "$host" in 414 *-*-solaris2.6) 415 # Broken... 416 ;; 417 *) 418 AC_CHECK_FUNCS([ntp_adjtime ntp_gettime]) 419 ;; 420esac 421 422case "$host" in 423 *-*-*linux*) 424 case "$ac_cv_func_ntp_gettime" in 425 yes) 426 ;; 427 *) 428 AC_CHECK_FUNCS([__ntp_gettime]) 429 case "$ac_cv_func___ntp_gettime" in 430 yes) 431 AC_DEFINE([ntp_gettime], [__ntp_gettime], [deviant]) 432 AC_DEFINE([HAVE_NTP_GETTIME], [1], [via __ntp_gettime]) 433 esac 434 ;; 435 esac 436 AC_CHECK_FUNCS([adjtimex]) 437 case "$ac_cv_func_adjtimex" in 438 yes) 439 AC_DEFINE([ntp_adjtime], [adjtimex], [deviant]) 440 AC_DEFINE([HAVE_NTP_ADJTIME], [1], [via adjtimex]) 441 have_adjtimex=1 442 ;; 443 *) 444 AC_CHECK_FUNCS([__adjtimex]) 445 case "$ac_cv_func___adjtimex" in 446 yes) 447 AC_DEFINE([ntp_adjtime], [__adjtimex], [deviant]) 448 AC_DEFINE([HAVE_NTP_ADJTIME], [1], [via __adjtimex]) 449 AC_DEFINE([adjtimex], [__adjtimex], [deviant]) 450 AC_DEFINE([HAVE_ADJTIMEX], [1], [via __adjtimex]) 451 have_adjtimex=1 452 esac 453 ;; 454 esac 455esac 456case "$have_adjtimex" in 457 '') 458 # nlist stuff is only needed for tickadj. 459 saved_LIBS="$LIBS" 460 LIBS= 461 AC_SEARCH_LIBS([nlist], [elf ld mld]) 462 # XXX ac_cv_search_nlist will be 'none required', 'no', or '-l...' 463 AC_SEARCH_LIBS([kvm_open], [kvm]) dnl We already know about -lelf here... 464 # XXX ac_cv_search_kvm_open will be 'none required', 'no', or '-l...' 465 AC_CHECK_HEADERS([nlist.h sys/var.h]) 466 case "$ac_cv_header_nlist_h" in 467 yes) 468 AC_DEFINE([NLIST_STRUCT], [1], [nlist stuff]) 469 AC_CACHE_CHECK( 470 [for n_un in struct nlist], 471 [ntp_cv_struct_nlist_n_un], 472 [AC_COMPILE_IFELSE( 473 [AC_LANG_PROGRAM( 474 [[ 475 #include <nlist.h> 476 ]], 477 [[ 478 struct nlist n; 479 n.n_un.n_name = 0; 480 ]] 481 )] 482 [ntp_cv_struct_nlist_n_un=yes], 483 [ntp_cv_struct_nlist_n_un=no] 484 )] 485 ) 486 case "$ntp_cv_struct_nlist_n_un" in 487 yes) 488 AC_DEFINE([NLIST_NAME_UNION], [1], 489 [does struct nlist use a name union?]) 490 esac 491 esac 492 AC_SUBST([LDADD_NLIST]) 493 LDADD_NLIST="$LIBS" 494 LIBS="$saved_LIBS" 495 AS_UNSET([saved_LIBS]) 496esac 497 498AC_CHECK_HEADERS([sys/proc.h], [], [], [ 499 #ifdef HAVE_SYS_TYPES_H 500 # include <sys/types.h> 501 #endif 502 #ifdef HAVE_SYS_TIME_H 503 # include <sys/time.h> 504 #endif 505]) 506 507AC_CHECK_HEADERS([sys/resource.h], [], [], [ 508 #ifdef HAVE_SYS_TIME_H 509 # include <sys/time.h> 510 #endif 511]) 512 513AC_CHECK_HEADERS([sys/shm.h], [], [], [ 514 #ifdef HAVE_SYS_TYPES_H 515 # include <sys/types.h> 516 #endif 517 #ifdef HAVE_SYS_IPC_H 518 # include <sys/ipc.h> 519 #endif 520]) 521 522AC_CHECK_HEADERS([sys/timex.h], [], [], [ 523 #ifdef HAVE_SYS_TIME_H 524 # include <sys/time.h> 525 #endif 526]) 527 528AC_TYPE_SIGNAL 529AC_TYPE_OFF_T 530AC_STRUCT_TM dnl defines TM_IN_SYS_TIME used by refclock_parse.c 531 532AC_CACHE_CHECK( 533 [for a fallback value for HZ], 534 [ntp_cv_default_hz], 535 [ 536 ntp_cv_default_hz=100 537 case "$host" in 538 alpha*-dec-osf4*|alpha*-dec-osf5*) 539 ntp_cv_default_hz=1024 540 ;; 541 mips-dec-ultrix4*) 542 ntp_cv_default_hz=256 543 ;; 544 esac 545 ] 546) 547AC_DEFINE_UNQUOTED([DEFAULT_HZ], [$ntp_cv_default_hz], 548 [What is the fallback value for HZ?]) 549 550AC_CACHE_CHECK( 551 [if we need to override the system's value for HZ], 552 [ntp_cv_override_hz], 553 [ 554 ntp_cv_override_hz=no 555 case "$host" in 556 alpha*-dec-osf4*|alpha*-dec-osf5*) 557 ntp_cv_override_hz=yes 558 ;; 559 mips-dec-ultrix4*) 560 ntp_cv_override_hz=yes 561 ;; 562 *-*-freebsd*) 563 ntp_cv_override_hz=yes 564 ;; 565 *-*-sunos4*) 566 ntp_cv_override_hz=yes 567 ;; 568 *-*-kfreebsd*) 569 ntp_cv_override_hz=yes 570 ;; 571 esac 572 ] 573) 574case "$ntp_cv_override_hz" in 575 yes) 576 AC_DEFINE([OVERRIDE_HZ], [1], 577 [Do we need to override the system's idea of HZ?]) 578esac 579 580dnl AC_CACHE_CHECK(ut_host in struct utmp, ac_cv_func_ut_host_in_utmp, 581dnl [AC_TRY_LINK([#include <sys/types.h> 582dnl #include <utmp.h>], [struct utmp ut; ut.ut_host;], 583dnl ac_cv_func_ut_host_in_utmp=yes, ac_cv_func_ut_host_in_utmp=no)]) 584dnl if test $su_cv_func_ut_host_in_utmp = yes; then 585dnl AC_DEFINE(HAVE_UT_HOST) 586dnl fi 587 588dnl AC_MSG_CHECKING(if we can get the system boot time) 589dnl AC_CACHE_VAL(su_cv_have_boot_time, 590dnl [AC_EGREP_CPP(yes, 591dnl [#ifdef HAVE_UTMPX_H 592dnl #include <utmpx.h> 593dnl #else 594dnl #include <utmp.h> 595dnl #endif 596dnl #ifdef BOOT_TIME 597dnl yes 598dnl #endif 599dnl ], su_cv_have_boot_time=yes, su_cv_have_boot_time=no)]) 600dnl AC_MSG_RESULT($su_cv_have_boot_time) 601 602AC_CACHE_CHECK( 603 [for struct rt_msghdr], 604 [ntp_cv_struct_rt_msghdr], 605 [AC_COMPILE_IFELSE( 606 [AC_LANG_PROGRAM( 607 [[ 608 #include <sys/types.h> 609 #include <sys/socket.h> 610 #include <net/if.h> 611 #include <net/route.h> 612 ]], 613 [[ 614 struct rt_msghdr p; 615 ]] 616 )], 617 [ntp_cv_struct_rt_msghdr=yes], 618 [ntp_cv_struct_rt_msghdr=no] 619 )] 620) 621 622AC_CACHE_CHECK( 623 [for struct rtattr], 624 [ntp_cv_rtattr], 625 [AC_COMPILE_IFELSE( 626 [AC_LANG_PROGRAM( 627 [[ 628 #include <stddef.h> 629 #include <sys/socket.h> 630 #include <linux/rtnetlink.h> 631 ]], 632 [[ 633 struct rtattr p; 634 ]] 635 )], 636 [ntp_cv_rtattr=yes], 637 [ntp_cv_rtattr=no] 638 )] 639) 640 641case "$ntp_cv_struct_rt_msghdr$ntp_cv_rtattr" in 642 *yes*) 643 AC_DEFINE([HAS_ROUTING_SOCKET], [1], 644 [Do we have a routing socket (rt_msghdr or rtattr)?]) 645 case "$ntp_cv_rtattr" in 646 yes) 647 AC_DEFINE([HAVE_RTNETLINK], [1], 648 [Do we have Linux routing socket?]) 649 esac 650esac 651 652AC_CACHE_CHECK( 653 [struct sigaction for sa_sigaction], 654 [ntp_cv_struct_sigaction_has_sa_sigaction], 655 [AC_COMPILE_IFELSE( 656 [AC_LANG_PROGRAM( 657 [[ 658 #include <signal.h> 659 ]], 660 [[ 661 struct sigaction act; 662 act.sa_sigaction = 0; 663 ]] 664 )], 665 [ntp_cv_struct_sigaction_has_sa_sigaction=yes], 666 [ntp_cv_struct_sigaction_has_sa_sigaction=no] 667 )] 668) 669case "$ntp_cv_struct_sigaction_has_sa_sigaction" in 670 yes) 671 AC_DEFINE([HAVE_SA_SIGACTION_IN_STRUCT_SIGACTION], [1], [Obvious]) 672esac 673 674AC_CACHE_CHECK( 675 [for struct ppsclockev], 676 [ntp_cv_struct_ppsclockev], 677 [AC_COMPILE_IFELSE( 678 [AC_LANG_PROGRAM( 679 [[ 680 #ifdef HAVE_SYS_TYPES_H 681 # include <sys/types.h> 682 #endif 683 #ifdef HAVE_SYS_TERMIOS_H 684 # include <sys/termios.h> 685 #endif 686 #ifdef HAVE_SYS_TIME_H 687 # include <sys/time.h> 688 #endif 689 #ifdef HAVE_SYS_PPSCLOCK_H 690 # include <sys/ppsclock.h> 691 #endif 692 ]], 693 [[ 694 extern struct ppsclockev *pce; 695 return pce->serial; 696 ]] 697 )], 698 [ntp_cv_struct_ppsclockev=yes], 699 [ntp_cv_struct_ppsclockev=no] 700 )] 701) 702case "$ntp_cv_struct_ppsclockev" in 703 yes) 704 AC_DEFINE([HAVE_STRUCT_PPSCLOCKEV], [1], 705 [Does a system header define struct ppsclockev?]) 706esac 707 708case "$ac_cv_header_machine_soundcard_h$ac_cv_header_sys_soundcard_h" in 709 *yes*) 710 AC_CACHE_CHECK( 711 [for struct snd_size], 712 [ntp_cv_struct_snd_size], 713 [AC_COMPILE_IFELSE( 714 [AC_LANG_PROGRAM( 715 [[ 716 #ifdef HAVE_MACHINE_SOUNDCARD_H 717 # include <machine/soundcard.h> 718 #endif 719 #ifdef HAVE_SYS_SOUNDCARD_H 720 # include <sys/soundcard.h> 721 #endif 722 ]], 723 [[ 724 extern struct snd_size *ss; 725 return ss->rec_size; 726 ]] 727 )], 728 [ntp_cv_struct_snd_size=yes], 729 [ntp_cv_struct_snd_size=no] 730 )] 731 ) 732 case "$ntp_cv_struct_snd_size" in 733 yes) 734 AC_DEFINE([HAVE_STRUCT_SND_SIZE], [1], 735 [Do we have struct snd_size?]) 736 esac 737esac 738 739AC_CACHE_CHECK( 740 [struct clockinfo for hz], 741 [ntp_cv_struct_clockinfo_has_hz], 742 [AC_COMPILE_IFELSE( 743 [AC_LANG_PROGRAM( 744 [[ 745 #include <sys/time.h> 746 ]], 747 [[ 748 extern struct clockinfo *pc; 749 return pc->hz; 750 ]] 751 )], 752 [ntp_cv_struct_clockinfo_has_hz=yes], 753 [ntp_cv_struct_clockinfo_has_hz=no] 754 )] 755) 756case "$ntp_cv_struct_clockinfo_has_hz" in 757 yes) 758 AC_DEFINE([HAVE_HZ_IN_STRUCT_CLOCKINFO], [1], [Obvious]) 759esac 760 761AC_CACHE_CHECK( 762 [struct clockinfo for tickadj], 763 [ntp_cv_struct_clockinfo_has_hz], 764 [AC_COMPILE_IFELSE( 765 [AC_LANG_PROGRAM( 766 [[ 767 #include <sys/time.h> 768 ]], 769 [[ 770 extern struct clockinfo *pc; 771 return pc->tickadj; 772 ]] 773 )], 774 [ntp_cv_struct_clockinfo_has_hz=yes], 775 [ntp_cv_struct_clockinfo_has_hz=no] 776 )] 777) 778case "$ntp_cv_struct_clockinfo_has_hz" in 779 yes) 780 AC_DEFINE([HAVE_TICKADJ_IN_STRUCT_CLOCKINFO], [1], [Obvious]) 781esac 782 783case "$ntp_cv_struct_ntptimeval" in 784 yes) 785 AC_CHECK_MEMBERS( 786 [struct ntptimeval.time.tv_nsec], 787 [], 788 [], 789 [ 790 #ifdef HAVE_SYS_TIME_H 791 # include <sys/time.h> 792 #else 793 # ifdef HAVE_TIME_H 794 # include <time.h> 795 # endif 796 #endif 797 #ifdef HAVE_SYS_TIMEX_H 798 # include <sys/timex.h> 799 #else 800 # ifdef HAVE_TIMEX_H 801 # include <timex.h> 802 # endif 803 #endif 804 ] 805 ) 806esac 807 808#### 809 810AC_CHECK_FUNCS([arc4random_buf]) 811 812#### 813 814saved_LIBS="$LIBS" 815LIBS="$LIBS $LDADD_LIBNTP" 816AC_CHECK_FUNCS([daemon]) 817# XXX if we keep everything in LIBS and also keep separate lists, this simplifies. 818LIBS="$saved_LIBS" 819AS_UNSET([saved_LIBS]) 820 821AC_CHECK_FUNCS( 822 [finite], 823 [], 824 [AC_CHECK_FUNCS( 825 [isfinite], 826 [], 827 [ 828 AC_MSG_CHECKING([for isfinite with <math.h>]) 829 _libs=$LIBS 830 # XXX 831 LIBS="$LIBS -lm" 832 AC_LINK_IFELSE( 833 [AC_LANG_PROGRAM( 834 [[ 835 #include <math.h> 836 ]], 837 [[ 838 float f = 0.0; 839 isfinite(f); 840 ]] 841 )], 842 [ans=yes], 843 [ans=no] 844 ) 845 LIBS=$_libs 846 AC_MSG_RESULT([$ans]) 847 case "$ans" in 848 yes) 849 AC_DEFINE([HAVE_ISFINITE], [1]) 850 esac 851 ] 852 )] 853) 854 855AC_CHECK_FUNCS([fnmatch getbootfile getuid getrusage nanosleep strsignal]) 856 857# kvm_open() is only used by tickadj. Also see above. 858case "$ac_cv_header_kvm_h" in 859 yes) 860 AC_CHECK_FUNCS([kvm_open]) 861 ;; 862esac 863 864case "$host" in 865 *-*-sco3.2v5.0.*) 866 # Just stubs. Sigh. 867 ;; 868 *) AC_CHECK_FUNCS([mkstemp]) 869 ;; 870esac 871AC_CHECK_FUNCS([mktime]) 872case "$host" in 873 *-*-aix[[4-9]]*) 874 # XXX only verified thru AIX6. 875 # Just a stub. Sigh. 876 ;; 877 *-*-irix[[45]]*) 878 # Just a stub in "old" Irix. Sigh. 879 ;; 880# In the belief that the fix for bug 1223 fixes mlockall() under linux... 881# *-*-*linux*) 882# # there, but more trouble than it is worth for now (resolver problems) 883# ;; 884 *-*-qnx*) 885 # Apparently there but not working in QNX. Sigh? 886 ;; 887 *-*-sco3.2v5.0.*) 888 # Just a stub. Sigh. 889 ;; 890 alpha*-dec-osf4*|alpha*-dec-osf5*) 891 # mlockall is there, as a #define calling memlk via <sys/mman.h> 892 # Not easy to test for - cheat. 893 AC_CHECK_FUNCS([memlk], [ac_cv_func_mlockall=yes]) 894 AC_CHECK_FUNCS([mlockall]) 895 ;; 896 *) AC_CHECK_FUNCS([mlockall]) 897 ;; 898esac 899AC_CHECK_FUNCS([nice plock pututline pututxline readlink rtprio]) 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 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 ;; 1748esac 1749AC_MSG_RESULT([$ntp_ok]) 1750case "$ntp_ok$host" in 1751 yes*-*-hpux*) ;; 1752 yes*) AC_MSG_WARN([*** But the expected answer is... no ***]) ;; 1753esac 1754 1755#HPUX only, and only by explicit request 1756AC_MSG_CHECKING([TrueTime GPS receiver/VME interface]) 1757AC_ARG_ENABLE( 1758 [GPSVME], 1759 [AS_HELP_STRING( 1760 [--enable-GPSVME], 1761 [- TrueTime GPS receiver/VME interface] 1762 )], 1763 [ntp_ok=$enableval], 1764 [ntp_ok=no] 1765) 1766case "$ntp_ok" in 1767 yes) 1768 ntp_refclock=yes 1769 AC_DEFINE([CLOCK_GPSVME], 1, [TrueTime GPS receiver/VME interface?]) 1770 ;; 1771esac 1772AC_MSG_RESULT([$ntp_ok]) 1773case "$ntp_ok$host" in 1774 yes*-*-hpux*) ;; 1775 yes*) AC_MSG_WARN([*** But the expected answer is... no ***]) ;; 1776esac 1777 1778AC_MSG_CHECKING([for PCL720 clock support]) 1779case "$ac_cv_header_machine_inline_h$ac_cv_header_sys_pcl720_h$ac_cv_header_sys_i8253_h" in 1780 yesyesyes) 1781 AC_DEFINE([CLOCK_PPS720], 1, [PCL 720 clock support]) 1782 ans=yes 1783 ;; 1784 *) 1785 ans=no 1786 ;; 1787esac 1788AC_MSG_RESULT([$ans]) 1789 1790AC_MSG_CHECKING([for default inclusion of all suitable non-PARSE clocks]) 1791AC_ARG_ENABLE( 1792 [all-clocks], 1793 [AS_HELP_STRING( 1794 [--enable-all-clocks], 1795 [+ include all suitable non-PARSE clocks:] 1796 )], 1797 [ntp_eac=$enableval], 1798 [ntp_eac=yes] 1799) 1800AC_MSG_RESULT([$ntp_eac]) 1801 1802# HMS: Should we also require ntp_parse_ok? 1803AC_MSG_CHECKING([if we have support for PARSE clocks]) 1804case "$ntp_atom_ok$ac_cv_header_termio_h$ac_cv_header_termios_h" in 1805 yes*yes*) 1806 ntp_canparse=yes 1807 ;; 1808 *) ntp_canparse=no 1809 ;; 1810esac 1811AC_MSG_RESULT([$ntp_canparse]) 1812 1813AC_MSG_CHECKING([if we have support for audio clocks]) 1814case "$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 1815 *yes*) 1816 ntp_canaudio=yes 1817 AC_DEFINE([HAVE_AUDIO], [], [Do we have audio support?]) 1818 ;; 1819 *) ntp_canaudio=no ;; 1820esac 1821AC_MSG_RESULT([$ntp_canaudio]) 1822 1823AC_MSG_CHECKING([if we have support for the SHM refclock interface]) 1824case "$ac_cv_header_sys_ipc_h$ac_cv_header_sys_shm_h" in 1825 yesyes) 1826 ntp_canshm=yes 1827 ;; 1828 *) ntp_canshm=no ;; 1829esac 1830AC_MSG_RESULT([$ntp_canshm]) 1831 1832# Test for termios TIOCMBIS modem control (ACTS, Heath, Palisade) 1833AC_CACHE_CHECK( 1834 [for termios modem control], 1835 [ntp_cv_modem_control], 1836 [AC_COMPILE_IFELSE( 1837 [AC_LANG_PROGRAM( 1838 [[ 1839 #ifdef HAVE_UNISTD_H 1840 # include <unistd.h> 1841 #endif 1842 #ifdef HAVE_TERMIOS_H 1843 # include <termios.h> 1844 #endif 1845 #ifdef HAVE_SYS_IOCTL_H 1846 # include <sys/ioctl.h> 1847 #endif 1848 ]], 1849 [[ 1850 int dtr = TIOCM_DTR; 1851 1852 ioctl(1, TIOCMBIS, (char *)&dtr); 1853 ]] 1854 )], 1855 [ntp_cv_modem_control=yes], 1856 [ntp_cv_modem_control=no] 1857 )] 1858) 1859case "$ntp_eac::$ntp_cv_modem_control" in 1860 yes::yes) 1861 ntp_enable_all_modem_control_clocks=yes 1862 ;; 1863 *) 1864 ntp_enable_all_modem_control_clocks=no 1865 ;; 1866esac 1867 1868# Requires modem control 1869AC_MSG_CHECKING([ACTS modem service]) 1870AC_ARG_ENABLE( 1871 [ACTS], 1872 [AS_HELP_STRING( 1873 [--enable-ACTS], 1874 [s ACTS modem service] 1875 )], 1876 [ntp_ok=$enableval], 1877 [ntp_ok=$ntp_enable_all_modem_control_clocks] 1878) 1879case "$ntp_ok" in 1880 yes) 1881 ntp_refclock=yes 1882 AC_DEFINE([CLOCK_ACTS], [1], [ACTS modem service]) 1883 ;; 1884esac 1885AC_MSG_RESULT([$ntp_ok]) 1886 1887AC_MSG_CHECKING([Arbiter 1088A/B GPS receiver]) 1888AC_ARG_ENABLE( 1889 [ARBITER], 1890 [AS_HELP_STRING( 1891 [--enable-ARBITER], 1892 [+ Arbiter 1088A/B GPS receiver] 1893 )], 1894 [ntp_ok=$enableval], 1895 [ntp_ok=$ntp_eac] 1896) 1897case "$ntp_ok" in 1898 yes) 1899 ntp_refclock=yes 1900 AC_DEFINE([CLOCK_ARBITER], [1], [Arbiter 1088A/B GPS receiver]) 1901 ;; 1902esac 1903AC_MSG_RESULT([$ntp_ok]) 1904 1905AC_MSG_CHECKING([Arcron MSF receiver]) 1906AC_ARG_ENABLE( 1907 [ARCRON_MSF], 1908 [AS_HELP_STRING( 1909 [--enable-ARCRON-MSF], 1910 [+ Arcron MSF receiver] 1911 )], 1912 [ntp_ok=$enableval], 1913 [ntp_ok=$ntp_eac] 1914) 1915case "$ntp_ok" in 1916 yes) 1917 ntp_refclock=yes 1918 AC_DEFINE([CLOCK_ARCRON_MSF], [1], [ARCRON support?]) 1919 ;; 1920esac 1921AC_MSG_RESULT([$ntp_ok]) 1922 1923AC_MSG_CHECKING([Austron 2200A/2201A GPS receiver]) 1924AC_ARG_ENABLE( 1925 [AS2201], 1926 [AS_HELP_STRING( 1927 [--enable-AS2201], 1928 [+ Austron 2200A/2201A GPS receiver] 1929 )], 1930 [ntp_ok=$enableval], 1931 [ntp_ok=$ntp_eac] 1932) 1933case "$ntp_ok" in 1934 yes) 1935 ntp_refclock=yes 1936 AC_DEFINE([CLOCK_AS2201], [1], [Austron 2200A/2201A GPS receiver?]) 1937 ;; 1938esac 1939AC_MSG_RESULT([$ntp_ok]) 1940 1941AC_MSG_CHECKING([ATOM PPS interface]) 1942AC_ARG_ENABLE( 1943 [ATOM], 1944 [AS_HELP_STRING( 1945 [--enable-ATOM], 1946 [s ATOM PPS interface] 1947 )], 1948 [ntp_ok=$enableval], 1949 [ntp_ok=$ntp_eac] 1950) 1951case "$ntp_atom_ok" in 1952 no) ntp_ok=no ;; 1953esac 1954case "$ntp_ok" in 1955 yes) 1956 ntp_refclock=yes 1957 AC_DEFINE([CLOCK_ATOM], [1], [PPS interface?]) 1958 ;; 1959esac 1960AC_MSG_RESULT([$ntp_ok]) 1961 1962AC_MSG_CHECKING([Chrono-log K-series WWVB receiver]) 1963AC_ARG_ENABLE( 1964 [CHRONOLOG], 1965 [AS_HELP_STRING( 1966 [--enable-CHRONOLOG], 1967 [+ Chrono-log K-series WWVB receiver] 1968 )], 1969 [ntp_ok=$enableval], 1970 [ntp_ok=$ntp_eac] 1971) 1972case "$ntp_ok" in 1973 yes) 1974 ntp_refclock=yes 1975 AC_DEFINE([CLOCK_CHRONOLOG], [1], [Chronolog K-series WWVB receiver?]) 1976 ;; 1977esac 1978AC_MSG_RESULT([$ntp_ok]) 1979 1980AC_MSG_CHECKING([CHU modem/decoder]) 1981AC_ARG_ENABLE( 1982 [CHU], 1983 [AS_HELP_STRING( 1984 [--enable-CHU], 1985 [+ CHU modem/decoder] 1986 )], 1987 [ntp_ok=$enableval], 1988 [ntp_ok=$ntp_eac] 1989) 1990case "$ntp_ok" in 1991 yes) 1992 ntp_refclock=yes 1993 AC_DEFINE([CLOCK_CHU], [1], [CHU modem/decoder]) 1994 ;; 1995esac 1996AC_MSG_RESULT([$ntp_ok]) 1997ntp_refclock_chu=$ntp_ok 1998 1999AC_MSG_CHECKING([CHU audio/decoder]) 2000AC_ARG_ENABLE( 2001 [AUDIO-CHU], 2002 [AS_HELP_STRING( 2003 [--enable-AUDIO-CHU], 2004 [s CHU audio/decoder] 2005 )], 2006 [ntp_ok=$enableval], 2007 [ 2008 case "$ntp_eac$ntp_refclock_chu$ntp_canaudio" in 2009 *no*) ntp_ok=no ;; 2010 *) ntp_ok=yes ;; 2011 esac 2012 ] 2013) 2014AC_MSG_RESULT([$ntp_ok]) 2015# We used to check for sunos/solaris target... 2016case "$ntp_ok$ntp_refclock_chu$ntp_canaudio" in 2017 yes*no*) AC_MSG_WARN([*** But the expected answer is...no ***]) 2018esac 2019 2020# Not under HP-UX 2021AC_MSG_CHECKING([Datum Programmable Time System]) 2022AC_ARG_ENABLE( 2023 [DATUM], 2024 [AS_HELP_STRING( 2025 [--enable-DATUM], 2026 [s Datum Programmable Time System] 2027 )], 2028 [ntp_ok=$enableval], 2029 [ 2030 case "$ac_cv_header_termios_h" in 2031 yes) 2032 ntp_ok=$ntp_eac 2033 ;; 2034 *) ntp_ok=no 2035 ;; 2036 esac 2037 ] 2038) 2039case "$ntp_ok" in 2040 yes) 2041 ntp_refclock=yes 2042 AC_DEFINE([CLOCK_DATUM], [1], [Datum Programmable Time System?]) 2043 ;; 2044esac 2045AC_MSG_RESULT([$ntp_ok]) 2046 2047AC_MSG_CHECKING([Dumb generic hh:mm:ss local clock]) 2048AC_ARG_ENABLE( 2049 [DUMBCLOCK], 2050 [AS_HELP_STRING( 2051 [--enable-DUMBCLOCK], 2052 [+ Dumb generic hh:mm:ss local clock] 2053 )], 2054 [ntp_ok=$enableval], 2055 [ntp_ok=$ntp_eac] 2056) 2057case "$ntp_ok" in 2058 yes) 2059 ntp_refclock=yes 2060 AC_DEFINE([CLOCK_DUMBCLOCK], [1], [Dumb generic hh:mm:ss local clock?]) 2061 ;; 2062esac 2063AC_MSG_RESULT([$ntp_ok]) 2064 2065AC_MSG_CHECKING([Forum Graphic GPS]) 2066AC_ARG_ENABLE( 2067 [FG], 2068 [AS_HELP_STRING( 2069 [--enable-FG], 2070 [+ Forum Graphic GPS] 2071 )], 2072 [ntp_ok=$enableval], 2073 [ntp_ok=$ntp_eac] 2074) 2075case "$ntp_ok" in 2076 yes) 2077 ntp_refclock=yes 2078 AC_DEFINE([CLOCK_FG], [1], [Forum Graphic GPS datating station driver?]) 2079 ;; 2080esac 2081AC_MSG_RESULT([$ntp_ok]) 2082 2083# Requires modem control 2084AC_MSG_CHECKING([Heath GC-1000 WWV/WWVH receiver]) 2085AC_ARG_ENABLE( 2086 [HEATH], 2087 [AS_HELP_STRING( 2088 [--enable-HEATH], 2089 [s Heath GC-1000 WWV/WWVH receiver] 2090 )], 2091 [ntp_ok=$enableval], 2092 [ntp_ok=$ntp_enable_all_modem_control_clocks] 2093) 2094case "$ntp_ok" in 2095 yes) 2096 ntp_refclock=yes 2097 AC_DEFINE([CLOCK_HEATH], [1], [Heath GC-1000 WWV/WWVH receiver?]) 2098 ;; 2099esac 2100AC_MSG_RESULT([$ntp_ok]) 2101 2102AC_MSG_CHECKING([for hopf serial clock device]) 2103AC_ARG_ENABLE( 2104 [HOPFSERIAL], 2105 [AS_HELP_STRING( 2106 [--enable-HOPFSERIAL], 2107 [+ hopf serial clock device] 2108 )], 2109 [ntp_ok=$enableval], 2110 [ntp_ok=$ntp_eac] 2111) 2112case "$ntp_ok" in 2113 yes) 2114 ntp_refclock=yes 2115 AC_DEFINE([CLOCK_HOPF_SERIAL], [1], [HOPF serial clock device?]) 2116 ;; 2117esac 2118AC_MSG_RESULT([$ntp_ok]) 2119 2120AC_MSG_CHECKING([for hopf PCI clock 6039]) 2121AC_ARG_ENABLE( 2122 [HOPFPCI], 2123 [AS_HELP_STRING( 2124 [--enable-HOPFPCI], 2125 [+ hopf 6039 PCI board] 2126 )], 2127 [ntp_ok=$enableval], 2128 [ntp_ok=$ntp_eac] 2129) 2130case "$ntp_ok" in 2131 yes) 2132 ntp_refclock=yes 2133 AC_DEFINE([CLOCK_HOPF_PCI], [1], [HOPF PCI clock device?]) 2134 ;; 2135esac 2136AC_MSG_RESULT([$ntp_ok]) 2137 2138AC_MSG_CHECKING([HP 58503A GPS receiver]) 2139AC_ARG_ENABLE( 2140 [HPGPS], 2141 [AS_HELP_STRING( 2142 [--enable-HPGPS], 2143 [+ HP 58503A GPS receiver] 2144 )], 2145 [ntp_ok=$enableval], 2146 [ntp_ok=$ntp_eac] 2147) 2148case "$ntp_ok" in 2149 yes) 2150 ntp_refclock=yes 2151 AC_DEFINE([CLOCK_HPGPS], 1, [HP 58503A GPS receiver?]) 2152 ;; 2153esac 2154AC_MSG_RESULT([$ntp_ok]) 2155 2156AC_MSG_CHECKING([IRIG audio decoder]) 2157AC_ARG_ENABLE( 2158 [IRIG], 2159 [AS_HELP_STRING( 2160 [--enable-IRIG], 2161 [s IRIG audio decoder] 2162 )], 2163 [ntp_ok=$enableval], 2164 [ 2165 case "$ntp_eac$ntp_canaudio" in 2166 *no*) ntp_ok=no ;; 2167 *) ntp_ok=yes ;; 2168 esac 2169 ] 2170) 2171case "$ntp_ok" in 2172 yes) 2173 ntp_refclock=yes 2174 AC_DEFINE([CLOCK_IRIG], [1], [IRIG audio decoder?]) 2175 ;; 2176esac 2177AC_MSG_RESULT([$ntp_ok]) 2178case "$ntp_ok$ntp_canaudio" in 2179 yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) 2180esac 2181 2182AC_MSG_CHECKING([for JJY receiver]) 2183AC_ARG_ENABLE( 2184 [JJY], 2185 [AS_HELP_STRING( 2186 [--enable-JJY], 2187 [+ JJY receiver] 2188 )], 2189 [ntp_ok=$enableval], 2190 [ntp_ok=$ntp_eac] 2191) 2192case "$ntp_ok" in 2193 yes) 2194 ntp_refclock=yes 2195 AC_DEFINE([CLOCK_JJY], [1], [JJY receiver?]) 2196 ;; 2197esac 2198AC_MSG_RESULT([$ntp_ok]) 2199 2200AC_MSG_CHECKING([Rockwell Jupiter GPS receiver]) 2201AC_ARG_ENABLE( 2202 [JUPITER], 2203 [AS_HELP_STRING( 2204 [--enable-JUPITER], 2205 [s Rockwell Jupiter GPS receiver] 2206 )], 2207 [ntp_ok=$enableval], [ntp_ok=$ntp_eac]) 2208case "$ntp_jupiter_ok" in 2209 no) ntp_ok=no ;; 2210esac 2211case "$ntp_ok" in 2212 yes) 2213 ntp_refclock=yes 2214 AC_DEFINE([CLOCK_JUPITER], [1], [Rockwell Jupiter GPS clock?]) 2215 ;; 2216esac 2217AC_MSG_RESULT([$ntp_ok]) 2218 2219AC_MSG_CHECKING([Leitch CSD 5300 Master Clock System Driver]) 2220AC_ARG_ENABLE( 2221 [LEITCH], 2222 [AS_HELP_STRING( 2223 [--enable-LEITCH], 2224 [+ Leitch CSD 5300 Master Clock System Driver] 2225 )], 2226 [ntp_ok=$enableval], 2227 [ntp_ok=$ntp_eac] 2228) 2229case "$ntp_ok" in 2230 yes) 2231 ntp_refclock=yes 2232 AC_DEFINE([CLOCK_LEITCH], [1], 2233 [Leitch CSD 5300 Master Clock System Driver?]) 2234 ;; 2235esac 2236AC_MSG_RESULT([$ntp_ok]) 2237 2238AC_MSG_CHECKING([local clock reference]) 2239AC_ARG_ENABLE( 2240 [LOCAL-CLOCK], 2241 [AS_HELP_STRING( 2242 [--enable-LOCAL-CLOCK], 2243 [+ local clock reference] 2244 )], 2245 [ntp_ok=$enableval], 2246 [ntp_ok=$ntp_eac] 2247) 2248case "$ntp_ok" in 2249 yes) 2250 ntp_refclock=yes 2251 AC_DEFINE([CLOCK_LOCAL], [1], [local clock reference?]) 2252 ;; 2253esac 2254AC_MSG_RESULT([$ntp_ok]) 2255 2256dnl Bug 340: longstanding unfixed bugs 2257dnl AC_MSG_CHECKING([EES M201 MSF receiver]) 2258dnl AC_ARG_ENABLE([MSFEES], 2259dnl [AS_HELP_STRING([--enable-MSFEES], [+ EES M201 MSF receiver])], 2260dnl [ntp_ok=$enableval], [ntp_ok=$ntp_eac]) 2261dnl if test "$ntp_ok" = "yes"; then 2262dnl ntp_refclock=yes 2263dnl AC_DEFINE([CLOCK_MSFEES], [1], [EES M201 MSF receiver]) 2264dnl fi 2265dnl AC_MSG_RESULT([$ntp_ok]) 2266 2267# Not Ultrix 2268AC_MSG_CHECKING([Magnavox MX4200 GPS receiver]) 2269AC_ARG_ENABLE( 2270 [MX4200], 2271 [AS_HELP_STRING( 2272 [--enable-MX4200 ], 2273 [s Magnavox MX4200 GPS receiver] 2274 )], 2275 [ntp_ok=$enableval], 2276 [ 2277 case "$ac_cv_var_ppsclock" in 2278 yes) 2279 ntp_ok=$ntp_eac 2280 ;; 2281 *) 2282 ntp_ok=no 2283 ;; 2284 esac 2285 ] 2286) 2287case "$ntp_ok" in 2288 yes) 2289 ntp_refclock=yes 2290 AC_DEFINE([CLOCK_MX4200], [1], [Magnavox MX4200 GPS receiver]) 2291 ;; 2292esac 2293AC_MSG_RESULT([$ntp_ok]) 2294case "$ntp_ok$host" in 2295 yes*-*-ultrix*) AC_MSG_WARN([*** But the expected answer is... no ***]) 2296esac 2297 2298AC_MSG_CHECKING([for NeoClock4X receiver]) 2299AC_ARG_ENABLE( 2300 [NEOCLOCK4X], 2301 [AS_HELP_STRING( 2302 [--enable-NEOCLOCK4X], 2303 [+ NeoClock4X DCF77 / TDF receiver] 2304 )], 2305 [ntp_ok=$enableval], 2306 [ntp_ok=$ntp_eac] 2307) 2308case "$ntp_ok" in 2309 yes) 2310 ntp_refclock=yes 2311 AC_DEFINE([CLOCK_NEOCLOCK4X], [1], [NeoClock4X]) 2312 ;; 2313esac 2314AC_MSG_RESULT([$ntp_ok]) 2315 2316AC_MSG_CHECKING([NMEA GPS receiver]) 2317AC_ARG_ENABLE( 2318 [NMEA], 2319 [AS_HELP_STRING( 2320 [--enable-NMEA], 2321 [+ NMEA GPS receiver] 2322 )], 2323 [ntp_ok=$enableval], 2324 [ntp_ok=$ntp_eac] 2325) 2326case "$ntp_ok" in 2327 yes) 2328 ntp_refclock=yes 2329 AC_DEFINE([CLOCK_NMEA], [1], [NMEA GPS receiver]) 2330 ;; 2331esac 2332AC_MSG_RESULT([$ntp_ok]) 2333 2334AC_CHECK_FUNCS([strtoll]) 2335AC_MSG_CHECKING([for GPSD JSON receiver]) 2336AC_ARG_ENABLE( 2337 [GPSD], 2338 [AS_HELP_STRING( 2339 [--enable-GPSD], 2340 [+ GPSD JSON receiver] 2341 )], 2342 [ntp_ok=$enableval], 2343 [case "$ac_cv_func_strtoll" in 2344 yes) ntp_ok=$ntp_eac ;; 2345 *) ntp_ok="no" ;; 2346 esac] 2347) 2348case "$ntp_ok" in 2349 yes) 2350 ntp_refclock=yes 2351 AC_DEFINE([CLOCK_GPSDJSON], [1], [GPSD JSON receiver]) 2352 ;; 2353esac 2354AC_MSG_RESULT([$ntp_ok]) 2355 2356AC_MSG_CHECKING([for ONCORE Motorola VP/UT Oncore GPS]) 2357AC_ARG_ENABLE( 2358 [ONCORE], 2359 [AS_HELP_STRING( 2360 [--enable-ONCORE], 2361 [s Motorola VP/UT Oncore GPS receiver] 2362 )], 2363 [ntp_ok=$enableval], 2364 [ntp_ok=$ntp_eac] 2365) 2366case "$ntp_oncore_ok" in 2367 no) ntp_ok=no ;; 2368esac 2369case "$ntp_ok" in 2370 yes) 2371 ntp_refclock=yes 2372 AC_DEFINE([CLOCK_ONCORE], 1, [Motorola UT Oncore GPS]) 2373 ;; 2374esac 2375AC_MSG_RESULT([$ntp_ok]) 2376 2377# Requires modem control 2378AC_MSG_CHECKING([for Palisade clock]) 2379AC_ARG_ENABLE( 2380 [PALISADE], 2381 [AS_HELP_STRING( 2382 [--enable-PALISADE], 2383 [s Palisade clock] 2384 )], 2385 [ntp_ok=$enableval], 2386 [ntp_ok=$ntp_enable_all_modem_control_clocks] 2387) 2388case "$ntp_ok" in 2389 yes) 2390 ntp_refclock=yes 2391 AC_DEFINE([CLOCK_PALISADE], [1], [Palisade clock]) 2392 ;; 2393esac 2394AC_MSG_RESULT([$ntp_ok]) 2395 2396AC_MSG_CHECKING([Conrad parallel port radio clock]) 2397AC_ARG_ENABLE( 2398 [PCF], 2399 [AS_HELP_STRING( 2400 [--enable-PCF ], 2401 [+ Conrad parallel port radio clock] 2402 )], 2403 [ntp_ok=$enableval], 2404 [ntp_ok=$ntp_eac] 2405) 2406case "$ntp_ok" in 2407 yes) 2408 ntp_refclock=yes 2409 AC_DEFINE([CLOCK_PCF], [1], [Conrad parallel port radio clock]) 2410 ;; 2411esac 2412AC_MSG_RESULT([$ntp_ok]) 2413 2414AC_MSG_CHECKING([PST/Traconex 1020 WWV/WWVH receiver]) 2415AC_ARG_ENABLE( 2416 [PST], 2417 [AS_HELP_STRING( 2418 [--enable-PST], 2419 [+ PST/Traconex 1020 WWV/WWVH receiver] 2420 )], 2421 [ntp_ok=$enableval], 2422 [ntp_ok=$ntp_eac] 2423) 2424case "$ntp_ok" in 2425 yes) 2426 ntp_refclock=yes 2427 AC_DEFINE([CLOCK_PST], [1], [PST/Traconex 1020 WWV/WWVH receiver]) 2428 ;; 2429esac 2430AC_MSG_RESULT([$ntp_ok]) 2431 2432AC_MSG_CHECKING([RIPENCC specific Trimble driver]) 2433AC_ARG_ENABLE( 2434 [RIPENCC], 2435 [AS_HELP_STRING( 2436 [--enable-RIPENCC], 2437 [- RIPENCC specific Trimble driver] 2438 )], 2439 [ntp_ok=$enableval], 2440 [ntp_ok=no] 2441) 2442# 020629: HMS: s/$ntp_eac -> -/no because of ptr += sprintf(ptr, ...) usage 2443case "$ntp_ripe_ncc_ok" in 2444 no) ntp_ok=no ;; 2445esac 2446case "$ntp_ok" in 2447 yes) 2448 ntp_refclock=yes 2449 AC_DEFINE([CLOCK_RIPENCC], [],[RIPE NCC Trimble clock]) 2450 ;; 2451esac 2452AC_MSG_RESULT([$ntp_ok]) 2453 2454# Danny Meyer says SHM compiles (with a few warnings) under Win32. 2455# For *IX, we need sys/ipc.h and sys/shm.h. 2456AC_MSG_CHECKING([for SHM clock attached thru shared memory]) 2457AC_ARG_ENABLE( 2458 [SHM], 2459 [AS_HELP_STRING( 2460 [--enable-SHM], 2461 [s SHM clock attached thru shared memory] 2462 )], 2463 [ntp_ok=$enableval], 2464 [ 2465 case "$ntp_eac$ntp_canshm" in 2466 *no*) ntp_ok=no ;; 2467 *) ntp_ok=yes ;; 2468 esac 2469 ] 2470) 2471case "$ntp_ok" in 2472 yes) 2473 ntp_refclock=yes 2474 AC_DEFINE([CLOCK_SHM], [1], [clock thru shared memory]) 2475 ;; 2476esac 2477AC_MSG_RESULT([$ntp_ok]) 2478 2479AC_MSG_CHECKING([Spectracom 8170/Netclock/2 WWVB receiver]) 2480AC_ARG_ENABLE( 2481 [SPECTRACOM], 2482 [AS_HELP_STRING( 2483 [--enable-SPECTRACOM], 2484 [+ Spectracom 8170/Netclock/2 WWVB receiver] 2485 )], 2486 [ntp_ok=$enableval], 2487 [ntp_ok=$ntp_eac] 2488) 2489case "$ntp_ok" in 2490 yes) 2491 ntp_refclock=yes 2492 AC_DEFINE([CLOCK_SPECTRACOM], [1], 2493 [Spectracom 8170/Netclock/2 WWVB receiver]) 2494 ;; 2495esac 2496AC_MSG_RESULT([$ntp_ok]) 2497 2498AC_MSG_CHECKING([KSI/Odetics TPRO/S GPS receiver/IRIG interface]) 2499AC_ARG_ENABLE( 2500 [TPRO], 2501 [AS_HELP_STRING( 2502 [--enable-TPRO], 2503 [s KSI/Odetics TPRO/S GPS receiver/IRIG interface] 2504 )], 2505 [ntp_ok=$enableval], 2506 [ 2507 case "$ac_cv_header_sys_tpro_h" in 2508 yes) 2509 ntp_ok=$ntp_eac 2510 ;; 2511 *) 2512 ntp_ok=no 2513 ;; 2514 esac 2515 ] 2516) 2517case "$ntp_ok" in 2518 yes) 2519 ntp_refclock=yes 2520 AC_DEFINE([CLOCK_TPRO], [1], 2521 [KSI/Odetics TPRO/S GPS receiver/IRIG interface]) 2522 ;; 2523esac 2524AC_MSG_RESULT([$ntp_ok]) 2525case "$ntp_ok$ac_cv_header_sys_tpro" in 2526 yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) 2527esac 2528 2529# Not on a vax-dec-bsd 2530AC_MSG_CHECKING([Kinemetrics/TrueTime receivers]) 2531AC_ARG_ENABLE( 2532 [TRUETIME], 2533 [AS_HELP_STRING( 2534 [--enable-TRUETIME], 2535 [s Kinemetrics/TrueTime receivers] 2536 )], 2537 [ntp_ok=$enableval], 2538 [ 2539 case "$host" in 2540 vax-dec-bsd) 2541 ntp_ok=no 2542 ;; 2543 *) 2544 ntp_ok=$ntp_eac 2545 ;; 2546 esac 2547 ] 2548) 2549case "$ntp_ok" in 2550 yes) 2551 ntp_refclock=yes 2552 AC_DEFINE([CLOCK_TRUETIME], [1], [Kinemetrics/TrueTime receivers]) 2553 ;; 2554esac 2555AC_MSG_RESULT([$ntp_ok]) 2556case "$ntp_ok$host" in 2557 yesvax-dec-bsd) AC_MSG_WARN([*** But the expected answer is... no ***]) 2558esac 2559 2560AC_MSG_CHECKING([TrueTime 560 IRIG-B decoder]) 2561AC_ARG_ENABLE( 2562 [TT560], 2563 [AS_HELP_STRING( 2564 [--enable-TT560], 2565 [- TrueTime 560 IRIG-B decoder] 2566 )], 2567 [ntp_ok=$enableval], 2568 [ntp_ok=no] 2569) 2570case "$ntp_ok" in 2571 yes) 2572 ntp_refclock=yes 2573 AC_DEFINE([CLOCK_TT560], [], [TrueTime 560 IRIG-B decoder?]) 2574 ;; 2575esac 2576AC_MSG_RESULT([$ntp_ok]) 2577 2578AC_MSG_CHECKING([Ultralink M320 WWVB receiver]) 2579AC_ARG_ENABLE( 2580 [ULINK], 2581 [AS_HELP_STRING( 2582 [--enable-ULINK], 2583 [+ Ultralink WWVB receiver] 2584 )], 2585 [ntp_ok=$enableval], 2586 [ntp_ok=$ntp_eac] 2587) 2588case "$ntp_ok" in 2589 yes) 2590 ntp_refclock=yes 2591 AC_DEFINE([CLOCK_ULINK], [1], [Ultralink M320 WWVB receiver?]) 2592 ;; 2593esac 2594AC_MSG_RESULT([$ntp_ok]) 2595 2596AC_MSG_CHECKING([Spectracom TSYNC PCI timing board]) 2597AC_ARG_ENABLE( 2598 [TSYNCPCI], 2599 [AS_HELP_STRING( 2600 [--enable-TSYNCPCI], 2601 [s Spectracom TSYNC timing board] 2602 )], 2603 [ntp_ok=$enableval], 2604 [ 2605 case "$host" in 2606 *-*-*linux*) 2607 ntp_ok=$ntp_eac 2608 ;; 2609 *) 2610 ntp_ok=no 2611 esac 2612 ] 2613) 2614case "$ntp_ok" in 2615 yes) 2616 ntp_refclock=yes 2617 AC_DEFINE([CLOCK_TSYNCPCI], [1], [Spectracom TSYNC timing board]) 2618 ;; 2619esac 2620AC_MSG_RESULT([$ntp_ok]) 2621 2622AC_MSG_CHECKING([WWV receiver]) 2623AC_ARG_ENABLE( 2624 [WWV], 2625 [AS_HELP_STRING( 2626 [--enable-WWV], 2627 [s WWV Audio receiver] 2628 )], 2629 [ntp_ok=$enableval], 2630 [ 2631 case "$ntp_eac$ntp_canaudio" in 2632 *no*) ntp_ok=no ;; 2633 *) ntp_ok=yes ;; 2634 esac 2635 ] 2636) 2637case "$ntp_ok" in 2638 yes) 2639 ntp_refclock=yes 2640 AC_DEFINE([CLOCK_WWV], [1], [WWV audio driver]) 2641 ;; 2642esac 2643AC_MSG_RESULT([$ntp_ok]) 2644case "$ntp_ok$ntp_canaudio" in 2645 yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) 2646esac 2647 2648AC_MSG_CHECKING([for Zyfer receiver]) 2649AC_ARG_ENABLE( 2650 [ZYFER], 2651 [AS_HELP_STRING( 2652 [--enable-ZYFER], 2653 [+ Zyfer GPStarplus receiver] 2654 )], 2655 [ntp_ok=$enableval], 2656 [ntp_ok=$ntp_eac] 2657) 2658case "$ntp_ok" in 2659 yes) 2660 ntp_refclock=yes 2661 AC_DEFINE([CLOCK_ZYFER], [1], [Zyfer GPStarplus]) 2662 ;; 2663esac 2664AC_MSG_RESULT([$ntp_ok]) 2665 2666AC_MSG_CHECKING([for default inclusion of all suitable PARSE clocks]) 2667AC_ARG_ENABLE( 2668 [parse-clocks], 2669 [AS_HELP_STRING( 2670 [--enable-parse-clocks], 2671 [- include all suitable PARSE clocks:] 2672 )], 2673 [ntp_eapc=$enableval], 2674 [ 2675 case "$ntp_eac" in 2676 yes) ntp_eapc=$ntp_canparse ;; 2677 *) ntp_eapc=no ;; 2678 esac 2679 # Delete the next line one of these days 2680 ntp_eapc=no 2681 ] 2682) 2683AC_MSG_RESULT($ntp_eapc) 2684 2685case "$ntp_eac$ntp_eapc$ntp_canparse" in 2686 noyes*) 2687 AC_MSG_ERROR(["--enable-parse-clocks" requires "--enable-all-clocks".]) 2688 ;; 2689 yesyesno) 2690 AC_MSG_ERROR([You said "--enable-parse-clocks" but PARSE isn't supported on this platform!]) 2691 ;; 2692esac 2693 2694ntp_libparse=no 2695ntp_parseutil=no 2696ntp_rawdcf=no 2697 2698AC_MSG_CHECKING([Diem Computime Radio Clock]) 2699AC_ARG_ENABLE( 2700 [COMPUTIME], 2701 [AS_HELP_STRING( 2702 [--enable-COMPUTIME], 2703 [s Diem Computime Radio Clock] 2704 )], 2705 [ntp_ok=$enableval], 2706 [ntp_ok=$ntp_eapc] 2707) 2708case "$ntp_ok" in 2709 yes) 2710 ntp_libparse=yes 2711 ntp_refclock=yes 2712 AC_DEFINE([CLOCK_COMPUTIME], [1], [Diems Computime Radio Clock?]) 2713 ;; 2714esac 2715AC_MSG_RESULT([$ntp_ok]) 2716case "$ntp_ok$ntp_canparse" in 2717 yesno) 2718 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2719esac 2720 2721AC_MSG_CHECKING([ELV/DCF7000 clock]) 2722AC_ARG_ENABLE( 2723 [DCF7000], 2724 [AS_HELP_STRING( 2725 [--enable-DCF7000], 2726 [s ELV/DCF7000 clock] 2727 )], 2728 [ntp_ok=$enableval], 2729 [ntp_ok=$ntp_eapc] 2730) 2731case "$ntp_ok" in 2732 yes) 2733 ntp_libparse=yes 2734 ntp_refclock=yes 2735 AC_DEFINE([CLOCK_DCF7000], [1], [ELV/DCF7000 clock?]) 2736 ;; 2737esac 2738AC_MSG_RESULT([$ntp_ok]) 2739case "$ntp_ok$ntp_canparse" in 2740 yesno) 2741 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2742esac 2743 2744AC_MSG_CHECKING([HOPF 6021 clock]) 2745AC_ARG_ENABLE( 2746 [HOPF6021], 2747 [AS_HELP_STRING( 2748 [--enable-HOPF6021], 2749 [s HOPF 6021 clock] 2750 )], 2751 [ntp_ok=$enableval], 2752 [ntp_ok=$ntp_eapc] 2753) 2754case "$ntp_ok" in 2755 yes) 2756 ntp_libparse=yes 2757 ntp_refclock=yes 2758 AC_DEFINE([CLOCK_HOPF6021], [1], [HOPF 6021 clock?]) 2759 ;; 2760esac 2761AC_MSG_RESULT([$ntp_ok]) 2762case "$ntp_ok$ntp_canparse" in 2763 yesno) 2764 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2765esac 2766 2767AC_MSG_CHECKING([Meinberg clocks]) 2768AC_ARG_ENABLE( 2769 [MEINBERG], 2770 [AS_HELP_STRING( 2771 [--enable-MEINBERG], 2772 [s Meinberg clocks] 2773 )], 2774 [ntp_ok=$enableval], 2775 [ntp_ok=$ntp_eapc] 2776) 2777case "$ntp_ok" in 2778 yes) 2779 ntp_libparse=yes 2780 ntp_refclock=yes 2781 AC_DEFINE([CLOCK_MEINBERG], [1], [Meinberg clocks]) 2782 ;; 2783esac 2784AC_MSG_RESULT([$ntp_ok]) 2785case "$ntp_ok$ntp_canparse" in 2786 yesno) 2787 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2788esac 2789 2790AC_MSG_CHECKING([DCF77 raw time code]) 2791AC_ARG_ENABLE( 2792 [RAWDCF], 2793 [AS_HELP_STRING( 2794 [--enable-RAWDCF], 2795 [s DCF77 raw time code] 2796 )], 2797 [ntp_ok=$enableval], 2798 [ntp_ok=$ntp_eapc] 2799) 2800case "$ntp_ok" in 2801 yes) 2802 ntp_libparse=yes 2803 ntp_parseutil=yes 2804 ntp_refclock=yes 2805 ntp_rawdcf=yes 2806 AC_DEFINE([CLOCK_RAWDCF], [1], [DCF77 raw time code]) 2807 ;; 2808esac 2809AC_MSG_RESULT([$ntp_ok]) 2810case "$ntp_ok$ntp_canparse" in 2811 yesno) 2812 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2813esac 2814 2815case "$ntp_rawdcf" in 2816 yes) 2817 AC_CACHE_CHECK([if we must enable parity for RAWDCF], 2818 [ntp_cv_rawdcf_parity], 2819 [ 2820 ans=no 2821 case "$host" in 2822 *-*-*linux*) 2823 ans=yes 2824 ;; 2825 esac 2826 ntp_cv_rawdcf_parity=$ans 2827 ] 2828 ) 2829 case "$ntp_cv_rawdcf_parity" in 2830 yes) 2831 AC_DEFINE([RAWDCF_NO_IGNPAR], [1], 2832 [Should we not IGNPAR (Linux)?]) ;; 2833 esac 2834esac 2835 2836AC_MSG_CHECKING([RCC 8000 clock]) 2837AC_ARG_ENABLE( 2838 [RCC8000], 2839 [AS_HELP_STRING( 2840 [--enable-RCC8000], 2841 [s RCC 8000 clock] 2842 )], 2843 [ntp_ok=$enableval], 2844 [ntp_ok=$ntp_eapc] 2845) 2846case "$ntp_ok" in 2847 yes) 2848 ntp_libparse=yes 2849 ntp_refclock=yes 2850 AC_DEFINE([CLOCK_RCC8000], [1], [RCC 8000 clock]) 2851 ;; 2852esac 2853AC_MSG_RESULT([$ntp_ok]) 2854case "$ntp_ok$ntp_canparse" in 2855 yesno) 2856 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2857esac 2858 2859AC_MSG_CHECKING([Schmid DCF77 clock]) 2860AC_ARG_ENABLE( 2861 [SCHMID], 2862 [AS_HELP_STRING( 2863 [--enable-SCHMID ], 2864 [s Schmid DCF77 clock] 2865 )], 2866 [ntp_ok=$enableval], 2867 [ntp_ok=$ntp_eapc] 2868) 2869case "$ntp_ok" in 2870 yes) 2871 ntp_libparse=yes 2872 ntp_refclock=yes 2873 AC_DEFINE([CLOCK_SCHMID], [1], [Schmid DCF77 clock]) 2874 ;; 2875esac 2876AC_MSG_RESULT([$ntp_ok]) 2877case "$ntp_ok$ntp_canparse" in 2878 yesno) 2879 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2880esac 2881 2882AC_MSG_CHECKING([Trimble GPS receiver/TAIP protocol]) 2883AC_ARG_ENABLE( 2884 [TRIMTAIP], 2885 [AS_HELP_STRING( 2886 [--enable-TRIMTAIP], 2887 [s Trimble GPS receiver/TAIP protocol] 2888 )], 2889 [ntp_ok=$enableval], 2890 [ntp_ok=$ntp_eapc] 2891) 2892case "$ntp_ok" in 2893 yes) 2894 ntp_libparse=yes 2895 ntp_refclock=yes 2896 AC_DEFINE([CLOCK_TRIMTAIP], [1], 2897 [Trimble GPS receiver/TAIP protocol]) 2898 ;; 2899esac 2900AC_MSG_RESULT([$ntp_ok]) 2901case "$ntp_ok$ntp_canparse" in 2902 yesno) 2903 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2904esac 2905 2906AC_MSG_CHECKING([Trimble GPS receiver/TSIP protocol]) 2907AC_ARG_ENABLE( 2908 [TRIMTSIP], 2909 [AS_HELP_STRING( 2910 [--enable-TRIMTSIP], 2911 [s Trimble GPS receiver/TSIP protocol] 2912 )], 2913 [ntp_ok=$enableval], 2914 [ntp_ok=$ntp_eapc] 2915) 2916case "$ntp_ok" in 2917 yes) 2918 ntp_libparse=yes 2919 ntp_refclock=yes 2920 AC_DEFINE([CLOCK_TRIMTSIP], [1], 2921 [Trimble GPS receiver/TSIP protocol]) 2922 ;; 2923esac 2924AC_MSG_RESULT([$ntp_ok]) 2925case "$ntp_ok$ntp_canparse" in 2926 yesno) 2927 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2928esac 2929 2930AC_MSG_CHECKING([WHARTON 400A Series clock]) 2931AC_ARG_ENABLE( 2932 [WHARTON], 2933 [AS_HELP_STRING( 2934 [--enable-WHARTON], 2935 [s WHARTON 400A Series clock] 2936 )], 2937 [ntp_ok=$enableval], 2938 [ntp_ok=$ntp_eapc] 2939) 2940case "$ntp_ok" in 2941 yes) 2942 ntp_libparse=yes 2943 ntp_refclock=yes 2944 AC_DEFINE([CLOCK_WHARTON_400A], [1], [WHARTON 400A Series clock]) 2945 ;; 2946esac 2947AC_MSG_RESULT([$ntp_ok]) 2948case "$ntp_ok$ntp_canparse" in 2949 yesno) 2950 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2951esac 2952 2953AC_MSG_CHECKING([VARITEXT clock]) 2954AC_ARG_ENABLE( 2955 [VARITEXT], 2956 [AS_HELP_STRING( 2957 [--enable-VARITEXT], 2958 [s VARITEXT clock] 2959 )], 2960 [ntp_ok=$enableval], 2961 [ntp_ok=$ntp_eapc] 2962) 2963case "$ntp_ok" in 2964 yes) 2965 ntp_libparse=yes 2966 ntp_refclock=yes 2967 AC_DEFINE([CLOCK_VARITEXT], [1], [VARITEXT clock]) 2968 ;; 2969esac 2970AC_MSG_RESULT([$ntp_ok]) 2971case "$ntp_ok$ntp_canparse" in 2972 yesno) 2973 AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) 2974esac 2975 2976AC_MSG_CHECKING(SEL240X clock) 2977AC_ARG_ENABLE(SEL240X, 2978 AC_HELP_STRING([--enable-SEL240X], [s SEL240X clock]), 2979 [ntp_ok=$enableval], [ntp_ok=$ntp_eapc]) 2980if test "$ntp_ok" = "yes"; then 2981 ntp_libparse=yes 2982 ntp_refclock=yes 2983 AC_DEFINE(CLOCK_SEL240X, 1, [SEL240X protocol]) 2984fi 2985AC_MSG_RESULT($ntp_ok) 2986case "$ntp_ok$ntp_canparse" in 2987 yesno) 2988 AC_MSG_ERROR(That's a parse clock and this system doesn't support it!) 2989 ;; 2990esac 2991 2992AC_SUBST([LIBPARSE]) 2993AC_SUBST([MAKE_LIBPARSE]) 2994AC_SUBST([MAKE_LIBPARSE_KERNEL]) 2995AC_SUBST([MAKE_CHECK_Y2K]) 2996 2997AC_MSG_CHECKING([if we need to make and use the parse libraries]) 2998ans=no 2999case "$ntp_libparse" in 3000 yes) 3001 ans=yes 3002 AC_DEFINE([CLOCK_PARSE], [1], [PARSE driver interface]) 3003 LIBPARSE=../libparse/libparse.a 3004 MAKE_LIBPARSE=libparse.a 3005 # HMS: check_y2k trips the 34 year problem now... 3006 false && MAKE_CHECK_Y2K=check_y2k 3007esac 3008AC_MSG_RESULT([$ans]) 3009 3010NTP_OPENSSL 3011 3012NTP_CRYPTO_RAND 3013 3014# if we are using OpenSSL (--with-crypto), by default Autokey is enabled 3015AC_MSG_CHECKING([if we want to include NTP Autokey protocol support]) 3016AC_ARG_ENABLE( 3017 [autokey], 3018 AS_HELP_STRING( 3019 [--enable-autokey], 3020 [+ support NTP Autokey protocol] 3021 ), 3022 [ntp_autokey=$enableval], 3023 [ntp_autokey=$ntp_openssl] 3024) 3025case "$ntp_autokey" in 3026 no) 3027 ;; 3028 *) 3029 case "$ntp_openssl" in 3030 no) 3031 AC_MSG_WARN([Disabling Autokey, --enable-autokey requires --with-crypto.]) 3032 ntp_autokey=no 3033 ;; 3034 *) 3035 AC_DEFINE([AUTOKEY], [1], [Support NTP Autokey protocol?]) 3036 ntp_autokey=yes 3037 ;; 3038 esac 3039 ;; 3040esac 3041AC_MSG_RESULT([$ntp_autokey]) 3042 3043AC_SUBST([MAKE_CHECK_LAYOUT]) 3044AC_MSG_CHECKING([if we want to run check-layout]) 3045case "$cross_compiling$PATH_PERL" in 3046 no/*) 3047 MAKE_CHECK_LAYOUT=check-layout 3048 ans=yes 3049 ;; 3050 *) 3051 ans=no 3052 ;; 3053esac 3054AC_MSG_RESULT([$ans]) 3055 3056AC_SUBST([TESTDCF]) 3057AC_SUBST([DCFD]) 3058AC_MSG_CHECKING([if we can make dcf parse utilities]) 3059ans=no 3060case "$ntp_parseutil" in 3061 yes) 3062 case "$host" in 3063 *-*-sunos4*|*-*-solaris2*|*-*-*linux*|*-*-netbsd*) 3064 ans="dcfd testdcf" 3065 DCFD=dcfd 3066 TESTDCF=testdcf 3067 esac 3068 ;; 3069esac 3070AC_MSG_RESULT([$ans]) 3071 3072AC_SUBST([MAKE_PARSEKMODULE]) 3073AC_MSG_CHECKING([if we can build kernel streams modules for parse]) 3074ans=no 3075case "$ntp_parseutil$ac_cv_header_sys_stropts_h" in 3076 yesyes) 3077 case "$host" in 3078 sparc-*-sunos4*) 3079 case "$ntp_cv_var_kernel_pll" in 3080 yes) 3081 AC_DEFINE([PPS_SYNC], [1], [PARSE kernel PLL PPS support]) 3082 ;; 3083 esac 3084 ans=parsestreams 3085 MAKE_PARSEKMODULE=parsestreams.loadable_module.o 3086 ;; 3087 sparc-*-solaris2*) 3088 ans=parsesolaris 3089 MAKE_PARSEKMODULE=parse 3090 AC_CHECK_HEADERS([strings.h]) 3091 ;; 3092 esac 3093 ;; 3094esac 3095AC_MSG_RESULT([$ans]) 3096 3097AC_MSG_CHECKING([if we need basic refclock support]) 3098case "$ntp_refclock" in 3099 yes) 3100 AC_DEFINE([REFCLOCK], [1], [Basic refclock support?]) 3101 ;; 3102esac 3103AC_MSG_RESULT($ntp_refclock) 3104 3105dnl Things that can be made in clockstuff 3106AC_SUBST([PROPDELAY], [propdelay]) 3107AC_SUBST([CHUTEST]) dnl needs work to compile 3108 3109AC_SUBST([MAKE_ADJTIMED]) 3110AC_MSG_CHECKING([if we want HP-UX adjtimed support]) 3111case "$host" in 3112 *-*-hpux[[56789]]*) 3113 ans=yes 3114 ;; 3115 *) ans=no 3116 ;; 3117esac 3118case "$ans" in 3119 yes) 3120 MAKE_ADJTIMED=adjtimed 3121 AC_DEFINE([NEED_HPUX_ADJTIME], [1], 3122 [Do we need HPUX adjtime() library support?]) 3123 ;; 3124 *) ADJTIMED_DB= 3125 ADJTIMED_DL= 3126 ADJTIMED_DS= 3127 ADJTIMED_MS= 3128 ;; 3129esac 3130AC_MSG_RESULT([$ans]) 3131 3132AC_MSG_CHECKING([if we want QNX adjtime support]) 3133case "$host" in 3134 *-*-qnx*) 3135 ans=yes 3136 ;; 3137 *) ans=no 3138 ;; 3139esac 3140case "$ans" in 3141 yes) 3142 AC_DEFINE([NEED_QNX_ADJTIME], [1], 3143 [Do we need the qnx adjtime call?]) 3144 ;; 3145esac 3146AC_MSG_RESULT([$ans]) 3147 3148AC_MSG_CHECKING([if we can read kmem]) 3149 3150# the default is to enable it if the system has the capability 3151 3152case "$ac_cv_func_nlist$ac_cv_func_K_open$ac_cv_func_kvm_open" in 3153 *yes*) 3154 ans=yes 3155 ;; 3156 *) ans=no 3157 ;; 3158esac 3159 3160case "$host" in 3161 *-*-domainos) # Won't be found... 3162 ans=no 3163 ;; 3164 *-*-hpux*) 3165 #ans=no 3166 ;; 3167 *-*-irix[[456]]*) 3168 ans=no 3169 ;; 3170 *-*-*linux*) 3171 ans=no 3172 ;; 3173 *-*-winnt3.5) 3174 ans=no 3175 ;; 3176 *-*-unicosmp*) 3177 ans=no 3178 ;; 3179esac 3180 3181# --enable-kmem / --disable-kmem controls if present 3182AC_ARG_ENABLE( 3183 [kmem], 3184 [AS_HELP_STRING( 3185 [--enable-kmem], 3186 [s read /dev/kmem for tick and/or tickadj] 3187 )], 3188 [ans=$enableval] 3189) 3190 3191AC_MSG_RESULT([$ans]) 3192 3193case "$ans" in 3194 yes) 3195 can_kmem=yes 3196 ;; 3197 *) 3198 can_kmem=no 3199 AC_DEFINE([NOKMEM], [1], [Should we NOT read /dev/kmem?]) 3200esac 3201 3202 3203AC_MSG_CHECKING([if adjtime is accurate]) 3204 3205# target-dependent defaults 3206 3207case "$host" in 3208 i386-sequent-ptx*) 3209 ans=no 3210 ;; 3211 i386-unknown-osf1*) 3212 ans=yes 3213 ;; 3214 mips-sgi-irix[[456]]*) 3215 ans=yes 3216 ;; 3217 *-fujitsu-uxp*) 3218 ans=yes 3219 ;; 3220 *-ibm-aix[[4-9]]*) 3221 # XXX only verified thru AIX6. 3222 ans=yes 3223 ;; 3224 *-*-*linux*) 3225 ans=yes 3226 ;; 3227 *-*-solaris2.[[01]]) 3228 ans=no 3229 ;; 3230 *-*-solaris2*) 3231 ans=yes 3232 ;; 3233 *-*-unicosmp*) 3234 ans=yes 3235 ;; 3236 *) ans=no 3237 ;; 3238esac 3239 3240# --enable-accurate-adjtime / --disable-accurate-adjtime 3241# override the default 3242AC_ARG_ENABLE( 3243 [accurate-adjtime], 3244 [AS_HELP_STRING( 3245 [--enable-accurate-adjtime], 3246 [s the adjtime() call is accurate] 3247 )], 3248 [ans=$enableval] 3249) 3250 3251AC_MSG_RESULT([$ans]) 3252 3253case "$ans" in 3254 yes) 3255 AC_DEFINE([ADJTIME_IS_ACCURATE], [1], [Is adjtime() accurate?]) 3256 adjtime_is_accurate=yes 3257 ;; 3258 *) 3259 adjtime_is_accurate=no 3260 ;; 3261esac 3262 3263AC_CACHE_CHECK( 3264 [the name of 'tick' in the kernel], 3265 [ntp_cv_nlist_tick], 3266 [ 3267 ans=_tick 3268 case "$host" in 3269 m68*-hp-hpux*) # HP9000/300? 3270 ans=_old_tick 3271 ;; 3272 *-apple-aux[[23]]*) 3273 ans=tick 3274 ;; 3275 *-hp-hpux*) 3276 ans=old_tick 3277 ;; 3278 *-ibm-aix[[3-9]]*) 3279 # XXX only verified thru AIX6. 3280 ans=no 3281 ;; 3282 *-*-mpeix*) 3283 ans=no 3284 ;; 3285 *-*-ptx*) 3286 ans=tick 3287 ;; 3288 *-*-sco3.2v[[45]]*) 3289 ans=no 3290 ;; 3291 *-*-solaris2*) 3292 ans=nsec_per_tick 3293 ;; 3294 *-*-sysv4*) 3295 ans=tick 3296 ;; 3297 esac 3298 ntp_cv_nlist_tick=$ans 3299 ] 3300) 3301case "$ntp_cv_nlist_tick" in 3302 ''|no) 3303 ;; # HMS: I think we can only get 'no' here... 3304 *) 3305 AC_DEFINE_UNQUOTED([K_TICK_NAME], ["$ntp_cv_nlist_tick"], 3306 [What is the name of TICK in the kernel?]) 3307esac 3308 3309AC_CACHE_CHECK( 3310 [for the units of 'tick'], 3311 [ntp_cv_tick_nano], 3312 [ 3313 ans=usec 3314 case "$host" in 3315 *-*-solaris2*) 3316 ans=nsec 3317 ;; 3318 esac 3319 ntp_cv_tick_nano=$ans 3320 ] 3321) 3322case "$ntp_cv_tick_nano" in 3323 nsec) 3324 AC_DEFINE([TICK_NANO], [1], [Is K_TICK_NAME in nanoseconds?]) 3325esac 3326 3327AC_CACHE_CHECK( 3328 [the name of 'tickadj' in the kernel], 3329 [ntp_cv_nlist_tickadj], 3330 [ 3331 ans=_tickadj 3332 case "$host" in 3333 m68*-hp-hpux*) # HP9000/300? 3334 ans=_tickadj 3335 ;; 3336 *-apple-aux[[23]]*) 3337 ans=tickadj 3338 ;; 3339 *-hp-hpux10*) 3340 ans=no 3341 ;; 3342 *-hp-hpux9*) 3343 ans=no 3344 ;; 3345 *-hp-hpux*) 3346 ans=tickadj 3347 ;; 3348 *-*-aix*) 3349 ans=tickadj 3350 ;; 3351 *-*-mpeix*) 3352 ans=no 3353 ;; 3354 *-*-ptx*) 3355 ans=tickadj 3356 ;; 3357 *-*-sco3.2v4*) 3358 ans=no 3359 ;; 3360 *-*-sco3.2v5.0*) 3361 ans=clock_drift 3362 ;; 3363 *-*-solaris2*) 3364 ans=no # hrestime_adj 3365 ;; 3366 *-*-sysv4*) 3367 ans=tickadj 3368 ;; 3369 esac 3370 ntp_cv_nlist_tickadj=$ans 3371 ] 3372) 3373case "$ntp_cv_nlist_tickadj" in 3374 ''|no) 3375 ;; # HMS: I think we can only get 'no' here... 3376 *) 3377 AC_DEFINE_UNQUOTED([K_TICKADJ_NAME], ["$ntp_cv_nlist_tickadj"], 3378 [What is the name of TICKADJ in the kernel?]) 3379esac 3380 3381AC_CACHE_CHECK( 3382 [for the units of 'tickadj'], 3383 [ntp_cv_tickadj_nano], 3384 [ 3385 ans=usec 3386 case "$host" in 3387 *-*-solaris2*) 3388 ans=nsec 3389 ;; 3390 esac 3391 ntp_cv_tickadj_nano=$ans 3392 ] 3393) 3394case "$ntp_cv_tickadj_nano" in 3395 nsec) 3396 AC_DEFINE([TICKADJ_NANO], [1], [Is K_TICKADJ_NAME in nanoseconds?]) 3397esac 3398 3399AC_CACHE_CHECK( 3400 [half-heartedly for 'dosynctodr' in the kernel], 3401 [ntp_cv_nlist_dosynctodr], 3402 [ 3403 case "$host" in 3404 *-apple-aux[[23]]*) 3405 ans=no 3406 ;; 3407 *-sni-sysv*) 3408 ans=dosynctodr 3409 ;; 3410 *-stratus-vos) 3411 ans=no 3412 ;; 3413 *-*-aix*) 3414 ans=dosynctodr 3415 ;; 3416 *-*-hpux*) 3417 ans=no 3418 ;; 3419 *-*-mpeix*) 3420 ans=no 3421 ;; 3422 *-*-nextstep*) 3423 ans=_dosynctodr 3424 ;; 3425 *-*-ptx*) 3426 ans=doresettodr 3427 ;; 3428 *-*-sco3.2v4*) 3429 ans=no 3430 ;; 3431 *-*-sco3.2v5*) 3432 ans=track_rtc 3433 ;; 3434 *-*-solaris2*) 3435 ans=dosynctodr 3436 ;; 3437 *-*-sysv4*) 3438 ans=doresettodr 3439 ;; 3440 *) 3441 ans=_dosynctodr 3442 ;; 3443 esac 3444 ntp_cv_nlist_dosynctodr=$ans 3445 ] 3446) 3447case "$ntp_cv_nlist_dosynctodr" in 3448 no) 3449 ;; 3450 *) 3451 AC_DEFINE_UNQUOTED([K_DOSYNCTODR_NAME], ["$ntp_cv_nlist_dosynctodr"], 3452 [What is (probably) the name of DOSYNCTODR in the kernel?]) 3453 ;; 3454esac 3455 3456AC_CACHE_CHECK( 3457 [half-heartedly for 'noprintf' in the kernel], 3458 [ntp_cv_nlist_noprintf], 3459 [ 3460 case "$host" in 3461 *-apple-aux[[23]]*) 3462 ans=no 3463 ;; 3464 *-sni-sysv*) 3465 ans=noprintf 3466 ;; 3467 *-stratus-vos) 3468 ans=no 3469 ;; 3470 *-*-aix*) 3471 ans=noprintf 3472 ;; 3473 *-*-hpux*) 3474 ans=no 3475 ;; 3476 *-*-mpeix*) 3477 ans=no 3478 ;; 3479 *-*-ptx*) 3480 ans=noprintf 3481 ;; 3482 *-*-nextstep*) 3483 ans=_noprintf 3484 ;; 3485 *-*-solaris2*) 3486 ans=noprintf 3487 ;; 3488 *-*-sysv4*) 3489 ans=noprintf 3490 ;; 3491 *) 3492 ans=_noprintf 3493 ;; 3494 esac 3495 ntp_cv_nlist_noprintf=$ans 3496 ] 3497) 3498case "$ntp_cv_nlist_noprintf" in 3499 no) 3500 ;; 3501 *) 3502 AC_DEFINE_UNQUOTED([K_NOPRINTF_NAME], ["$ntp_cv_nlist_noprintf"], 3503 [What is (probably) the name of NOPRINTF in the kernel?]) 3504 ;; 3505esac 3506 3507dnl The tick/tickadj sections were written by Skippy, who never learned 3508dnl that it's impolite (horridly gross) to show your guts in public. 3509 3510dnl tick tickadj 3511dnl 10000 80 Unixware 3512dnl 1000000L/hz tick/16 (Solaris,UXPV,HPUX) && ADJTIME_IS_ACCURATE 3513dnl 10000 150 sgi IRIX 3514dnl 1000000L/hz 1000 RS6000 && NOKMEM 3515dnl 1000000L/hz 668 DOMAINOS && NOKMEM 3516dnl 1000000L/hz 500/HZ other && NOKMEM 3517dnl txc.tick 1 Linux 3518dnl (every / 10) 50 WinNT - tickadj is roughly 500/hz 3519dnl 1000000L/hz (nlist) (Solaris && !ADJTIME_IS_ACCURATE), 3520dnl (RS6000 && !NOKMEM), SINIX MIPS 3521 3522dnl But we'll only use these "values" if we can't find anything else. 3523 3524AC_MSG_CHECKING([for a default value for 'tick']) 3525 3526# target-dependent default for tick 3527 3528case "$host" in 3529 *-*-pc-cygwin*) 3530 AC_MSG_ERROR([tick needs work for cygwin]) 3531 ;; 3532 *-univel-sysv*) 3533 ans=10000 3534 ;; 3535 *-*-irix*) 3536 ans=10000 3537 ;; 3538 *-*-*linux*) 3539 ans=txc.tick 3540 ;; 3541 *-*-mpeix*) 3542 ans=no 3543 ;; 3544 *-*-winnt3.5) 3545 ans='(every / 10)' 3546 ;; 3547 *-*-unicosmp*) 3548 ans=10000 3549 ;; 3550 *) 3551 ans='1000000L/hz' 3552 ;; 3553esac 3554 3555AC_ARG_ENABLE( 3556 [tick], 3557 [AS_HELP_STRING( 3558 [--enable-tick=VALUE], 3559 [s force a value for 'tick'] 3560 )], 3561 [ans=$enableval] 3562) 3563 3564AC_MSG_RESULT([$ans]) 3565 3566case "$ans" in 3567 ''|no) 3568 ;; # HMS: I think we can only get 'no' here... 3569 *) 3570 AC_DEFINE_UNQUOTED([PRESET_TICK], [$ans], 3571 [Preset a value for 'tick'?]) 3572esac 3573 3574AC_MSG_CHECKING([for a default value for 'tickadj']) 3575 3576# target-specific default 3577ans='500/hz' 3578case "$host" in 3579 *-fujitsu-uxp*) 3580 case "$adjtime_is_accurate" in 3581 yes) 3582 ans='tick/16' 3583 esac 3584 ;; 3585 *-univel-sysv*) 3586 ans=80 3587 ;; 3588 *-*-aix*) 3589 case "$can_kmem" in 3590 no) 3591 ans=1000 3592 ;; 3593 esac 3594 ;; 3595 *-*-domainos) # Skippy: won't be found... 3596 case "$can_kmem" in 3597 no) 3598 ans=668 3599 ;; 3600 esac 3601 ;; 3602 *-*-hpux*) 3603 case "$adjtime_is_accurate" in 3604 yes) 3605 ans='tick/16' 3606 ;; 3607 esac 3608 ;; 3609 *-*-irix*) 3610 ans=150 3611 ;; 3612 *-*-mpeix*) 3613 ans=no 3614 ;; 3615 *-*-sco3.2v5.0*) 3616 ans=10000L/hz 3617 ;; 3618 *-*-winnt3.5) 3619 ans=50 3620 ;; 3621 *-*-unicosmp*) 3622 ans=150 3623 ;; 3624esac 3625 3626AC_ARG_ENABLE( 3627 [tickadj], 3628 [AS_HELP_STRING( 3629 [--enable-tickadj=VALUE], 3630 [s force a value for 'tickadj'] 3631 )], 3632 [ans=$enableval] 3633) 3634 3635AC_MSG_RESULT([$ans]) 3636 3637default_tickadj=$ans 3638 3639case "$default_tickadj" in 3640 ''|no) 3641 ;; # HMS: I think we can only get 'no' here... 3642 *) 3643 AC_DEFINE_UNQUOTED([PRESET_TICKADJ], [$default_tickadj], 3644 [Preset a value for 'tickadj'?]) ;; 3645esac 3646 3647# Newer versions of ReliantUNIX round adjtime() values down to 3648# 1/100s (system tick). Sigh ... 3649# Unfortunately, there is no easy way to know if particular release 3650# has this "feature" or any obvious way to test for it. 3651case "$host" in 3652 mips-sni-sysv4*) 3653 AC_DEFINE([RELIANTUNIX_CLOCK], [1], 3654 [Do we want the ReliantUNIX clock hacks?]) 3655esac 3656 3657case "$host" in 3658 *-*-sco3.2v5*) 3659 AC_DEFINE([SCO5_CLOCK], [1], [Do we want the SCO clock hacks?]) 3660esac 3661 3662ntp_cv_make_tickadj=yes 3663case "$can_kmem$ac_cv_var_tick$default_tickadj" in 3664 nonono) # Don't read KMEM, no presets. Bogus. 3665 AC_MSG_WARN([Can't read kmem, no PRESET_TICK or PRESET_TICKADJ. No tickadj.]) 3666 ntp_cv_make_tickadj=no 3667 ;; 3668 nono*) # Don't read KMEM, no PRESET_TICK but PRESET_TICKADJ. Bogus. 3669 AC_MSG_WARN([Can't read kmem but no PRESET_TICK. No tickadj.]) 3670 ntp_cv_make_tickadj=no 3671 ;; 3672 no*no) # Don't read KMEM, PRESET_TICK but no PRESET_TICKADJ. Bogus. 3673 AC_MSG_WARN([Can't read kmem but no PRESET_TICKADJ. No tickadj.]) 3674 ntp_cv_make_tickadj=no 3675 ;; 3676 no*) # Don't read KMEM, PRESET_TICK and PRESET_TICKADJ. Cool. 3677 ;; 3678 yesnono) # Read KMEM, no presets. Cool. 3679 ;; 3680 yesno*) # Read KMEM, no PRESET_TICK but PRESET_TICKADJ. Bogus. 3681 AC_MSG_WARN([PRESET_TICKADJ is defined but not PRESET_TICK. Please report this.]) 3682 ;; 3683 yes*no) # Read KMEM, PRESET_TICK but no PRESET_TICKADJ. Cool. 3684 ;; 3685 yes*) # READ KMEM, PRESET_TICK and PRESET_TICKADJ. 3686 ;; 3687 *) # Generally bogus. 3688 AC_MSG_ERROR([This shouldn't happen.]) 3689 ;; 3690esac 3691 3692AC_SUBST(MAKE_NTPTIME) 3693AC_CACHE_CHECK([if we want and can make the ntptime utility], ac_cv_make_ntptime, 3694[case "$host" in 3695 *) case "$ntp_cv_struct_ntptimeval$ntp_cv_var_kernel_pll" in 3696 yesyes) 3697 ans=yes 3698 ;; 3699 *) 3700 ans=no 3701 ;; 3702 esac 3703 ;; 3704esac 3705ac_cv_make_ntptime=$ans]) 3706case "$ac_cv_make_ntptime" in 3707 yes) 3708 MAKE_NTPTIME=ntptime 3709 ;; 3710 *) 3711 NTPTIME_DB= 3712 NTPTIME_DL= 3713 NTPTIME_DS= 3714 NTPTIME_MS= 3715 ;; 3716esac 3717 3718AC_SUBST([MAKE_TICKADJ]) 3719case "$host" in 3720 mips-sni-sysv4*) 3721 # tickadj is pretty useless on newer versions of ReliantUNIX 3722 # Do not bother 3723 ntp_cv_make_tickadj=no 3724 ;; 3725 *-*-irix*) 3726 ntp_cv_make_tickadj=no 3727 ;; 3728 *-*-solaris2*) 3729 # DLM says tickadj is a no-no starting with solaris2.5 3730 case "$host" in 3731 *-*-solaris2.1[[0-9]]*) 3732 ntp_cv_make_tickadj=no 3733 ;; 3734 *-*-solaris2.[[0-4]]*) ;; 3735 *) ntp_cv_make_tickadj=no ;; 3736 esac 3737 ;; 3738 *-*-unicosmp*) 3739 ntp_cv_make_tickadj=no 3740 ;; 3741esac 3742 3743# 3744# Despite all the above, we always make tickadj. Setting 3745# ntp_cv_make_tickadj before AC_CACHE_CHECK will cause a false 3746# report that the configuration variable was cached. It may 3747# be better to simply remove the hunk above, I did not want 3748# to remove it if there is hope it will be used again. 3749# 3750AS_UNSET([ntp_cv_make_tickadj]) 3751 3752AC_CACHE_CHECK( 3753 [if we want and can make the tickadj utility], 3754 [ntp_cv_make_tickadj], 3755 [ntp_cv_make_tickadj=yes] 3756) 3757case "$ntp_cv_make_tickadj" in 3758 yes) 3759 MAKE_TICKADJ=tickadj 3760 ;; 3761 *) 3762 CALC_TICKADJ_DB= 3763 CALC_TICKADJ_DL= 3764 CALC_TICKADJ_DS= 3765 CALC_TICKADJ_MS= 3766 TICKADJ_DB= 3767 TICKADJ_DL= 3768 TICKADJ_DS= 3769 TICKADJ_MS= 3770 ;; 3771esac 3772 3773AC_SUBST([MAKE_TIMETRIM]) 3774AC_CACHE_CHECK( 3775 [if we want and can make the timetrim utility], 3776 [ntp_cv_make_timetrim], 3777 [ 3778 case "$host" in 3779 *-*-irix*) 3780 ntp_cv_make_timetrim=yes 3781 ;; 3782 *-*-unicosmp*) 3783 ntp_cv_make_timetrim=yes 3784 ;; 3785 *) 3786 ntp_cv_make_timetrim=no 3787 ;; 3788 esac 3789 ] 3790) 3791case "$ntp_cv_make_timetrim" in 3792 yes) 3793 MAKE_TIMETRIM=timetrim 3794 ;; 3795 *) TIMETRIM_DB= 3796 TIMETRIM_DL= 3797 TIMETRIM_DS= 3798 TIMETRIM_MS= 3799 ;; 3800esac 3801 3802AC_SUBST([MAKE_LIBNTPSIM]) 3803AC_SUBST([MAKE_NTPDSIM]) 3804 3805AC_MSG_CHECKING([if we want to build the NTPD simulator]) 3806AC_ARG_ENABLE( 3807 [simulator], 3808 [AS_HELP_STRING( 3809 [--enable-simulator], 3810 [- build/install the NTPD simulator?] 3811 )], 3812 [ans=$enableval], 3813 [ans=no] 3814) 3815AC_MSG_RESULT([$ans]) 3816case "$ans" in 3817 yes) 3818 MAKE_NTPDSIM=ntpdsim 3819 MAKE_LIBNTPSIM=libntpsim.a 3820 ;; 3821 *) 3822 NTPDSIM_DB= 3823 NTPDSIM_DL= 3824 NTPDSIM_DS= 3825 NTPDSIM_MS= 3826 ;; 3827esac 3828 3829case "$build" in 3830 $host) 3831 ;; 3832 *) case "$host" in 3833 *-*-vxworks*) 3834 LDFLAGS="$LDFLAGS -r" 3835 ;; 3836 esac 3837 ;; 3838esac 3839 3840NTP_WITHSNTP 3841 3842AC_MSG_CHECKING([if we want to build ntpsnmpd]) 3843AC_ARG_WITH( 3844 [ntpsnmpd], 3845 [AS_HELP_STRING( 3846 [--with-ntpsnmpd], 3847 [s Build ntpsnmpd MIB agent?] 3848 )], 3849 [ans=$withval], 3850 [ 3851 case "$PATH_NET_SNMP_CONFIG" in 3852 /*) ans=yes ;; 3853 *) ans=no ;; 3854 esac 3855 ] 3856) 3857AC_MSG_RESULT([$ans]) 3858case "$ans" in 3859 yes) 3860 case "$PATH_NET_SNMP_CONFIG" in 3861 /*) 3862 SNMP_LIBS=`$PATH_NET_SNMP_CONFIG --agent-libs` 3863 # Bug 2815. This is a bit of a hack, but it works... 3864 case "$ntp_cv_net_snmp_version" in 3865 5.3*) SNMP_LIBS=`echo $SNMP_LIBS | $SED -e 's/-lnetsnmpagent/-lnetsnmpagent -lnetsnmpmibs/'` 3866 ;; 3867 esac 3868 AC_SUBST([SNMP_LIBS]) 3869 # HMS: we really want to separate CPPFLAGS and CFLAGS 3870 foo=`$PATH_NET_SNMP_CONFIG --cflags` 3871 SNMP_CPPFLAGS= 3872 SNMP_CFLAGS= 3873 for i in $foo; do 3874 case "$i" in 3875 -D*|-U*|-I*) 3876 SNMP_CPPFLAGS="$SNMP_CPPFLAGS $i" 3877 ;; 3878 *) SNMP_CFLAGS="$SNMP_CFLAGS $i" 3879 ;; 3880 esac 3881 done 3882 AC_SUBST([SNMP_CPPFLAGS]) 3883 AC_SUBST([SNMP_CFLAGS]) 3884 3885 save_CFLAGS=$CFLAGS 3886 save_CPPFLAGS=$CPPFLAGS 3887 save_LIBS=$LIBS 3888 CFLAGS=$SNMP_CFLAGS 3889 CPPFLAGS=$SNMP_CPPFLAGS 3890 3891 AC_CHECK_HEADER( 3892 [net-snmp/net-snmp-config.h], 3893 [MAKE_NTPSNMPD=ntpsnmpd], 3894 [AC_MSG_WARN([net-snmp-config present but net-snmp headers are not available!])] 3895 ) 3896 3897 # Do this last, as we're messing up LIBS. 3898 # check -lnetsnmp for netsnmp_daemonize 3899 LIBS=`$PATH_NET_SNMP_CONFIG --libs` 3900 AC_CHECK_LIB( 3901 [netsnmp], 3902 [netsnmp_daemonize], 3903 [ans=yes], 3904 [ans=no] 3905 ) 3906 case "$ans" in 3907 no) 3908 AC_DEFINE([NEED_NETSNMP_DAEMONIZE], [1], 3909 [We need to provide netsnmp_daemonize()]) 3910 esac 3911 3912 CFLAGS=$save_CFLAGS 3913 AS_UNSET([save_CFLAGS]) 3914 CPPFLAGS=$save_CPPFLAGS 3915 AS_UNSET([save_CPPFLAGS]) 3916 LIBS=$save_LIBS 3917 AS_UNSET([save_LIBS]) 3918 ;; 3919 *) 3920 AC_MSG_WARN([Cannot build ntpsnmpd - net-snmp-config cannot be found]) 3921 ;; 3922 esac 3923 ;; 3924esac 3925AC_SUBST([MAKE_NTPSNMPD]) 3926 3927case "$MAKE_NTPSNMPD" in 3928 '') 3929 NTPSNMPD_DB= 3930 NTPSNMPD_DL= 3931 NTPSNMPD_DS= 3932 NTPSNMPD_MS= 3933 ;; 3934esac 3935 3936AC_MSG_CHECKING([if we should always slew the time]) 3937 3938# target-specific defaults 3939 3940case "$host" in 3941 *-apple-aux[[23]]*) 3942 ans=yes 3943 ;; 3944 *-*-bsdi[[012]]*) 3945 ans=no 3946 ;; 3947 *-*-bsdi*) 3948 ans=yes 3949 ;; 3950 *-*-openvms*) # HMS: won't be found 3951 ans=yes 3952 ;; 3953 *) ans=no 3954 ;; 3955esac 3956 3957# --enable-slew-always / --disable-slew-always overrides default 3958 3959AC_ARG_ENABLE( 3960 [slew-always], 3961 [AS_HELP_STRING( 3962 [--enable-slew-always], 3963 [s always slew the time] 3964 )], 3965 [ans=$enableval] 3966) 3967 3968AC_MSG_RESULT([$ans]) 3969 3970case "$ans" in 3971 yes) 3972 AC_DEFINE([SLEWALWAYS], [1], [Slew always?]) 3973esac 3974 3975AC_MSG_CHECKING([if we should step and slew the time]) 3976 3977case "$host" in 3978 *-sni-sysv*) 3979 ans=yes 3980 ;; 3981 *-stratus-vos) 3982 ans=no 3983 ;; 3984 *-univel-sysv*) 3985 ans=no 3986 ;; 3987 *-*-ptx*) 3988 ans=yes 3989 ;; 3990 *-*-solaris2.1[[0-9]]*) 3991 ans=no 3992 ;; 3993 *-*-solaris2.[[012]]*) 3994 ans=yes 3995 ;; 3996 *-*-sysv4*) # HMS: Does this catch Fujitsu UXP? 3997 ans=yes 3998 ;; 3999 *) ans=no 4000 ;; 4001esac 4002 4003AC_ARG_ENABLE( 4004 [step-slew], 4005 [AS_HELP_STRING( 4006 [--enable-step-slew], 4007 [s step and slew the time] 4008 )], 4009 [ans=$enableval] 4010) 4011 4012AC_MSG_RESULT([$ans]) 4013 4014case "$ans" in 4015 yes) 4016 AC_DEFINE([STEP_SLEW], [1], [Step, then slew the clock?]) 4017esac 4018 4019AC_MSG_CHECKING([if ntpdate should step the time]) 4020 4021case "$host" in 4022 *-apple-aux[[23]]*) 4023 ans=yes 4024 ;; 4025 *) ans=no 4026 ;; 4027esac 4028 4029AC_ARG_ENABLE( 4030 [ntpdate-step], 4031 [AS_HELP_STRING( 4032 [--enable-ntpdate-step], 4033 [s if ntpdate should step the time] 4034 )], 4035 [ans=$enableval] 4036) 4037 4038AC_MSG_RESULT([$ans]) 4039 4040case "$ans" in 4041 yes) 4042 AC_DEFINE([FORCE_NTPDATE_STEP], [1], 4043 [force ntpdate to step the clock if !defined(STEP_SLEW) ?]) 4044esac 4045 4046 4047AC_MSG_CHECKING([if we should sync TODR clock every hour]) 4048 4049case "$host" in 4050 *-*-nextstep*) 4051 ans=yes 4052 ;; 4053 *-*-openvms*) # HMS: won't be found 4054 ans=yes 4055 ;; 4056 *) 4057 ans=no 4058 ;; 4059esac 4060 4061AC_ARG_ENABLE( 4062 [hourly-todr-sync], 4063 [AS_HELP_STRING( 4064 [--enable-hourly-todr-sync], 4065 [s if we should sync TODR hourly] 4066 )], 4067 [ans=$enableval] 4068) 4069 4070AC_MSG_RESULT([$ans]) 4071 4072case "$ac_cv_var_sync_todr" in 4073 yes) 4074 AC_DEFINE([DOSYNCTODR], [1], [synch TODR hourly?]) ;; 4075esac 4076 4077 4078AC_MSG_CHECKING([if we should avoid kernel FLL bug]) 4079 4080case "$host" in 4081 *-*-solaris2.6) 4082 unamev=`uname -v` 4083 case "$unamev" in 4084 Generic_105181-*) 4085 old_IFS="$IFS" 4086 IFS="-" 4087 set $unamev 4088 IFS="$old_IFS" 4089 if test "$2" -ge 17 4090 then 4091 # Generic_105181-17 and higher 4092 ans=no 4093 else 4094 ans=yes 4095 fi 4096 ;; 4097 *) 4098 ans=yes 4099 ;; 4100 esac 4101 ;; 4102 *-*-solaris2.7) 4103 unamev=`uname -v` 4104 case "$unamev" in 4105 Generic_106541-*) 4106 old_IFS="$IFS" 4107 IFS="-" 4108 set $unamev 4109 IFS="$old_IFS" 4110 if test "$2" -ge 07 4111 then 4112 # Generic_106541-07 and higher 4113 ans=no 4114 else 4115 ans=yes 4116 fi 4117 ;; 4118 *) 4119 ans=yes 4120 ;; 4121 esac 4122 ;; 4123 *) 4124 ans=no 4125 ;; 4126esac 4127 4128AC_ARG_ENABLE( 4129 [kernel-fll-bug], 4130 [AS_HELP_STRING( 4131 [--enable-kernel-fll-bug], 4132 [s if we should avoid a kernel FLL bug] 4133 )], 4134 [ans=$enableval] 4135) 4136 4137AC_MSG_RESULT([$ans]) 4138 4139case "$ans" in 4140 yes) 4141 AC_DEFINE([KERNEL_FLL_BUG], [1], [Does the kernel have an FLL bug?]) 4142esac 4143 4144 4145AC_MSG_CHECKING([if we want new session key behavior]) 4146AC_ARG_ENABLE( 4147 [bug1243-fix], 4148 [AS_HELP_STRING( 4149 [--enable-bug1243-fix], 4150 [+ use unmodified autokey session keys] 4151 )], 4152 [ans=$enableval], 4153 [ans=yes] 4154) 4155AC_MSG_RESULT([$ans]) 4156case "$ans" in 4157 no) 4158 AC_DEFINE([DISABLE_BUG1243_FIX], [1], 4159 [use old autokey session key behavior?]) 4160esac 4161 4162 4163AC_MSG_CHECKING([if we want the explicit 127.0.0.0/8 martian filter]) 4164AC_ARG_ENABLE( 4165 [bug3020-fix], 4166 [AS_HELP_STRING( 4167 [--enable-bug3020-fix], 4168 [+ Provide the explicit 127.0.0.0/8 martian filter] 4169 )], 4170 [ans=$enableval], 4171 [ans=yes] 4172) 4173AC_MSG_RESULT([$ans]) 4174case "$ans" in 4175 yes) 4176 AC_DEFINE([ENABLE_BUG3020_FIX], [1], 4177 [Provide the explicit 127.0.0.0/8 martian filter?]) 4178esac 4179 4180 4181AC_MSG_CHECKING([if we should use the IRIG sawtooth filter]) 4182 4183case "$host" in 4184 *-*-solaris2.[[89]]) 4185 ans=yes 4186 ;; 4187 *-*-solaris2.1[[0-9]]*) 4188 ans=yes 4189 ;; 4190 *) ans=no 4191 ;; 4192esac 4193 4194AC_ARG_ENABLE( 4195 [irig-sawtooth], 4196 [AS_HELP_STRING( 4197 [--enable-irig-sawtooth], 4198 [s if we should enable the IRIG sawtooth filter] 4199 )], 4200 [ans=$enableval] 4201) 4202 4203AC_MSG_RESULT([$ans]) 4204 4205case "$ans" in 4206 yes) 4207 AC_DEFINE([IRIG_SUCKS], [1], 4208 [Should we use the IRIG sawtooth filter?]) 4209esac 4210 4211AC_MSG_CHECKING([if we should enable NIST lockclock scheme]) 4212AC_ARG_ENABLE( 4213 [nist], 4214 [AS_HELP_STRING( 4215 [--enable-nist], 4216 [- if we should enable the NIST lockclock scheme] 4217 )], 4218 [ans=$enableval], 4219 [ans=no] 4220) 4221 4222AC_MSG_RESULT([$ans]) 4223 4224case "$ans" in 4225 yes) 4226 AC_DEFINE([LOCKCLOCK], [1], 4227 [Should we align with the NIST lockclock scheme?]) ;; 4228esac 4229 4230AC_MSG_CHECKING([if we want support for Samba's signing daemon]) 4231AC_ARG_ENABLE( 4232 [ntp-signd], 4233 [AS_HELP_STRING( 4234 [--enable-ntp-signd], 4235 [- Provide support for Samba's signing daemon, =/var/run/ntp_signd] 4236 )], 4237 [ans=$enableval], 4238 [ans=no] 4239) 4240 4241AC_MSG_RESULT([$ans]) 4242 4243case "$ans" in 4244 no) 4245 ntp_signd_path= 4246 ;; 4247 yes) 4248 ntp_signd_path=/var/run/ntp_signd 4249 ;; 4250 *) 4251 ntp_signd_path="$ans" 4252esac 4253 4254case "$ntp_signd_path" in 4255 '') 4256 ;; 4257 *) 4258 AC_DEFINE([HAVE_NTP_SIGND], [1], 4259 [Do we want support for Samba's signing daemon?]) 4260 AC_DEFINE_UNQUOTED([NTP_SIGND_PATH], ["$ntp_signd_path"], 4261 [Path to sign daemon rendezvous socket]) 4262 ;; 4263esac 4264 4265AC_CHECK_HEADERS([libscf.h]) 4266LSCF= 4267case "$ac_cv_header_libscf_h" in 4268 yes) 4269 LSCF='-lscf' 4270esac 4271AC_SUBST([LSCF]) 4272 4273NTP_IPV6 4274 4275 4276# 4277# Look for a sysctl call to get the list of network interfaces. 4278# 4279AC_CACHE_CHECK( 4280 [for interface list sysctl], 4281 [ntp_cv_iflist_sysctl], 4282 [AC_PREPROC_IFELSE( 4283 [AC_LANG_SOURCE([ 4284 #include <sys/param.h> 4285 #include <sys/sysctl.h> 4286 #include <sys/socket.h> 4287 #ifndef NET_RT_IFLIST 4288 # error 4289 #endif 4290 ])], 4291 [ntp_cv_iflist_sysctl=yes], 4292 [ntp_cv_iflist_sysctl=no] 4293 )] 4294) 4295case "$ntp_cv_iflist_sysctl" in 4296 yes) 4297 AC_DEFINE([HAVE_IFLIST_SYSCTL], [1], [have iflist_sysctl?]) 4298esac 4299 4300### 4301 4302AC_MSG_CHECKING([if we want the saveconfig mechanism]) 4303AC_ARG_ENABLE( 4304 [saveconfig], 4305 [AS_HELP_STRING( 4306 [--enable-saveconfig], 4307 [+ saveconfig mechanism] 4308 )], 4309 [ntp_ok=$enableval], 4310 [ntp_ok=yes] 4311) 4312ntp_saveconfig_enabled=0 4313case "$ntp_ok" in 4314 yes) 4315 ntp_saveconfig_enabled=1 4316 AC_DEFINE([SAVECONFIG], [1], [saveconfig mechanism]) 4317 ;; 4318esac 4319AM_CONDITIONAL([SAVECONFIG_ENABLED], [test x$ntp_saveconfig_enabled = x1]) 4320AC_MSG_RESULT([$ntp_ok]) 4321 4322### 4323 4324AC_MSG_CHECKING([if we want the experimental leap smear code]) 4325AC_ARG_ENABLE( 4326 [leap-smear], 4327 [AS_HELP_STRING( 4328 [--enable-leap-smear], 4329 [- experimental leap smear code] 4330 )], 4331 [ntp_ok=$enableval], 4332 [ntp_ok=no] 4333) 4334ntp_leap_smear_enabled=0 4335case "$ntp_ok" in 4336 yes) 4337 ntp_leap_smear_enabled=1 4338 AC_DEFINE([LEAP_SMEAR], [1], [leap smear mechanism]) 4339 AC_SUBST([HAVE_LEAPSMEARINTERVAL]) 4340 HAVE_LEAPSMEARINTERVAL="leapsmearinterval 0" 4341 ;; 4342esac 4343AC_MSG_RESULT([$ntp_ok]) 4344 4345### 4346 4347AC_MSG_CHECKING([if we want dynamic interleave support]) 4348AC_ARG_ENABLE( 4349 [dynamic-interleave], 4350 [AS_HELP_STRING( 4351 [--enable-dynamic-interleave], 4352 [- dynamic interleave support] 4353 )], 4354 [ntp_ok=$enableval], 4355 [ntp_ok=no] 4356) 4357ntp_dynamic_interleave=0 4358case "$ntp_ok" in 4359 yes) 4360 ntp_dynamic_interleave=1 4361 ;; 4362esac 4363AC_DEFINE_UNQUOTED([DYNAMIC_INTERLEAVE], [$ntp_dynamic_interleave], 4364 [support dynamic interleave?]) 4365AC_MSG_RESULT([$ntp_ok]) 4366 4367NTP_UNITYBUILD 4368 4369dnl gtest is needed for our tests subdirs. It would be nice if we could 4370dnl require a C++ compiler only if we will use gtest, but AC_PROG_CXX 4371dnl can't be conditionalized. 4372NTP_GOOGLETEST 4373 4374NTP_PROBLEM_TESTS 4375 4376### 4377 4378AC_DEFINE_DIR([NTP_KEYSDIR], [sysconfdir], 4379 [Default location of crypto key info]) 4380 4381AC_CONFIG_FILES([Makefile]) 4382AC_CONFIG_FILES([adjtimed/Makefile]) 4383AC_CONFIG_FILES([clockstuff/Makefile]) 4384AC_CONFIG_FILES([include/Makefile]) 4385AC_CONFIG_FILES([include/isc/Makefile]) 4386AC_CONFIG_FILES([kernel/Makefile]) 4387AC_CONFIG_FILES([kernel/sys/Makefile]) 4388AC_CONFIG_FILES([libntp/Makefile]) 4389AC_CONFIG_FILES([libparse/Makefile]) 4390AC_CONFIG_FILES([ntpd/Makefile]) 4391AC_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]) 4392AC_CONFIG_FILES([ntpdate/Makefile]) 4393AC_CONFIG_FILES([ntpdc/Makefile]) 4394AC_CONFIG_FILES([ntpdc/nl.pl], [chmod +x ntpdc/nl.pl]) 4395AC_CONFIG_FILES([ntpq/Makefile]) 4396AC_CONFIG_FILES([ntpsnmpd/Makefile]) 4397AC_CONFIG_FILES([parseutil/Makefile]) 4398AC_CONFIG_FILES([scripts/Makefile]) 4399AC_CONFIG_FILES([scripts/build/Makefile]) 4400AC_CONFIG_FILES([scripts/build/genAuthors], [chmod +x scripts/build/genAuthors]) 4401AC_CONFIG_FILES([scripts/build/mkver], [chmod +x scripts/build/mkver]) 4402AC_CONFIG_FILES([scripts/calc_tickadj/Makefile]) 4403AC_CONFIG_FILES([scripts/calc_tickadj/calc_tickadj], [chmod +x scripts/calc_tickadj/calc_tickadj]) 4404AC_CONFIG_FILES([scripts/lib/Makefile]) 4405AC_CONFIG_FILES([scripts/ntp-wait/Makefile]) 4406AC_CONFIG_FILES([scripts/ntp-wait/ntp-wait], [chmod +x scripts/ntp-wait/ntp-wait]) 4407AC_CONFIG_FILES([scripts/ntpsweep/Makefile]) 4408AC_CONFIG_FILES([scripts/ntpsweep/ntpsweep], [chmod +x scripts/ntpsweep/ntpsweep]) 4409AC_CONFIG_FILES([scripts/ntptrace/Makefile]) 4410AC_CONFIG_FILES([scripts/ntptrace/ntptrace], [chmod +x scripts/ntptrace/ntptrace]) 4411AC_CONFIG_FILES([scripts/ntpver], [chmod +x scripts/ntpver]) 4412AC_CONFIG_FILES([scripts/plot_summary], [chmod +x scripts/plot_summary]) 4413AC_CONFIG_FILES([scripts/summary], [chmod +x scripts/summary]) 4414AC_CONFIG_FILES([scripts/update-leap/Makefile]) 4415AC_CONFIG_FILES([scripts/update-leap/update-leap], [chmod +x scripts/update-leap/update-leap]) 4416AC_CONFIG_FILES([tests/Makefile]) 4417AC_CONFIG_FILES([tests/bug-2803/Makefile]) 4418AC_CONFIG_FILES([tests/libntp/Makefile]) 4419AC_CONFIG_FILES([tests/ntpd/Makefile]) 4420AC_CONFIG_FILES([tests/ntpq/Makefile]) 4421AC_CONFIG_FILES([tests/sandbox/Makefile]) 4422AC_CONFIG_FILES([tests/sec-2853/Makefile]) 4423AC_CONFIG_FILES([util/Makefile]) 4424 4425perllibdir="${datadir}/ntp/lib" 4426AC_DEFINE_DIR([PERLLIBDIR], [perllibdir], [data dir]) 4427 4428calc_tickadj_opts="$srcdir/scripts/calc_tickadj/calc_tickadj-opts" 4429AC_SUBST_FILE([calc_tickadj_opts]) 4430ntp_wait_opts="$srcdir/scripts/ntp-wait/ntp-wait-opts" 4431AC_SUBST_FILE([ntp_wait_opts]) 4432ntpsweep_opts="$srcdir/scripts/ntpsweep/ntpsweep-opts" 4433AC_SUBST_FILE([ntpsweep_opts]) 4434ntptrace_opts="$srcdir/scripts/ntptrace/ntptrace-opts" 4435AC_SUBST_FILE([ntptrace_opts]) 4436summary_opts="$srcdir/scripts/summary-opts" 4437AC_SUBST_FILE([summary_opts]) 4438plot_summary_opts="$srcdir/scripts/plot_summary-opts" 4439AC_SUBST_FILE([plot_summary_opts]) 4440 4441AC_CONFIG_SUBDIRS([sntp]) 4442 4443AC_OUTPUT 4444