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