From bdab5265fcbf3f472545073a23f8999749a9f2b9 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 2 Dec 2014 09:01:21 +0000 Subject: Imported from /home/lorry/working-area/delta_ntp/ntp-dev-4.2.7p482.tar.gz. --- configure.ac | 4363 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4363 insertions(+) create mode 100644 configure.ac (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..1044d8c --- /dev/null +++ b/configure.ac @@ -0,0 +1,4363 @@ +dnl NTP top-level configure.ac -*- Autoconf -*- +dnl +m4_include([sntp/m4/version.m4]) +AC_PREREQ([2.61]) +AC_INIT( + [ntp4], + [VERSION_NUMBER], + [http://bugs.ntp.org./], + [], + [http://www.ntp.org./]dnl +) +AC_CONFIG_MACRO_DIR([sntp/m4]) +AC_CONFIG_AUX_DIR([sntp/libevent/build-aux]) + +AC_PRESERVE_HELP_ORDER + +# Bump ntp_configure_cache_version for each change to configure.ac or +# .m4 files which invalidates cached values from previous configure +# runs. +# +# If the change affects cache variables used only by the main NTP +# configure.ac, then only its version number should be bumped, while +# the subdir configure.ac version numbers should be unchanged. The +# same is true for a test/variable that is used only by one subdir +# being changed incompatibly; only that subdir's cache version needs +# bumping. +# +# If a change affects variables shared by all NTP configure scripts, +# please bump the version numbers of each. If you are not sure, the +# safe choice is to bump all on any cache-invalidating change. +# +# In order to avoid the risk of version stamp collision between -stable +# and -dev branches, do not simply increment the version, instead use +# the date YYYYMMDD optionally with -HHMM if there is more than one +# bump in a day. + +ntp_configure_cache_version=20120806 + +# When the cache version of config.cache and configure do not +# match, NTP_CACHEVERSION will flush the cache. + +NTP_CACHEVERSION([main], [$ntp_configure_cache_version]) + +AM_INIT_AUTOMAKE([1.10 foreign -Wall -Wno-gnu]) + +dnl AM_SILENT_RULES req. automake 1.11. [yes] defaults V=0 +m4_ifdef( + [AM_SILENT_RULES], + [AM_SILENT_RULES([yes])] +) +AC_CANONICAL_BUILD +AC_CANONICAL_HOST +dnl the 'build' machine is where we run configure and compile +dnl the 'host' machine is where the resulting stuff runs. +AC_DEFINE_UNQUOTED([STR_SYSTEM], ["$host"], + [canonical system (cpu-vendor-os) of where we should run]) +AC_CONFIG_HEADERS([config.h]) +dnl AC_ARG_PROGRAM + +ntp_atom_ok=${ntp_atom_ok=no} +ntp_oncore_ok=${ntp_oncore_ok=no} +ntp_parse_ok=${ntp_parse_ok=no} +ntp_ripe_ncc_ok=${ntp_parse_ok=no} +ntp_jupiter_ok=${ntp_jupiter_ok=no} + +NTP_PROG_CC +AC_PROG_CPP +AC_PROG_CXX +AC_PROG_YACC +AC_PROG_CC_C_O + +NTP_VPATH_HACK dnl used only by ntpd/Makefile.am + +NTP_LOCINFO([sntp]) dnl takes over from NTP_BINDIR, in NTP_LIBNTP + +dnl AM_PROG_AR req. automake 1.12 +m4_ifdef( + [AM_PROG_AR], + [AM_PROG_AR] +) + +# So far, the only shared library we might use is libopts. +# It's a small library - we might as well use a static version of it. +AC_DISABLE_SHARED +AC_PROG_LIBTOOL +AC_SUBST([LIBTOOL_DEPS]) + +# NTP has (so far) been relying on leading-edge autogen, which +# means we need the appropriate corresponding libopts as well. +# Therefore, by default: +# - use the version of libopts we ship with +# - do not install it +# - build a static copy (AC_DISABLE_SHARED - done earlier) +case "${enable_local_libopts+set}" in + set) ;; + *) enable_local_libopts=yes ;; +esac +case "${enable_libopts_install+set}" in + set) ;; + *) enable_libopts_install=no ;; +esac +enable_nls=no +LIBOPTS_CHECK_NOBUILD([sntp/libopts]) + +NTP_ENABLE_LOCAL_LIBEVENT + +NTP_LIBNTP + +AC_MSG_CHECKING([for deprecated --with-arlib]) +AC_ARG_WITH([arlib], + AS_HELP_STRING([--with-arlib], [- deprecated, arlib not distributed]), + [ans=$withval], [ans=no]) +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + AC_MSG_WARN([Please do not use --with-arlib, arlib is no longer included. In the future, --with-arlib will not be recognized.]) + ;; +esac + +dnl we need to check for cross compile tools for vxWorks here +AC_PROG_AWK +AS_UNSET([ac_cv_prog_AWK]) +AC_SUBST([AWK]) dnl scripts/ntpver.in +AC_PROG_MAKE_SET + +AC_SUBST([CFLAGS]) +AC_SUBST([LDFLAGS]) + +AC_PROG_LN_S +AC_ISC_POSIX + + +AC_PATH_PROG([PATH_PERL], [perl]) +dnl Saving cached hardcoded paths rather than searching $PATH during a +dnl cached configure run is an optimization not worth the the cost of +dnl preventing newly-installed tools from being found. Short-circuit +dnl the caching after the tests so preset overrides still work. +AS_UNSET([ac_cv_path_PATH_PERL]) +AC_PATH_PROG([PATH_TEST], [test]) +AS_UNSET([ac_cv_path_PATH_TEST]) +test -z "$CONFIG_SHELL" && CONFIG_SHELL=/bin/sh +AC_SUBST([CONFIG_SHELL]) dnl for scripts #!/path/to/sh + +AC_ARG_WITH( + [net-snmp-config], + [AS_HELP_STRING( + [--with-net-snmp-config], + [+ =net-snmp-config] + )], + [ans=$withval], + [ans=yes] +) +case "$ans" in + no) + ;; + yes) + ans=net-snmp-config + ;; + /*) + ;; + */*) + AC_MSG_ERROR([--with-net-snmp-config takes either a name or an absolute path]) + ;; + *) + ;; +esac +PROG_NET_SNMP_CONFIG=$ans +AC_MSG_CHECKING([for net-snmp-config path]) +case "$PROG_NET_SNMP_CONFIG" in + no) ;; + /*) + PATH_NET_SNMP_CONFIG=$PROG_NET_SNMP_CONFIG + ;; + *) + AC_PATH_PROG([PATH_NET_SNMP_CONFIG], [$PROG_NET_SNMP_CONFIG]) + AS_UNSET([ac_cv_path_PATH_NET_SNMP_CONFIG]) +;; +esac +AC_MSG_RESULT([$PATH_NET_SNMP_CONFIG]) + +case "$host" in + *-*-vxworks*) + ac_link="$ac_link $VX_KERNEL" + ;; +esac + +# HMS: a check for -lnsl used to be here - now being done in NTP_LIBNTP +AC_SEARCH_LIBS([openlog], [gen syslog]) +# XXX library list will be in ac_cv_search_openlog + +# LIBSECCOMP is off by default -- needs testing with all the features +# Please send bug reports to loganaden@gmail.com +AC_MSG_CHECKING([if we want to use libseccomp sandboxing (EXPERIMENTAL)]) +AC_ARG_ENABLE( + [libseccomp], + [AS_HELP_STRING( + [--enable-libseccomp], + [EXPERIMENTAL: enable support for libseccomp sandboxing (default is no) ] + )], + [ntp_ok=$enableval], + [ntp_ok=no] +) +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok" in + yes) + AC_SEARCH_LIBS( + [seccomp_init], + [seccomp], + [AC_DEFINE([LIBSECCOMP], [1], + [Define to any value to include libseccomp sandboxing.])] + ) + AC_TRY_RUN([ + #include + #include + #include + #include + #include + + int main(void) + { + int ret; + ret = prctl(PR_GET_SECCOMP, 0, 0, 0, 0); + if (ret < 0) { + switch (errno) { + case ENOSYS: + return 1; + case EINVAL: + return 1; + default: + return 1; + } + } + ret = + prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, NULL, 0, 0); + if (ret < 0) { + switch (errno) { + case EINVAL: + return 1; + case EFAULT: + return 0; + default: + return 1; + } + } +return 1; +} +] +, AC_DEFINE([KERN_SECCOMP], 1, +[Define to use libseccomp system call filtering.]) +, [] +) + ;; +esac + +NTP_FACILITYNAMES + +dnl Digital UNIX V4.0 and Solaris 7 have POSIX.1c functions in -lrt +dnl Solaris 2.6 only has -lposix4; in Solaris 7, this is a symlink to -lrt, +dnl so only use one of them. Linux (glibc-2.1.2 and -2.2.2, at least) +dnl does Strange Things with extra processes using the Posix-compatibility +dnl real-time library, so we don't want to use it. +dnl +dnl 081118 Harlan got tired of looking for a way to get the sched*() +dnl functions to link OK with either cc or gcc. + +case "$host" in + *-*-*linux*) ;; + *-*-osf4*) ;; + *-*-osf5*) ;; + *) + # HMS: Make sure we check for -lrt for clock_* before this... + case "$ac_cv_search_clock_gettime" in + '') AC_MSG_ERROR([Internal Error: Haven't looked for clock_gettime() yet!]) ;; + esac + AC_SEARCH_LIBS([sched_setscheduler], [rt posix4]) + ;; +esac + +AC_CHECK_HEADERS([bstring.h]) +AC_CHECK_HEADER( + [dns_sd.h], + [AC_SEARCH_LIBS( + [DNSServiceRegister], + [dns_sd], + [AC_DEFINE([HAVE_DNSREGISTRATION], [1], + [Use Rendezvous/DNS-SD registration])] + )] +) +AC_CHECK_HEADERS([fcntl.h fnmatch.h ieeefp.h inttypes.h kvm.h math.h]) + +AC_CHECK_HEADERS([memory.h netdb.h poll.h]) +AC_CHECK_HEADERS([sgtty.h stdlib.h string.h termio.h]) +AC_CHECK_HEADERS([termios.h timepps.h timex.h unistd.h]) + +case "$host" in + *-*-aix*) + AC_CHECK_HEADERS([utmpx.h]) + case "$ac_cv_header_utmpx_h" in + yes) + ;; + *) + AC_CHECK_HEADERS([utmp.h]) + ;; + esac + ;; + *) + AC_CHECK_HEADERS([utmp.h utmpx.h]) + ;; +esac + +# +# On Suns only (so far) getpass() truncates the typed password to 8 +# characters, but getpassphrase() allows up to 257. Most systems' +# getpass() does not truncate, at least not so as to affect ntpq and +# ntpdc password prompts. +# +# So check for getpassphrase(), but only on Sun operating systems. +# +case "$host" in + *-*-sunos*|*-*-solaris*) + AC_CHECK_FUNCS([getpassphrase]) +esac + + +AC_CHECK_HEADERS([net/if6.h]) +AC_CHECK_HEADERS([net/route.h], [], [], [ + #include + #include + #include +]) + +AC_CHECK_HEADERS([netinfo/ni.h]) +case "$ac_cv_header_netinfo_ni_h" in + yes) + AC_DEFINE([HAVE_NETINFO], [1], [NetInfo support?]) +esac +AC_CHECK_HEADERS([sun/audioio.h sys/audioio.h sys/file.h]) +case "$host" in + *-*-sunos4*) + ;; + *) + AC_CHECK_HEADERS([sys/ioctl.h]) + ;; +esac +AC_CHECK_HEADERS([sys/ipc.h sys/lock.h sys/mman.h]) +# HMS: Check sys/proc.h and sys/resource.h after some others +AC_CHECK_HEADERS([sys/modem.h sys/ppsclock.h sys/ppstime.h sched.h]) +case "$ac_cv_header_sched_h" in + yes) + ;; + *) + AC_CHECK_HEADERS([sys/sched.h]) + ;; +esac +# HMS: Check sys/shm.h after some others +AC_CHECK_HEADERS([sys/select.h sys/signal.h sys/sockio.h]) +# HMS: Checked sys/socket.h earlier +case "$host" in + *-*-netbsd*) + ;; + *) + AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h]) + ;; +esac +AC_CHECK_HEADERS([sys/stat.h sys/stream.h stropts.h sys/stropts.h sys/syssgi.h]) +AC_CHECK_HEADERS([sys/systune.h sys/termios.h sys/tpro.h sys/wait.h]) +case "$host" in +*-convex-*) + AC_CHECK_HEADERS([/sys/sync/queue.h /sys/sync/sema.h]) + ;; +*-*-bsdi*) + AC_CHECK_HEADERS([machine/inline.h sys/pcl720.h sys/i8253.h]) + ;; +esac + +case "$host" in + *-*-solaris2.6) + # Broken... + ;; + *) + AC_CHECK_FUNCS([ntp_adjtime ntp_gettime]) + ;; +esac + +case "$host" in + *-*-*linux*) + case "$ac_cv_func_ntp_gettime" in + yes) + ;; + *) + AC_CHECK_FUNCS([__ntp_gettime]) + case "$ac_cv_func___ntp_gettime" in + yes) + AC_DEFINE([ntp_gettime], [__ntp_gettime], [deviant]) + AC_DEFINE([HAVE_NTP_GETTIME], [1], [via __ntp_gettime]) + esac + ;; + esac + AC_CHECK_FUNCS([adjtimex]) + case "$ac_cv_func_adjtimex" in + yes) + AC_DEFINE([ntp_adjtime], [adjtimex], [deviant]) + AC_DEFINE([HAVE_NTP_ADJTIME], [1], [via adjtimex]) + have_adjtimex=1 + ;; + *) + AC_CHECK_FUNCS([__adjtimex]) + case "$ac_cv_func___adjtimex" in + yes) + AC_DEFINE([ntp_adjtime], [__adjtimex], [deviant]) + AC_DEFINE([HAVE_NTP_ADJTIME], [1], [via __adjtimex]) + AC_DEFINE([adjtimex], [__adjtimex], [deviant]) + AC_DEFINE([HAVE_ADJTIMEX], [1], [via __adjtimex]) + have_adjtimex=1 + esac + ;; + esac +esac +case "$have_adjtimex" in + '') + # nlist stuff is only needed for tickadj. + saved_LIBS="$LIBS" + LIBS= + AC_SEARCH_LIBS([nlist], [elf ld mld]) + # XXX ac_cv_search_nlist will be 'none required', 'no', or '-l...' + AC_SEARCH_LIBS([kvm_open], [kvm]) dnl We already know about -lelf here... + # XXX ac_cv_search_kvm_open will be 'none required', 'no', or '-l...' + AC_CHECK_HEADERS([nlist.h sys/var.h]) + case "$ac_cv_header_nlist_h" in + yes) + AC_DEFINE([NLIST_STRUCT], [1], [nlist stuff]) + AC_CACHE_CHECK( + [for n_un in struct nlist], + [ntp_cv_struct_nlist_n_un], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + ]], + [[ + struct nlist n; + n.n_un.n_name = 0; + ]] + )] + [ntp_cv_struct_nlist_n_un=yes], + [ntp_cv_struct_nlist_n_un=no] + )] + ) + case "$ntp_cv_struct_nlist_n_un" in + yes) + AC_DEFINE([NLIST_NAME_UNION], [1], + [does struct nlist use a name union?]) + esac + esac + AC_SUBST([LDADD_NLIST]) + LDADD_NLIST="$LIBS" + LIBS="$saved_LIBS" + AS_UNSET([saved_LIBS]) +esac + +AC_CHECK_HEADERS([sys/proc.h], [], [], [ + #ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_SYS_TIME_H + # include + #endif +]) + +AC_CHECK_HEADERS([sys/resource.h], [], [], [ + #ifdef HAVE_SYS_TIME_H + # include + #endif +]) + +AC_CHECK_HEADERS([sys/shm.h], [], [], [ + #ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_SYS_IPC_H + # include + #endif +]) + +AC_CHECK_HEADERS([sys/timex.h], [], [], [ + #ifdef HAVE_SYS_TIME_H + # include + #endif +]) + +AC_TYPE_SIGNAL +AC_TYPE_OFF_T +AC_STRUCT_TM dnl defines TM_IN_SYS_TIME used by refclock_parse.c + +AC_CACHE_CHECK( + [for a fallback value for HZ], + [ntp_cv_default_hz], + [ + ntp_cv_default_hz=100 + case "$host" in + alpha*-dec-osf4*|alpha*-dec-osf5*) + ntp_cv_default_hz=1024 + ;; + mips-dec-ultrix4*) + ntp_cv_default_hz=256 + ;; + esac + ] +) +AC_DEFINE_UNQUOTED([DEFAULT_HZ], [$ntp_cv_default_hz], + [What is the fallback value for HZ?]) + +AC_CACHE_CHECK( + [if we need to override the system's value for HZ], + [ntp_cv_override_hz], + [ + ntp_cv_override_hz=no + case "$host" in + alpha*-dec-osf4*|alpha*-dec-osf5*) + ntp_cv_override_hz=yes + ;; + mips-dec-ultrix4*) + ntp_cv_override_hz=yes + ;; + *-*-freebsd*) + ntp_cv_override_hz=yes + ;; + *-*-sunos4*) + ntp_cv_override_hz=yes + ;; + *-*-kfreebsd*) + ntp_cv_override_hz=yes + ;; + esac + ] +) +case "$ntp_cv_override_hz" in + yes) + AC_DEFINE([OVERRIDE_HZ], [1], + [Do we need to override the system's idea of HZ?]) +esac + +dnl AC_CACHE_CHECK(ut_host in struct utmp, ac_cv_func_ut_host_in_utmp, +dnl [AC_TRY_LINK([#include +dnl #include ], [struct utmp ut; ut.ut_host;], +dnl ac_cv_func_ut_host_in_utmp=yes, ac_cv_func_ut_host_in_utmp=no)]) +dnl if test $su_cv_func_ut_host_in_utmp = yes; then +dnl AC_DEFINE(HAVE_UT_HOST) +dnl fi + +dnl AC_MSG_CHECKING(if we can get the system boot time) +dnl AC_CACHE_VAL(su_cv_have_boot_time, +dnl [AC_EGREP_CPP(yes, +dnl [#ifdef HAVE_UTMPX_H +dnl #include +dnl #else +dnl #include +dnl #endif +dnl #ifdef BOOT_TIME +dnl yes +dnl #endif +dnl ], su_cv_have_boot_time=yes, su_cv_have_boot_time=no)]) +dnl AC_MSG_RESULT($su_cv_have_boot_time) + +AC_CACHE_CHECK( + [for struct rt_msghdr], + [ntp_cv_struct_rt_msghdr], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + #include + #include + #include + ]], + [[ + struct rt_msghdr p; + ]] + )], + [ntp_cv_struct_rt_msghdr=yes], + [ntp_cv_struct_rt_msghdr=no] + )] +) + +AC_CACHE_CHECK( + [for struct rtattr], + [ntp_cv_rtattr], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + #include + #include + ]], + [[ + struct rtattr p; + ]] + )], + [ntp_cv_rtattr=yes], + [ntp_cv_rtattr=no] + )] +) + +case "$ntp_cv_struct_rt_msghdr$ntp_cv_rtattr" in + *yes*) + AC_DEFINE([HAS_ROUTING_SOCKET], [1], + [Do we have a routing socket (rt_msghdr or rtattr)?]) + case "$ntp_cv_rtattr" in + yes) + AC_DEFINE([HAVE_RTNETLINK], [1], + [Do we have Linux routing socket?]) + esac +esac + +AC_CACHE_CHECK( + [struct sigaction for sa_sigaction], + [ntp_cv_struct_sigaction_has_sa_sigaction], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + ]], + [[ + struct sigaction act; + act.sa_sigaction = 0; + ]] + )], + [ntp_cv_struct_sigaction_has_sa_sigaction=yes], + [ntp_cv_struct_sigaction_has_sa_sigaction=no] + )] +) +case "$ntp_cv_struct_sigaction_has_sa_sigaction" in + yes) + AC_DEFINE([HAVE_SA_SIGACTION_IN_STRUCT_SIGACTION], [1], [Obvious]) +esac + +AC_CACHE_CHECK( + [for struct ppsclockev], + [ntp_cv_struct_ppsclockev], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_SYS_TERMIOS_H + # include + #endif + #ifdef HAVE_SYS_TIME_H + # include + #endif + #ifdef HAVE_SYS_PPSCLOCK_H + # include + #endif + ]], + [[ + extern struct ppsclockev *pce; + return pce->serial; + ]] + )], + [ntp_cv_struct_ppsclockev=yes], + [ntp_cv_struct_ppsclockev=no] + )] +) +case "$ntp_cv_struct_ppsclockev" in + yes) + AC_DEFINE([HAVE_STRUCT_PPSCLOCKEV], [1], + [Does a system header define struct ppsclockev?]) +esac + +case "$ac_cv_header_machine_soundcard_h$ac_cv_header_sys_soundcard_h" in + *yes*) + AC_CACHE_CHECK( + [for struct snd_size], + [ntp_cv_struct_snd_size], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #ifdef HAVE_MACHINE_SOUNDCARD_H + # include + #endif + #ifdef HAVE_SYS_SOUNDCARD_H + # include + #endif + ]], + [[ + extern struct snd_size *ss; + return ss->rec_size; + ]] + )], + [ntp_cv_struct_snd_size=yes], + [ntp_cv_struct_snd_size=no] + )] + ) + case "$ntp_cv_struct_snd_size" in + yes) + AC_DEFINE([HAVE_STRUCT_SND_SIZE], [1], + [Do we have struct snd_size?]) + esac +esac + +AC_CACHE_CHECK( + [struct clockinfo for hz], + [ntp_cv_struct_clockinfo_has_hz], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + ]], + [[ + extern struct clockinfo *pc; + return pc->hz; + ]] + )], + [ntp_cv_struct_clockinfo_has_hz=yes], + [ntp_cv_struct_clockinfo_has_hz=no] + )] +) +case "$ntp_cv_struct_clockinfo_has_hz" in + yes) + AC_DEFINE([HAVE_HZ_IN_STRUCT_CLOCKINFO], [1], [Obvious]) +esac + +AC_CACHE_CHECK( + [struct clockinfo for tickadj], + [ntp_cv_struct_clockinfo_has_hz], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + ]], + [[ + extern struct clockinfo *pc; + return pc->tickadj; + ]] + )], + [ntp_cv_struct_clockinfo_has_hz=yes], + [ntp_cv_struct_clockinfo_has_hz=no] + )] +) +case "$ntp_cv_struct_clockinfo_has_hz" in + yes) + AC_DEFINE([HAVE_TICKADJ_IN_STRUCT_CLOCKINFO], [1], [Obvious]) +esac + +case "$ntp_cv_struct_ntptimeval" in + yes) + AC_CHECK_MEMBERS( + [struct ntptimeval.time.tv_nsec], + [], + [], + [ + #ifdef HAVE_SYS_TIME_H + # include + #else + # ifdef HAVE_TIME_H + # include + # endif + #endif + #ifdef HAVE_SYS_TIMEX_H + # include + #else + # ifdef HAVE_TIMEX_H + # include + # endif + #endif + ] + ) +esac + +#### + +saved_LIBS="$LIBS" +LIBS="$LIBS $LDADD_LIBNTP" +AC_CHECK_FUNCS([daemon]) +# XXX if we keep everything in LIBS and also keep separate lists, this simplifies. +LIBS="$saved_LIBS" +AS_UNSET([saved_LIBS]) + +AC_CHECK_FUNCS( + [finite], + [], + [AC_CHECK_FUNCS( + [isfinite], + [], + [ + AC_MSG_CHECKING([for isfinite with ]) + _libs=$LIBS + # XXX + LIBS="$LIBS -lm" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + ]], + [[ + float f = 0.0; + isfinite(f); + ]] + )], + [ans=yes], + [ans=no] + ) + LIBS=$_libs + AC_MSG_RESULT([$ans]) + case "$ans" in + yes) + AC_DEFINE([HAVE_ISFINITE], [1]) + esac + ] + )] +) + +AC_CHECK_FUNCS([fnmatch getbootfile getuid getrusage nanosleep strsignal]) + +# kvm_open() is only used by tickadj. Also see above. +case "$ac_cv_header_kvm_h" in + yes) + AC_CHECK_FUNCS([kvm_open]) + ;; +esac + +case "$host" in + *-*-sco3.2v5.0.*) + # Just stubs. Sigh. + ;; + *) AC_CHECK_FUNCS([mkstemp]) + ;; +esac +AC_CHECK_FUNCS([mktime]) +case "$host" in + *-*-aix[[4-9]]*) + # XXX only verified thru AIX6. + # Just a stub. Sigh. + ;; + *-*-irix[[45]]*) + # Just a stub in "old" Irix. Sigh. + ;; +# In the belief that the fix for bug 1223 fixes mlockall() under linux... +# *-*-*linux*) +# # there, but more trouble than it is worth for now (resolver problems) +# ;; + *-*-qnx*) + # Apparently there but not working in QNX. Sigh? + ;; + *-*-sco3.2v5.0.*) + # Just a stub. Sigh. + ;; + alpha*-dec-osf4*|alpha*-dec-osf5*) + # mlockall is there, as a #define calling memlk via + # Not easy to test for - cheat. + AC_CHECK_FUNCS([memlk], [ac_cv_func_mlockall=yes]) + AC_CHECK_FUNCS([mlockall]) + ;; + *) AC_CHECK_FUNCS([mlockall]) + ;; +esac +AC_CHECK_FUNCS([nice plock pututline pututxline readlink rtprio]) +case "$host" in + *-*-aix[[4-9]]*) + # XXX only verified thru AIX6. + # Just a stub in AIX 4. Sigh. + ;; + *-*-solaris2.5*) + # Just stubs in solaris2.5. Sigh. + ;; + *) AC_CHECK_FUNCS([sched_setscheduler]) + ;; +esac +AC_CHECK_FUNCS([setlinebuf setpgid setpriority setsid setvbuf]) +AC_CHECK_FUNCS([strdup strerror setrlimit strchr]) +case "$host" in + *-*-aix[[4-9]]*) + # XXX only verified thru AIX6. + # Just stubs. Sigh. + ;; + *-*-netbsd1*) + # Just stubs. Sigh. + ;; + *-*-netbsdelf1*) + # Just stubs. Sigh. + ;; + *-*-openbsd*) + # Just stubs. Sigh. + ;; + *) + AC_CHECK_FUNCS([timer_create]) + ;; +esac + +NTP_RLIMIT_ITEMS + +# HMS: Only if we are doing the MLOCKALL stuff... +AC_MSG_CHECKING([for the default number of 4k stack pages]) +AC_ARG_WITH( + [stack-limit], + [AS_HELP_STRING( + [--with-stack-limit], + [? =50 (200 for openbsd) 4k pages] + )], + [ans=$withval], + [ans=yes] +) +case "$ans" in + yes | no) + case "$host" in + *-*-openbsd*) + ans=200 + ;; + *) ans=50 + ;; + esac + ;; + [[1-9]][[0-9]]*) + ;; + *) AC_MSG_ERROR(["--with-stack-limit requires an integer argument."]) + ;; +esac +AC_MSG_RESULT([$ans]) +AC_DEFINE_UNQUOTED([DFLT_RLIMIT_STACK], [$ans], + [Default number of 4k pages for RLIMIT_STACK]) + +# HMS: only if we have RLIMIT_MEMLOCK +AC_MSG_CHECKING([for the default number of megabytes to MEMLOCK]) +AC_ARG_WITH( + [memlock], + [AS_HELP_STRING( + [--with-memlock], + [? =32 (megabytes)] + )], + [ans=$withval], + [ans=yes] +) +case "$ans" in + yes | no) + ans=32 + ;; + [[1-9]][[0-9]]*) ;; + *) AC_MSG_ERROR(["--with-memlock requires an integer argument."]) + ;; +esac +AC_MSG_RESULT([$ans]) +AC_DEFINE_UNQUOTED([DFLT_RLIMIT_MEMLOCK], [$ans], + [Default number of megabytes for RLIMIT_MEMLOCK]) + + +# some OSes prefer _exit() in forked children to exit() +AC_CHECK_FUNCS([_exit]) +ntp_worker_child_exit=exit +case "$ac_cv_func__exit::$host_os" in + yes::netbsd*) + ntp_worker_child_exit=_exit + ;; + yes::openbsd*) + ntp_worker_child_exit=_exit + ;; +esac +AC_DEFINE_UNQUOTED([WORKER_CHILD_EXIT], [$ntp_worker_child_exit], + [routine worker child proc uses to exit.]) + +AC_CHECK_FUNCS([umask uname updwtmp updwtmpx]) + +### + +# http://bugs.ntp.org/737 +case "$ac_cv_func_recvmsg" in + yes) + AC_CACHE_CHECK( + [if we need extra help to define struct iovec], + [ntp_cv_struct_iovec_help], + [ + compiled=no + for ntp_cv_struct_iovec_help in '0' '1'; do + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_SYS_SOCKET_H + # include + #endif + #if $ntp_cv_struct_iovec_help + # include + #endif + ]], + [[ + void foo(void) { + ssize_t x; + int s = 0; + struct iovec iov; + struct msghdr mh; + int flags = 0; + + mh.msg_iov = &iov; + x = recvmsg(s, &mh, flags); + } + ]] + )], + [compiled=yes ; break 1], + [] + ) + done + case "$compiled" in + no) + ntp_cv_struct_iovec_help=0 + esac + AS_UNSET([compiled]) + ] + ) + case "$ntp_cv_struct_iovec_help" in + 1) + AC_DEFINE([HAVE_SYS_UIO_H], [1], + [Use sys/uio.h for struct iovec help]) + esac +esac + +AC_CACHE_CHECK( + [number of arguments taken by setpgrp()], + [ntp_cv_func_setpgrp_nargs], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_UNISTD_H + # include + #endif + ]], + [[ + setpgrp(0, 0); + ]] + )], + [ntp_cv_func_setpgrp_nargs=2], + [ntp_cv_func_setpgrp_nargs=0] + )] +) +case "$ntp_cv_func_setpgrp_nargs" in + 0) + AC_DEFINE([HAVE_SETPGRP_0], [1], + [define if setpgrp takes 0 arguments]) +esac + +AC_CACHE_CHECK( + [if we need to declare 'errno'], + [ntp_cv_decl_errno], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #ifdef HAVE_ERRNO_H + # include + #endif + ]], + [[ + errno = 0; + ]] + )], + [ntp_cv_decl_errno=no], + [ntp_cv_decl_errno=yes] + )] +) +case "$ntp_cv_decl_errno" in + yes) + AC_DEFINE([DECL_ERRNO], [1], [Declare errno?]) +esac + +dnl (prr) aix 4.3 defines h_errno as (*(int *)h_errno_which()) for +dnl MT purposes. This makes the line "extern int h_errno" choke +dnl the compiler. Hopefully adding !defined(h_errno) fixes this +dnl without breaking any other platforms. +dnl +AC_CACHE_CHECK( + [if we may declare 'h_errno'], + [ntp_cv_decl_h_errno], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + #ifdef HAVE_NETINET_IN_H + # include + #endif + #ifdef HAVE_ARPA_NAMESER_H + # include + #endif + #ifdef HAVE_NETDB_H + # include + #endif + #ifdef HAVE_RESOLV_H + # include + #endif + ]], + [[ + extern int h_errno; + ]] + )], + [ntp_cv_decl_h_errno=yes], + [ntp_cv_decl_h_errno=no] + )] +) +case "$ntp_cv_decl_h_errno" in + yes) + AC_DEFINE([DECL_H_ERRNO], [1], [Declare h_errno?]) +esac + +AC_CACHE_CHECK( + [if declaring 'syscall()' is ok], + [ntp_cv_decl_syscall], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_UNISTD_H + # include + #endif + ]], + [[ + extern int syscall (int, ...); + ]] + )] + [ntp_cv_decl_syscall=yes], + [ntp_cv_decl_syscall=no] + )] +) +case "$ntp_cv_decl_syscall" in + yes) + AC_DEFINE([DECL_SYSCALL], [1], [Declare syscall()?]) +esac + +case "$host" in + *-*-aix4.3.*) + AC_DEFINE([DECL_HSTRERROR_0], [1], [Declaration style]) # Needed for XLC under AIX 4.3.2 + ;; + *-*-mpeix*) + AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) + AC_DEFINE([DECL_INET_NTOA_0], [1], [Declaration style]) + AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style]) + AC_DEFINE([DECL_SELECT_0], [1], [Declaration style]) + AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style]) + AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style]) + AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) + ;; + *-*-osf[[45]]*) + AC_DEFINE([DECL_PLOCK_0], [1], [Declaration style]) + AC_DEFINE([DECL_STIME_1], [1], [Declaration style]) + ;; + *-*-qnx*) + AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) + ;; + *-*-riscos4*) + AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) + AC_DEFINE([DECL_BZERO_0], [1], [Declaration style]) + AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style]) + AC_DEFINE([DECL_IPC_0], [1], [Declaration style]) + AC_DEFINE([DECL_MEMMOVE_0], [1], [Declaration style]) + AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style]) + AC_DEFINE([DECL_RENAME_0], [1], [Declaration style]) + AC_DEFINE([DECL_SELECT_0], [1], [Declaration style]) + AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style]) + AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style]) + AC_DEFINE([DECL_STDIO_0], [1], [Declaration style]) + AC_DEFINE([DECL_STRTOL_0], [1], [Declaration style]) + AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style]) + AC_DEFINE([DECL_TIME_0], [1], [Declaration style]) + AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) + AC_DEFINE([DECL_TOLOWER_0], [1], [Declaration style]) + ;; + *-*-solaris2*) + AC_DEFINE([DECL_MKSTEMP_0], [1], [Declaration style]) + AC_DEFINE([DECL_SETPRIORITY_1], [1], [Declaration style]) + case "$host" in + *-*-solaris2.4) + AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) + ;; + esac + ;; + *-*-sunos4*) + AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) + AC_DEFINE([DECL_BCOPY_0], [1], [Declaration style]) + AC_DEFINE([DECL_BZERO_0], [1], [Declaration style]) + AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style]) + AC_DEFINE([DECL_IPC_0], [1], [Declaration style]) + AC_DEFINE([DECL_MEMMOVE_0], [1], [Declaration style]) + AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style]) + AC_DEFINE([DECL_MKSTEMP_0], [1], [Declaration style]) + AC_DEFINE([DECL_RENAME_0], [1], [Declaration style]) + AC_DEFINE([DECL_SELECT_0], [1], [Declaration style]) + AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style]) + AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style]) + AC_DEFINE([DECL_SIGVEC_0], [1], [Declaration style]) + case "`basename $ac_cv_prog_CC`" in + acc*) ;; + *) AC_DEFINE([DECL_STDIO_0], [1], [Declaration style]) + ;; + esac + AC_DEFINE([DECL_STRTOL_0], [1], [Declaration style]) + AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style]) + AC_DEFINE([DECL_TIME_0], [1], [Declaration style]) + AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) + AC_DEFINE([DECL_TOLOWER_0], [1], [Declaration style]) + AC_DEFINE([DECL_TOUPPER_0], [1], [Declaration style]) + AC_DEFINE([DECL_STRERROR_0], [1], [Declaration style]) + ;; + *-*-ultrix4*) + AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style]) + AC_DEFINE([DECL_BZERO_0], [1], [Declaration style]) + AC_DEFINE([DECL_CFSETISPEED_0], [1], [Declaration style]) + AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style]) + AC_DEFINE([DECL_IPC_0], [1], [Declaration style]) + AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style]) + AC_DEFINE([DECL_NLIST_0], [1], [Declaration style]) + AC_DEFINE([DECL_PLOCK_0], [1], [Declaration style]) + AC_DEFINE([DECL_SELECT_0], [1], [Declaration style]) + AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style]) + AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style]) + AC_DEFINE([DECL_STIME_0], [1], [Declaration style]) + AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style]) + AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style]) + ;; +esac + +case "$host" in + *-*-sco3.2*) + AC_DEFINE([TERMIOS_NEEDS__SVID3], [1], + [Do we need to #define _SVID3 when we #include ?]) + ;; +esac + +case "$host" in + *-*-hpux[[567]]*) + AC_DEFINE([NEED_RCVBUF_SLOP], [1], + [Do we need extra room for SO_RCVBUF? (HPUX < 8)]) +esac + +dnl Using AC_CACHE_CHECK to honor preset ntp_cv_var_open_bcast_socket +AC_CACHE_CHECK( + [if we will open the broadcast socket], + [ntp_cv_var_open_bcast_socket], + [ + ans=yes + case "$host" in + *-*-domainos) + ans=no + esac + ntp_cv_var_open_bcast_socket=$ans + ] +) +case "$ntp_cv_var_open_bcast_socket" in + yes) + AC_DEFINE([OPEN_BCAST_SOCKET], [1], + [Should we open the broadcast socket?]) +esac + +case "$host" in + *-*-hpux*) + AC_DEFINE([NEED_HPUX_FINDCONFIG], [1], + [Do we want the HPUX FindConfig()?]) +esac + +dnl using AC_CACHE_CHECK to honor preset $ntp_cv_arg_setpgrp_negpid +AC_CACHE_CHECK( + [if process groups are set with -pid], + [ntp_cv_arg_setpgrp_negpid], + [ + case "$host" in + *-*-hpux[[567]]*) + ans=no + ;; + *-*-hpux*) + ans=yes + ;; + *-*-*linux*) + ans=yes + ;; + *-*-sunos3*) + ans=yes + ;; + *-*-ultrix2*) + ans=yes + ;; + *) + ans=no + ;; + esac + ntp_cv_arg_setpgrp_negpid=$ans + ] +) +case "$ntp_cv_arg_setpgrp_negpid" in + yes) + AC_DEFINE([UDP_BACKWARDS_SETOWN], [1], + [Do we set process groups with -pid?]) +esac + +AC_CACHE_CHECK( + [if we need a ctty for F_SETOWN], + [ntp_cv_func_ctty_for_f_setown], + [ + case "$host" in + *-*-bsdi[[23]]*) + ans=yes + ;; + *-*-freebsd*) + ans=yes + ;; + # NetBSD versions prior to 3.99.8 require a CTTY for F_SETOWN, + # while later versions will fail a ioctl(TIOCSCTTY, 0) call in + # some cases and so should not have USE_FSETOWNCTTY. "netbsd" + # in $host may be followed by "aout", "ecoff", or "elf". + *-*-netbsd*[[a-z]]3.[[0-8]]*|*-*-netbsd*[[a-z]][[0-2]].*|*-*-netbsd*[[a-z]]3.99.[[0-7]]) + ans=yes + ;; + *-*-netbsd3.[[0-8]]*|*-*-netbsd[[0-2]].*|*-*-netbsd3.99.[[0-7]]) + ans=yes + ;; + *-*-openbsd*) + ans=yes + ;; + *-*-osf*) + ans=yes + ;; + *-*-darwin*) + ans=yes + ;; + *) + ans=no + ;; + esac + ntp_cv_func_ctty_for_f_setown=$ans + ] +) +case "$ntp_cv_func_ctty_for_f_setown" in + yes) + AC_DEFINE([USE_FSETOWNCTTY], [1], [Must we have a CTTY for fsetown?]) +esac + +AC_CACHE_CHECK( + [if the OS clears cached routes when more specifics become available], + [ntp_cv_os_routeupdates], + [ + case "$host" in + *-*-netbsd*) + ans=yes + ;; + *) + ans=no + ;; + esac + ntp_cv_os_routeupdates=$ans + ] +) +case "$ntp_cv_os_routeupdates" in + yes) + AC_DEFINE([OS_MISSES_SPECIFIC_ROUTE_UPDATES], [1], + [need to recreate sockets on changed routing?]) +esac + +AC_CACHE_CHECK( + [if the wildcard socket needs REUSEADDR to bind other addresses], + [ntp_cv_os_wildcardreuse], + [ + case "$host" in + *-*-*linux*) + ans=yes + ;; + *) ans=no + ;; + esac + ntp_cv_os_wildcardreuse=$ans + ] +) +case "$ntp_cv_os_wildcardreuse" in + yes) + AC_DEFINE([OS_NEEDS_REUSEADDR_FOR_IFADDRBIND], [1], + [wildcard socket needs REUSEADDR to bind interface addresses]) +esac + +case "$host" in + *-*-aix*) + AC_DEFINE([NLIST_EXTRA_INDIRECTION], [1], + [Might nlist() values require an extra level of indirection (AIX)?]) +esac + +AC_CACHE_CHECK( + [for a minimum recommended value of tickadj], + [ntp_cv_var_min_rec_tickadj], + [ + ans=no + case "$host" in + *-*-aix*) + ans=40 + ;; + esac + ntp_cv_var_min_rec_tickadj=$ans + ] +) +case "$ntp_cv_var_min_rec_tickadj" in + ''|no) + ;; + *) + AC_DEFINE_UNQUOTED([MIN_REC_TICKADJ], [$ntp_cv_var_min_rec_tickadj], + [Should we recommend a minimum value for tickadj?]) +esac + +AC_CACHE_CHECK( + [if the TTY code permits PARENB and IGNPAR], + [ntp_cv_no_parenb_ignpar], + [ + ans=no + case "$host" in + i?86-*-*linux*) + ans=yes + ;; + mips-sgi-irix*) + ans=yes + ;; + i?86-*-freebsd[[123]].*) + ;; + i?86-*-freebsd*) + ans=yes + ;; + *-*-unicosmp*) + ans=yes + ;; + esac + ntp_cv_no_parenb_ignpar=$ans + ] +) +case "$ntp_cv_no_parenb_ignpar" in + yes) + AC_DEFINE([NO_PARENB_IGNPAR], [1], + [Is there a problem using PARENB and IGNPAR?]) +esac + +AC_MSG_CHECKING([if we're including processing time debugging code]) +AC_ARG_ENABLE( + [debug-timing], + [AS_HELP_STRING( + [--enable-debug-timing], + [- include processing time debugging code (costs performance)] + )], + [ntp_ok=$enableval], + [ntp_ok=no] +) +case "$ntp_ok" in + yes) + AC_DEFINE([DEBUG_TIMING], [1], [Enable processing time debugging?]) +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([for a the number of minutes in a DST adjustment]) +AC_ARG_ENABLE( + [dst-minutes], + [AS_HELP_STRING( + [--enable-dst-minutes], + [=60 minutes per DST adjustment]) dnl @<:@ is [, @:>@ is ] + ], + [ans=$enableval], + [ans=60] +) +AC_DEFINE_UNQUOTED([DSTMINUTES], [$ans], + [The number of minutes in a DST adjustment]) +AC_MSG_RESULT([$ans]) + +AC_MSG_CHECKING([if ntpd will retry permanent DNS failures]) +AC_ARG_ENABLE( + [ignore-dns-errors], + [AS_HELP_STRING( + [--enable-ignore-dns-errors], + [- retry DNS queries on any error] + )], + [ans=$enableval], + [ans=no] +) +case "$ans" in + yes) + AC_DEFINE([IGNORE_DNS_ERRORS], [1], + [Retry queries on _any_ DNS error?]) +esac +AC_MSG_RESULT([$ans]) + +AC_CACHE_CHECK( + [availability of ntp_{adj,get}time()], + [ntp_cv_var_ntp_syscalls], + [ + ntp_cv_var_ntp_syscalls=no + case "$ac_cv_func_ntp_adjtime$ac_cv_func_ntp_gettime$ac_cv_func___adjtimex" in + yesyes*) + ntp_cv_var_ntp_syscalls=libc + ;; + *yes) + ntp_cv_var_ntp_syscalls=inline + ;; + *) + AC_PREPROC_IFELSE( + [ + #include + #if !defined(SYS_ntp_gettime) || !defined(SYS_ntp_adjtime) + # error + #endif + ], + [ntp_cv_var_ntp_syscalls=kernel] + ) + ;; + esac + ] +) +case "$ntp_cv_var_ntp_syscalls" in + libc) + AC_DEFINE([NTP_SYSCALLS_LIBC], [1], + [Do we have ntp_{adj,get}time in libc?]) + ;; + kernel) + AC_DEFINE([NTP_SYSCALLS_STD], [1], + [Do we have ntp_{adj,get}time in the kernel?]) + ;; +esac + +AC_CACHE_CHECK( + [if sys/timex.h has STA_FLL], + [ntp_cv_var_sta_fll], + [AC_PREPROC_IFELSE( + [ + #include + #ifndef STA_FLL + # error + #endif + ], + [ntp_cv_var_sta_fll=yes], + [ntp_cv_var_sta_fll=no] + )] +) + +AC_CACHE_CHECK( + [if we have kernel PLL support], + [ntp_cv_var_kernel_pll], + [dnl ntp_cv_var_ntp_syscalls is {no,libc,kernel} + case "$ac_cv_header_sys_timex_h$ntp_cv_struct_ntptimeval$ntp_cv_var_sta_fll$ntp_cv_var_ntp_syscalls" in + *no*) + ntp_cv_var_kernel_pll=no + ;; + *) ntp_cv_var_kernel_pll=yes + ;; + esac + ] +) +case "$ntp_cv_var_kernel_pll" in + yes) + AC_DEFINE([KERNEL_PLL], [1], + [Does the kernel support precision time discipline?]) +esac + +AC_CACHE_CHECK( + [if SIOCGIFCONF returns buffer size in the buffer], + [ntp_cv_size_returned_in_buffer], + [ + ans=no + case "$host" in + *-fujitsu-uxp*) + ans=yes + ;; + *-ncr-sysv4*) + ans=yes + ;; + *-univel-sysv*) + ans=yes + ;; + esac + ntp_cv_size_returned_in_buffer=$ans + ] +) +case "$ntp_cv_size_returned_in_buffer" in + yes) + AC_DEFINE([SIZE_RETURNED_IN_BUFFER], [1], + [Does SIOCGIFCONF return size in the buffer?]) +esac + +# Check for ioctls TIOCGPPSEV +AC_MSG_CHECKING([for TTY PPS ioctl TIOCGPPSEV]) +case "$ac_cv_header_termios_h" in + yes) + AC_PREPROC_IFELSE( + [ + #include + #ifndef TIOCGPPSEV + # error + #endif + ], + [ntp_ok=yes], + [ntp_ok=no] + ) + ;; + *) + ntp_ok=no + ;; +esac +case "$ntp_ok" in + yes) + AC_DEFINE([HAVE_TIOCGPPSEV], [1], + [Do we have the TIOCGPPSEV ioctl (Solaris)?]) +esac +AC_MSG_RESULT([$ntp_ok]) + +# Check for ioctls TIOCSPPS +AC_MSG_CHECKING([for TTY PPS ioctl TIOCSPPS]) +case "$ac_cv_header_termios_h" in + yes) + AC_PREPROC_IFELSE( + [ + #include + #ifndef TIOCSPPS + # error + #endif + ], + [ntp_ok=yes], + [ntp_ok=no] + ) + ;; + *) + ntp_ok=no + ;; +esac +case "$ntp_ok" in + yes) + AC_DEFINE([HAVE_TIOCSPPS], [1], + [Do we have the TIOCSPPS ioctl (Solaris)?]) +esac +AC_MSG_RESULT([$ntp_ok]) + +# Check for ioctls CIOGETEV +AC_MSG_CHECKING([for TTY PPS ioctl CIOGETEV]) +case "$ac_cv_header_sys_ppsclock_h" in + yes) + AC_PREPROC_IFELSE( + [ + #include + #ifndef CIOGETEV + # error + #endif + ], + [ntp_ok=yes], + [ntp_ok=no] + ) + ;; + *) + ntp_ok=no + ;; +esac +case "$ntp_ok" in + yes) + AC_DEFINE([HAVE_CIOGETEV], [1], + [Do we have the CIOGETEV ioctl (SunOS, Linux)?]) +esac +AC_MSG_RESULT([$ntp_ok]) + +# ATOM/PPSAPI stuff. + +ntp_atom_ok=yes + +# Check for header timepps.h, if found then we have PPS API (Draft RFC) stuff. + +# The PPSAPI headers need "inline" ($ac_cv_c_inline='inline') +# The PPSAPI needs struct timespec. +# The PPSAPI also needs a timepps header. + +case "$ac_cv_c_inline$ntp_cv_struct_timespec" in + inlineyes) + case "$ac_cv_header_timepps_h$ac_cv_header_sys_timepps_h$host_os" in + *yes* | *sunos* | *solaris* | *sco* | *netbsd* ) + AC_DEFINE(HAVE_PPSAPI, 1, [Do we have the PPS API per the Draft RFC?]) + ntp_jupiter_ok=yes + ntp_oncore_ok=yes + ntp_parse_ok=yes + ntp_ripe_ncc_ok=yes + ;; + esac + ;; +esac + +# Check for ioctls TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG +AC_CHECK_HEADER([linux/serial.h]) +case "$ac_cv_header_sys_ppsclock_h$ac_cv_header_linux_serial_h" in + yesyes) + AC_MSG_CHECKING([ioctl TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG]) + AC_PREPROC_IFELSE( + [ + #include + typedef int u_int; + #include + #include + + #ifndef TIOCGSERIAL + # error + #endif + #ifndef TIOCSSERIAL + # error + #endif + #ifndef ASYNC_PPS_CD_POS + # error + #endif + #ifndef ASYNC_PPS_CD_NEG + # error + #endif + #ifndef CIOGETEV + # error + #endif + ], + [ntp_ok=yes], + [ntp_ok=no] + ) + AC_MSG_RESULT([$ntp_ok]) + ;; + *) + ntp_ok=no + ;; +esac +case "$ntp_ok" in + yes) + AC_DEFINE([HAVE_TIO_SERIAL_STUFF], 1, + [Do we have the TIO serial stuff?]) +esac + +# Check for SHMEM_STATUS support +AC_MSG_CHECKING([SHMEM_STATUS support]) +case "$ac_cv_header_sys_mman_h" in + yes) + ntp_ok=yes + ;; + *) + ntp_ok=no + ;; +esac +case "$ntp_ok" in + yes) + AC_DEFINE([ONCORE_SHMEM_STATUS], [1], + [Do we have support for SHMEM_STATUS?]) +esac +AC_MSG_RESULT([$ntp_ok]) + +ntp_refclock=no + +# HPUX only, and by explicit request +AC_MSG_CHECKING([Datum/Bancomm bc635/VME interface]) +AC_ARG_ENABLE( + [BANCOMM], + [AS_HELP_STRING( + [--enable-BANCOMM], + [- Datum/Bancomm bc635/VME interface] + )], + [ntp_ok=$enableval], + [ntp_ok=no] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_BANC], [1], [Datum/Bancomm bc635/VME interface?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$host" in + yes*-*-hpux*) ;; + yes*) AC_MSG_WARN([*** But the expected answer is... no ***]) ;; +esac + +#HPUX only, and only by explicit request +AC_MSG_CHECKING([TrueTime GPS receiver/VME interface]) +AC_ARG_ENABLE( + [GPSVME], + [AS_HELP_STRING( + [--enable-GPSVME], + [- TrueTime GPS receiver/VME interface] + )], + [ntp_ok=$enableval], + [ntp_ok=no] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_GPSVME], 1, [TrueTime GPS receiver/VME interface?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$host" in + yes*-*-hpux*) ;; + yes*) AC_MSG_WARN([*** But the expected answer is... no ***]) ;; +esac + +AC_MSG_CHECKING([for PCL720 clock support]) +case "$ac_cv_header_machine_inline_h$ac_cv_header_sys_pcl720_h$ac_cv_header_sys_i8253_h" in + yesyesyes) + AC_DEFINE([CLOCK_PPS720], 1, [PCL 720 clock support]) + ans=yes + ;; + *) + ans=no + ;; +esac +AC_MSG_RESULT([$ans]) + +AC_MSG_CHECKING([for default inclusion of all suitable non-PARSE clocks]) +AC_ARG_ENABLE( + [all-clocks], + [AS_HELP_STRING( + [--enable-all-clocks], + [+ include all suitable non-PARSE clocks:] + )], + [ntp_eac=$enableval], + [ntp_eac=yes] +) +AC_MSG_RESULT([$ntp_eac]) + +# HMS: Should we also require ntp_parse_ok? +AC_MSG_CHECKING([if we have support for PARSE clocks]) +case "$ntp_atom_ok$ac_cv_header_termio_h$ac_cv_header_termios_h" in + yes*yes*) + ntp_canparse=yes + ;; + *) ntp_canparse=no + ;; +esac +AC_MSG_RESULT([$ntp_canparse]) + +AC_MSG_CHECKING([if we have support for audio clocks]) +case "$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 + *yes*) + ntp_canaudio=yes + AC_DEFINE([HAVE_AUDIO], [], [Do we have audio support?]) + ;; + *) ntp_canaudio=no ;; +esac +AC_MSG_RESULT([$ntp_canaudio]) + +AC_MSG_CHECKING([if we have support for the SHM refclock interface]) +case "$ac_cv_header_sys_ipc_h$ac_cv_header_sys_shm_h" in + yesyes) + ntp_canshm=yes + ;; + *) ntp_canshm=no ;; +esac +AC_MSG_RESULT([$ntp_canshm]) + +# Test for termios TIOCMBIS modem control (ACTS, Heath, Palisade) +AC_CACHE_CHECK( + [for termios modem control], + [ntp_cv_modem_control], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #ifdef HAVE_UNISTD_H + # include + #endif + #ifdef HAVE_TERMIOS_H + # include + #endif + #ifdef HAVE_SYS_IOCTL_H + # include + #endif + ]], + [[ + int dtr = TIOCM_DTR; + + ioctl(1, TIOCMBIS, (char *)&dtr); + ]] + )], + [ntp_cv_modem_control=yes], + [ntp_cv_modem_control=no] + )] +) +case "$ntp_eac::$ntp_cv_modem_control" in + yes::yes) + ntp_enable_all_modem_control_clocks=yes + ;; + *) + ntp_enable_all_modem_control_clocks=no + ;; +esac + +# Requires modem control +AC_MSG_CHECKING([ACTS modem service]) +AC_ARG_ENABLE( + [ACTS], + [AS_HELP_STRING( + [--enable-ACTS], + [s ACTS modem service] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_enable_all_modem_control_clocks] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_ACTS], [1], [ACTS modem service]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Arbiter 1088A/B GPS receiver]) +AC_ARG_ENABLE( + [ARBITER], + [AS_HELP_STRING( + [--enable-ARBITER], + [+ Arbiter 1088A/B GPS receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_ARBITER], [1], [Arbiter 1088A/B GPS receiver]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Arcron MSF receiver]) +AC_ARG_ENABLE( + [ARCRON_MSF], + [AS_HELP_STRING( + [--enable-ARCRON-MSF], + [+ Arcron MSF receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_ARCRON_MSF], [1], [ARCRON support?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Austron 2200A/2201A GPS receiver]) +AC_ARG_ENABLE( + [AS2201], + [AS_HELP_STRING( + [--enable-AS2201], + [+ Austron 2200A/2201A GPS receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_AS2201], [1], [Austron 2200A/2201A GPS receiver?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([ATOM PPS interface]) +AC_ARG_ENABLE( + [ATOM], + [AS_HELP_STRING( + [--enable-ATOM], + [s ATOM PPS interface] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_atom_ok" in + no) ntp_ok=no ;; +esac +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_ATOM], [1], [PPS interface?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Chrono-log K-series WWVB receiver]) +AC_ARG_ENABLE( + [CHRONOLOG], + [AS_HELP_STRING( + [--enable-CHRONOLOG], + [+ Chrono-log K-series WWVB receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_CHRONOLOG], [1], [Chronolog K-series WWVB receiver?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([CHU modem/decoder]) +AC_ARG_ENABLE( + [CHU], + [AS_HELP_STRING( + [--enable-CHU], + [+ CHU modem/decoder] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_CHU], [1], [CHU modem/decoder]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +ntp_refclock_chu=$ntp_ok + +AC_MSG_CHECKING([CHU audio/decoder]) +AC_ARG_ENABLE( + [AUDIO-CHU], + [AS_HELP_STRING( + [--enable-AUDIO-CHU], + [s CHU audio/decoder] + )], + [ntp_ok=$enableval], + [ + case "$ntp_eac$ntp_refclock_chu$ntp_canaudio" in + *no*) ntp_ok=no ;; + *) ntp_ok=yes ;; + esac + ] +) +AC_MSG_RESULT([$ntp_ok]) +# We used to check for sunos/solaris target... +case "$ntp_ok$ntp_refclock_chu$ntp_canaudio" in + yes*no*) AC_MSG_WARN([*** But the expected answer is...no ***]) +esac + +# Not under HP-UX +AC_MSG_CHECKING([Datum Programmable Time System]) +AC_ARG_ENABLE( + [DATUM], + [AS_HELP_STRING( + [--enable-DATUM], + [s Datum Programmable Time System] + )], + [ntp_ok=$enableval], + [ + case "$ac_cv_header_termios_h" in + yes) + ntp_ok=$ntp_eac + ;; + *) ntp_ok=no + ;; + esac + ] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_DATUM], [1], [Datum Programmable Time System?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Dumb generic hh:mm:ss local clock]) +AC_ARG_ENABLE( + [DUMBCLOCK], + [AS_HELP_STRING( + [--enable-DUMBCLOCK], + [+ Dumb generic hh:mm:ss local clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_DUMBCLOCK], [1], [Dumb generic hh:mm:ss local clock?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Forum Graphic GPS]) +AC_ARG_ENABLE( + [FG], + [AS_HELP_STRING( + [--enable-FG], + [+ Forum Graphic GPS] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_FG], [1], [Forum Graphic GPS datating station driver?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +# Requires modem control +AC_MSG_CHECKING([Heath GC-1000 WWV/WWVH receiver]) +AC_ARG_ENABLE( + [HEATH], + [AS_HELP_STRING( + [--enable-HEATH], + [s Heath GC-1000 WWV/WWVH receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_enable_all_modem_control_clocks] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_HEATH], [1], [Heath GC-1000 WWV/WWVH receiver?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([for hopf serial clock device]) +AC_ARG_ENABLE( + [HOPFSERIAL], + [AS_HELP_STRING( + [--enable-HOPFSERIAL], + [+ hopf serial clock device] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_HOPF_SERIAL], [1], [HOPF serial clock device?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([for hopf PCI clock 6039]) +AC_ARG_ENABLE( + [HOPFPCI], + [AS_HELP_STRING( + [--enable-HOPFPCI], + [+ hopf 6039 PCI board] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_HOPF_PCI], [1], [HOPF PCI clock device?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([HP 58503A GPS receiver]) +AC_ARG_ENABLE( + [HPGPS], + [AS_HELP_STRING( + [--enable-HPGPS], + [+ HP 58503A GPS receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_HPGPS], 1, [HP 58503A GPS receiver?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([IRIG audio decoder]) +AC_ARG_ENABLE( + [IRIG], + [AS_HELP_STRING( + [--enable-IRIG], + [s IRIG audio decoder] + )], + [ntp_ok=$enableval], + [ + case "$ntp_eac$ntp_canaudio" in + *no*) ntp_ok=no ;; + *) ntp_ok=yes ;; + esac + ] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_IRIG], [1], [IRIG audio decoder?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canaudio" in + yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) +esac + +AC_MSG_CHECKING([for JJY receiver]) +AC_ARG_ENABLE( + [JJY], + [AS_HELP_STRING( + [--enable-JJY], + [+ JJY receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_JJY], [1], [JJY receiver?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Rockwell Jupiter GPS receiver]) +AC_ARG_ENABLE( + [JUPITER], + [AS_HELP_STRING( + [--enable-JUPITER], + [s Rockwell Jupiter GPS receiver] + )], + [ntp_ok=$enableval], [ntp_ok=$ntp_eac]) +case "$ntp_jupiter_ok" in + no) ntp_ok=no ;; +esac +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_JUPITER], [1], [Rockwell Jupiter GPS clock?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Leitch CSD 5300 Master Clock System Driver]) +AC_ARG_ENABLE( + [LEITCH], + [AS_HELP_STRING( + [--enable-LEITCH], + [+ Leitch CSD 5300 Master Clock System Driver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_LEITCH], [1], + [Leitch CSD 5300 Master Clock System Driver?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([local clock reference]) +AC_ARG_ENABLE( + [LOCAL-CLOCK], + [AS_HELP_STRING( + [--enable-LOCAL-CLOCK], + [+ local clock reference] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_LOCAL], [1], [local clock reference?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +dnl Bug 340: longstanding unfixed bugs +dnl AC_MSG_CHECKING([EES M201 MSF receiver]) +dnl AC_ARG_ENABLE([MSFEES], +dnl [AS_HELP_STRING([--enable-MSFEES], [+ EES M201 MSF receiver])], +dnl [ntp_ok=$enableval], [ntp_ok=$ntp_eac]) +dnl if test "$ntp_ok" = "yes"; then +dnl ntp_refclock=yes +dnl AC_DEFINE([CLOCK_MSFEES], [1], [EES M201 MSF receiver]) +dnl fi +dnl AC_MSG_RESULT([$ntp_ok]) + +# Not Ultrix +AC_MSG_CHECKING([Magnavox MX4200 GPS receiver]) +AC_ARG_ENABLE( + [MX4200], + [AS_HELP_STRING( + [--enable-MX4200 ], + [s Magnavox MX4200 GPS receiver] + )], + [ntp_ok=$enableval], + [ + case "$ac_cv_var_ppsclock" in + yes) + ntp_ok=$ntp_eac + ;; + *) + ntp_ok=no + ;; + esac + ] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_MX4200], [1], [Magnavox MX4200 GPS receiver]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$host" in + yes*-*-ultrix*) AC_MSG_WARN([*** But the expected answer is... no ***]) +esac + +AC_MSG_CHECKING([for NeoClock4X receiver]) +AC_ARG_ENABLE( + [NEOCLOCK4X], + [AS_HELP_STRING( + [--enable-NEOCLOCK4X], + [+ NeoClock4X DCF77 / TDF receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_NEOCLOCK4X], [1], [NeoClock4X]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([NMEA GPS receiver]) +AC_ARG_ENABLE( + [NMEA], + [AS_HELP_STRING( + [--enable-NMEA], + [+ NMEA GPS receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_NMEA], [1], [NMEA GPS receiver]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([for GPSD JSON receiver]) +AC_ARG_ENABLE( + [GPSD], + [AS_HELP_STRING( + [--enable-GPSD], + [+ GPSD JSON receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_GPSDJSON], [1], [GPSD JSON receiver]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([for ONCORE Motorola VP/UT Oncore GPS]) +AC_ARG_ENABLE( + [ONCORE], + [AS_HELP_STRING( + [--enable-ONCORE], + [s Motorola VP/UT Oncore GPS receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_oncore_ok" in + no) ntp_ok=no ;; +esac +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_ONCORE], 1, [Motorola UT Oncore GPS]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +# Requires modem control +AC_MSG_CHECKING([for Palisade clock]) +AC_ARG_ENABLE( + [PALISADE], + [AS_HELP_STRING( + [--enable-PALISADE], + [s Palisade clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_enable_all_modem_control_clocks] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_PALISADE], [1], [Palisade clock]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Conrad parallel port radio clock]) +AC_ARG_ENABLE( + [PCF], + [AS_HELP_STRING( + [--enable-PCF ], + [+ Conrad parallel port radio clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_PCF], [1], [Conrad parallel port radio clock]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([PST/Traconex 1020 WWV/WWVH receiver]) +AC_ARG_ENABLE( + [PST], + [AS_HELP_STRING( + [--enable-PST], + [+ PST/Traconex 1020 WWV/WWVH receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_PST], [1], [PST/Traconex 1020 WWV/WWVH receiver]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([RIPENCC specific Trimble driver]) +AC_ARG_ENABLE( + [RIPENCC], + [AS_HELP_STRING( + [--enable-RIPENCC], + [- RIPENCC specific Trimble driver] + )], + [ntp_ok=$enableval], + [ntp_ok=no] +) +# 020629: HMS: s/$ntp_eac -> -/no because of ptr += sprintf(ptr, ...) usage +case "$ntp_ripe_ncc_ok" in + no) ntp_ok=no ;; +esac +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_RIPENCC], [],[RIPE NCC Trimble clock]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +# Danny Meyer says SHM compiles (with a few warnings) under Win32. +# For *IX, we need sys/ipc.h and sys/shm.h. +AC_MSG_CHECKING([for SHM clock attached thru shared memory]) +AC_ARG_ENABLE( + [SHM], + [AS_HELP_STRING( + [--enable-SHM], + [s SHM clock attached thru shared memory] + )], + [ntp_ok=$enableval], + [ + case "$ntp_eac$ntp_canshm" in + *no*) ntp_ok=no ;; + *) ntp_ok=yes ;; + esac + ] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_SHM], [1], [clock thru shared memory]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Spectracom 8170/Netclock/2 WWVB receiver]) +AC_ARG_ENABLE( + [SPECTRACOM], + [AS_HELP_STRING( + [--enable-SPECTRACOM], + [+ Spectracom 8170/Netclock/2 WWVB receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_SPECTRACOM], [1], + [Spectracom 8170/Netclock/2 WWVB receiver]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([KSI/Odetics TPRO/S GPS receiver/IRIG interface]) +AC_ARG_ENABLE( + [TPRO], + [AS_HELP_STRING( + [--enable-TPRO], + [s KSI/Odetics TPRO/S GPS receiver/IRIG interface] + )], + [ntp_ok=$enableval], + [ + case "$ac_cv_header_sys_tpro_h" in + yes) + ntp_ok=$ntp_eac + ;; + *) + ntp_ok=no + ;; + esac + ] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_TPRO], [1], + [KSI/Odetics TPRO/S GPS receiver/IRIG interface]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ac_cv_header_sys_tpro" in + yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) +esac + +# Not on a vax-dec-bsd +AC_MSG_CHECKING([Kinemetrics/TrueTime receivers]) +AC_ARG_ENABLE( + [TRUETIME], + [AS_HELP_STRING( + [--enable-TRUETIME], + [s Kinemetrics/TrueTime receivers] + )], + [ntp_ok=$enableval], + [ + case "$host" in + vax-dec-bsd) + ntp_ok=no + ;; + *) + ntp_ok=$ntp_eac + ;; + esac + ] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_TRUETIME], [1], [Kinemetrics/TrueTime receivers]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$host" in + yesvax-dec-bsd) AC_MSG_WARN([*** But the expected answer is... no ***]) +esac + +AC_MSG_CHECKING([TrueTime 560 IRIG-B decoder]) +AC_ARG_ENABLE( + [TT560], + [AS_HELP_STRING( + [--enable-TT560], + [- TrueTime 560 IRIG-B decoder] + )], + [ntp_ok=$enableval], + [ntp_ok=no] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_TT560], [], [TrueTime 560 IRIG-B decoder?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Ultralink M320 WWVB receiver]) +AC_ARG_ENABLE( + [ULINK], + [AS_HELP_STRING( + [--enable-ULINK], + [+ Ultralink WWVB receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_ULINK], [1], [Ultralink M320 WWVB receiver?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([Spectracom TSYNC PCI timing board]) +AC_ARG_ENABLE( + [TSYNCPCI], + [AS_HELP_STRING( + [--enable-TSYNCPCI], + [s Spectracom TSYNC timing board] + )], + [ntp_ok=$enableval], + [ + case "$host" in + *-*-*linux*) + ntp_ok=$ntp_eac + ;; + *) + ntp_ok=no + esac + ] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_TSYNCPCI], [1], [Spectracom TSYNC timing board]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([WWV receiver]) +AC_ARG_ENABLE( + [WWV], + [AS_HELP_STRING( + [--enable-WWV], + [s WWV Audio receiver] + )], + [ntp_ok=$enableval], + [ + case "$ntp_eac$ntp_canaudio" in + *no*) ntp_ok=no ;; + *) ntp_ok=yes ;; + esac + ] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_WWV], [1], [WWV audio driver]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canaudio" in + yesno) AC_MSG_WARN([*** But the expected answer is... no ***]) +esac + +AC_MSG_CHECKING([for Zyfer receiver]) +AC_ARG_ENABLE( + [ZYFER], + [AS_HELP_STRING( + [--enable-ZYFER], + [+ Zyfer GPStarplus receiver] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eac] +) +case "$ntp_ok" in + yes) + ntp_refclock=yes + AC_DEFINE([CLOCK_ZYFER], [1], [Zyfer GPStarplus]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) + +AC_MSG_CHECKING([for default inclusion of all suitable PARSE clocks]) +AC_ARG_ENABLE( + [parse-clocks], + [AS_HELP_STRING( + [--enable-parse-clocks], + [- include all suitable PARSE clocks:] + )], + [ntp_eapc=$enableval], + [ + case "$ntp_eac" in + yes) ntp_eapc=$ntp_canparse ;; + *) ntp_eapc=no ;; + esac + # Delete the next line one of these days + ntp_eapc=no + ] +) +AC_MSG_RESULT($ntp_eapc) + +case "$ntp_eac$ntp_eapc$ntp_canparse" in + noyes*) + AC_MSG_ERROR(["--enable-parse-clocks" requires "--enable-all-clocks".]) + ;; + yesyesno) + AC_MSG_ERROR([You said "--enable-parse-clocks" but PARSE isn't supported on this platform!]) + ;; +esac + +ntp_libparse=no +ntp_parseutil=no +ntp_rawdcf=no + +AC_MSG_CHECKING([Diem Computime Radio Clock]) +AC_ARG_ENABLE( + [COMPUTIME], + [AS_HELP_STRING( + [--enable-COMPUTIME], + [s Diem Computime Radio Clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_COMPUTIME], [1], [Diems Computime Radio Clock?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([ELV/DCF7000 clock]) +AC_ARG_ENABLE( + [DCF7000], + [AS_HELP_STRING( + [--enable-DCF7000], + [s ELV/DCF7000 clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_DCF7000], [1], [ELV/DCF7000 clock?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([HOPF 6021 clock]) +AC_ARG_ENABLE( + [HOPF6021], + [AS_HELP_STRING( + [--enable-HOPF6021], + [s HOPF 6021 clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_HOPF6021], [1], [HOPF 6021 clock?]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([Meinberg clocks]) +AC_ARG_ENABLE( + [MEINBERG], + [AS_HELP_STRING( + [--enable-MEINBERG], + [s Meinberg clocks] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_MEINBERG], [1], [Meinberg clocks]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([DCF77 raw time code]) +AC_ARG_ENABLE( + [RAWDCF], + [AS_HELP_STRING( + [--enable-RAWDCF], + [s DCF77 raw time code] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_parseutil=yes + ntp_refclock=yes + ntp_rawdcf=yes + AC_DEFINE([CLOCK_RAWDCF], [1], [DCF77 raw time code]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +case "$ntp_rawdcf" in + yes) + AC_CACHE_CHECK([if we must enable parity for RAWDCF], + [ntp_cv_rawdcf_parity], + [ + ans=no + case "$host" in + *-*-*linux*) + ans=yes + ;; + esac + ntp_cv_rawdcf_parity=$ans + ] + ) + case "$ntp_cv_rawdcf_parity" in + yes) + AC_DEFINE([RAWDCF_NO_IGNPAR], [1], + [Should we not IGNPAR (Linux)?]) ;; + esac +esac + +AC_MSG_CHECKING([RCC 8000 clock]) +AC_ARG_ENABLE( + [RCC8000], + [AS_HELP_STRING( + [--enable-RCC8000], + [s RCC 8000 clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_RCC8000], [1], [RCC 8000 clock]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([Schmid DCF77 clock]) +AC_ARG_ENABLE( + [SCHMID], + [AS_HELP_STRING( + [--enable-SCHMID ], + [s Schmid DCF77 clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_SCHMID], [1], [Schmid DCF77 clock]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([Trimble GPS receiver/TAIP protocol]) +AC_ARG_ENABLE( + [TRIMTAIP], + [AS_HELP_STRING( + [--enable-TRIMTAIP], + [s Trimble GPS receiver/TAIP protocol] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_TRIMTAIP], [1], + [Trimble GPS receiver/TAIP protocol]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([Trimble GPS receiver/TSIP protocol]) +AC_ARG_ENABLE( + [TRIMTSIP], + [AS_HELP_STRING( + [--enable-TRIMTSIP], + [s Trimble GPS receiver/TSIP protocol] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_TRIMTSIP], [1], + [Trimble GPS receiver/TSIP protocol]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([WHARTON 400A Series clock]) +AC_ARG_ENABLE( + [WHARTON], + [AS_HELP_STRING( + [--enable-WHARTON], + [s WHARTON 400A Series clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_WHARTON_400A], [1], [WHARTON 400A Series clock]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING([VARITEXT clock]) +AC_ARG_ENABLE( + [VARITEXT], + [AS_HELP_STRING( + [--enable-VARITEXT], + [s VARITEXT clock] + )], + [ntp_ok=$enableval], + [ntp_ok=$ntp_eapc] +) +case "$ntp_ok" in + yes) + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE([CLOCK_VARITEXT], [1], [VARITEXT clock]) + ;; +esac +AC_MSG_RESULT([$ntp_ok]) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR([That's a parse clock and this system doesn't support it!]) +esac + +AC_MSG_CHECKING(SEL240X clock) +AC_ARG_ENABLE(SEL240X, + AC_HELP_STRING([--enable-SEL240X], [s SEL240X clock]), + [ntp_ok=$enableval], [ntp_ok=$ntp_eapc]) +if test "$ntp_ok" = "yes"; then + ntp_libparse=yes + ntp_refclock=yes + AC_DEFINE(CLOCK_SEL240X, 1, [SEL240X protocol]) +fi +AC_MSG_RESULT($ntp_ok) +case "$ntp_ok$ntp_canparse" in + yesno) + AC_MSG_ERROR(That's a parse clock and this system doesn't support it!) + ;; +esac + +AC_SUBST([LIBPARSE]) +AC_SUBST([MAKE_LIBPARSE]) +AC_SUBST([MAKE_LIBPARSE_KERNEL]) +AC_SUBST([MAKE_CHECK_Y2K]) + +AC_MSG_CHECKING([if we need to make and use the parse libraries]) +ans=no +case "$ntp_libparse" in + yes) + ans=yes + AC_DEFINE([CLOCK_PARSE], [1], [PARSE driver interface]) + LIBPARSE=../libparse/libparse.a + MAKE_LIBPARSE=libparse.a + # HMS: check_y2k trips the 34 year problem now... + false && MAKE_CHECK_Y2K=check_y2k +esac +AC_MSG_RESULT([$ans]) + +NTP_OPENSSL + +# if we are using OpenSSL (--with-crypto), by default Autokey is enabled +AC_MSG_CHECKING([if we want to include NTP Autokey protocol support]) +AC_ARG_ENABLE( + [autokey], + AS_HELP_STRING( + [--enable-autokey], + [+ support NTP Autokey protocol] + ), + [ntp_autokey=$enableval], + [ntp_autokey=$ntp_openssl] +) +case "$ntp_autokey" in + no) + ;; + *) + case "$ntp_openssl" in + no) + AC_MSG_WARN([Disabling Autokey, --enable-autokey requires --with-crypto.]) + ntp_autokey=no + ;; + *) + AC_DEFINE([AUTOKEY], [1], [Support NTP Autokey protocol?]) + ntp_autokey=yes + ;; + esac + ;; +esac +AC_MSG_RESULT([$ntp_autokey]) + +AC_SUBST([MAKE_CHECK_LAYOUT]) +AC_MSG_CHECKING([if we want to run check-layout]) +case "$cross_compiling$PATH_PERL" in + no/*) + MAKE_CHECK_LAYOUT=check-layout + ans=yes + ;; + *) + ans=no + ;; +esac +AC_MSG_RESULT([$ans]) + +AC_SUBST([TESTDCF]) +AC_SUBST([DCFD]) +AC_MSG_CHECKING([if we can make dcf parse utilities]) +ans=no +case "$ntp_parseutil" in + yes) + case "$host" in + *-*-sunos4*|*-*-solaris2*|*-*-*linux*|*-*-netbsd*) + ans="dcfd testdcf" + DCFD=dcfd + TESTDCF=testdcf + esac + ;; +esac +AC_MSG_RESULT([$ans]) + +AC_SUBST([MAKE_PARSEKMODULE]) +AC_MSG_CHECKING([if we can build kernel streams modules for parse]) +ans=no +case "$ntp_parseutil$ac_cv_header_sys_stropts_h" in + yesyes) + case "$host" in + sparc-*-sunos4*) + case "$ntp_cv_var_kernel_pll" in + yes) + AC_DEFINE([PPS_SYNC], [1], [PARSE kernel PLL PPS support]) + ;; + esac + ans=parsestreams + MAKE_PARSEKMODULE=parsestreams.loadable_module.o + ;; + sparc-*-solaris2*) + ans=parsesolaris + MAKE_PARSEKMODULE=parse + AC_CHECK_HEADERS([strings.h]) + ;; + esac + ;; +esac +AC_MSG_RESULT([$ans]) + +AC_MSG_CHECKING([if we need basic refclock support]) +case "$ntp_refclock" in + yes) + AC_DEFINE([REFCLOCK], [1], [Basic refclock support?]) + ;; +esac +AC_MSG_RESULT($ntp_refclock) + +dnl Things that can be made in clockstuff +AC_SUBST([PROPDELAY], [propdelay]) +AC_SUBST([CHUTEST]) dnl needs work to compile + +AC_SUBST([MAKE_ADJTIMED]) +AC_MSG_CHECKING([if we want HP-UX adjtimed support]) +case "$host" in + *-*-hpux[[56789]]*) + ans=yes + ;; + *) ans=no + ;; +esac +case "$ans" in + yes) + MAKE_ADJTIMED=adjtimed + AC_DEFINE([NEED_HPUX_ADJTIME], [1], + [Do we need HPUX adjtime() library support?]) + ;; + *) ADJTIMED_DB= + ADJTIMED_DL= + ADJTIMED_DS= + ADJTIMED_MS= + ;; +esac +AC_MSG_RESULT([$ans]) + +AC_MSG_CHECKING([if we want QNX adjtime support]) +case "$host" in + *-*-qnx*) + ans=yes + ;; + *) ans=no + ;; +esac +case "$ans" in + yes) + AC_DEFINE([NEED_QNX_ADJTIME], [1], + [Do we need the qnx adjtime call?]) + ;; +esac +AC_MSG_RESULT([$ans]) + +AC_MSG_CHECKING([if we can read kmem]) + +# the default is to enable it if the system has the capability + +case "$ac_cv_func_nlist$ac_cv_func_K_open$ac_cv_func_kvm_open" in + *yes*) + ans=yes + ;; + *) ans=no + ;; +esac + +case "$host" in + *-*-domainos) # Won't be found... + ans=no + ;; + *-*-hpux*) + #ans=no + ;; + *-*-irix[[456]]*) + ans=no + ;; + *-*-*linux*) + ans=no + ;; + *-*-winnt3.5) + ans=no + ;; + *-*-unicosmp*) + ans=no + ;; +esac + +# --enable-kmem / --disable-kmem controls if present +AC_ARG_ENABLE( + [kmem], + [AS_HELP_STRING( + [--enable-kmem], + [s read /dev/kmem for tick and/or tickadj] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + can_kmem=yes + ;; + *) + can_kmem=no + AC_DEFINE([NOKMEM], [1], [Should we NOT read /dev/kmem?]) +esac + + +AC_MSG_CHECKING([if adjtime is accurate]) + +# target-dependent defaults + +case "$host" in + i386-sequent-ptx*) + ans=no + ;; + i386-unknown-osf1*) + ans=yes + ;; + mips-sgi-irix[[456]]*) + ans=yes + ;; + *-fujitsu-uxp*) + ans=yes + ;; + *-ibm-aix[[4-9]]*) + # XXX only verified thru AIX6. + ans=yes + ;; + *-*-*linux*) + ans=yes + ;; + *-*-solaris2.[[01]]) + ans=no + ;; + *-*-solaris2*) + ans=yes + ;; + *-*-unicosmp*) + ans=yes + ;; + *) ans=no + ;; +esac + +# --enable-accurate-adjtime / --disable-accurate-adjtime +# override the default +AC_ARG_ENABLE( + [accurate-adjtime], + [AS_HELP_STRING( + [--enable-accurate-adjtime], + [s the adjtime() call is accurate] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + AC_DEFINE([ADJTIME_IS_ACCURATE], [1], [Is adjtime() accurate?]) + adjtime_is_accurate=yes + ;; + *) + adjtime_is_accurate=no + ;; +esac + +AC_CACHE_CHECK( + [the name of 'tick' in the kernel], + [ntp_cv_nlist_tick], + [ + ans=_tick + case "$host" in + m68*-hp-hpux*) # HP9000/300? + ans=_old_tick + ;; + *-apple-aux[[23]]*) + ans=tick + ;; + *-hp-hpux*) + ans=old_tick + ;; + *-ibm-aix[[3-9]]*) + # XXX only verified thru AIX6. + ans=no + ;; + *-*-mpeix*) + ans=no + ;; + *-*-ptx*) + ans=tick + ;; + *-*-sco3.2v[[45]]*) + ans=no + ;; + *-*-solaris2*) + ans=nsec_per_tick + ;; + *-*-sysv4*) + ans=tick + ;; + esac + ntp_cv_nlist_tick=$ans + ] +) +case "$ntp_cv_nlist_tick" in + ''|no) + ;; # HMS: I think we can only get 'no' here... + *) + AC_DEFINE_UNQUOTED([K_TICK_NAME], ["$ntp_cv_nlist_tick"], + [What is the name of TICK in the kernel?]) +esac + +AC_CACHE_CHECK( + [for the units of 'tick'], + [ntp_cv_tick_nano], + [ + ans=usec + case "$host" in + *-*-solaris2*) + ans=nsec + ;; + esac + ntp_cv_tick_nano=$ans + ] +) +case "$ntp_cv_tick_nano" in + nsec) + AC_DEFINE([TICK_NANO], [1], [Is K_TICK_NAME in nanoseconds?]) +esac + +AC_CACHE_CHECK( + [the name of 'tickadj' in the kernel], + [ntp_cv_nlist_tickadj], + [ + ans=_tickadj + case "$host" in + m68*-hp-hpux*) # HP9000/300? + ans=_tickadj + ;; + *-apple-aux[[23]]*) + ans=tickadj + ;; + *-hp-hpux10*) + ans=no + ;; + *-hp-hpux9*) + ans=no + ;; + *-hp-hpux*) + ans=tickadj + ;; + *-*-aix*) + ans=tickadj + ;; + *-*-mpeix*) + ans=no + ;; + *-*-ptx*) + ans=tickadj + ;; + *-*-sco3.2v4*) + ans=no + ;; + *-*-sco3.2v5.0*) + ans=clock_drift + ;; + *-*-solaris2*) + ans=no # hrestime_adj + ;; + *-*-sysv4*) + ans=tickadj + ;; + esac + ntp_cv_nlist_tickadj=$ans + ] +) +case "$ntp_cv_nlist_tickadj" in + ''|no) + ;; # HMS: I think we can only get 'no' here... + *) + AC_DEFINE_UNQUOTED([K_TICKADJ_NAME], ["$ntp_cv_nlist_tickadj"], + [What is the name of TICKADJ in the kernel?]) +esac + +AC_CACHE_CHECK( + [for the units of 'tickadj'], + [ntp_cv_tickadj_nano], + [ + ans=usec + case "$host" in + *-*-solaris2*) + ans=nsec + ;; + esac + ntp_cv_tickadj_nano=$ans + ] +) +case "$ntp_cv_tickadj_nano" in + nsec) + AC_DEFINE([TICKADJ_NANO], [1], [Is K_TICKADJ_NAME in nanoseconds?]) +esac + +AC_CACHE_CHECK( + [half-heartedly for 'dosynctodr' in the kernel], + [ntp_cv_nlist_dosynctodr], + [ + case "$host" in + *-apple-aux[[23]]*) + ans=no + ;; + *-sni-sysv*) + ans=dosynctodr + ;; + *-*-aix*) + ans=dosynctodr + ;; + *-*-hpux*) + ans=no + ;; + *-*-mpeix*) + ans=no + ;; + *-*-nextstep*) + ans=_dosynctodr + ;; + *-*-ptx*) + ans=doresettodr + ;; + *-*-sco3.2v4*) + ans=no + ;; + *-*-sco3.2v5*) + ans=track_rtc + ;; + *-*-solaris2*) + ans=dosynctodr + ;; + *-*-sysv4*) + ans=doresettodr + ;; + *) + ans=_dosynctodr + ;; + esac + ntp_cv_nlist_dosynctodr=$ans + ] +) +case "$ntp_cv_nlist_dosynctodr" in + no) + ;; + *) + AC_DEFINE_UNQUOTED([K_DOSYNCTODR_NAME], ["$ntp_cv_nlist_dosynctodr"], + [What is (probably) the name of DOSYNCTODR in the kernel?]) + ;; +esac + +AC_CACHE_CHECK( + [half-heartedly for 'noprintf' in the kernel], + [ntp_cv_nlist_noprintf], + [ + case "$host" in + *-apple-aux[[23]]*) + ans=no + ;; + *-sni-sysv*) + ans=noprintf + ;; + *-*-aix*) + ans=noprintf + ;; + *-*-hpux*) + ans=no + ;; + *-*-mpeix*) + ans=no + ;; + *-*-ptx*) + ans=noprintf + ;; + *-*-nextstep*) + ans=_noprintf + ;; + *-*-solaris2*) + ans=noprintf + ;; + *-*-sysv4*) + ans=noprintf + ;; + *) + ans=_noprintf + ;; + esac + ntp_cv_nlist_noprintf=$ans + ] +) +case "$ntp_cv_nlist_noprintf" in + no) + ;; + *) + AC_DEFINE_UNQUOTED([K_NOPRINTF_NAME], ["$ntp_cv_nlist_noprintf"], + [What is (probably) the name of NOPRINTF in the kernel?]) + ;; +esac + +dnl The tick/tickadj sections were written by Skippy, who never learned +dnl that it's impolite (horridly gross) to show your guts in public. + +dnl tick tickadj +dnl 10000 80 Unixware +dnl 1000000L/hz tick/16 (Solaris,UXPV,HPUX) && ADJTIME_IS_ACCURATE +dnl 10000 150 sgi IRIX +dnl 1000000L/hz 1000 RS6000 && NOKMEM +dnl 1000000L/hz 668 DOMAINOS && NOKMEM +dnl 1000000L/hz 500/HZ other && NOKMEM +dnl txc.tick 1 Linux +dnl (every / 10) 50 WinNT - tickadj is roughly 500/hz +dnl 1000000L/hz (nlist) (Solaris && !ADJTIME_IS_ACCURATE), +dnl (RS6000 && !NOKMEM), SINIX MIPS + +dnl But we'll only use these "values" if we can't find anything else. + +AC_MSG_CHECKING([for a default value for 'tick']) + +# target-dependent default for tick + +case "$host" in + *-*-pc-cygwin*) + AC_MSG_ERROR([tick needs work for cygwin]) + ;; + *-univel-sysv*) + ans=10000 + ;; + *-*-irix*) + ans=10000 + ;; + *-*-*linux*) + ans=txc.tick + ;; + *-*-mpeix*) + ans=no + ;; + *-*-winnt3.5) + ans='(every / 10)' + ;; + *-*-unicosmp*) + ans=10000 + ;; + *) + ans='1000000L/hz' + ;; +esac + +AC_ARG_ENABLE( + [tick], + [AS_HELP_STRING( + [--enable-tick=VALUE], + [s force a value for 'tick'] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + ''|no) + ;; # HMS: I think we can only get 'no' here... + *) + AC_DEFINE_UNQUOTED([PRESET_TICK], [$ans], + [Preset a value for 'tick'?]) +esac + +AC_MSG_CHECKING([for a default value for 'tickadj']) + +# target-specific default +ans='500/hz' +case "$host" in + *-fujitsu-uxp*) + case "$adjtime_is_accurate" in + yes) + ans='tick/16' + esac + ;; + *-univel-sysv*) + ans=80 + ;; + *-*-aix*) + case "$can_kmem" in + no) + ans=1000 + ;; + esac + ;; + *-*-domainos) # Skippy: won't be found... + case "$can_kmem" in + no) + ans=668 + ;; + esac + ;; + *-*-hpux*) + case "$adjtime_is_accurate" in + yes) + ans='tick/16' + ;; + esac + ;; + *-*-irix*) + ans=150 + ;; + *-*-mpeix*) + ans=no + ;; + *-*-sco3.2v5.0*) + ans=10000L/hz + ;; + *-*-winnt3.5) + ans=50 + ;; + *-*-unicosmp*) + ans=150 + ;; +esac + +AC_ARG_ENABLE( + [tickadj], + [AS_HELP_STRING( + [--enable-tickadj=VALUE], + [s force a value for 'tickadj'] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +default_tickadj=$ans + +case "$default_tickadj" in + ''|no) + ;; # HMS: I think we can only get 'no' here... + *) + AC_DEFINE_UNQUOTED([PRESET_TICKADJ], [$default_tickadj], + [Preset a value for 'tickadj'?]) ;; +esac + +# Newer versions of ReliantUNIX round adjtime() values down to +# 1/100s (system tick). Sigh ... +# Unfortunately, there is no easy way to know if particular release +# has this "feature" or any obvious way to test for it. +case "$host" in + mips-sni-sysv4*) + AC_DEFINE([RELIANTUNIX_CLOCK], [1], + [Do we want the ReliantUNIX clock hacks?]) +esac + +case "$host" in + *-*-sco3.2v5*) + AC_DEFINE([SCO5_CLOCK], [1], [Do we want the SCO clock hacks?]) +esac + +ntp_cv_make_tickadj=yes +case "$can_kmem$ac_cv_var_tick$default_tickadj" in + nonono) # Don't read KMEM, no presets. Bogus. + AC_MSG_WARN([Can't read kmem, no PRESET_TICK or PRESET_TICKADJ. No tickadj.]) + ntp_cv_make_tickadj=no + ;; + nono*) # Don't read KMEM, no PRESET_TICK but PRESET_TICKADJ. Bogus. + AC_MSG_WARN([Can't read kmem but no PRESET_TICK. No tickadj.]) + ntp_cv_make_tickadj=no + ;; + no*no) # Don't read KMEM, PRESET_TICK but no PRESET_TICKADJ. Bogus. + AC_MSG_WARN([Can't read kmem but no PRESET_TICKADJ. No tickadj.]) + ntp_cv_make_tickadj=no + ;; + no*) # Don't read KMEM, PRESET_TICK and PRESET_TICKADJ. Cool. + ;; + yesnono) # Read KMEM, no presets. Cool. + ;; + yesno*) # Read KMEM, no PRESET_TICK but PRESET_TICKADJ. Bogus. + AC_MSG_WARN([PRESET_TICKADJ is defined but not PRESET_TICK. Please report this.]) + ;; + yes*no) # Read KMEM, PRESET_TICK but no PRESET_TICKADJ. Cool. + ;; + yes*) # READ KMEM, PRESET_TICK and PRESET_TICKADJ. + ;; + *) # Generally bogus. + AC_MSG_ERROR([This shouldn't happen.]) + ;; +esac + +AC_SUBST(MAKE_NTPTIME) +AC_CACHE_CHECK([if we want and can make the ntptime utility], ac_cv_make_ntptime, +[case "$host" in + *) case "$ntp_cv_struct_ntptimeval$ntp_cv_var_kernel_pll" in + yesyes) + ans=yes + ;; + *) + ans=no + ;; + esac + ;; +esac +ac_cv_make_ntptime=$ans]) +case "$ac_cv_make_ntptime" in + yes) + MAKE_NTPTIME=ntptime + ;; + *) + NTPTIME_DB= + NTPTIME_DL= + NTPTIME_DS= + NTPTIME_MS= + ;; +esac + +AC_SUBST([MAKE_TICKADJ]) +case "$host" in + mips-sni-sysv4*) + # tickadj is pretty useless on newer versions of ReliantUNIX + # Do not bother + ntp_cv_make_tickadj=no + ;; + *-*-irix*) + ntp_cv_make_tickadj=no + ;; + *-*-solaris2*) + # DLM says tickadj is a no-no starting with solaris2.5 + case "$host" in + *-*-solaris2.1[[0-9]]*) + ntp_cv_make_tickadj=no + ;; + *-*-solaris2.[[0-4]]*) ;; + *) ntp_cv_make_tickadj=no ;; + esac + ;; + *-*-unicosmp*) + ntp_cv_make_tickadj=no + ;; +esac + +# +# Despite all the above, we always make tickadj. Setting +# ntp_cv_make_tickadj before AC_CACHE_CHECK will cause a false +# report that the configuration variable was cached. It may +# be better to simply remove the hunk above, I did not want +# to remove it if there is hope it will be used again. +# +AS_UNSET([ntp_cv_make_tickadj]) + +AC_CACHE_CHECK( + [if we want and can make the tickadj utility], + [ntp_cv_make_tickadj], + [ntp_cv_make_tickadj=yes] +) +case "$ntp_cv_make_tickadj" in + yes) + MAKE_TICKADJ=tickadj + ;; + *) + CALC_TICKADJ_DB= + CALC_TICKADJ_DL= + CALC_TICKADJ_DS= + CALC_TICKADJ_MS= + TICKADJ_DB= + TICKADJ_DL= + TICKADJ_DS= + TICKADJ_MS= + ;; +esac + +AC_SUBST([MAKE_TIMETRIM]) +AC_CACHE_CHECK( + [if we want and can make the timetrim utility], + [ntp_cv_make_timetrim], + [ + case "$host" in + *-*-irix*) + ntp_cv_make_timetrim=yes + ;; + *-*-unicosmp*) + ntp_cv_make_timetrim=yes + ;; + *) + ntp_cv_make_timetrim=no + ;; + esac + ] +) +case "$ntp_cv_make_timetrim" in + yes) + MAKE_TIMETRIM=timetrim + ;; + *) TIMETRIM_DB= + TIMETRIM_DL= + TIMETRIM_DS= + TIMETRIM_MS= + ;; +esac + +AC_SUBST([MAKE_LIBNTPSIM]) +AC_SUBST([MAKE_NTPDSIM]) + +AC_MSG_CHECKING([if we want to build the NTPD simulator]) +AC_ARG_ENABLE( + [simulator], + [AS_HELP_STRING( + [--enable-simulator], + [- build/install the NTPD simulator?] + )], + [ans=$enableval], + [ans=no] +) +AC_MSG_RESULT([$ans]) +case "$ans" in + yes) + MAKE_NTPDSIM=ntpdsim + MAKE_LIBNTPSIM=libntpsim.a + ;; + *) + NTPDSIM_DB= + NTPDSIM_DL= + NTPDSIM_DS= + NTPDSIM_MS= + ;; +esac + +case "$build" in + $host) + ;; + *) case "$host" in + *-*-vxworks*) + LDFLAGS="$LDFLAGS -r" + ;; + esac + ;; +esac + +NTP_WITHSNTP + +AC_MSG_CHECKING([if we want to build ntpsnmpd]) +AC_ARG_WITH( + [ntpsnmpd], + [AS_HELP_STRING( + [--with-ntpsnmpd], + [s Build ntpsnmpd MIB agent?] + )], + [ans=$withval], + [ + case "$PATH_NET_SNMP_CONFIG" in + /*) ans=yes ;; + *) ans=no ;; + esac + ] +) +AC_MSG_RESULT([$ans]) +case "$ans" in + yes) + case "$PATH_NET_SNMP_CONFIG" in + /*) + SNMP_LIBS=`$PATH_NET_SNMP_CONFIG --agent-libs` + AC_SUBST([SNMP_LIBS]) + # HMS: we really want to separate CPPFLAGS and CFLAGS + foo=`$PATH_NET_SNMP_CONFIG --cflags` + SNMP_CPPFLAGS= + SNMP_CFLAGS= + for i in $foo; do + case "$i" in + -D*|-U*|-I*) + SNMP_CPPFLAGS="$SNMP_CPPFLAGS $i" + ;; + *) SNMP_CFLAGS="$SNMP_CFLAGS $i" + ;; + esac + done + AC_SUBST([SNMP_CPPFLAGS]) + AC_SUBST([SNMP_CFLAGS]) + + save_CFLAGS=$CFLAGS + save_CPPFLAGS=$CPPFLAGS + save_LIBS=$LIBS + CFLAGS=$SNMP_CFLAGS + CPPFLAGS=$SNMP_CPPFLAGS + + AC_CHECK_HEADER( + [net-snmp/net-snmp-config.h], + [MAKE_NTPSNMPD=ntpsnmpd], + [AC_MSG_WARN([net-snmp-config present but net-snmp headers are not available!])] + ) + + # Do this last, as we're messing up LIBS. + # check -lnetsnmp for netsnmp_daemonize + LIBS=`$PATH_NET_SNMP_CONFIG --libs` + AC_CHECK_LIB( + [netsnmp], + [netsnmp_daemonize], + [ans=yes], + [ans=no] + ) + case "$ans" in + no) + AC_DEFINE([NEED_NETSNMP_DAEMONIZE], [1], + [We need to provide netsnmp_daemonize()]) + esac + + CFLAGS=$save_CFLAGS + AS_UNSET([save_CFLAGS]) + CPPFLAGS=$save_CPPFLAGS + AS_UNSET([save_CPPFLAGS]) + LIBS=$save_LIBS + AS_UNSET([save_LIBS]) + ;; + *) + AC_MSG_WARN([Cannot build ntpsnmpd - net-snmp-config cannot be found]) + ;; + esac + ;; +esac +AC_SUBST([MAKE_NTPSNMPD]) + +case "$MAKE_NTPSNMPD" in + '') + NTPSNMPD_DB= + NTPSNMPD_DL= + NTPSNMPD_DS= + NTPSNMPD_MS= + ;; +esac + +AC_MSG_CHECKING([if we should always slew the time]) + +# target-specific defaults + +case "$host" in + *-apple-aux[[23]]*) + ans=yes + ;; + *-*-bsdi[[012]]*) + ans=no + ;; + *-*-bsdi*) + ans=yes + ;; + *-*-openvms*) # HMS: won't be found + ans=yes + ;; + *) ans=no + ;; +esac + +# --enable-slew-always / --disable-slew-always overrides default + +AC_ARG_ENABLE( + [slew-always], + [AS_HELP_STRING( + [--enable-slew-always], + [s always slew the time] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + AC_DEFINE([SLEWALWAYS], [1], [Slew always?]) +esac + +AC_MSG_CHECKING([if we should step and slew the time]) + +case "$host" in + *-sni-sysv*) + ans=yes + ;; + *-univel-sysv*) + ans=no + ;; + *-*-ptx*) + ans=yes + ;; + *-*-solaris2.1[[0-9]]*) + ans=no + ;; + *-*-solaris2.[[012]]*) + ans=yes + ;; + *-*-sysv4*) # HMS: Does this catch Fujitsu UXP? + ans=yes + ;; + *) ans=no + ;; +esac + +AC_ARG_ENABLE( + [step-slew], + [AS_HELP_STRING( + [--enable-step-slew], + [s step and slew the time] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + AC_DEFINE([STEP_SLEW], [1], [Step, then slew the clock?]) +esac + +AC_MSG_CHECKING([if ntpdate should step the time]) + +case "$host" in + *-apple-aux[[23]]*) + ans=yes + ;; + *) ans=no + ;; +esac + +AC_ARG_ENABLE( + [ntpdate-step], + [AS_HELP_STRING( + [--enable-ntpdate-step], + [s if ntpdate should step the time] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + AC_DEFINE([FORCE_NTPDATE_STEP], [1], + [force ntpdate to step the clock if !defined(STEP_SLEW) ?]) +esac + + +AC_MSG_CHECKING([if we should sync TODR clock every hour]) + +case "$host" in + *-*-nextstep*) + ans=yes + ;; + *-*-openvms*) # HMS: won't be found + ans=yes + ;; + *) + ans=no + ;; +esac + +AC_ARG_ENABLE( + [hourly-todr-sync], + [AS_HELP_STRING( + [--enable-hourly-todr-sync], + [s if we should sync TODR hourly] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ac_cv_var_sync_todr" in + yes) + AC_DEFINE([DOSYNCTODR], [1], [synch TODR hourly?]) ;; +esac + + +AC_MSG_CHECKING([if we should avoid kernel FLL bug]) + +case "$host" in + *-*-solaris2.6) + unamev=`uname -v` + case "$unamev" in + Generic_105181-*) + old_IFS="$IFS" + IFS="-" + set $unamev + IFS="$old_IFS" + if test "$2" -ge 17 + then + # Generic_105181-17 and higher + ans=no + else + ans=yes + fi + ;; + *) + ans=yes + ;; + esac + ;; + *-*-solaris2.7) + unamev=`uname -v` + case "$unamev" in + Generic_106541-*) + old_IFS="$IFS" + IFS="-" + set $unamev + IFS="$old_IFS" + if test "$2" -ge 07 + then + # Generic_106541-07 and higher + ans=no + else + ans=yes + fi + ;; + *) + ans=yes + ;; + esac + ;; + *) + ans=no + ;; +esac + +AC_ARG_ENABLE( + [kernel-fll-bug], + [AS_HELP_STRING( + [--enable-kernel-fll-bug], + [s if we should avoid a kernel FLL bug] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + AC_DEFINE([KERNEL_FLL_BUG], [1], [Does the kernel have an FLL bug?]) +esac + + +AC_MSG_CHECKING([if we want new session key behavior]) +AC_ARG_ENABLE( + [bug1243-fix], + [AS_HELP_STRING( + [--enable-bug1243-fix], + [+ use unmodified autokey session keys] + )], + [ans=$enableval], + [ans=yes] +) +AC_MSG_RESULT([$ans]) +case "$ans" in + no) + AC_DEFINE([DISABLE_BUG1243_FIX], [1], + [use old autokey session key behavior?]) +esac + + +AC_MSG_CHECKING([if we should use the IRIG sawtooth filter]) + +case "$host" in + *-*-solaris2.[[89]]) + ans=yes + ;; + *-*-solaris2.1[[0-9]]*) + ans=yes + ;; + *) ans=no + ;; +esac + +AC_ARG_ENABLE( + [irig-sawtooth], + [AS_HELP_STRING( + [--enable-irig-sawtooth], + [s if we should enable the IRIG sawtooth filter] + )], + [ans=$enableval] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + AC_DEFINE([IRIG_SUCKS], [1], + [Should we use the IRIG sawtooth filter?]) +esac + +AC_MSG_CHECKING([if we should enable NIST lockclock scheme]) + +AC_ARG_ENABLE( + [nist], + [AS_HELP_STRING( + [--enable-nist], + [- if we should enable the NIST lockclock scheme] + )], + [ans=$enableval], + [ans=no] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + yes) + AC_DEFINE([LOCKCLOCK], [1], + [Should we align with the NIST lockclock scheme?]) ;; +esac + +AC_MSG_CHECKING([if we want support for Samba's signing daemon]) + +AC_ARG_ENABLE( + [ntp-signd], + [AS_HELP_STRING( + [--enable-ntp-signd], + [- Provide support for Samba's signing daemon, =/var/run/ntp_signd] + )], + [ans=$enableval], + [ans=no] +) + +AC_MSG_RESULT([$ans]) + +case "$ans" in + no) + ntp_signd_path= + ;; + yes) + ntp_signd_path=/var/run/ntp_signd + ;; + *) + ntp_signd_path="$ans" +esac + +case "$ntp_signd_path" in + '') + ;; + *) + AC_DEFINE([HAVE_NTP_SIGND], [1], + [Do we want support for Samba's signing daemon?]) + AC_DEFINE_UNQUOTED([NTP_SIGND_PATH], ["$ntp_signd_path"], + [Path to sign daemon rendezvous socket]) + ;; +esac + +AC_CHECK_HEADERS([libscf.h]) +LSCF= +case "$ac_cv_header_libscf_h" in + yes) + LSCF='-lscf' +esac +AC_SUBST([LSCF]) + +NTP_IPV6 + + +# +# Look for a sysctl call to get the list of network interfaces. +# +AC_CACHE_CHECK( + [for interface list sysctl], + [ntp_cv_iflist_sysctl], + [AC_PREPROC_IFELSE( + [ + #include + #include + #include + #ifndef NET_RT_IFLIST + # error + #endif + ], + [ntp_cv_iflist_sysctl=yes], + [ntp_cv_iflist_sysctl=no] + )] +) +case "$ntp_cv_iflist_sysctl" in + yes) + AC_DEFINE([HAVE_IFLIST_SYSCTL], [1], [have iflist_sysctl?]) +esac + +### + +AC_MSG_CHECKING([if we want the saveconfig mechanism]) +AC_ARG_ENABLE( + [saveconfig], + [AS_HELP_STRING( + [--enable-saveconfig], + [+ saveconfig mechanism] + )], + [ntp_ok=$enableval], + [ntp_ok=yes] +) +ntp_saveconfig_enabled=0 +case "$ntp_ok" in + yes) + ntp_saveconfig_enabled=1 + AC_DEFINE([SAVECONFIG], [1], [saveconfig mechanism]) + ;; +esac +AM_CONDITIONAL([SAVECONFIG_ENABLED], [test x$ntp_saveconfig_enabled = x1]) +AC_MSG_RESULT([$ntp_ok]) + +dnl gtest is needed for our tests subdirs. It would be nice if we could +dnl require a C++ compiler only if we will use gtest, but AC_PROG_CXX +dnl can't be conditionalized. +NTP_GOOGLETEST + +### + +AC_DEFINE_DIR([NTP_KEYSDIR], [sysconfdir], + [Default location of crypto key info]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([adjtimed/Makefile]) +AC_CONFIG_FILES([clockstuff/Makefile]) +AC_CONFIG_FILES([include/Makefile]) +AC_CONFIG_FILES([include/isc/Makefile]) +AC_CONFIG_FILES([kernel/Makefile]) +AC_CONFIG_FILES([kernel/sys/Makefile]) +AC_CONFIG_FILES([libntp/Makefile]) +AC_CONFIG_FILES([libparse/Makefile]) +AC_CONFIG_FILES([ntpd/Makefile]) +AC_CONFIG_FILES([ntpd/complete.conf], [sed -e '/^rlimit$/d' < ntpd/complete.conf > ntpd/complete.conf.new && mv ntpd/complete.conf.new ntpd/complete.conf]) +AC_CONFIG_FILES([ntpdate/Makefile]) +AC_CONFIG_FILES([ntpdc/Makefile]) +AC_CONFIG_FILES([ntpdc/nl.pl], [chmod +x ntpdc/nl.pl]) +AC_CONFIG_FILES([ntpq/Makefile]) +AC_CONFIG_FILES([ntpsnmpd/Makefile]) +AC_CONFIG_FILES([parseutil/Makefile]) +AC_CONFIG_FILES([scripts/Makefile]) +AC_CONFIG_FILES([scripts/lib/Makefile]) +AC_CONFIG_FILES([scripts/calc_tickadj/calc_tickadj], [chmod +x scripts/calc_tickadj/calc_tickadj]) +AC_CONFIG_FILES([scripts/calc_tickadj/Makefile]) +AC_CONFIG_FILES([scripts/build/mkver], [chmod +x scripts/build/mkver]) +AC_CONFIG_FILES([scripts/ntp-wait/ntp-wait], [chmod +x scripts/ntp-wait/ntp-wait]) +AC_CONFIG_FILES([scripts/ntp-wait/Makefile]) +AC_CONFIG_FILES([scripts/ntpsweep/ntpsweep], [chmod +x scripts/ntpsweep/ntpsweep]) +AC_CONFIG_FILES([scripts/ntpsweep/Makefile]) +AC_CONFIG_FILES([scripts/ntptrace/ntptrace], [chmod +x scripts/ntptrace/ntptrace]) +AC_CONFIG_FILES([scripts/ntptrace/Makefile]) +AC_CONFIG_FILES([scripts/ntpver], [chmod +x scripts/ntpver]) +AC_CONFIG_FILES([scripts/plot_summary], [chmod +x scripts/plot_summary]) +AC_CONFIG_FILES([scripts/summary], [chmod +x scripts/summary]) +AC_CONFIG_FILES([scripts/build/Makefile]) +AC_CONFIG_FILES([tests/Makefile]) +AC_CONFIG_FILES([tests/libntp/Makefile]) +AC_CONFIG_FILES([tests/ntpd/Makefile]) +AC_CONFIG_FILES([util/Makefile]) + +perllibdir="${datadir}/ntp/lib" +AC_DEFINE_DIR([PERLLIBDIR], [perllibdir], [data dir]) + +calc_tickadj_opts="$srcdir/scripts/calc_tickadj/calc_tickadj-opts" +AC_SUBST_FILE([calc_tickadj_opts]) +ntp_wait_opts="$srcdir/scripts/ntp-wait/ntp-wait-opts" +AC_SUBST_FILE([ntp_wait_opts]) +ntpsweep_opts="$srcdir/scripts/ntpsweep/ntpsweep-opts" +AC_SUBST_FILE([ntpsweep_opts]) +ntptrace_opts="$srcdir/scripts/ntptrace/ntptrace-opts" +AC_SUBST_FILE([ntptrace_opts]) +summary_opts="$srcdir/scripts/summary-opts" +AC_SUBST_FILE([summary_opts]) +plot_summary_opts="$srcdir/scripts/plot_summary-opts" +AC_SUBST_FILE([plot_summary_opts]) + +AC_CONFIG_SUBDIRS([sntp]) + +AC_OUTPUT -- cgit v1.2.1