File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / configure.ac
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:37 2012 UTC (12 years, 6 months ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    1: dnl -*-fundamental-*-
    2: dnl Process this file with autoconf to produce a configure script.
    3: m4_include([version.m4])
    4: AC_PREREQ([2.61])
    5: AC_INIT([ntp], [VERSION_NUMBER])
    6: AC_CONFIG_MACRO_DIR([m4])
    7: AC_CONFIG_AUX_DIR([.])
    8: 
    9: # Increment ntp_configure_cache_version by one for each change to
   10: # configure.ac or .m4 files which invalidates cached values from
   11: # previous versions.
   12: #
   13: # If the change affects cache variables used only by the main NTP
   14: # configure.ac, then only its version number should be bumped, while
   15: # the subdir configure.ac version numbers should be unchanged.  The
   16: # same is true for a test/variable that is used only by one subdir
   17: # being changed incompatibly; only that subdir's cache version needs
   18: # bumping.
   19: #
   20: # If a change affects variables shared by all NTP configure scripts,
   21: # please bump the version numbers of all three.  If you are not sure,
   22: # the safe choice is to bump all three on any cache-invalidating change.
   23: #
   24: # In order to avoid the risk of version stamp collision between -stable
   25: # and -dev branches, do not simply increment the version, instead use
   26: # the date YYYYMMDD optionally with -HHMM if there is more than one
   27: # bump in a day.
   28: 
   29: ntp_configure_cache_version=20091117
   30: 
   31: # When the cache version of config.cache and configure do not
   32: # match, NTP_CACHEVERSION will flush the cache.
   33: 
   34: NTP_CACHEVERSION([main], [$ntp_configure_cache_version])
   35: 
   36: AM_INIT_AUTOMAKE
   37: AC_CANONICAL_BUILD
   38: AC_CANONICAL_HOST
   39: dnl the 'build' machine is where we run configure and compile
   40: dnl the 'host' machine is where the resulting stuff runs.
   41: AC_DEFINE_UNQUOTED([STR_SYSTEM], ["$host"],
   42:     [canonical system (cpu-vendor-os) of where we should run])
   43: AM_CONFIG_HEADER([config.h])
   44: dnl AC_ARG_PROGRAM
   45: 
   46: ntp_atom_ok=${ntp_atom_ok=no}
   47: ntp_oncore_ok=${ntp_oncore_ok=no}
   48: ntp_parse_ok=${ntp_parse_ok=no}
   49: ntp_ripe_ncc_ok=${ntp_parse_ok=no}
   50: ntp_jupiter_ok=${ntp_jupiter_ok=no}
   51: 
   52: dnl check these early to avoid autoconf warnings
   53: AC_AIX
   54: AC_MINIX
   55: 
   56: # So far, the only shared library we might use is libopts.
   57: # It's a small library - we might as well use a static version of it.
   58: AC_DISABLE_SHARED
   59: 
   60: dnl  we need to check for cross compile tools for vxWorks here
   61: AC_PROG_CC
   62: # Ralf Wildenhues: With per-target flags we need CC_C_O
   63: # AM_PROG_CC_C_O supersets AC_PROG_CC_C_O
   64: AM_PROG_CC_C_O
   65: AC_PROG_CPP
   66: AC_PROG_YACC
   67: 
   68: # AC_PROG_CC_STDC has two functions.  It attempts to find a compiler
   69: # capable of C99, or failing that, for C89.  CC is set afterward with
   70: # the selected invocation, such as "gcc --std=gnu99".  Also, the
   71: # ac_cv_prog_cc_stdc variable is no if the compiler selected for CC
   72: # does not accept C89.
   73: 
   74: AC_PROG_CC_STDC
   75: 
   76: case "$ac_cv_prog_cc_stdc" in
   77:  no)
   78:     AC_MSG_WARN([ANSI C89/ISO C90 is the minimum to compile NTP ]
   79: 		[version 4.2.5 and higher.])
   80: esac
   81: 
   82: # HMS: These need to be moved to AM_CPPFLAGS and/or AM_CFLAGS
   83: case "$host" in
   84:  *-pc-cygwin*)
   85:     CFLAGS="$CFLAGS -DSYS_CYGWIN32"
   86:     ;;
   87:  i386-sequent-sysv4)
   88:     case "$CC" in
   89:      cc)
   90: 	CFLAGS="$CFLAGS -Wc,+abi-socket"
   91: 	;;
   92:     esac
   93:     ;;
   94:  *-*-mpeix*)
   95:     CPPFLAGS="$CPPFLAGS -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB"
   96:     LDFLAGS="$LDFLAGS -L/SYSLOG/PUB"
   97:     LIBS="$LIBS -lcurses"
   98:     ;;
   99:  *-*-solaris*)
  100:     # see "man standards".
  101:     # -D_XOPEN_SOURCE=500 is probably OK for c89 and before
  102:     # -D_XOPEN_SOURCE=600 seems OK for c99
  103:     #CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
  104:     CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
  105:     libxnet=-lxnet
  106:     ;;
  107: esac
  108: 
  109: NTP_OS_CFLAGS
  110: NTP_DIR_SEP
  111: NTP_VPATH_HACK
  112: 
  113: # NTP has (so far) been relying on leading-edge autogen.
  114: # Therefore, by default:
  115: # - use the version we ship with
  116: # - do not install it
  117: # - build a static copy (AC_DISABLE_SHARED - done earlier)
  118: case "${enable_local_libopts+set}" in
  119:  set) ;;
  120:  *) enable_local_libopts=yes ;;
  121: esac
  122: case "${enable_libopts_install+set}" in
  123:  set) ;;
  124:  *) enable_libopts_install=no ;;
  125: esac
  126: LIBOPTS_CHECK_NOBUILD([sntp/libopts])
  127: 
  128: AC_FUNC_FORK
  129: 
  130: AC_CACHE_CHECK(
  131:     [if $CC can handle @%:@warning],
  132:     [ntp_cv_cpp_warning],
  133:     [AC_COMPILE_IFELSE(
  134: 	[AC_LANG_PROGRAM([[]], [[#warning foo]])],
  135: 	[ntp_cv_cpp_warning=yes],
  136: 	[ntp_cv_cpp_warning=no]
  137:     )]
  138: )
  139: case "$ntp_cv_cpp_warning" in
  140:  no)
  141:     AC_DEFINE([NO_OPTION_NAME_WARNINGS], [1],
  142: 	[Should we avoid @%:@warning on option name collisions?])
  143: esac
  144: 
  145: case "$GCC" in
  146:  yes)
  147:     SAVED_CFLAGS_NTP="$CFLAGS"
  148:     CFLAGS="$CFLAGS -Wstrict-overflow"
  149:     AC_CACHE_CHECK(
  150: 	[if $CC can handle -Wstrict-overflow], 
  151: 	[ntp_cv_gcc_Wstrict_overflow], 
  152: 	[AC_COMPILE_IFELSE(
  153: 	    [AC_LANG_PROGRAM([[]], [[]])],
  154: 	    [ntp_cv_gcc_Wstrict_overflow=yes],
  155: 	    [ntp_cv_gcc_Wstrict_overflow=no]
  156: 	)	]
  157:     )
  158:     #
  159:     # $ntp_cv_gcc_Wstrict_overflow is tested later to add the 
  160:     # flag to CFLAGS.
  161:     #
  162:     CFLAGS="$SAVED_CFLAGS_NTP -Winit-self"
  163:     AC_CACHE_CHECK(
  164: 	[if $CC can handle -Winit-self], 
  165: 	[ntp_cv_gcc_Winit_self],
  166: 	[
  167: 	    AC_COMPILE_IFELSE(
  168: 		[AC_LANG_PROGRAM([[]], [[]])],
  169: 		[ntp_cv_gcc_Winit_self=yes],
  170: 		[ntp_cv_gcc_Winit_self=no]
  171: 	    )
  172: 	]
  173:     )
  174:     CFLAGS="$SAVED_CFLAGS_NTP"
  175:     AS_UNSET([SAVED_CFLAGS_NTP])
  176:     #
  177:     # $ntp_cv_gcc_Winit_self is tested later to add the 
  178:     # flag to CFLAGS.
  179:     #
  180: esac
  181: 
  182: # Expose a cross-compilation indicator to makefiles
  183: AM_CONDITIONAL([NTP_CROSSCOMPILE], [test $build != $host])
  184: 
  185: AC_MSG_CHECKING([for bin subdirectory])
  186: AC_ARG_WITH(
  187:     [binsubdir],
  188:     [AS_HELP_STRING(
  189: 	[--with-binsubdir],
  190: 	[bin ={bin,sbin}]
  191:     )],
  192:     [use_binsubdir="$withval"],
  193:     [use_binsubdir="bin"]
  194: )
  195: case "$use_binsubdir" in
  196:  bin)
  197:     ;;
  198:  sbin)
  199:     ;;
  200:  *)
  201:     AC_MSG_ERROR([<$use_binsubdir> is illegal - must be "bin" or "sbin"])
  202:     ;;
  203: esac
  204: AC_MSG_RESULT([$use_binsubdir])
  205: 
  206: BINSUBDIR=$use_binsubdir
  207: AC_SUBST([BINSUBDIR])
  208: AM_CONDITIONAL([NTP_BINSUBDIR_IS_BIN], [test "bin" = "$BINSUBDIR"])
  209: 
  210: AC_MSG_CHECKING([for deprecated --with-arlib])
  211: AC_ARG_WITH([arlib],
  212: 	AS_HELP_STRING([--with-arlib], [- deprecated, arlib not distributed]),
  213: 	[ans=$withval], [ans=no])
  214: AC_MSG_RESULT([$ans])
  215: 
  216: case "$ans" in
  217:  yes)
  218:     AC_MSG_WARN([Please do not use --with-arlib, arlib is no longer included.  In the future, --with-arlib will not be recognized.])
  219: esac
  220: 
  221: AC_ARG_WITH(rpath,
  222: 	AS_HELP_STRING([--without-rpath], [s Disable auto-added -R linker paths]),
  223: [ans=$withval], [ans=x])
  224: case "$ans" in
  225:  no)
  226:     need_dash_r=
  227:     ;;
  228:  yes)
  229:     need_dash_r=1
  230:     ;;
  231: esac
  232: # HMS: Why isn't this $build?
  233: # Well, that depends on if we need this for the build toolchain or
  234: # for info in the host executable...
  235: # I still have no idea which way this should go, but nobody has complained.
  236: case "$host" in
  237:  *-*-netbsd*)
  238:     case "$need_dash_r" in
  239:      no) ;;
  240:      *)  need_dash_r=1
  241: 	 ;;
  242:     esac
  243:     ;;
  244:  *-*-solaris*)
  245:     case "$need_dash_r" in
  246:      no) ;;
  247:      *)  need_dash_r=1
  248: 	 ;;
  249:     esac
  250:     ;;
  251: esac
  252: 
  253: dnl  we need to check for cross compile tools for vxWorks here
  254: AC_PROG_AWK
  255: AC_PROG_MAKE_SET
  256: 
  257: rm -f conftest*
  258: 
  259: case "$GCC" in
  260:  yes)
  261:     CFLAGS="$CFLAGS -Wall"
  262:     # CFLAGS="$CFLAGS -Wcast-align"
  263:     CFLAGS="$CFLAGS -Wcast-qual"
  264:     # CFLAGS="$CFLAGS -Wconversion"
  265:     # CFLAGS="$CFLAGS -Werror"
  266:     # CFLAGS="$CFLAGS -Wextra"
  267:     # CFLAGS="$CFLAGS -Wfloat-equal"
  268:     CFLAGS="$CFLAGS -Wmissing-prototypes"
  269:     CFLAGS="$CFLAGS -Wpointer-arith"
  270:     CFLAGS="$CFLAGS -Wshadow"
  271:     # CFLAGS="$CFLAGS -Wtraditional"
  272:     # CFLAGS="$CFLAGS -Wwrite-strings"
  273:     case "$ntp_cv_gcc_Winit_self" in
  274:      yes)
  275: 	CFLAGS="$CFLAGS -Winit-self"
  276:     esac
  277:     case "$ntp_cv_gcc_Wstrict_overflow" in
  278:      yes)
  279: 	CFLAGS="$CFLAGS -Wstrict-overflow"
  280:     esac
  281:     # -W[no-]strict-prototypes is added later depending on OpenSSL
  282: esac
  283: 
  284: ac_busted_vpath_in_make=no
  285: 
  286: case "$build" in
  287:  *-*-irix6.1*)	# 64 bit only
  288:     # busted vpath?
  289:     ;;
  290:  *-*-irix6*)	# 6.2 (and later?)
  291:     ac_busted_vpath_in_make=yes
  292:     ;;
  293:  *-*-solaris2.5.1)
  294:     ac_busted_vpath_in_make=yes
  295:     ;;
  296:  *-*-unicosmp*)
  297:     ac_busted_vpath_in_make=yes
  298:     ;;
  299: esac
  300: 
  301: case "$ac_busted_vpath_in_make$srcdir" in
  302:  no*) ;;
  303:  yes.) ;;
  304:  *) case "`${MAKE-make} -v -f /dev/null 2>/dev/null | sed -e 's/GNU Make version \(1-9.]*\).*/\1/' -e q`" in
  305:      '')
  306: 	AC_MSG_ERROR([building outside of the main directory requires GNU make])
  307: 	;;
  308:      *) ;;
  309:     esac
  310:     ;;
  311: esac
  312: 
  313: AC_SUBST([CFLAGS])
  314: AC_SUBST([LDFLAGS])
  315: 
  316: AC_PROG_LIBTOOL
  317: 
  318: AC_PROG_LN_S
  319: AC_PROG_GCC_TRADITIONAL
  320: AC_C_VOLATILE
  321: AC_ISC_POSIX
  322: 
  323: AC_PATH_PROG([PATH_PERL], [perl])
  324: AC_PATH_PROG([PATH_SH], [sh])
  325: AC_PATH_PROG([PATH_TEST], [test])
  326: 
  327: AC_ARG_WITH(
  328:     [net-snmp-config],
  329:     [AS_HELP_STRING(
  330: 	[--with-net-snmp-config],
  331: 	[+ =net-snmp-config]
  332:     )],
  333:     [ans=$withval],
  334:     [ans=yes]
  335: )
  336: case "$ans" in
  337:  no)
  338:     ;;
  339:  yes)
  340:     ans=net-snmp-config
  341:     ;;
  342:  /*)
  343:     ;;
  344:  */*)
  345:     AC_MSG_ERROR([--with-net-snmp-config takes either a name or an absolute path])
  346:     ;;
  347:  *)
  348:     ;;
  349: esac
  350: PROG_NET_SNMP_CONFIG=$ans
  351: AC_MSG_CHECKING([for net-snmp-config path])
  352: case "$PROG_NET_SNMP_CONFIG" in
  353:  no) ;;
  354:  /*)
  355:     PATH_NET_SNMP_CONFIG=$PROG_NET_SNMP_CONFIG
  356:     ;;
  357:  *)
  358:     AC_PATH_PROG([PATH_NET_SNMP_CONFIG], [$PROG_NET_SNMP_CONFIG])
  359:     ;;
  360: esac
  361: AC_MSG_RESULT([$PATH_NET_SNMP_CONFIG])
  362: 
  363: case "$host" in
  364:  *-*-vxworks*)
  365:     ac_link="$ac_link $VX_KERNEL"
  366:     ;;
  367: esac
  368: 
  369: AC_PROG_INSTALL
  370: 
  371: AC_CHECK_FUNC([gethostent], ,
  372:   AC_SEARCH_LIBS([gethostent], [nsl], , , [$libxnet -lsocket]))
  373: AC_CHECK_FUNC([openlog], , 
  374:   AC_SEARCH_LIBS([openlog], [gen], , 
  375:   AC_SEARCH_LIBS([openlog], [syslog], , , [$libxnet -lsocket])))
  376: AC_SEARCH_LIBS([MD5Init], [md5 md])
  377: AC_CHECK_FUNCS(MD5Init)
  378: 
  379: NTP_LINEEDITLIBS
  380: 
  381: dnl Digital UNIX V4.0 and Solaris 7 have POSIX.1c functions in -lrt
  382: dnl Solaris 2.6 only has -lposix4; in Solaris 7, this is a symlink to -lrt,
  383: dnl so only use one of them.  Linux (glibc-2.1.2 and -2.2.2, at least)
  384: dnl does Strange Things with extra processes using the Posix-compatibility
  385: dnl real-time library, so we don't want to use it.
  386: dnl
  387: dnl 081118 Harlan got tired of looking for a way to get the sched*()
  388: dnl functions to link OK with either cc or gcc.
  389: 
  390: case "$host" in
  391:  *-*-*linux*) ;;
  392:  *-*-osf4*) ;;
  393:  *-*-osf5*) ;;
  394:  *)
  395:     AC_CHECK_LIB([rt], [sched_setscheduler], [],
  396: 	[AC_CHECK_LIB([posix4], [sched_setscheduler])])
  397:     ;;
  398: esac
  399: 
  400: AC_SEARCH_LIBS([setsockopt], [socket xnet])
  401: AC_SEARCH_LIBS([res_init], [resolv], [], [], [-lsocket -lnsl])
  402: case "$host" in
  403:  *-*-darwin*)
  404:     AC_CHECK_LIB([resolv],[res_9_init])
  405:     ;;
  406: esac
  407: AC_HEADER_RESOLV
  408: AC_CHECK_FUNCS([res_init __res_init])
  409: 
  410: AC_HEADER_STDC
  411: AC_CHECK_HEADERS([bstring.h])
  412: AC_CHECK_HEADER(
  413:     [dns_sd.h],
  414:     [AC_CHECK_LIB(
  415: 	[dns_sd],
  416: 	[DNSServiceRegister],
  417: 	[AC_DEFINE([HAVE_DNSREGISTRATION], [1],
  418: 	    [Use Rendezvous/DNS-SD registration])]
  419:     )]
  420: )
  421: case "$ac_cv_lib_dns_sd_DNSServiceRegister" in
  422:  yes)
  423:     LIBS="-ldns_sd $LIBS"
  424: esac
  425: AC_CHECK_HEADERS([errno.h fcntl.h ieeefp.h kvm.h math.h])
  426: 
  427: AC_CHECK_HEADERS(
  428:     [md5.h],
  429:     [],
  430:     [],
  431:     [
  432: 	#ifdef HAVE_SYS_TYPES_H
  433: 	# include <sys/types.h>
  434: 	#endif
  435:     ]
  436: )
  437: AC_CHECK_HEADERS([memory.h netdb.h poll.h])
  438: AC_CHECK_HEADERS([sgtty.h stdlib.h string.h termio.h])
  439: AC_CHECK_HEADERS([termios.h timepps.h timex.h unistd.h])
  440: 
  441: case "$host" in
  442:  *-*-aix*)
  443:     AC_CHECK_HEADERS([utmpx.h])
  444:     case "$ac_cv_header_utmpx_h" in
  445:      yes)
  446: 	;;
  447:      *)
  448: 	AC_CHECK_HEADERS([utmp.h])
  449: 	;;
  450:     esac
  451:     ;;
  452:  *) 
  453:     AC_CHECK_HEADERS([utmp.h utmpx.h])
  454:     ;;
  455: esac
  456: 
  457: #
  458: # On Suns only (so far) getpass() truncates the typed password to 8
  459: # characters, but getpassphrase() allows up to 257.  Most systems'
  460: # getpass() does not truncate, at least not so as to affect ntpq and
  461: # ntpdc password prompts.
  462: #
  463: # So check for getpassphrase(), but only on Sun operating systems.
  464: #
  465: case "$host" in
  466:  *-*-sunos*|*-*-solaris*)
  467:     AC_CHECK_FUNCS([getpassphrase])
  468: esac
  469: 
  470: AC_CHECK_HEADERS([arpa/nameser.h])
  471: AC_CHECK_HEADERS([sys/socket.h])
  472: 
  473: dnl  HP-UX 11.31 on HPPA has a net/if.h that can't be compiled with gcc4
  474: dnl  due to an incomplete type (a union) mpinfou used in an array.  gcc3
  475: dnl  compiles it without complaint.  The mpinfou union is defined later
  476: dnl  in the resulting preprocessed source than the spu_info array in
  477: dnl  /usr/include/machine/sys/getppdp.h:
  478: dnl	extern union mpinfou spu_info[];
  479: dnl  triggering the error.  Our strategy is on HP-UX only, test for
  480: dnl  net/netmp.h, which is the file included by net/if.h that leads to
  481: dnl  getppdp.h.  If it is present but can't be compiled, try adding
  482: dnl  a duplicate definition of mpinfou, which should then allow the
  483: dnl  following net/if.h and net/if6.h tests to proceed normally.
  484: dnl  Using net/netmp.h allows us to avoid polluting test results for
  485: dnl  net/if.h.
  486: #
  487: case "$host" in
  488:  *-hp-hpux*)
  489:     AC_CHECK_HEADERS(
  490: 	[net/netmp.h],
  491: 	[netmp_h_works=yes],
  492: 	[netmp_h_works=no]
  493:     )
  494:     case "$netmp_h_works" in
  495:      no)
  496: 	cat >>confdefs.h <<_ACEOF
  497: #ifndef MPINFOU_PREDECLARED
  498: # define MPINFOU_PREDECLARED
  499: typedef union mpinfou {		/* For lint */
  500: 	struct pdk_mpinfo *pdkptr;
  501: 	struct mpinfo *pikptr;
  502: } mpinfou_t;
  503: #endif
  504: _ACEOF
  505: 	AH_BOTTOM([
  506: #ifndef MPINFOU_PREDECLARED
  507: # define MPINFOU_PREDECLARED
  508: typedef union mpinfou {		/* For lint */
  509: 	struct pdk_mpinfo *pdkptr;
  510: 	struct mpinfo *pikptr;
  511: } mpinfou_t;
  512: #endif
  513: ])
  514: 	;;
  515:     esac
  516:     ;;
  517: esac
  518: 
  519: case "$host" in
  520:  *-linux*)
  521:     AC_CHECK_HEADERS([linux/if_addr.h], [], [], [
  522: 	#ifdef HAVE_SYS_SOCKET_H
  523: 	# include <sys/socket.h>
  524: 	#endif
  525:     ])
  526: esac
  527: 
  528: AC_CHECK_HEADERS([net/if.h], [], [],
  529: [#ifdef HAVE_SYS_SOCKET_H
  530: #include <sys/socket.h>
  531: #endif
  532: ])
  533: AC_CHECK_HEADERS([net/if6.h])
  534: AC_CHECK_HEADERS([net/route.h], [], [], [
  535: #include <sys/types.h>
  536: #include <sys/socket.h>
  537: #include <net/if.h>
  538: ])
  539: AC_CHECK_HEADERS([netinet/in_system.h netinet/in_systm.h netinet/in.h])
  540: AC_CHECK_HEADERS([net/if_var.h], [], [],
  541: [#if HAVE_SYS_TYPES_H
  542: #include <sys/types.h>
  543: #endif
  544: #ifdef HAVE_SYS_SOCKET_H
  545: #include <sys/socket.h>
  546: #endif
  547: #ifdef HAVE_NETINET_IN_H
  548: #include <netinet/in.h>
  549: #endif
  550: #ifdef HAVE_NET_IF_H
  551: #include <net/if.h>
  552: #endif
  553: ])
  554: AC_CHECK_HEADERS([netinet/ip.h netinet/in_var.h], [], [],
  555: [#ifdef HAVE_SYS_TYPES_H
  556: #include <sys/types.h>
  557: #endif
  558: #ifdef HAVE_SYS_SOCKET_H
  559: #include <sys/socket.h>
  560: #endif
  561: #ifdef HAVE_NET_IF_H
  562: #include <net/if.h>
  563: #endif
  564: #ifdef HAVE_NETINET_IN_H
  565: #include <netinet/in.h>
  566: #endif
  567: #ifdef HAVE_NET_IF_VAR_H
  568: #include <net/if_var.h>
  569: #endif
  570: #ifdef HAVE_NETINET_IN_SYSTM_H
  571: #include <netinet/in_systm.h>
  572: #endif
  573: ])
  574: 
  575: # Check for IPTOS_PREC
  576: AC_CACHE_CHECK(
  577:     [IPPROTO_IP IP_TOS IPTOS_LOWDELAY],
  578:     [ntp_cv_ip_tos],
  579:     [AC_EGREP_CPP(
  580: 	[yes],
  581: 	[
  582: 	    #ifdef HAVE_SYS_TYPES_H
  583: 	    # include <sys/types.h>
  584: 	    #endif
  585: 	    #ifdef HAVE_NETINET_IP_H
  586: 	    # include <netinet/in.h>
  587: 	    # include <netinet/ip.h>
  588: 	    #endif
  589: 	    #if defined(IPPROTO_IP) && defined(IP_TOS) && defined(IPTOS_LOWDELAY)
  590: 		yes
  591: 	    #endif
  592: 	],
  593: 	[ntp_cv_ip_tos=yes],
  594: 	[ntp_cv_ip_tos=no]
  595:     )]
  596: )
  597: case "$ntp_cv_ip_tos" in
  598:  yes)
  599:     AC_DEFINE([HAVE_IPTOS_SUPPORT], [1], [Do we have IPTOS support?])
  600: esac
  601: 
  602: AC_CHECK_HEADERS([netinfo/ni.h])
  603: case "$ac_cv_header_netinfo_ni_h" in
  604:  yes)
  605:     AC_DEFINE([HAVE_NETINFO], [1], [NetInfo support?])
  606: esac
  607: AC_CHECK_HEADERS([sun/audioio.h sys/audioio.h])
  608: dnl AC_CHECK_HEADERS([sys/chudefs.h])
  609: AC_CHECK_HEADERS([sys/clkdefs.h sys/file.h])
  610: case "$host" in
  611:  *-*-sunos4*)
  612:     ;;
  613:  *) 
  614:     AC_CHECK_HEADERS([sys/ioctl.h])
  615:     ;;
  616: esac
  617: AC_CHECK_HEADERS([sys/ipc.h sys/lock.h sys/mman.h])
  618: AC_CHECK_HEADERS([sys/modem.h sys/param.h sys/ppsclock.h])
  619: # HMS: Check sys/proc.h and sys/resource.h after some others
  620: AC_CHECK_HEADERS([sys/ppstime.h sched.h])
  621: case "$ac_cv_header_sched_h" in
  622:  yes)
  623:     ;;
  624:  *) 
  625:     AC_CHECK_HEADERS([sys/sched.h])
  626:     ;;
  627: esac
  628: case "$host" in
  629:  *-*-sco*)
  630:     AC_CHECK_HEADERS([sys/sio.h])
  631:     ;;
  632: esac
  633: # HMS: Check sys/shm.h after some others
  634: AC_CHECK_HEADERS([sys/select.h sys/signal.h sys/sockio.h])
  635: # HMS: Checked sys/socket.h earlier
  636: case "$host" in
  637:  *-*-netbsd*)
  638:     ;;
  639:  *) 
  640:     AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h])
  641:     ;;
  642: esac
  643: AC_CHECK_HEADERS([sys/stat.h sys/stream.h sys/stropts.h])
  644: # sys/sysctl.h depends on sys/param.h on OpenBSD - Bug 1576
  645: AC_CHECK_HEADERS([sys/sysctl.h], [], [],
  646: [#if defined HAVE_SYS_PARAM_H
  647: # include <sys/param.h>
  648: #endif])
  649: AC_CHECK_HEADERS([sys/syssgi.h sys/systune.h])
  650: AC_CHECK_HEADERS([sys/termios.h sys/time.h sys/signal.h])
  651: AC_EGREP_CPP(
  652:     [yes],
  653:     [
  654: 	#ifdef HAVE_SYS_TIME_H
  655: 	# include <sys/time.h>
  656: 	#endif
  657: 	#ifdef HAVE_ERRNO_H
  658: 	# include <errno.h>
  659: 	#endif
  660: 	#include <sys/timepps.h>
  661: 	#ifdef PPS_API_VERS_1
  662: 	    yes
  663: 	#endif
  664:     ],
  665:     [AC_CHECK_HEADERS(
  666: 	[sys/timepps.h],
  667: 	[],
  668: 	[],
  669: 	[
  670: 	    #ifdef HAVE_SYS_TIME_H
  671: 	    # include <sys/time.h>
  672: 	    #endif
  673: 	    #ifdef HAVE_ERRNO_H
  674: 	    # include <errno.h>
  675: 	    #endif
  676: 	]
  677:     )]
  678: )
  679: AC_CHECK_HEADERS([sys/timers.h sys/tpro.h sys/types.h sys/wait.h])
  680: AC_HEADER_TIME
  681: case "$host" in
  682: *-convex-*)
  683:     AC_CHECK_HEADERS([/sys/sync/queue.h /sys/sync/sema.h])
  684:     ;;
  685: *-*-bsdi*)
  686:     AC_CHECK_HEADERS([machine/inline.h sys/pcl720.h sys/i8253.h])
  687:     ;;
  688: esac
  689: 
  690: case "$host" in
  691:  *-*-*linux*)
  692:     AC_CHECK_FUNCS([__adjtimex __ntp_gettime])
  693:     ;;
  694: esac
  695: case "$ac_cv_func___adjtimex" in
  696:  yes)
  697:     ;;
  698:  *)
  699:     AC_CHECK_LIB([elf], [nlist])	dnl Only needed for tickadj...
  700:     dnl AC_CHECK_LIB(kvm, main, , , -lelf)
  701:     AC_CHECK_LIB([kvm], [main])		dnl We already know about -lelf here...
  702:     AC_CHECK_LIB([ld], [nlist])
  703:     AC_CHECK_LIB([mld], [nlist])
  704:     AC_CHECK_HEADERS([nlist.h sys/var.h])
  705:     case "$ac_cv_header_nlist_h" in
  706:      yes)
  707: 	AC_DEFINE([NLIST_STRUCT], [1], [nlist stuff])
  708:     esac
  709:     AC_CACHE_CHECK(
  710: 	[for n_un in struct nlist],
  711: 	[ntp_cv_struct_nlist_n_un],
  712: 	[AC_COMPILE_IFELSE(
  713: 	    [AC_LANG_PROGRAM(
  714: 		[[
  715: 		    #include <nlist.h>
  716: 		]],
  717: 		[[
  718: 		    struct nlist n;
  719: 		    n.n_un.n_name = 0;
  720: 		]]
  721: 	    )]
  722: 	    [ntp_cv_struct_nlist_n_un=yes],
  723: 	    [ntp_cv_struct_nlist_n_un=no]
  724: 	)]
  725:     )
  726:     case "$ntp_cv_struct_nlist_n_un" in
  727:      yes)
  728: 	AC_DEFINE([NLIST_NAME_UNION], [1],
  729: 	    [does struct nlist use a name union?])
  730:     esac
  731:     ;;
  732: esac
  733: 
  734: AC_CHECK_HEADERS([sys/proc.h], [], [],
  735: [#ifdef HAVE_SYS_TYPES_H
  736: # include <sys/types.h>
  737: #endif
  738: #ifdef HAVE_SYS_TIME_H
  739: # include <sys/time.h>
  740: #endif
  741: ])
  742: 
  743: AC_CHECK_HEADERS([sys/resource.h], [], [],
  744: [#ifdef HAVE_SYS_TIME_H
  745: # include <sys/time.h>
  746: #endif
  747: ])
  748: 
  749: AC_CHECK_HEADERS([sys/shm.h], [], [],
  750: [#ifdef HAVE_SYS_TYPES_H
  751: # include <sys/types.h>
  752: #endif
  753: #ifdef HAVE_SYS_IPC_H
  754: # include <sys/ipc.h>
  755: #endif
  756: ])
  757: 
  758: AC_CHECK_HEADERS([sys/timex.h], [], [],
  759: [#if HAVE_SYS_TIME_H
  760: # include <sys/time.h>
  761: #endif
  762: ])
  763: 
  764: AC_CHECK_HEADERS([resolv.h], [], [],
  765: [#ifdef HAVE_SYS_TYPES_H
  766: #include <sys/types.h>
  767: #endif
  768: #ifdef HAVE_NETINET_IN_H
  769: #include <netinet/in.h>
  770: #endif
  771: #ifdef HAVE_ARPA_NAMESER_H
  772: #include <arpa/nameser.h>
  773: #endif
  774: ])
  775: 
  776: AC_CACHE_CHECK(
  777:     [for basic volatile support],
  778:     [ntp_cv_c_volatile],
  779:     [AC_COMPILE_IFELSE(
  780: 	[AC_LANG_PROGRAM(
  781: 	    [[
  782: 	    ]],
  783: 	    [[
  784: 		volatile int x;
  785: 	    ]]
  786: 	)]
  787: 	[ntp_cv_c_volatile=yes],
  788: 	[ntp_cv_c_volatile=no]
  789:     )]
  790: )
  791: case "$ntp_cv_c_volatile" in
  792:  yes)
  793:     ;;
  794:  *)
  795:     AC_DEFINE([volatile], [], [define away volatile?])
  796:     ;;
  797: esac
  798: 
  799: AC_C_CONST
  800: AC_C_BIGENDIAN
  801: AC_TYPE_SIGNAL
  802: AC_TYPE_OFF_T
  803: AC_TYPE_SIZE_T
  804: AC_CHECK_TYPES([time_t, long, uintptr_t])
  805: AC_CHECK_SIZEOF([time_t])
  806:  
  807: AH_VERBATIM([TYPEDEF_UINTPTR_T],
  808: [/* Provide a typedef for uintptr_t? */
  809: #ifndef HAVE_UINTPTR_T
  810: typedef unsigned int	uintptr_t;
  811: #define HAVE_UINTPTR_T	1
  812: #endif])
  813: 
  814: AC_STRUCT_TM
  815: 
  816: AC_CACHE_CHECK(
  817:     [for u_int8_t],
  818:     [ntp_cv_type_u_int8_t],
  819:     [AC_COMPILE_IFELSE(
  820: 	[AC_LANG_PROGRAM(
  821: 	    [[
  822: 		#ifdef HAVE_SYS_TYPES_H
  823: 		# include <sys/types.h>
  824: 		#endif
  825: 	    ]],
  826: 	    [[
  827: 		u_int8_t len = 42;
  828: 	    ]]
  829: 	)],
  830: 	[ntp_cv_type_u_int8_t=yes],
  831: 	[ntp_cv_type_u_int8_t=no]
  832:     )]
  833: )
  834: case "$ntp_cv_type_u_int8_t" in
  835:  yes)
  836:     AC_DEFINE([HAVE_TYPE_U_INT8_T], [1], [Does u_int8_t exist?])
  837: esac
  838: 
  839: AC_CACHE_CHECK(
  840:     [for u_int64_t],
  841:     [ntp_cv_type_u_int64_t],
  842:     [AC_COMPILE_IFELSE(
  843: 	[AC_LANG_PROGRAM(
  844: 	    [[
  845: 		#ifdef HAVE_SYS_TYPES_H
  846: 		# include <sys/types.h>
  847: 		#endif
  848: 	    ]],
  849: 	    [[
  850: 		u_int64_t len = 42;
  851: 	    ]]
  852: 	)],
  853: 	[ntp_cv_type_u_int64_t=yes],
  854: 	[ntp_cv_type_u_int64_t=no]
  855:     )]
  856: )
  857: case "$ntp_cv_type_u_int64_t" in
  858:  yes)
  859:     AC_DEFINE([HAVE_TYPE_U_INT64_T], [1], [Does u_int64_t exist?])
  860: esac
  861: 
  862: AC_CACHE_CHECK(
  863:     [for a fallback value for HZ],
  864:     [ntp_cv_default_hz],
  865:     [
  866: 	ntp_cv_default_hz=100
  867: 	case "$host" in
  868: 	 alpha*-dec-osf4*|alpha*-dec-osf5*)
  869: 	    ntp_cv_default_hz=1024
  870: 	    ;;
  871: 	 mips-dec-ultrix4*)
  872: 	    ntp_cv_default_hz=256
  873: 	    ;;
  874: 	esac
  875:     ]
  876: )
  877: AC_DEFINE_UNQUOTED([DEFAULT_HZ], [$ntp_cv_default_hz],
  878:     [What is the fallback value for HZ?])
  879: 
  880: AC_CACHE_CHECK(
  881:     [if we need to override the system's value for HZ],
  882:     [ntp_cv_override_hz],
  883:     [
  884: 	ntp_cv_override_hz=no
  885: 	case "$host" in
  886: 	 alpha*-dec-osf4*|alpha*-dec-osf5*)
  887: 	    ntp_cv_override_hz=yes
  888: 	    ;;
  889: 	 mips-dec-ultrix4*)
  890: 	    ntp_cv_override_hz=yes
  891: 	    ;;
  892: 	 *-*-freebsd*)
  893: 	    ntp_cv_override_hz=yes
  894: 	    ;;
  895: 	 *-*-sunos4*)
  896: 	    ntp_cv_override_hz=yes
  897: 	    ;;
  898: 	 *-*-kfreebsd*)
  899: 	    ntp_cv_override_hz=yes
  900: 	    ;;
  901: 	esac
  902:     ]
  903: )
  904: case "$ntp_cv_override_hz" in
  905:  yes)
  906:     AC_DEFINE([OVERRIDE_HZ], [1],
  907: 	[Do we need to override the system's idea of HZ?])
  908: esac
  909: 
  910: dnl AC_CACHE_CHECK(ut_host in struct utmp, ac_cv_func_ut_host_in_utmp,
  911: dnl [AC_TRY_LINK([#include <sys/types.h>
  912: dnl #include <utmp.h>], [struct utmp ut; ut.ut_host;],
  913: dnl ac_cv_func_ut_host_in_utmp=yes, ac_cv_func_ut_host_in_utmp=no)])
  914: dnl if test $su_cv_func_ut_host_in_utmp = yes; then
  915: dnl   AC_DEFINE(HAVE_UT_HOST)
  916: dnl fi
  917: 
  918: dnl AC_MSG_CHECKING(if we can get the system boot time)
  919: dnl AC_CACHE_VAL(su_cv_have_boot_time,
  920: dnl [AC_EGREP_CPP(yes,
  921: dnl [#ifdef HAVE_UTMPX_H
  922: dnl #include <utmpx.h>
  923: dnl #else
  924: dnl #include <utmp.h>
  925: dnl #endif
  926: dnl #ifdef BOOT_TIME
  927: dnl yes
  928: dnl #endif
  929: dnl ], su_cv_have_boot_time=yes, su_cv_have_boot_time=no)])
  930: dnl AC_MSG_RESULT($su_cv_have_boot_time)
  931: 
  932: AC_CACHE_CHECK(
  933:     [for struct rt_msghdr],
  934:     [ntp_cv_struct_rt_msghdr],
  935:     [AC_COMPILE_IFELSE(
  936: 	[AC_LANG_PROGRAM(
  937: 	    [[
  938: 		#include <sys/types.h>
  939: 		#include <sys/socket.h>
  940: 		#include <net/if.h>
  941: 		#include <net/route.h>
  942: 	    ]],
  943: 	    [[
  944: 		struct rt_msghdr p;
  945: 	    ]]
  946: 	)],
  947: 	[ntp_cv_struct_rt_msghdr=yes],
  948: 	[ntp_cv_struct_rt_msghdr=no]
  949:     )]
  950: )
  951: 
  952: AC_CACHE_CHECK(
  953:     [for struct rtattr],
  954:     [ntp_cv_rtattr],
  955:     [AC_COMPILE_IFELSE(
  956: 	[AC_LANG_PROGRAM(
  957: 	    [[
  958: 		#include <stddef.h>
  959: 		#include <sys/socket.h>
  960: 		#include <linux/rtnetlink.h>
  961: 	    ]],
  962: 	    [[
  963: 		struct rtattr p;
  964: 	    ]]
  965: 	)],
  966: 	[ntp_cv_rtattr=yes],
  967: 	[ntp_cv_rtattr=no]
  968:     )]
  969: )
  970: 
  971: case "$ntp_cv_struct_rt_msghdr$ntp_cv_rtattr" in
  972:  *yes*)
  973:     AC_DEFINE([HAS_ROUTING_SOCKET], [1],
  974: 	[Do we have a routing socket (rt_msghdr or rtattr)?])
  975:     case "$ntp_cv_rtattr" in
  976:      yes)
  977: 	AC_DEFINE([HAVE_RTNETLINK], [1],
  978: 	    [Do we have Linux routing socket?])
  979:     esac
  980: esac
  981: 
  982: AC_CACHE_CHECK(
  983:     [struct sigaction for sa_sigaction],
  984:     [ntp_cv_struct_sigaction_has_sa_sigaction],
  985:     [AC_COMPILE_IFELSE(
  986: 	[AC_LANG_PROGRAM(
  987: 	    [[
  988: 		#include <signal.h>
  989: 	    ]],
  990: 	    [[
  991: 		struct sigaction act;
  992: 		act.sa_sigaction = 0;
  993: 	    ]]
  994: 	)],
  995: 	[ntp_cv_struct_sigaction_has_sa_sigaction=yes],
  996: 	[ntp_cv_struct_sigaction_has_sa_sigaction=no]
  997:     )]
  998: )
  999: case "$ntp_cv_struct_sigaction_has_sa_sigaction" in
 1000:  yes)
 1001:     AC_DEFINE([HAVE_SA_SIGACTION_IN_STRUCT_SIGACTION], [1], [Obvious])
 1002: esac
 1003: 
 1004: AC_CACHE_CHECK(
 1005:     [for struct ppsclockev],
 1006:     [ntp_cv_struct_ppsclockev],
 1007:     [AC_COMPILE_IFELSE(
 1008: 	[AC_LANG_PROGRAM(
 1009: 	    [[
 1010: 		#ifdef HAVE_SYS_TYPES_H
 1011: 		# include <sys/types.h>
 1012: 		#endif
 1013: 		#ifdef HAVE_SYS_TERMIOS_H
 1014: 		# include <sys/termios.h>
 1015: 		#endif
 1016: 		#ifdef HAVE_SYS_TIME_H
 1017: 		# include <sys/time.h>
 1018: 		#endif
 1019: 		#ifdef HAVE_SYS_PPSCLOCK_H
 1020: 		# include <sys/ppsclock.h>
 1021: 		#endif
 1022: 	    ]],
 1023: 	    [[
 1024: 		extern struct ppsclockev *pce;
 1025: 		return pce->serial;
 1026: 	    ]]
 1027: 	)],
 1028: 	[ntp_cv_struct_ppsclockev=yes],
 1029: 	[ntp_cv_struct_ppsclockev=no]
 1030:     )]
 1031: )
 1032: case "$ntp_cv_struct_ppsclockev" in
 1033:  yes)
 1034:     AC_DEFINE([HAVE_STRUCT_PPSCLOCKEV], [1],
 1035: 	[Does a system header define struct ppsclockev?])
 1036: esac
 1037: 
 1038: AC_CACHE_CHECK(
 1039:     [for struct sockaddr_storage],
 1040:     [ntp_cv_sockaddr_storage],
 1041:     [AC_COMPILE_IFELSE(
 1042: 	[AC_LANG_PROGRAM(
 1043: 	    [[
 1044: 		#ifdef HAVE_SYS_TYPES_H
 1045: 		# include <sys/types.h>
 1046: 		#endif
 1047: 		#ifdef HAVE_SYS_SOCKET_H
 1048: 		# include <sys/socket.h>
 1049: 		#endif
 1050: 		#ifdef HAVE_NETINET_IN_H
 1051: 		# include <netinet/in.h>
 1052: 		#endif
 1053: 	    ]],
 1054: 	    [[
 1055: 		struct sockaddr_storage n;
 1056: 	    ]]
 1057: 	)],
 1058: 	[ntp_cv_sockaddr_storage=yes],
 1059: 	[ntp_cv_sockaddr_storage=no]
 1060:     )]
 1061: )
 1062: case "$ntp_cv_sockaddr_storage" in
 1063:  yes)
 1064:     AC_DEFINE([HAVE_STRUCT_SOCKADDR_STORAGE], [1],
 1065: 	[Does a system header define struct sockaddr_storage?])
 1066: esac
 1067: 
 1068: AC_CACHE_CHECK(
 1069:     [for sockaddr_storage.ss_family],
 1070:     [ntp_cv_have_ss_family],
 1071:     [AC_COMPILE_IFELSE(
 1072: 	[AC_LANG_PROGRAM(
 1073: 	    [[
 1074: 		#ifdef HAVE_SYS_TYPES_H
 1075: 		# include <sys/types.h>
 1076: 		#endif
 1077: 		#ifdef HAVE_SYS_SOCKET_H
 1078: 		# include <sys/socket.h>
 1079: 		#endif
 1080: 		#ifdef HAVE_NETINET_IN_H
 1081: 		# include <netinet/in.h>
 1082: 		#endif
 1083: 	    ]],
 1084: 	    [[
 1085: 		struct sockaddr_storage s;
 1086: 		s.ss_family = 1;
 1087: 	    ]]
 1088: 	)],
 1089: 	[ntp_cv_have_ss_family=yes],
 1090: 	[ntp_cv_have_ss_family=no]
 1091:     )]
 1092: )
 1093: 
 1094: case "$ntp_cv_have_ss_family" in
 1095:  no)
 1096:     AC_CACHE_CHECK(
 1097: 	[for sockaddr_storage.__ss_family],
 1098: 	[ntp_cv_have___ss_family],
 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_SYS_SOCKET_H
 1106: 		    # include <sys/socket.h>
 1107: 		    #endif
 1108: 		    #ifdef HAVE_NETINET_IN_H
 1109: 		    # include <netinet/in.h>
 1110: 		    #endif
 1111: 		]],
 1112: 		[[
 1113: 		    struct sockaddr_storage s;
 1114: 		    s.__ss_family = 1;
 1115: 		]]
 1116: 	    )],
 1117: 	    [ntp_cv_have___ss_family=yes],
 1118: 	    [ntp_cv_have___ss_family=no]
 1119: 	)]
 1120:     )
 1121:     case "$ntp_cv_have___ss_family" in
 1122:      yes)
 1123: 	AC_DEFINE([HAVE___SS_FAMILY_IN_SS], [1],
 1124: 	    [Does struct sockaddr_storage have __ss_family?])
 1125:     esac
 1126: esac
 1127: 
 1128: AH_VERBATIM(
 1129:     [HAVE___SS_FAMILY_IN_SS_VERBATIM],
 1130:     [
 1131: 	/* Handle sockaddr_storage.__ss_family */
 1132: 	#ifdef HAVE___SS_FAMILY_IN_SS
 1133: 	# define ss_family __ss_family
 1134: 	#endif /* HAVE___SS_FAMILY_IN_SS */
 1135:     ]
 1136: )
 1137: 
 1138: AC_CACHE_CHECK(
 1139:     [for sockaddr_storage.ss_len],
 1140:     [ntp_cv_have_ss_len],
 1141:     [AC_COMPILE_IFELSE(
 1142: 	[AC_LANG_PROGRAM(
 1143: 	    [[
 1144: 		#ifdef HAVE_SYS_TYPES_H
 1145: 		# include <sys/types.h>
 1146: 		#endif
 1147: 		#ifdef HAVE_SYS_SOCKET_H
 1148: 		# include <sys/socket.h>
 1149: 		#endif
 1150: 		#ifdef HAVE_NETINET_IN_H
 1151: 		# include <netinet/in.h>
 1152: 		#endif
 1153: 	    ]],
 1154: 	    [[
 1155: 		struct sockaddr_storage s;
 1156: 		s.ss_len = 1;
 1157: 	    ]]
 1158: 	)],
 1159: 	[ntp_cv_have_ss_len=yes],
 1160: 	[ntp_cv_have_ss_len=no]
 1161:     )]
 1162: )
 1163: 
 1164: case "$ntp_cv_have_ss_len" in
 1165:  no)
 1166:     AC_CACHE_CHECK(
 1167: 	[for sockaddr_storage.__ss_len],
 1168: 	[ntp_cv_have___ss_len],
 1169: 	[AC_COMPILE_IFELSE(
 1170: 	    [AC_LANG_PROGRAM(
 1171: 		[[
 1172: 		    #ifdef HAVE_SYS_TYPES_H
 1173: 		    # include <sys/types.h>
 1174: 		    #endif
 1175: 		    #ifdef HAVE_SYS_SOCKET_H
 1176: 		    # include <sys/socket.h>
 1177: 		    #endif
 1178: 		    #ifdef HAVE_NETINET_IN_H
 1179: 		    # include <netinet/in.h>
 1180: 		    #endif
 1181: 		]],
 1182: 		[[
 1183: 		    struct sockaddr_storage s;
 1184: 		    s.__ss_len = 1;
 1185: 		]]
 1186: 	    )],
 1187: 	    [ntp_cv_have___ss_len=yes],
 1188: 	    [ntp_cv_have___ss_len=no]
 1189: 	)]
 1190:     )
 1191:     case "$ntp_cv_have___ss_len" in
 1192:      yes)
 1193: 	AC_DEFINE([HAVE___SS_LEN_IN_SS], [1],
 1194: 	    [Does struct sockaddr_storage have __ss_len?])
 1195:     esac
 1196: esac
 1197: 
 1198: AH_VERBATIM(
 1199:     [HAVE___SS_LEN_IN_SS_VERBATIM],
 1200:     [
 1201: 	/* Handle sockaddr_storage.__ss_len */
 1202: 	#ifdef HAVE___SS_LEN_IN_SS
 1203: 	# define ss_len __ss_len
 1204: 	#endif /* HAVE___SS_LEN_IN_SS */
 1205:     ]
 1206: )
 1207: 
 1208: #
 1209: # Look for in_port_t.
 1210: #
 1211: AC_CACHE_CHECK(
 1212:     [for in_port_t],
 1213:     [isc_cv_have_in_port_t],
 1214:     [AC_COMPILE_IFELSE(
 1215: 	[AC_LANG_PROGRAM(
 1216: 	    [[
 1217: 		#include <sys/types.h>
 1218: 		#include <netinet/in.h>
 1219: 	    ]],
 1220: 	    [[
 1221: 		in_port_t port = 25; 
 1222: 		return (0);
 1223: 	    ]]
 1224: 	)],
 1225: 	[isc_cv_have_in_port_t=yes],
 1226: 	[isc_cv_have_in_port_t=no]
 1227:     )]
 1228: )
 1229: case "$isc_cv_have_in_port_t" in
 1230:  no)
 1231: 	AC_DEFINE([ISC_PLATFORM_NEEDPORTT], [1],
 1232: 	    [Declare in_port_t?])
 1233: esac
 1234: 
 1235: case "$ac_cv_header_machine_soundcard_h$ac_cv_header_sys_soundcard_h" in
 1236:   *yes*)
 1237:     AC_CACHE_CHECK(
 1238: 	[for struct snd_size],
 1239: 	[ntp_cv_struct_snd_size],
 1240: 	[AC_COMPILE_IFELSE(
 1241: 	    [AC_LANG_PROGRAM(
 1242: 		[[
 1243: 		    #ifdef HAVE_MACHINE_SOUNDCARD_H
 1244: 		    # include <machine/soundcard.h>
 1245: 		    #endif
 1246: 		    #ifdef HAVE_SYS_SOUNDCARD_H
 1247: 		    # include <sys/soundcard.h>
 1248: 		    #endif
 1249: 		]],
 1250: 		[[
 1251: 		    extern struct snd_size *ss;
 1252: 		    return ss->rec_size;
 1253: 		]]
 1254: 	    )],
 1255: 	    [ntp_cv_struct_snd_size=yes],
 1256: 	    [ntp_cv_struct_snd_size=no]
 1257:         )]
 1258:     )
 1259:     case "$ntp_cv_struct_snd_size" in
 1260:      yes)
 1261: 	AC_DEFINE([HAVE_STRUCT_SND_SIZE], [1],
 1262: 	    [Do we have struct snd_size?])
 1263:     esac
 1264: esac
 1265: 
 1266: AC_CACHE_CHECK(
 1267:     [struct clockinfo for hz],
 1268:     [ntp_cv_struct_clockinfo_has_hz],
 1269:     [AC_COMPILE_IFELSE(
 1270: 	[AC_LANG_PROGRAM(
 1271: 	    [[
 1272: 		#include <sys/time.h>
 1273: 	    ]],
 1274: 	    [[
 1275: 		extern struct clockinfo *pc;
 1276: 		return pc->hz;
 1277: 	    ]]
 1278: 	)],
 1279: 	[ntp_cv_struct_clockinfo_has_hz=yes],
 1280: 	[ntp_cv_struct_clockinfo_has_hz=no]
 1281:     )]
 1282: )
 1283: case "$ntp_cv_struct_clockinfo_has_hz" in
 1284:  yes)
 1285:     AC_DEFINE([HAVE_HZ_IN_STRUCT_CLOCKINFO], [1], [Obvious])
 1286: esac
 1287: 
 1288: AC_CACHE_CHECK(
 1289:     [struct clockinfo for tickadj],
 1290:     [ntp_cv_struct_clockinfo_has_hz],
 1291:     [AC_COMPILE_IFELSE(
 1292: 	[AC_LANG_PROGRAM(
 1293: 	    [[
 1294: 		#include <sys/time.h>
 1295: 	    ]],
 1296: 	    [[
 1297: 		extern struct clockinfo *pc;
 1298: 		return pc->tickadj;
 1299: 	    ]]
 1300: 	)],
 1301: 	[ntp_cv_struct_clockinfo_has_hz=yes],
 1302: 	[ntp_cv_struct_clockinfo_has_hz=no]
 1303:     )]
 1304: )
 1305: case "$ntp_cv_struct_clockinfo_has_hz" in
 1306:  yes)
 1307:     AC_DEFINE([HAVE_TICKADJ_IN_STRUCT_CLOCKINFO], [1], [Obvious])
 1308: esac
 1309: 
 1310: AC_CACHE_CHECK(
 1311:     [for struct timespec],
 1312:     [ntp_cv_struct_timespec],
 1313:     [AC_COMPILE_IFELSE(
 1314: 	[AC_LANG_PROGRAM(
 1315: 	    [[
 1316: 		#include <sys/time.h>
 1317: 		/* Under SunOS, timespec is in sys/timepps.h,
 1318: 		   which needs errno.h and FRAC */
 1319: 		#ifdef HAVE_ERRNO_H
 1320: 		# include <errno.h>
 1321: 		#endif
 1322: 		#ifdef HAVE_SYS_TIMEPPS_H
 1323: 		# define FRAC 4294967296
 1324: 		# include <sys/timepps.h>
 1325: 		#endif
 1326: 	    ]],
 1327: 	    [[
 1328: 		struct timespec n;
 1329: 	    ]]
 1330: 	)],
 1331: 	[ntp_cv_struct_timespec=yes],
 1332: 	[ntp_cv_struct_timespec=no]
 1333:     )]
 1334: )
 1335: case "$ntp_cv_struct_timespec" in
 1336:  yes)
 1337:     AC_DEFINE([HAVE_STRUCT_TIMESPEC], [1], [struct timespec declared?])
 1338: esac
 1339: 
 1340: AC_CACHE_CHECK(
 1341:     [for struct ntptimeval],
 1342:     [ntp_cv_struct_ntptimeval],
 1343:     [AC_COMPILE_IFELSE(
 1344: 	[AC_LANG_PROGRAM(
 1345: 	    [[
 1346: 		#include <sys/time.h>
 1347: 		#include <sys/timex.h>
 1348: 	    ]],
 1349: 	    [[
 1350: 		struct ntptimeval n;
 1351: 	    ]]
 1352: 	)],
 1353: 	[ntp_cv_struct_ntptimeval=yes],
 1354: 	[ntp_cv_struct_ntptimeval=no]
 1355:     )]
 1356: )
 1357: case "$ntp_cv_struct_ntptimeval" in
 1358:  yes)
 1359:     AC_DEFINE([HAVE_STRUCT_NTPTIMEVAL], [1],
 1360: 	[Do we have struct ntptimeval?])
 1361: esac
 1362: 
 1363: AC_CHECK_MEMBERS(
 1364:     [struct ntptimeval.time.tv_nsec],
 1365:     [],
 1366:     [],
 1367:     [
 1368: 	#ifdef HAVE_SYS_TIME_H
 1369: 	#include <sys/time.h>
 1370: 	#else
 1371: 	# ifdef HAVE_TIME_H
 1372: 	#  include <time.h>
 1373: 	# endif
 1374: 	#endif
 1375: 	#ifdef HAVE_SYS_TIMEX_H
 1376: 	# include <sys/timex.h>
 1377: 	#else
 1378: 	# ifdef HAVE_TIMEX_H
 1379: 	#  include <timex.h>
 1380: 	# endif
 1381: 	#endif
 1382:     ]
 1383: )
 1384: 
 1385: AC_C_INLINE
 1386: 
 1387: case "$ac_cv_c_inline" in
 1388:  '')
 1389:     ;;
 1390:  *)
 1391:     AC_DEFINE([HAVE_INLINE], [1], [inline keyword or macro available])
 1392:     AC_SUBST([HAVE_INLINE])
 1393: esac
 1394: 
 1395: AC_C_CHAR_UNSIGNED		dnl CROSS_COMPILE?
 1396: AC_CHECK_SIZEOF([signed char])
 1397: AC_CHECK_TYPES([s_char])
 1398: AC_CHECK_SIZEOF([int])
 1399: AC_CHECK_SIZEOF([long])
 1400: 
 1401: case "$ac_cv_c_char_unsigned$ac_cv_sizeof_signed_char$ac_cv_type_s_char" in
 1402:  *yes)
 1403:     # We have a typedef for s_char.  Might as well believe it...
 1404:     ;;
 1405:  no0no)
 1406:     # We have signed chars, can't say 'signed char', no s_char typedef.
 1407:     AC_DEFINE([NEED_S_CHAR_TYPEDEF], [1],
 1408: 	[Do we need an s_char typedef?])
 1409:     ;;
 1410:  no1no)
 1411:     # We have signed chars, can say 'signed char', no s_char typedef.
 1412:     AC_DEFINE([NEED_S_CHAR_TYPEDEF], [1],
 1413: 	[Do we need an s_char typedef?])
 1414:     ;;
 1415:  yes0no)
 1416:     # We have unsigned chars, can't say 'signed char', no s_char typedef.
 1417:     AC_MSG_ERROR([No way to specify a signed character!])
 1418:     ;;
 1419:  yes1no)
 1420:     # We have unsigned chars, can say 'signed char', no s_char typedef.
 1421:     AC_DEFINE([NEED_S_CHAR_TYPEDEF], [1],
 1422: 	[Do we need an s_char typedef?])
 1423:     ;;
 1424: esac
 1425: AC_TYPE_UID_T
 1426: 
 1427: case "$host" in
 1428:  *-*-aix[[456]]*)
 1429: 	# (prr) aix 4.1 doesn't have clock_settime, but in aix 4.3 it's a stub
 1430: 	# (returning ENOSYS).  I didn't check 4.2.  If, in the future,
 1431: 	# IBM pulls its thumbs out long enough to implement clock_settime,
 1432: 	# this conditional will need to change.  Maybe use AC_TRY_RUN
 1433: 	# instead to try to set the time to itself and check errno.
 1434:     ;;
 1435:  *)
 1436:     AC_SEARCH_LIBS([clock_gettime], [rt])
 1437:     AC_CHECK_FUNCS([clock_gettime clock_settime])
 1438:     ;;
 1439: esac
 1440: AC_CHECK_FUNCS([daemon])
 1441: AC_CHECK_FUNCS(
 1442:     [finite],
 1443:     [],
 1444:     [AC_CHECK_FUNCS(
 1445: 	[isfinite],
 1446: 	[],
 1447: 	[
 1448: 	    AC_MSG_CHECKING([for isfinite with <math.h>])
 1449: 	    _libs=$LIBS
 1450: 	    LIBS="$LIBS -lm"
 1451: 	    AC_LINK_IFELSE(
 1452: 		[AC_LANG_PROGRAM(
 1453: 		    [[
 1454: 			#include <math.h>
 1455: 		    ]],
 1456: 		    [[
 1457: 			float f = 0.0;
 1458: 			isfinite(f);
 1459: 		    ]]
 1460: 		)],
 1461: 		[ans=yes],
 1462: 		[ans=no]
 1463: 	    )
 1464: 	    LIBS=$_libs
 1465: 	    AC_MSG_RESULT([$ans])
 1466: 	    case "$ans" in
 1467: 	     yes)
 1468: 		AC_DEFINE([HAVE_ISFINITE], [1])
 1469: 	    esac
 1470: 	]
 1471:     )]
 1472: )
 1473: 
 1474: AC_CHECK_FUNCS([getbootfile getclock getdtablesize])
 1475: 
 1476: AC_ARG_ENABLE(
 1477:     [getifaddrs],
 1478:     [AS_HELP_STRING(
 1479: 	[--enable-getifaddrs],
 1480: 	[s Enable the use of getifaddrs() [[yes|no|glibc]].
 1481: glibc: Use getifaddrs() in glibc if you know it supports IPv6.]
 1482:     )],
 1483:     [want_getifaddrs="$enableval"],
 1484:     [want_getifaddrs="yes"]
 1485: )
 1486: 
 1487: case $want_getifaddrs in
 1488:  yes|glibc)
 1489:     #
 1490:     # Do we have getifaddrs() ?
 1491:     #
 1492:     case $host in
 1493:      *-*linux*)
 1494: 	# Some recent versions of glibc support getifaddrs() which does not
 1495: 	# provide AF_INET6 addresses while the function provided by the USAGI
 1496: 	# project handles the AF_INET6 case correctly.  We need to avoid
 1497: 	# using the former but prefer the latter unless overridden by
 1498: 	# --enable-getifaddrs=glibc.
 1499: 	case "$want_getifaddrs" in
 1500: 	 glibc)
 1501: 	    AC_CHECK_FUNCS([getifaddrs])
 1502: 	    ;;
 1503: 	 *)
 1504: 	    save_LIBS="$LIBS"
 1505: 	    LIBS="-L/usr/local/v6/lib $LIBS"
 1506: 	    AC_CHECK_LIB(
 1507: 		[inet6],
 1508: 		[getifaddrs],
 1509: 		[ans=yes],
 1510: 		[ans=no]
 1511: 	    )
 1512: 	    case "$ans" in
 1513: 	     yes)
 1514: 		LIBS="$LIBS -linet6"
 1515: 		AC_DEFINE([HAVE_GETIFADDRS], [1])
 1516: 		;;
 1517: 	     *)
 1518: 		LIBS=${save_LIBS}
 1519: 		;;
 1520: 	    esac
 1521: 	    ;;
 1522: 	esac
 1523: 	;;
 1524:     esac
 1525:     ;;
 1526:  *)
 1527:     AC_CHECK_FUNCS([getifaddrs])
 1528:     ;;
 1529: esac
 1530: 
 1531: AC_CACHE_CHECK(
 1532:     [type of socklen arg for getsockname()],
 1533:     [ntp_cv_getsockname_socklen_type],
 1534:     [
 1535:     getsockname_socklen_type_found=no
 1536:     for getsockname_arg2 in 'struct sockaddr *' 'void *'; do
 1537: 	for ntp_cv_getsockname_socklen_type in 'socklen_t' 'size_t' 'unsigned int' 'int'; do
 1538: 	    AC_COMPILE_IFELSE(
 1539: 		[AC_LANG_PROGRAM(
 1540: 		    [[
 1541: 			#ifdef HAVE_SYS_TYPES_H
 1542: 			# include <sys/types.h>
 1543: 			#endif
 1544: 			#ifdef HAVE_SYS_SOCKET_H
 1545: 			# include <sys/socket.h>
 1546: 			#endif
 1547: 		    ]], [[
 1548: 			extern
 1549: 			getsockname(int, $getsockname_arg2, 
 1550: 				$ntp_cv_getsockname_socklen_type *);
 1551: 		    ]]
 1552: 		)],
 1553: 		[getsockname_socklen_type_found=yes ; break 2],
 1554: 		[]
 1555: 	    )
 1556: 	done
 1557:     done
 1558:     case "$getsockname_socklen_type_found" in
 1559:      no)
 1560: 	ntp_cv_getsockname_socklen_type='socklen_t'
 1561:     esac
 1562:     AS_UNSET([getsockname_arg2])
 1563:     AS_UNSET([getsockname_socklen_type_found])
 1564:     ]
 1565: )
 1566: AC_DEFINE_UNQUOTED([GETSOCKNAME_SOCKLEN_TYPE],
 1567: 		   [$ntp_cv_getsockname_socklen_type],
 1568: 		   [What is getsockname()'s socklen type?])
 1569: 
 1570: AC_CHECK_FUNCS([getuid getrusage hstrerror])
 1571: AC_CHECK_FUNC([gettimeofday], [], [
 1572: case "$host" in
 1573:   *-*-mpeix*) ac_cv_func_gettimeofday=yes
 1574:     ;;
 1575: esac])
 1576: 
 1577: #
 1578: # Check for if_nametoindex() for IPv6 scoped addresses support
 1579: #
 1580: case "$host" in
 1581:  *-hp-hpux*)
 1582:     AC_SEARCH_LIBS([if_nametoindex], [ipv6])
 1583: esac
 1584: AC_CHECK_FUNCS([if_nametoindex])
 1585: case "$ac_cv_func_if_nametoindex" in
 1586:  yes)
 1587: 	AC_DEFINE([ISC_PLATFORM_HAVEIFNAMETOINDEX], [1],
 1588: 	    [ISC: do we have if_nametoindex()?])
 1589: esac
 1590: 
 1591: AC_SEARCH_LIBS([inet_ntop], [resolv], , , [-lsocket -lnsl])
 1592: AC_CHECK_FUNC([inet_ntop], [], 
 1593:     [AC_DEFINE([ISC_PLATFORM_NEEDNTOP], [1], [ISC: provide inet_ntop()])])
 1594: AC_CHECK_FUNC([inet_pton], [],
 1595:     [AC_DEFINE([ISC_PLATFORM_NEEDPTON], [1], [ISC: provide inet_pton()])])
 1596: 
 1597: case "$ac_cv_header_kvm_h" in
 1598:  yes)
 1599:     AC_CHECK_FUNCS([kvm_open])
 1600:     ;;
 1601: esac
 1602: 
 1603: AC_CHECK_FUNCS([memcpy memmove memset])
 1604: case "$host" in
 1605:  *-*-sco3.2v5.0.*)
 1606:     # Just stubs.  Idiots.
 1607:     ;;
 1608:  *) AC_CHECK_FUNCS([mkstemp])
 1609:     ;;
 1610: esac
 1611: AC_CHECK_FUNCS([mktime])
 1612: case "$host" in
 1613:  *-*-aix[[456]]*)
 1614:     # Just a stub.  Idiots.
 1615:     ;;
 1616:  *-*-irix[[45]]*)
 1617:     # Just a stub in "old" Irix.  Idiots.
 1618:     ;;
 1619:  *-*-*linux*)
 1620:     # there, but more trouble than it is worth for now (resolver problems)
 1621:     ;;
 1622:  *-*-qnx*)
 1623:     # Apparently there but not working in QNX.  Idiots?
 1624:     ;;
 1625:  *-*-sco3.2v5.0.*)
 1626:     # Just a stub.  Idiots.
 1627:     ;;
 1628:  alpha*-dec-osf4*|alpha*-dec-osf5*)
 1629:     # mlockall is there, as a #define calling memlk via <sys/mman.h>
 1630:     # Not easy to test for - cheat.
 1631:     AC_CHECK_FUNCS([memlk], [ac_cv_func_mlockall=yes])
 1632:     AC_CHECK_FUNCS([mlockall])
 1633:     ;;
 1634:  *) AC_CHECK_FUNCS([mlockall])
 1635:     ;;
 1636: esac
 1637: AC_CHECK_FUNCS([nice nlist])
 1638: case "$host" in
 1639:  *-*-solaris2.6)
 1640:     # Broken...
 1641:     ;;
 1642:  *) AC_CHECK_FUNCS([ntp_adjtime ntp_gettime])
 1643:     ;;
 1644: esac
 1645: AC_CHECK_FUNCS([plock pututline pututxline readlink recvmsg rtprio])
 1646: case "$host" in
 1647:  *-*-aix[[456]]*)
 1648:     # Just a stub in AIX 4.  Idiots.
 1649:     ;;
 1650:  *-*-solaris2.5*)
 1651:     # Just stubs in solaris2.5.  Idiots.
 1652:     ;;
 1653:  *) AC_CHECK_FUNCS([sched_setscheduler])
 1654:     ;;
 1655: esac
 1656: AC_CHECK_FUNCS([setlinebuf setpgid setpriority setsid])
 1657: AC_CHECK_FUNCS([setrlimit])
 1658: AC_CHECK_FUNCS([settimeofday], ,[
 1659: case "$host" in
 1660:   *-*-mpeix*) ac_cv_func_settimeofday=yes
 1661:     ;;
 1662: esac])
 1663: AC_CHECK_FUNCS([setvbuf sigaction sigvec sigset sigsuspend stime strchr])
 1664: AC_CHECK_FUNCS([sysconf sysctl snprintf strdup strerror strstr timegm])
 1665: case "$host" in
 1666:  *-*-aix[[456]]*)
 1667:     # Just stubs.  Idiots.
 1668:     ;;
 1669:  *-*-netbsd1*)
 1670:     # Just stubs.  Idiots.
 1671:     ;;
 1672:  *-*-netbsdelf1*)
 1673:     # Just stubs.  Idiots.
 1674:     ;;
 1675:  *-*-openbsd*)
 1676:     # Just stubs.  Idiots.
 1677:     ;;
 1678:  *) AC_CHECK_FUNCS([timer_create timer_settime])
 1679:     ;;
 1680: esac
 1681: AC_CHECK_FUNCS([umask uname updwtmp updwtmpx vsnprintf vsprintf])
 1682: 
 1683: ###
 1684: 
 1685: # http://bugs.ntp.org/737
 1686: case "$ac_cv_func_recvmsg" in
 1687:  yes)
 1688:     AC_CACHE_CHECK(
 1689: 	[if we need extra help to define struct iovec],
 1690: 	[ntp_cv_struct_iovec_help],
 1691: 	[
 1692: 	    compiled=no
 1693: 	    for ntp_cv_struct_iovec_help in '0' '1'; do
 1694: 		AC_COMPILE_IFELSE(
 1695: 		    [AC_LANG_PROGRAM(
 1696: 			[[
 1697: 			    #ifdef HAVE_SYS_TYPES_H
 1698: 			    # include <sys/types.h>
 1699: 			    #endif
 1700: 			    #ifdef HAVE_SYS_SOCKET_H
 1701: 			    # include <sys/socket.h>
 1702: 			    #endif
 1703: 			    #if $ntp_cv_struct_iovec_help
 1704: 			    # include <sys/uio.h>
 1705: 			    #endif
 1706: 			]],
 1707: 			[[
 1708: 			    void foo(void) {
 1709: 				ssize_t x;
 1710: 				int s = 0;
 1711: 				struct iovec iov;
 1712: 				struct msghdr mh;
 1713: 				int flags = 0;
 1714: 
 1715: 				mh.msg_iov = &iov;
 1716: 				x = recvmsg(s, &mh, flags);
 1717: 			    }
 1718: 			]]
 1719: 		    )],
 1720: 		    [compiled=yes ; break 1],
 1721: 		    []
 1722: 		)
 1723: 	    done
 1724: 	    case "$compiled" in
 1725: 	     no)
 1726: 		ntp_cv_struct_iovec_help=0
 1727: 	    esac
 1728: 	    AS_UNSET([compiled])
 1729: 	]
 1730:     )
 1731:     case "$ntp_cv_struct_iovec_help" in
 1732:      1)
 1733: 	AC_DEFINE([HAVE_SYS_UIO_H], [1],
 1734: 	    [Use sys/uio.h for struct iovec help])
 1735:     esac
 1736: esac
 1737: 
 1738: case "$host" in
 1739:  *-*-sunos4*)
 1740:     AC_DEFINE([SPRINTF_CHAR], [1], [*s*printf() functions are char*])
 1741:     ;;
 1742: esac
 1743: 
 1744: AC_CACHE_CHECK(
 1745:     [number of arguments to gettimeofday()],
 1746:     [ntp_cv_func_Xettimeofday_nargs],
 1747:     [AC_COMPILE_IFELSE(
 1748: 	[AC_LANG_PROGRAM(
 1749: 	    [[
 1750: 		#include <sys/time.h>
 1751: 	    ]],
 1752: 	    [[
 1753: 		gettimeofday(0, 0);
 1754: 		settimeofday(0, 0);
 1755: 	    ]]
 1756: 	)],
 1757: 	[ntp_cv_func_Xettimeofday_nargs=2],
 1758: 	[ntp_cv_func_Xettimeofday_nargs=1]
 1759:     )]
 1760: )
 1761: case "$ntp_cv_func_Xettimeofday_nargs" in
 1762:  1)
 1763:     AC_DEFINE([SYSV_TIMEOFDAY], [1], [Does Xettimeofday take 1 arg?])
 1764: esac
 1765: 
 1766: AC_CACHE_CHECK(
 1767:     [number of arguments taken by setpgrp()],
 1768:     [ntp_cv_func_setpgrp_nargs],
 1769:     [AC_COMPILE_IFELSE(
 1770: 	[AC_LANG_PROGRAM(
 1771: 	    [[
 1772: 		#ifdef HAVE_SYS_TYPES_H
 1773: 		# include <sys/types.h>
 1774: 		#endif
 1775: 		#ifdef HAVE_UNISTD_H
 1776: 		# include <unistd.h>
 1777: 		#endif
 1778: 	    ]],
 1779: 	    [[
 1780: 		setpgrp(0, 0);
 1781: 	    ]]
 1782: 	)],
 1783: 	[ntp_cv_func_setpgrp_nargs=2],
 1784: 	[ntp_cv_func_setpgrp_nargs=0]
 1785:     )]
 1786: )
 1787: case "$ntp_cv_func_setpgrp_nargs" in
 1788:  0)
 1789:     AC_DEFINE([HAVE_SETPGRP_0], [1],
 1790: 	      [define if setpgrp takes 0 arguments])
 1791: esac
 1792: 
 1793: dnl we require ANSI C which mandates void * here
 1794: dnl we should clean up all uses of QSORT_USES_VOID_P so
 1795: dnl this can be removed.
 1796: AC_DEFINE([QSORT_USES_VOID_P], [1],
 1797:     [Does qsort expect to work on "void *" stuff?])
 1798: 
 1799: AC_CACHE_CHECK(
 1800:     [if we need to declare 'errno'],
 1801:     [ntp_cv_decl_errno],
 1802:     [AC_COMPILE_IFELSE(
 1803: 	[AC_LANG_PROGRAM(
 1804: 	    [[
 1805: 		#ifdef HAVE_ERRNO_H
 1806: 		# include <errno.h>
 1807: 		#endif
 1808: 	    ]],
 1809: 	    [[
 1810: 		errno = 0;
 1811: 	    ]]
 1812: 	)],
 1813: 	[ntp_cv_decl_errno=no],
 1814: 	[ntp_cv_decl_errno=yes]
 1815:     )]
 1816: )
 1817: case "$ntp_cv_decl_errno" in
 1818:  yes)
 1819:     AC_DEFINE([DECL_ERRNO], [1], [Declare errno?])
 1820: esac
 1821: 
 1822: dnl (prr) aix 4.3 defines h_errno as (*(int *)h_errno_which()) for
 1823: dnl MT purposes.  This makes the line "extern int h_errno" choke
 1824: dnl the compiler.  Hopefully adding !defined(h_errno) fixes this
 1825: dnl without breaking any other platforms.
 1826: dnl
 1827: AC_CACHE_CHECK(
 1828:     [if we may declare 'h_errno'],
 1829:     [ntp_cv_decl_h_errno],
 1830:     [AC_COMPILE_IFELSE(
 1831: 	[AC_LANG_PROGRAM(
 1832: 	    [[
 1833: 		#include <sys/types.h>
 1834: 		#ifdef HAVE_NETINET_IN_H
 1835: 		# include <netinet/in.h>
 1836: 		#endif
 1837: 		#ifdef HAVE_ARPA_NAMESER_H
 1838: 		# include <arpa/nameser.h>
 1839: 		#endif
 1840: 		#ifdef HAVE_NETDB_H
 1841: 		# include <netdb.h>
 1842: 		#endif
 1843: 		#ifdef HAVE_RESOLV_H
 1844: 		# include <resolv.h>
 1845: 		#endif
 1846: 	    ]],
 1847: 	    [[
 1848: 		extern int h_errno;
 1849: 	    ]]
 1850: 	)],
 1851: 	[ntp_cv_decl_h_errno=yes],
 1852: 	[ntp_cv_decl_h_errno=no]
 1853:     )]
 1854: )
 1855: case "$ntp_cv_decl_h_errno" in
 1856:  yes) 
 1857:     AC_DEFINE([DECL_H_ERRNO], [1], [Declare h_errno?])
 1858: esac
 1859: 
 1860: AC_CACHE_CHECK(
 1861:     [if declaring 'syscall()' is ok],
 1862:     [ntp_cv_decl_syscall],
 1863:     [AC_COMPILE_IFELSE(
 1864: 	[AC_LANG_PROGRAM(
 1865: 	    [[
 1866: 		#ifdef HAVE_SYS_TYPES_H
 1867: 		# include <sys/types.h>
 1868: 		#endif
 1869: 		#ifdef HAVE_UNISTD_H
 1870: 		# include <unistd.h>
 1871: 		#endif
 1872: 	    ]],
 1873: 	    [[
 1874: 		extern int syscall (int, ...);
 1875: 	    ]]
 1876: 	)]
 1877: 	[ntp_cv_decl_syscall=yes],
 1878: 	[ntp_cv_decl_syscall=no]
 1879:     )]
 1880: )
 1881: case "$ntp_cv_decl_syscall" in
 1882:  yes)
 1883:     AC_DEFINE([DECL_SYSCALL], [1], [Declare syscall()?])
 1884: esac
 1885: 
 1886: case "$host" in
 1887:  *-*-aix4.3.*)
 1888:     AC_DEFINE([DECL_HSTRERROR_0], [1], [Declaration style])		# Needed for XLC under AIX 4.3.2
 1889:     ;;
 1890:  *-*-mpeix*)
 1891:     AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style])
 1892:     AC_DEFINE([DECL_INET_NTOA_0], [1], [Declaration style])
 1893:     AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style])
 1894:     AC_DEFINE([DECL_SELECT_0], [1], [Declaration style])
 1895:     AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style])
 1896:     AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style])
 1897:     AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style])
 1898:     ;;
 1899:  *-*-osf[[45]]*)
 1900:     AC_DEFINE([DECL_PLOCK_0], [1], [Declaration style])
 1901:     AC_DEFINE([DECL_STIME_1], [1], [Declaration style])
 1902:     ;;
 1903:  *-*-qnx*)
 1904:     AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style])
 1905:     ;;
 1906:  *-*-riscos4*)
 1907:     AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style])
 1908:     AC_DEFINE([DECL_BZERO_0], [1], [Declaration style])
 1909:     AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style])
 1910:     AC_DEFINE([DECL_IPC_0], [1], [Declaration style])
 1911:     AC_DEFINE([DECL_MEMMOVE_0], [1], [Declaration style])
 1912:     AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style])
 1913:     AC_DEFINE([DECL_RENAME_0], [1], [Declaration style])
 1914:     AC_DEFINE([DECL_SELECT_0], [1], [Declaration style])
 1915:     AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style])
 1916:     AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style])
 1917:     AC_DEFINE([DECL_STDIO_0], [1], [Declaration style])
 1918:     AC_DEFINE([DECL_STRTOL_0], [1], [Declaration style])
 1919:     AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style])
 1920:     AC_DEFINE([DECL_TIME_0], [1], [Declaration style])
 1921:     AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style])
 1922:     AC_DEFINE([DECL_TOLOWER_0], [1], [Declaration style])
 1923:     ;;
 1924:  *-*-solaris2*)
 1925:     AC_DEFINE([DECL_MKSTEMP_0], [1], [Declaration style])
 1926:     AC_DEFINE([DECL_SETPRIORITY_1], [1], [Declaration style])
 1927:     case "$host" in
 1928:      *-*-solaris2.4)
 1929:         AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style])
 1930: 	;;
 1931:     esac
 1932:     ;;
 1933:  *-*-sunos4*)
 1934:     AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style])
 1935:     AC_DEFINE([DECL_BCOPY_0], [1], [Declaration style])
 1936:     AC_DEFINE([DECL_BZERO_0], [1], [Declaration style])
 1937:     AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style])
 1938:     AC_DEFINE([DECL_IPC_0], [1], [Declaration style])
 1939:     AC_DEFINE([DECL_MEMMOVE_0], [1], [Declaration style])
 1940:     AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style])
 1941:     AC_DEFINE([DECL_MKSTEMP_0], [1], [Declaration style])
 1942:     AC_DEFINE([DECL_RENAME_0], [1], [Declaration style])
 1943:     AC_DEFINE([DECL_SELECT_0], [1], [Declaration style])
 1944:     AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style])
 1945:     AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style])
 1946:     AC_DEFINE([DECL_SIGVEC_0], [1], [Declaration style])
 1947:     case "`basename $ac_cv_prog_CC`" in
 1948:      acc*) ;;
 1949:      *) AC_DEFINE([DECL_STDIO_0], [1], [Declaration style])
 1950: 	;;
 1951:     esac
 1952:     AC_DEFINE([DECL_STRTOL_0], [1], [Declaration style])
 1953:     AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style])
 1954:     AC_DEFINE([DECL_TIME_0], [1], [Declaration style])
 1955:     AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style])
 1956:     AC_DEFINE([DECL_TOLOWER_0], [1], [Declaration style])
 1957:     AC_DEFINE([DECL_TOUPPER_0], [1], [Declaration style])
 1958:     AC_DEFINE([DECL_STRERROR_0], [1], [Declaration style])
 1959:     ;;
 1960:  *-*-ultrix4*)
 1961:     AC_DEFINE([DECL_ADJTIME_0], [1], [Declaration style])
 1962:     AC_DEFINE([DECL_BZERO_0], [1], [Declaration style])
 1963:     AC_DEFINE([DECL_CFSETISPEED_0], [1], [Declaration style])
 1964:     AC_DEFINE([DECL_IOCTL_0], [1], [Declaration style])
 1965:     AC_DEFINE([DECL_IPC_0], [1], [Declaration style])
 1966:     AC_DEFINE([DECL_MKTEMP_0], [1], [Declaration style])
 1967:     AC_DEFINE([DECL_NLIST_0], [1], [Declaration style])
 1968:     AC_DEFINE([DECL_PLOCK_0], [1], [Declaration style])
 1969:     AC_DEFINE([DECL_SELECT_0], [1], [Declaration style])
 1970:     AC_DEFINE([DECL_SETITIMER_0], [1], [Declaration style])
 1971:     AC_DEFINE([DECL_SETPRIORITY_0], [1], [Declaration style])
 1972:     AC_DEFINE([DECL_STIME_0], [1], [Declaration style])
 1973:     AC_DEFINE([DECL_SYSLOG_0], [1], [Declaration style])
 1974:     AC_DEFINE([DECL_TIMEOFDAY_0], [1], [Declaration style])
 1975:     ;;
 1976: esac
 1977: 
 1978: case "$host" in
 1979:  *-*-sco3.2*)
 1980:     AC_DEFINE([TERMIOS_NEEDS__SVID3], [1],
 1981: 	[Do we need to #define _SVID3 when we #include <termios.h>?])
 1982:     ;;
 1983: esac
 1984: 
 1985: case "$host" in
 1986:  *-*-hpux[[567]]*)
 1987:     AC_DEFINE([NEED_RCVBUF_SLOP], [1],
 1988: 	[Do we need extra room for SO_RCVBUF? (HPUX < 8)])
 1989: esac
 1990: 
 1991: dnl Using AC_CACHE_CHECK to honor preset ntp_cv_var_open_bcast_socket
 1992: AC_CACHE_CHECK(
 1993:     [if we will open the broadcast socket],
 1994:     [ntp_cv_var_open_bcast_socket],
 1995:     [
 1996: 	ans=yes
 1997: 	case "$host" in
 1998: 	 *-*-domainos)
 1999: 	    ans=no
 2000: 	esac
 2001: 	ntp_cv_var_open_bcast_socket=$ans
 2002:     ]
 2003: )
 2004: case "$ntp_cv_var_open_bcast_socket" in
 2005:  yes)
 2006:     AC_DEFINE([OPEN_BCAST_SOCKET], [1],
 2007: 	[Should we open the broadcast socket?])
 2008: esac
 2009: 
 2010: case "$host" in
 2011:  *-*-hpux*)
 2012:     AC_DEFINE([NEED_HPUX_FINDCONFIG], [1],
 2013: 	[Do we want the HPUX FindConfig()?])
 2014: esac
 2015: 
 2016: dnl using AC_CACHE_CHECK to honor preset $ntp_cv_arg_setpgrp_negpid
 2017: AC_CACHE_CHECK(
 2018:     [if process groups are set with -pid],
 2019:     [ntp_cv_arg_setpgrp_negpid],
 2020:     [
 2021: 	case "$host" in
 2022: 	 *-*-hpux[[567]]*)
 2023: 	    ans=no
 2024: 	    ;;
 2025: 	 *-*-hpux*)
 2026: 	    ans=yes
 2027: 	    ;;
 2028: 	 *-*-*linux*)
 2029: 	    ans=yes
 2030: 	    ;;
 2031: 	 *-*-sunos3*)
 2032: 	    ans=yes
 2033: 	    ;;
 2034: 	 *-*-ultrix2*)
 2035: 	    ans=yes
 2036: 	    ;;
 2037: 	 *)
 2038: 	    ans=no
 2039: 	    ;;
 2040: 	esac
 2041: 	ntp_cv_arg_setpgrp_negpid=$ans
 2042:     ]
 2043: )
 2044: case "$ntp_cv_arg_setpgrp_negpid" in
 2045:  yes)
 2046:     AC_DEFINE([UDP_BACKWARDS_SETOWN], [1],
 2047: 	[Do we set process groups with -pid?])
 2048: esac
 2049: 
 2050: AC_CACHE_CHECK(
 2051:     [if we need a ctty for F_SETOWN],
 2052:     [ntp_cv_func_ctty_for_f_setown],
 2053:     [
 2054: 	case "$host" in
 2055: 	 *-*-bsdi[23]*)
 2056: 	    ans=yes
 2057: 	    ;;
 2058: 	 *-*-freebsd*)
 2059: 	    ans=yes
 2060: 	    ;;
 2061: 	# NetBSD versions prior to 3.99.8 require a CTTY for F_SETOWN,
 2062: 	# while later versions will fail a ioctl(TIOCSCTTY, 0) call in
 2063: 	# some cases and so should not have USE_FSETOWNCTTY.  "netbsd"
 2064: 	# in $host may be followed by "aout", "ecoff", or "elf".
 2065: 	 *-*-netbsd*[a-z]3.[0-8]*|*-*-netbsd*[a-z][0-2].*|*-*-netbsd*[a-z]3.99.[0-7])
 2066: 	    ans=yes
 2067: 	    ;;
 2068: 	 *-*-netbsd3.[0-8]*|*-*-netbsd[0-2].*|*-*-netbsd3.99.[0-7])
 2069: 	    ans=yes
 2070: 	    ;;
 2071: 	 *-*-openbsd*)
 2072: 	    ans=yes
 2073: 	    ;;
 2074: 	 *-*-osf*)
 2075: 	    ans=yes
 2076: 	    ;;
 2077: 	 *-*-darwin*)
 2078: 	    ans=yes
 2079: 	    ;;
 2080: 	 *) 
 2081: 	    ans=no
 2082: 	    ;;
 2083: 	esac
 2084: 	ntp_cv_func_ctty_for_f_setown=$ans
 2085:     ]
 2086: )
 2087: case "$ntp_cv_func_ctty_for_f_setown" in
 2088:  yes)
 2089:     AC_DEFINE([USE_FSETOWNCTTY], [1], [Must we have a CTTY for fsetown?])
 2090: esac
 2091: 
 2092: AC_CACHE_CHECK(
 2093:     [if the OS clears cached routes when more specifics become available],
 2094:     [ntp_cv_os_routeupdates],
 2095:     [
 2096: 	case "$host" in
 2097: 	 *-*-netbsd*)
 2098: 	    ans=yes
 2099: 	    ;;
 2100: 	 *) 
 2101: 	    ans=no
 2102: 	    ;;
 2103: 	esac
 2104: 	ntp_cv_os_routeupdates=$ans
 2105:     ]
 2106: )
 2107: case "$ntp_cv_os_routeupdates" in
 2108:  yes)
 2109:     AC_DEFINE([OS_MISSES_SPECIFIC_ROUTE_UPDATES], [1],
 2110: 	[need to recreate sockets on changed routing?])
 2111: esac
 2112: 
 2113: AC_CACHE_CHECK(
 2114:     [if the wildcard socket needs REUSEADDR to bind other addresses],
 2115:     [ntp_cv_os_wildcardreuse],
 2116:     [
 2117: 	case "$host" in
 2118: 	 *-*-*linux*)
 2119: 	    ans=yes
 2120: 	    ;;
 2121: 	 *) ans=no
 2122: 	    ;;
 2123: 	esac
 2124: 	ntp_cv_os_wildcardreuse=$ans
 2125:     ]
 2126: )
 2127: case "$ntp_cv_os_wildcardreuse" in
 2128:  yes)
 2129:     AC_DEFINE([OS_NEEDS_REUSEADDR_FOR_IFADDRBIND], [1],
 2130: 	[wildcard socket needs REUSEADDR to bind interface addresses])
 2131: esac
 2132: 
 2133: AC_MSG_CHECKING([if we'll use clock_settime or settimeofday or stime])
 2134: ntp_warning='GRONK'
 2135: ans=none
 2136: case "$ac_cv_func_clock_settime$ac_cv_func_settimeofday$ac_cv_func_stime" in
 2137:  yes*)
 2138:     ntp_warning=''
 2139:     ans='clock_settime()'
 2140:     ;;
 2141:  noyes*)
 2142:     ntp_warning='But clock_settime() would be better (if we had it)'
 2143:     ans='settimeofday()'
 2144:     ;;
 2145:  nonoyes)
 2146:     ntp_warning='Which is the worst of the three'
 2147:     ans='stime()'
 2148:     ;;
 2149:  *) 
 2150:     case "$build" in
 2151:      $host) 
 2152: 	ntp_warning='Which leaves us with nothing to use!'
 2153:     esac
 2154: esac
 2155: AC_MSG_RESULT([$ans])
 2156: case "$ntp_warning" in
 2157:  '')
 2158:     ;;
 2159:  *)
 2160:     AC_MSG_WARN([*** $ntp_warning ***])
 2161:     ;;
 2162: esac
 2163: 
 2164: AC_CACHE_CHECK(
 2165:     [for SIGIO],
 2166:     [ntp_cv_hdr_def_sigio],
 2167:     [AC_EGREP_CPP(
 2168: 	[yes],
 2169: 	[
 2170: 	    #include <signal.h>
 2171: 
 2172: 	    #ifdef SIGIO
 2173: 		yes
 2174: 	    #endif
 2175: 	],
 2176: 	[ntp_cv_hdr_def_sigio=yes],
 2177: 	[ntp_cv_hdr_def_sigio=no]
 2178:     )]
 2179:  )
 2180: 
 2181: dnl Override those system that have a losing SIGIO
 2182: AC_CACHE_CHECK(
 2183:     [if we want to use signalled IO],
 2184:     [ntp_cv_var_signalled_io],
 2185:     [
 2186: 	ans=no
 2187: 	case "$ntp_cv_hdr_def_sigio" in
 2188: 	 yes)
 2189: 	    ans=yes
 2190: 	    case "$host" in
 2191: 	     alpha*-dec-osf4*|alpha*-dec-osf5*)
 2192: 		ans=no
 2193: 		;;
 2194: 	     *-convex-*)
 2195: 		ans=no
 2196: 		;;
 2197: 	     *-dec-*)
 2198: 		ans=no
 2199: 		;;
 2200: 	     *-pc-cygwin*)
 2201: 		ans=no
 2202: 		;;
 2203: 	     *-sni-sysv*)
 2204: 		ans=no
 2205: 		;;
 2206: 	     *-univel-sysv*)
 2207: 		ans=no
 2208: 		;;
 2209: 	     *-*-irix6*)
 2210: 		ans=no
 2211: 		;;
 2212: 	     *-*-freebsd*)
 2213: 		ans=no
 2214: 		;;
 2215: 	     *-*-*linux*)
 2216: 		ans=no
 2217: 		;;
 2218: 	     *-*-unicosmp*)
 2219: 		ans=no
 2220: 		;;
 2221: 	     *-*-kfreebsd*)
 2222: 		ans=no
 2223: 		;;
 2224: 	     m68k-*-mint*)
 2225: 		ans=no
 2226: 		;;
 2227: 	    esac
 2228: 	    ;;
 2229: 	esac
 2230: 	ntp_cv_var_signalled_io=$ans
 2231:     ]
 2232: )
 2233: case "$ntp_cv_var_signalled_io" in
 2234:  yes)
 2235:     AC_DEFINE([HAVE_SIGNALED_IO], [1],
 2236: 	[Can we use SIGIO for tcp and udp IO?])
 2237: esac
 2238: 
 2239: AC_CACHE_CHECK(
 2240:     [for SIGPOLL],
 2241:     [ntp_cv_hdr_def_sigpoll],
 2242:     [AC_EGREP_CPP(
 2243: 	[yes],
 2244: 	[
 2245: 	    #include <signal.h>
 2246: 	    
 2247: 	    #ifdef SIGPOLL
 2248: 		yes
 2249: 	    #endif
 2250: 	],
 2251: 	[ntp_cv_hdr_def_sigpoll=yes],
 2252: 	[ntp_cv_hdr_def_sigpoll=no]
 2253:     )]
 2254: )
 2255: 
 2256: AC_CACHE_CHECK(
 2257:     [for SIGSYS],
 2258:     [ntp_cv_hdr_def_sigsys],
 2259:     [AC_EGREP_CPP(
 2260: 	[yes],
 2261: 	[
 2262: 	    #include <signal.h>
 2263: 
 2264: 	    #ifdef SIGSYS
 2265: 		yes
 2266: 	    #endif
 2267: 	],
 2268: 	[ntp_cv_hdr_def_sigsys=yes],
 2269: 	[ntp_cv_hdr_def_sigsys=no]
 2270:     )]
 2271: )
 2272: 
 2273: AC_CACHE_CHECK(
 2274:     [if we can use SIGPOLL for UDP I/O],
 2275:     [ntp_cv_var_use_udp_sigpoll],
 2276:     [
 2277: 	ans=no
 2278: 	case "$ntp_cv_hdr_def_sigpoll" in
 2279: 	 yes)
 2280: 	    case "$host" in
 2281: 	     mips-sgi-irix*)
 2282: 		ans=no
 2283: 		;;
 2284: 	     vax-dec-bsd)
 2285: 		ans=no
 2286: 		;;
 2287: 	     *-pc-cygwin*)
 2288: 		ans=no
 2289: 		;;
 2290: 	     *-sni-sysv*)
 2291: 		ans=no
 2292: 		;;
 2293: 	     *-*-aix[[456]]*)
 2294: 		ans=no
 2295: 		;;
 2296: 	     *-*-hpux*)
 2297: 		ans=no
 2298: 		;;
 2299: 	     *-*-*linux*)
 2300: 		ans=no
 2301: 		;;
 2302: 	     *-*-osf*)
 2303: 		ans=no
 2304: 		;;
 2305: 	     *-*-qnx*)
 2306: 		ans=no
 2307: 		;;
 2308: 	     *-*-sunos*)
 2309: 		ans=no
 2310: 		;;
 2311: 	     *-*-solaris*)
 2312: 		ans=no
 2313: 		;;
 2314: 	     *-*-ultrix*)
 2315: 		ans=no
 2316: 		;;
 2317: 	     *-*-unicosmp*)
 2318: 		ans=no
 2319: 		;;
 2320: 	     *-*-kfreebsd*)
 2321: 		ans=no
 2322: 		;;
 2323: 	     *) ans=yes
 2324: 		;;
 2325: 	    esac
 2326: 	    ;;
 2327: 	esac
 2328: 	ntp_cv_var_use_udp_sigpoll=$ans
 2329:     ]
 2330: )
 2331: case "$ntp_cv_var_use_udp_sigpoll" in
 2332:  yes)
 2333:     AC_DEFINE([USE_UDP_SIGPOLL], [1], [Can we use SIGPOLL for UDP?])
 2334: esac
 2335: 
 2336: AC_CACHE_CHECK(
 2337:     [if we can use SIGPOLL for TTY I/O],
 2338:     [ntp_cv_var_use_tty_sigpoll],
 2339:     [
 2340: 	ans=no
 2341: 	case "$ntp_cv_hdr_def_sigpoll" in
 2342: 	 yes)
 2343: 	    case "$host" in
 2344: 	     mips-sgi-irix*)
 2345: 		ans=no
 2346: 		;;
 2347: 	     vax-dec-bsd)
 2348: 		ans=no
 2349: 		;;
 2350: 	     *-pc-cygwin*)
 2351: 		ans=no
 2352: 		;;
 2353: 	     *-sni-sysv*)
 2354: 		ans=no
 2355: 		;;
 2356: 	     *-*-aix[[456]]*)
 2357: 		ans=no
 2358: 		;;
 2359: 	     *-*-hpux*)
 2360: 		ans=no
 2361: 		;;
 2362: 	     *-*-*linux*)
 2363: 		ans=no
 2364: 		;;
 2365: 	     *-*-osf*)
 2366: 		ans=no
 2367: 		;;
 2368: 	     *-*-sunos*)
 2369: 		ans=no
 2370: 		;;
 2371: 	     *-*-ultrix*)
 2372: 		ans=no
 2373: 		;;
 2374: 	     *-*-qnx*)
 2375: 		ans=no
 2376: 		;;
 2377: 	     *-*-unicosmp*)
 2378: 		ans=no
 2379: 		;;
 2380: 	     *-*-kfreebsd*)
 2381: 		ans=no
 2382: 		;;
 2383: 	     *) ans=yes
 2384: 		;;
 2385: 	    esac
 2386: 	    ;;
 2387: 	esac
 2388: 	ntp_cv_var_use_tty_sigpoll=$ans
 2389:     ]
 2390: )
 2391: case "$ntp_cv_var_use_tty_sigpoll" in
 2392:  yes)
 2393:     AC_DEFINE([USE_TTY_SIGPOLL], [1], [Can we use SIGPOLL for tty IO?])
 2394: esac
 2395: 
 2396: case "$host" in
 2397:  *-*-aix*)
 2398:     AC_DEFINE([NLIST_EXTRA_INDIRECTION], [1],
 2399: 	[Might nlist() values require an extra level of indirection (AIX)?])
 2400: esac
 2401: 
 2402: AC_CACHE_CHECK(
 2403:     [for a minimum recommended value of tickadj],
 2404:     [ntp_cv_var_min_rec_tickadj],
 2405:     [
 2406: 	ans=no
 2407: 	case "$host" in
 2408: 	 *-*-aix*)
 2409: 	    ans=40
 2410: 	    ;;
 2411: 	esac
 2412: 	ntp_cv_var_min_rec_tickadj=$ans
 2413:     ]
 2414: )
 2415: case "$ntp_cv_var_min_rec_tickadj" in
 2416:  ''|no)
 2417:     ;;
 2418:  *)
 2419:     AC_DEFINE_UNQUOTED([MIN_REC_TICKADJ], [$ntp_cv_var_min_rec_tickadj],
 2420: 	[Should we recommend a minimum value for tickadj?])
 2421: esac
 2422: 
 2423: AC_CACHE_CHECK(
 2424:     [if the TTY code permits PARENB and IGNPAR],
 2425:     [ntp_cv_no_parenb_ignpar],
 2426:     [
 2427: 	ans=no
 2428: 	case "$host" in
 2429: 	 i?86-*-*linux*)
 2430: 	    ans=yes
 2431: 	    ;;
 2432: 	 mips-sgi-irix*)
 2433: 	    ans=yes
 2434: 	    ;;
 2435: 	 i?86-*-freebsd[[123]].*)
 2436: 	    ;;
 2437: 	 i?86-*-freebsd*)
 2438: 	    ans=yes
 2439: 	    ;;
 2440: 	 *-*-unicosmp*)
 2441: 	    ans=yes
 2442: 	    ;;
 2443: 	esac
 2444: 	ntp_cv_no_parenb_ignpar=$ans
 2445:     ]
 2446: )
 2447: case "$ntp_cv_no_parenb_ignpar" in
 2448:  yes)
 2449:     AC_DEFINE([NO_PARENB_IGNPAR], [1],
 2450: 	[Is there a problem using PARENB and IGNPAR?])
 2451: esac
 2452: 
 2453: AC_MSG_CHECKING([if we're including ntpd debugging code])
 2454: AC_ARG_ENABLE(
 2455:     [debugging],
 2456:     [AS_HELP_STRING(
 2457:         [--enable-debugging],
 2458:         [+ include ntpd debugging code]
 2459:     )],
 2460:     [ntp_ok=$enableval],
 2461:     [ntp_ok=yes]
 2462: )
 2463: case "$ntp_ok" in
 2464:  yes)
 2465:     AC_DEFINE([DEBUG], [1], [Enable ntpd debugging code?])
 2466: esac
 2467: AC_MSG_RESULT([$ntp_ok])
 2468: 
 2469: AC_MSG_CHECKING([if we're including processing time debugging code])
 2470: AC_ARG_ENABLE(
 2471:     [debug-timing],
 2472:     [AS_HELP_STRING(
 2473: 	[--enable-debug-timing],
 2474: 	[- include processing time debugging code (costs performance)]
 2475:     )],
 2476:     [ntp_ok=$enableval],
 2477:     [ntp_ok=no]
 2478: )
 2479: case "$ntp_ok" in
 2480:  yes)
 2481:     AC_DEFINE([DEBUG_TIMING], [1], [Enable processing time debugging?])
 2482: esac
 2483: AC_MSG_RESULT([$ntp_ok])
 2484: 
 2485: AC_MSG_CHECKING([for a the number of minutes in a DST adjustment])
 2486: AC_ARG_ENABLE(
 2487:     [dst-minutes],
 2488:     [AS_HELP_STRING(
 2489: 	[--enable-dst-minutes],
 2490: 	[n minutes per DST adjustment @<:@60@:>@])   dnl @<:@ is [, @:>@ is ]
 2491:     ],
 2492:     [ans=$enableval],
 2493:     [ans=60]
 2494: )
 2495: AC_DEFINE_UNQUOTED([DSTMINUTES], [$ans],
 2496:     [The number of minutes in a DST adjustment])
 2497: AC_MSG_RESULT([$ans])
 2498: 
 2499: AC_MSG_CHECKING([if ntpd will retry permanent DNS failures])
 2500: AC_ARG_ENABLE(
 2501:     [ignore-dns-errors],
 2502:     [AS_HELP_STRING(
 2503: 	[--enable-ignore-dns-errors], 
 2504: 	[- retry DNS queries on any error]
 2505:     )],
 2506:     [ans=$enableval],
 2507:     [ans=no]
 2508: )
 2509: case "$ans" in
 2510:  yes)
 2511:     AC_DEFINE([IGNORE_DNS_ERRORS], [1],
 2512: 	[Retry queries on _any_ DNS error?])
 2513: esac
 2514: AC_MSG_RESULT([$ans])
 2515: 
 2516: AC_MSG_CHECKING([if ntpd will use the deferred DNS lookup path])
 2517: AC_ARG_ENABLE(
 2518:     [force-defer-DNS],
 2519:     [AS_HELP_STRING(
 2520: 	[--enable-force-defer-DNS],
 2521: 	[- force all DNS lookups to take the deferred path]
 2522:     )],
 2523:     [ans=$enableval],
 2524:     [ans=no]
 2525: )
 2526: case "$ans" in
 2527:  yes)
 2528:     AC_DEFINE([FORCE_DEFER_DNS], [1], [Force deferred DNS lookups?])
 2529: esac
 2530: AC_MSG_RESULT([$ans])
 2531: 
 2532: case "$ac_cv_header_sys_sio_h" in
 2533:  yes)
 2534:     AC_CACHE_CHECK(
 2535: 	[sys/sio.h for TIOCDCDTIMESTAMP],
 2536: 	[ntp_cv_hdr_def_tiocdcdtimestamp],
 2537: 	[AC_EGREP_CPP(
 2538: 	    [yes],
 2539: 	    [
 2540: 		#include <sys/sio.h>
 2541: 
 2542: 		#ifdef TIOCDCDTIMESTAMP
 2543: 		    yes
 2544: 		#endif
 2545: 	    ],
 2546: 	    [ntp_cv_hdr_def_tiocdcdtimestamp=yes],
 2547: 	    [ntp_cv_hdr_def_tiocdcdtimestamp=no]
 2548: 	)]
 2549:     )
 2550: esac
 2551: 
 2552: AC_CACHE_CHECK(
 2553:     [if we have the tty_clk line discipline/streams module],
 2554:     [ntp_cv_tty_clk],
 2555:     [
 2556: 	case "$ac_cv_header_sys_clkdefs_h$ntp_cv_hdr_def_tiocdcdtimestamp" in
 2557: 	 *yes*)
 2558: 	    ntp_cv_tty_clk=yes
 2559: 	    ;;
 2560: 	 *)
 2561: 	    ntp_cv_tty_clk=no
 2562: 	    ;;
 2563: 	esac
 2564:     ]
 2565: )
 2566: case "$ntp_cv_tty_clk" in
 2567:  yes)
 2568:     AC_DEFINE([TTYCLK], [1],
 2569: 	[Do we have the tty_clk line discipline/streams module?])
 2570: esac
 2571: 
 2572: AC_MSG_CHECKING([for the ppsclock streams module])
 2573: case "$ntp_cv_struct_ppsclockev" in
 2574:  yes)
 2575:     ans=yes
 2576:     AC_DEFINE([PPS], [1],
 2577: 	[Do we have the ppsclock streams module?])
 2578:     ;;
 2579:  *)
 2580:     ans=no
 2581: esac
 2582: AC_MSG_RESULT([$ans])
 2583: 
 2584: AC_CACHE_CHECK(
 2585:     [for multicast IP support],
 2586:     [ntp_cv_multicast],
 2587:     [
 2588: 	ntp_cv_multicast=no
 2589: 	case "$host" in
 2590: 	 i386-sequent-sysv4)
 2591: 	    ;;
 2592: 	 *)
 2593: 	    AC_COMPILE_IFELSE(
 2594: 		[AC_LANG_PROGRAM(
 2595: 		    [[
 2596: 			#ifdef HAVE_NETINET_IN_H
 2597: 			#include <netinet/in.h>
 2598: 			#endif
 2599: 		    ]],
 2600: 		    [[
 2601: 			struct ip_mreq ipmr;
 2602: 			ipmr.imr_interface.s_addr = 0;
 2603: 		    ]]
 2604: 		)],
 2605: 		[ntp_cv_multicast=yes],
 2606: 		[]
 2607: 	    )
 2608: 	esac
 2609:     ]
 2610: )
 2611: case "$ntp_cv_multicast" in
 2612:  yes)
 2613:     AC_DEFINE([MCAST], [1], [Does the target support multicast IP?])
 2614:     AC_CACHE_CHECK(
 2615: 	[arg type needed for setsockopt() IP*_MULTICAST_LOOP],
 2616: 	[ntp_cv_typeof_ip_multicast_loop],
 2617: 	[
 2618: 	    case "$host" in
 2619: 	     *-*-netbsd*|*-*-*linux*)
 2620: 		ntp_cv_typeof_ip_multicast_loop=u_int
 2621: 		;;
 2622: 	     *)
 2623: 		ntp_cv_typeof_ip_multicast_loop=u_char
 2624: 	    esac
 2625: 	]
 2626:     )
 2627:     AC_DEFINE_UNQUOTED([TYPEOF_IP_MULTICAST_LOOP],
 2628: 	[$ntp_cv_typeof_ip_multicast_loop],
 2629: 	[What type to use for setsockopt])
 2630: esac
 2631: 
 2632: AC_CACHE_CHECK(
 2633:     [availability of ntp_{adj,get}time()],
 2634:     [ntp_cv_var_ntp_syscalls],
 2635:     [
 2636: 	ntp_cv_var_ntp_syscalls=no
 2637: 	case "$ac_cv_func_ntp_adjtime$ac_cv_func_ntp_gettime$ac_cv_func___adjtimex" in
 2638: 	 yesyes*)
 2639: 	    ntp_cv_var_ntp_syscalls=libc
 2640: 	    ;;
 2641: 	 *yes)
 2642: 	    ntp_cv_var_ntp_syscalls=inline
 2643: 	    ;;
 2644: 	 *) 
 2645: 	    AC_EGREP_CPP(
 2646: 		[yes],
 2647: 		[
 2648: 		    #include <sys/syscall.h>
 2649: 		    
 2650: 		    #if defined(SYS_ntp_gettime) && defined(SYS_ntp_adjtime)
 2651: 			yes
 2652: 		    #endif
 2653: 		],
 2654: 		[ntp_cv_var_ntp_syscalls=kernel]
 2655: 	    )
 2656: 	    ;;
 2657: 	 esac
 2658:     ]
 2659: )
 2660: case "$ntp_cv_var_ntp_syscalls" in
 2661:  libc)
 2662:     AC_DEFINE([NTP_SYSCALLS_LIBC], [1],
 2663: 	[Do we have ntp_{adj,get}time in libc?])
 2664:     ;;
 2665:  kernel)
 2666:     AC_DEFINE([NTP_SYSCALLS_STD], [1],
 2667: 	[Do we have ntp_{adj,get}time in the kernel?])
 2668:     ;;
 2669: esac
 2670: 
 2671: AC_CACHE_CHECK(
 2672:     [if sys/timex.h has STA_FLL],
 2673:     [ntp_cv_var_sta_fll],
 2674:     [AC_EGREP_CPP(
 2675: 	[yes],
 2676: 	[
 2677: 	    #include <sys/timex.h>
 2678: 
 2679: 	    #ifdef STA_FLL
 2680: 		yes
 2681: 	    #endif
 2682: 	],
 2683: 	[ntp_cv_var_sta_fll=yes],
 2684: 	[ntp_cv_var_sta_fll=no]
 2685:     )]
 2686: )
 2687: 
 2688: AC_CACHE_CHECK(
 2689:     [if we have kernel PLL support],
 2690:     [ntp_cv_var_kernel_pll],
 2691:     [dnl ntp_cv_var_ntp_syscalls is {no,libc,kernel}
 2692: 	case "$ac_cv_header_sys_timex_h$ntp_cv_struct_ntptimeval$ntp_cv_var_sta_fll$ntp_cv_var_ntp_syscalls" in
 2693: 	 *no*)
 2694: 	    ntp_cv_var_kernel_pll=no
 2695: 	    ;;
 2696: 	 *) ntp_cv_var_kernel_pll=yes
 2697: 	    ;;
 2698: 	esac
 2699:     ]
 2700: )
 2701: case "$ntp_cv_var_kernel_pll" in
 2702:  yes)
 2703:     AC_DEFINE([KERNEL_PLL], [1],
 2704: 	[Does the kernel support precision time discipline?])
 2705: esac
 2706: 
 2707: AC_CACHE_CHECK(
 2708:     [if SIOCGIFCONF returns buffer size in the buffer],
 2709:     [ntp_cv_size_returned_in_buffer],
 2710:     [
 2711: 	ans=no
 2712: 	case "$host" in
 2713: 	 *-fujitsu-uxp*)
 2714: 	    ans=yes
 2715: 	    ;;
 2716: 	 *-ncr-sysv4*)
 2717: 	    ans=yes
 2718: 	    ;;
 2719: 	 *-univel-sysv*)
 2720: 	    ans=yes
 2721: 	    ;;
 2722: 	esac
 2723: 	ntp_cv_size_returned_in_buffer=$ans
 2724:     ]
 2725: )
 2726: case "$ntp_cv_size_returned_in_buffer" in
 2727:  yes)
 2728:     AC_DEFINE([SIZE_RETURNED_IN_BUFFER], [1],
 2729: 	[Does SIOCGIFCONF return size in the buffer?])
 2730: esac
 2731: 
 2732: # Check for ioctls TIOCGPPSEV
 2733: AC_MSG_CHECKING([for TTY PPS ioctl TIOCGPPSEV])
 2734: case "$ac_cv_header_termios_h" in
 2735:  yes)
 2736:     AC_EGREP_CPP(
 2737: 	[yes],
 2738: 	[
 2739: 	    #include <termios.h>
 2740: 
 2741: 	    #ifdef TIOCGPPSEV
 2742: 		yes
 2743: 	    #endif
 2744: 	],
 2745: 	[ntp_ok=yes],
 2746: 	[ntp_ok=no]
 2747:     )
 2748:     ;;
 2749:  *)
 2750:     ntp_ok=no
 2751:     ;;
 2752: esac
 2753: case "$ntp_ok" in
 2754:  yes)
 2755:     AC_DEFINE([HAVE_TIOCGPPSEV], [1],
 2756: 	[Do we have the TIOCGPPSEV ioctl (Solaris)?])
 2757: esac
 2758: AC_MSG_RESULT([$ntp_ok])
 2759: 
 2760: # Check for ioctls TIOCSPPS
 2761: AC_MSG_CHECKING([for TTY PPS ioctl TIOCSPPS])
 2762: case "$ac_cv_header_termios_h" in
 2763:  yes)
 2764:     AC_EGREP_CPP(
 2765: 	[yes],
 2766: 	[
 2767: 	    #include <termios.h>
 2768: 
 2769: 	    #ifdef TIOCSPPS
 2770: 		yes
 2771: 	    #endif
 2772: 	 ],
 2773: 	 [ntp_ok=yes],
 2774: 	 [ntp_ok=no]
 2775:     )
 2776:     ;;
 2777:  *)
 2778:     ntp_ok=no
 2779:     ;;
 2780: esac
 2781: case "$ntp_ok" in
 2782:  yes)
 2783:     AC_DEFINE([HAVE_TIOCSPPS], [1],
 2784: 	[Do we have the TIOCSPPS ioctl (Solaris)?])
 2785: esac
 2786: AC_MSG_RESULT([$ntp_ok])
 2787: 
 2788: # Check for ioctls CIOGETEV
 2789: AC_MSG_CHECKING([for TTY PPS ioctl CIOGETEV])
 2790: case "$ac_cv_header_sys_ppsclock_h" in
 2791:  yes)
 2792:     AC_EGREP_CPP(
 2793: 	[yes],
 2794: 	[
 2795: 	    #include <sys/ppsclock.h>
 2796: 
 2797: 	    #ifdef CIOGETEV
 2798: 		yes
 2799: 	    #endif
 2800: 	],
 2801: 	[ntp_ok=yes],
 2802: 	[ntp_ok=no]
 2803:     )
 2804:     ;;
 2805:  *)
 2806:     ntp_ok=no
 2807:     ;;
 2808: esac
 2809: case "$ntp_ok" in
 2810:  yes)
 2811:     AC_DEFINE([HAVE_CIOGETEV], [1],
 2812: 	[Do we have the CIOGETEV ioctl (SunOS, Linux)?])
 2813: esac
 2814: AC_MSG_RESULT([$ntp_ok])
 2815: 
 2816: # ATOM/PPSAPI stuff.
 2817: 
 2818: ntp_atom_ok=yes
 2819: 
 2820: # Check for header timepps.h, if found then we have PPS API (Draft RFC) stuff.
 2821: 
 2822: # The PPSAPI headers need "inline" ($ac_cv_c_inline='inline')
 2823: # The PPSAPI needs struct timespec.
 2824: # The PPSAPI also needs a timepps header.
 2825: 
 2826: case "$ac_cv_c_inline$ntp_cv_struct_timespec" in
 2827:  inlineyes)
 2828:     case "$ac_cv_header_timepps_h$ac_cv_header_sys_timepps_h$host_os" in
 2829:      *yes* | *sunos* | *solaris* | *sco* | *netbsd* )
 2830: 	AC_DEFINE(HAVE_PPSAPI, 1, [Do we have the PPS API per the Draft RFC?])
 2831: 	ntp_jupiter_ok=yes
 2832: 	ntp_oncore_ok=yes
 2833: 	ntp_parse_ok=yes
 2834: 	ntp_ripe_ncc_ok=yes
 2835: 	;;
 2836:     esac
 2837:     ;;
 2838: esac
 2839: 
 2840: # Check for ioctls TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG
 2841: AC_CHECK_HEADER([linux/serial.h])
 2842: case "$ac_cv_header_sys_ppsclock_h$ac_cv_header_linux_serial_h" in
 2843:   yesyes)
 2844:     AC_MSG_CHECKING([ioctl TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG])
 2845:     AC_EGREP_CPP(
 2846: 	[yes],
 2847: 	[
 2848: 	    #include <sys/time.h>
 2849: 	    typedef int u_int;
 2850: 	    #include <sys/ppsclock.h>
 2851: 	    #include <linux/serial.h>
 2852: 
 2853: 	    #ifdef TIOCGSERIAL
 2854: 	    #ifdef TIOCSSERIAL
 2855: 	    #ifdef ASYNC_PPS_CD_POS
 2856: 	    #ifdef ASYNC_PPS_CD_NEG
 2857: 	    #ifdef CIOGETEV
 2858: 		 yes
 2859: 	    #endif
 2860: 	    #endif
 2861: 	    #endif
 2862: 	    #endif
 2863: 	    #endif
 2864: 	],
 2865: 	[ntp_ok=yes],
 2866: 	[ntp_ok=no]
 2867:     )
 2868:     AC_MSG_RESULT([$ntp_ok])
 2869:     ;;
 2870:   *)
 2871:     ntp_ok=no
 2872:     ;;
 2873: esac
 2874: case "$ntp_ok" in
 2875:  yes)
 2876:     AC_DEFINE([HAVE_TIO_SERIAL_STUFF], 1,
 2877: 	[Do we have the TIO serial stuff?])
 2878: esac
 2879: 
 2880: # Check for SHMEM_STATUS support
 2881: AC_MSG_CHECKING([SHMEM_STATUS support])
 2882: case "$ac_cv_header_sys_mman_h" in
 2883:  yes)
 2884:     ntp_ok=yes
 2885:     ;;
 2886:  *)
 2887:     ntp_ok=no
 2888:     ;;
 2889: esac
 2890: case "$ntp_ok" in
 2891:  yes)
 2892:     AC_DEFINE([ONCORE_SHMEM_STATUS], [1],
 2893: 	[Do we have support for SHMEM_STATUS?])
 2894: esac
 2895: AC_MSG_RESULT([$ntp_ok])
 2896: 
 2897: ntp_refclock=no
 2898: 
 2899: # HPUX only, and by explicit request
 2900: AC_MSG_CHECKING([Datum/Bancomm bc635/VME interface])
 2901: AC_ARG_ENABLE(
 2902:     [BANCOMM],
 2903:     [AS_HELP_STRING(
 2904: 	[--enable-BANCOMM], 
 2905: 	[- Datum/Bancomm bc635/VME interface]
 2906:     )],
 2907:     [ntp_ok=$enableval],
 2908:     [ntp_ok=no]
 2909: )
 2910: if test "$ntp_ok" = "yes"; then
 2911:     ntp_refclock=yes
 2912:     AC_DEFINE([CLOCK_BANC], [1], [Datum/Bancomm bc635/VME interface?])
 2913: fi
 2914: AC_MSG_RESULT([$ntp_ok])
 2915: case "$ntp_ok$host" in
 2916:  yes*-*-hpux*) ;;
 2917:  yes*) AC_MSG_WARN([*** But the expected answer is... no ***]) ;;
 2918: esac
 2919: 
 2920: #HPUX only, and only by explicit request
 2921: AC_MSG_CHECKING([TrueTime GPS receiver/VME interface])
 2922: AC_ARG_ENABLE(
 2923:     [GPSVME],
 2924:     [AS_HELP_STRING(
 2925: 	[--enable-GPSVME],
 2926: 	[- TrueTime GPS receiver/VME interface]
 2927:     )],
 2928:     [ntp_ok=$enableval],
 2929:     [ntp_ok=no]
 2930: )
 2931: if test "$ntp_ok" = "yes"; then
 2932:     ntp_refclock=yes
 2933:     AC_DEFINE([CLOCK_GPSVME], 1, [TrueTime GPS receiver/VME interface?])
 2934: fi
 2935: AC_MSG_RESULT([$ntp_ok])
 2936: case "$ntp_ok$host" in
 2937:  yes*-*-hpux*) ;;
 2938:  yes*) AC_MSG_WARN([*** But the expected answer is... no ***]) ;;
 2939: esac
 2940: 
 2941: AC_MSG_CHECKING([for PCL720 clock support])
 2942: case "$ac_cv_header_machine_inline_h$ac_cv_header_sys_pcl720_h$ac_cv_header_sys_i8253_h" in
 2943:  yesyesyes)
 2944:     AC_DEFINE([CLOCK_PPS720], 1, [PCL 720 clock support])
 2945:     ans=yes
 2946:     ;;
 2947:  *)
 2948:     ans=no
 2949:     ;;
 2950: esac
 2951: AC_MSG_RESULT([$ans])
 2952: 
 2953: AC_MSG_CHECKING([for default inclusion of all suitable non-PARSE clocks])
 2954: AC_ARG_ENABLE(
 2955:     [all-clocks],
 2956:     [AS_HELP_STRING(
 2957: 	[--enable-all-clocks],
 2958: 	[+ include all suitable non-PARSE clocks:]
 2959:     )],
 2960:     [ntp_eac=$enableval],
 2961:     [ntp_eac=yes]
 2962: )
 2963: AC_MSG_RESULT([$ntp_eac])
 2964: 
 2965: # HMS: Should we also require ntp_parse_ok?
 2966: AC_MSG_CHECKING([if we have support for PARSE clocks])
 2967: case "$ntp_atom_ok$ac_cv_header_termio_h$ac_cv_header_termios_h" in
 2968:  yes*yes*)
 2969:     ntp_canparse=yes
 2970:     ;;
 2971:  *) ntp_canparse=no
 2972:     ;;
 2973: esac
 2974: AC_MSG_RESULT([$ntp_canparse])
 2975: 
 2976: AC_MSG_CHECKING([if we have support for audio clocks])
 2977: 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
 2978:  *yes*)
 2979:     ntp_canaudio=yes
 2980:     AC_DEFINE([HAVE_AUDIO], [], [Do we have audio support?])
 2981:     ;;
 2982:  *) ntp_canaudio=no ;;
 2983: esac
 2984: AC_MSG_RESULT([$ntp_canaudio])
 2985: 
 2986: AC_MSG_CHECKING([if we have support for the SHM refclock interface])
 2987: case "$ac_cv_header_sys_ipc_h$ac_cv_header_sys_shm_h" in
 2988:  yesyes)
 2989:     ntp_canshm=yes
 2990:     ;;
 2991:  *) ntp_canshm=no ;;
 2992: esac
 2993: AC_MSG_RESULT([$ntp_canshm])
 2994: 
 2995: # Test for termios TIOCMBIS modem control (ACTS, Heath, Palisade)
 2996: AC_CACHE_CHECK(
 2997:     [for termios modem control],
 2998:     [ntp_cv_modem_control],
 2999:     [AC_COMPILE_IFELSE(
 3000: 	[AC_LANG_PROGRAM(
 3001: 	    [[
 3002: 		#ifdef HAVE_UNISTD_H
 3003: 		# include <unistd.h>
 3004: 		#endif
 3005: 		#ifdef HAVE_TERMIOS_H
 3006: 		# include <termios.h>
 3007: 		#endif
 3008: 		#ifdef HAVE_SYS_IOCTL_H
 3009: 		# include <sys/ioctl.h>
 3010: 		#endif
 3011: 	    ]],
 3012: 	    [[
 3013: 		int	dtr = TIOCM_DTR;
 3014: 		
 3015: 		ioctl(1, TIOCMBIS, (char *)&dtr);
 3016: 	    ]]
 3017: 	)],
 3018: 	[ntp_cv_modem_control=yes],
 3019: 	[ntp_cv_modem_control=no]
 3020:     )]
 3021: )
 3022: case "$ntp_eac::$ntp_cv_modem_control" in
 3023:  yes::yes)
 3024:     ntp_enable_all_modem_control_clocks=yes
 3025:     ;;
 3026:  *)
 3027:     ntp_enable_all_modem_control_clocks=no
 3028:     ;;
 3029: esac
 3030: 
 3031: # Requires modem control
 3032: AC_MSG_CHECKING([ACTS modem service])
 3033: AC_ARG_ENABLE(
 3034:     [ACTS],
 3035:     [AS_HELP_STRING(
 3036: 	[--enable-ACTS],
 3037: 	[s ACTS modem service]
 3038:     )],
 3039:     [ntp_ok=$enableval],
 3040:     [ntp_ok=$ntp_enable_all_modem_control_clocks]
 3041: )
 3042: if test "$ntp_ok" = "yes"; then
 3043:     ntp_refclock=yes
 3044:     AC_DEFINE([CLOCK_ACTS], [1], [ACTS modem service])
 3045: fi
 3046: AC_MSG_RESULT([$ntp_ok])
 3047: 
 3048: AC_MSG_CHECKING([Arbiter 1088A/B GPS receiver])
 3049: AC_ARG_ENABLE(
 3050:     [ARBITER],
 3051:     [AS_HELP_STRING(
 3052: 	[--enable-ARBITER],
 3053: 	[+ Arbiter 1088A/B GPS receiver]
 3054:     )],
 3055:     [ntp_ok=$enableval],
 3056:     [ntp_ok=$ntp_eac]
 3057: )
 3058: if test "$ntp_ok" = "yes"; then
 3059:     ntp_refclock=yes
 3060:     AC_DEFINE([CLOCK_ARBITER], [1], [Arbiter 1088A/B GPS receiver])
 3061: fi
 3062: AC_MSG_RESULT([$ntp_ok])
 3063: 
 3064: AC_MSG_CHECKING([Arcron MSF receiver])
 3065: AC_ARG_ENABLE(
 3066:     [ARCRON_MSF],
 3067:     [AS_HELP_STRING(
 3068: 	[--enable-ARCRON-MSF], 
 3069: 	[+ Arcron MSF receiver]
 3070:     )],
 3071:     [ntp_ok=$enableval],
 3072:     [ntp_ok=$ntp_eac]
 3073: )
 3074: if test "$ntp_ok" = "yes"; then
 3075:     ntp_refclock=yes
 3076:     AC_DEFINE([CLOCK_ARCRON_MSF], [1], [ARCRON support?])
 3077: fi
 3078: AC_MSG_RESULT([$ntp_ok])
 3079: 
 3080: AC_MSG_CHECKING([Austron 2200A/2201A GPS receiver])
 3081: AC_ARG_ENABLE(
 3082:     [AS2201],
 3083:     [AS_HELP_STRING(
 3084: 	[--enable-AS2201],
 3085: 	[+ Austron 2200A/2201A GPS receiver]
 3086:     )],
 3087:     [ntp_ok=$enableval],
 3088:     [ntp_ok=$ntp_eac]
 3089: )
 3090: if test "$ntp_ok" = "yes"; then
 3091:     ntp_refclock=yes
 3092:     AC_DEFINE([CLOCK_AS2201], [1], [Austron 2200A/2201A GPS receiver?])
 3093: fi
 3094: AC_MSG_RESULT([$ntp_ok])
 3095: 
 3096: AC_MSG_CHECKING([ATOM PPS interface])
 3097: AC_ARG_ENABLE(
 3098:     [ATOM],
 3099:     [AS_HELP_STRING(
 3100: 	[--enable-ATOM],
 3101: 	[s ATOM PPS interface]
 3102:     )],
 3103:     [ntp_ok=$enableval],
 3104:     [ntp_ok=$ntp_eac]
 3105: )
 3106: case "$ntp_atom_ok" in
 3107:  no) ntp_ok=no ;;
 3108: esac
 3109: if test "$ntp_ok" = "yes"; then
 3110:     ntp_refclock=yes
 3111:     AC_DEFINE([CLOCK_ATOM], [1], [PPS interface?])
 3112: fi
 3113: AC_MSG_RESULT([$ntp_ok])
 3114: 
 3115: AC_MSG_CHECKING([Chrono-log K-series WWVB receiver])
 3116: AC_ARG_ENABLE(
 3117:     [CHRONOLOG],
 3118:     [AS_HELP_STRING(
 3119: 	[--enable-CHRONOLOG],
 3120: 	[+ Chrono-log K-series WWVB receiver]
 3121:     )],
 3122:     [ntp_ok=$enableval],
 3123:     [ntp_ok=$ntp_eac]
 3124: )
 3125: if test "$ntp_ok" = "yes"; then
 3126:     ntp_refclock=yes
 3127:     AC_DEFINE([CLOCK_CHRONOLOG], [1], [Chronolog K-series WWVB receiver?])
 3128: fi
 3129: AC_MSG_RESULT([$ntp_ok])
 3130: 
 3131: AC_MSG_CHECKING([CHU modem/decoder])
 3132: AC_ARG_ENABLE(
 3133:     [CHU],
 3134:     [AS_HELP_STRING(
 3135: 	[--enable-CHU],
 3136: 	[+ CHU modem/decoder]
 3137:     )],
 3138:     [ntp_ok=$enableval],
 3139:     [ntp_ok=$ntp_eac]
 3140: )
 3141: if test "$ntp_ok" = "yes"; then
 3142:     ntp_refclock=yes
 3143:     AC_DEFINE([CLOCK_CHU], [1], [CHU modem/decoder])
 3144: fi
 3145: AC_MSG_RESULT([$ntp_ok])
 3146: ntp_refclock_chu=$ntp_ok
 3147: 
 3148: AC_MSG_CHECKING([CHU audio/decoder])
 3149: AC_ARG_ENABLE(
 3150:     [AUDIO-CHU],
 3151:     [AS_HELP_STRING(
 3152: 	[--enable-AUDIO-CHU],
 3153: 	[s CHU audio/decoder]
 3154:     )],
 3155:     [ntp_ok=$enableval],
 3156:     [
 3157: 	case "$ntp_eac$ntp_refclock_chu$ntp_canaudio" in
 3158: 	 *no*)	ntp_ok=no  ;;
 3159: 	 *)	ntp_ok=yes ;;
 3160: 	esac
 3161:     ]
 3162: )
 3163: if test "$ntp_ok" = "yes"; then
 3164:     AC_DEFINE([AUDIO_CHU], [1], [CHU audio/decoder?])
 3165: fi
 3166: AC_MSG_RESULT([$ntp_ok])
 3167: # We used to check for sunos/solaris target...
 3168: case "$ntp_ok$ntp_refclock_chu$ntp_canaudio" in
 3169:  yes*no*) AC_MSG_WARN([*** But the expected answer is...no ***])
 3170: esac
 3171: 
 3172: # Not under HP-UX
 3173: AC_MSG_CHECKING([Datum Programmable Time System])
 3174: AC_ARG_ENABLE(
 3175:     [DATUM],
 3176:     [AS_HELP_STRING(
 3177: 	[--enable-DATUM],
 3178: 	[s Datum Programmable Time System]
 3179:     )],
 3180:     [ntp_ok=$enableval],
 3181:     [
 3182: 	case "$ac_cv_header_termios_h" in
 3183: 	 yes)
 3184: 	    ntp_ok=$ntp_eac
 3185: 	    ;;
 3186: 	 *) ntp_ok=no
 3187: 	    ;;
 3188: 	esac
 3189:     ]
 3190: )
 3191: if test "$ntp_ok" = "yes"; then
 3192:     ntp_refclock=yes
 3193:     AC_DEFINE([CLOCK_DATUM], [1], [Datum Programmable Time System?])
 3194: fi
 3195: AC_MSG_RESULT([$ntp_ok])
 3196: 
 3197: AC_MSG_CHECKING([Dumb generic hh:mm:ss local clock])
 3198: AC_ARG_ENABLE(
 3199:     [DUMBCLOCK],
 3200:     [AS_HELP_STRING(
 3201: 	[--enable-DUMBCLOCK],
 3202: 	[+ Dumb generic hh:mm:ss local clock]
 3203:     )],
 3204:     [ntp_ok=$enableval],
 3205:     [ntp_ok=$ntp_eac]
 3206: )
 3207: if test "$ntp_ok" = "yes"; then
 3208:     ntp_refclock=yes
 3209:     AC_DEFINE([CLOCK_DUMBCLOCK], [1], [Dumb generic hh:mm:ss local clock?])
 3210: fi
 3211: AC_MSG_RESULT([$ntp_ok])
 3212: 
 3213: AC_MSG_CHECKING([Forum Graphic GPS])
 3214: AC_ARG_ENABLE(
 3215:     [FG],
 3216:     [AS_HELP_STRING(
 3217: 	[--enable-FG],
 3218: 	[+ Forum Graphic GPS]
 3219:     )],
 3220:     [ntp_ok=$enableval],
 3221:     [ntp_ok=$ntp_eac]
 3222: )
 3223: if test "$ntp_ok" = "yes"; then
 3224:     ntp_refclock=yes
 3225:     AC_DEFINE([CLOCK_FG], [1], [Forum Graphic GPS datating station driver?])
 3226: fi
 3227: AC_MSG_RESULT([$ntp_ok])
 3228: 
 3229: # Requires modem control
 3230: AC_MSG_CHECKING([Heath GC-1000 WWV/WWVH receiver])
 3231: AC_ARG_ENABLE(
 3232:     [HEATH],
 3233:     [AS_HELP_STRING(
 3234: 	[--enable-HEATH],
 3235: 	[s Heath GC-1000 WWV/WWVH receiver]
 3236:     )],
 3237:     [ntp_ok=$enableval],
 3238:     [ntp_ok=$ntp_enable_all_modem_control_clocks]
 3239: )
 3240: if test "$ntp_ok" = "yes"; then
 3241:     ntp_refclock=yes
 3242:     AC_DEFINE([CLOCK_HEATH], [1], [Heath GC-1000 WWV/WWVH receiver?])
 3243: fi
 3244: AC_MSG_RESULT([$ntp_ok])
 3245: 
 3246: AC_MSG_CHECKING([for hopf serial clock device])
 3247: AC_ARG_ENABLE(
 3248:     [HOPFSERIAL],
 3249:     [AS_HELP_STRING(
 3250: 	[--enable-HOPFSERIAL],
 3251: 	[+ hopf serial clock device]
 3252:     )],
 3253:     [ntp_ok=$enableval],
 3254:     [ntp_ok=$ntp_eac]
 3255: )
 3256: if test "$ntp_ok" = "yes"; then
 3257:     ntp_refclock=yes
 3258:     AC_DEFINE([CLOCK_HOPF_SERIAL], [1], [HOPF serial clock device?])
 3259: fi
 3260: AC_MSG_RESULT([$ntp_ok])
 3261: 
 3262: AC_MSG_CHECKING([for hopf PCI clock 6039])
 3263: AC_ARG_ENABLE(
 3264:     [HOPFPCI],
 3265:     [AS_HELP_STRING(
 3266: 	[--enable-HOPFPCI],
 3267: 	[+ hopf 6039 PCI board]
 3268:     )],
 3269:     [ntp_ok=$enableval],
 3270:     [ntp_ok=$ntp_eac]
 3271: )
 3272: if test "$ntp_ok" = "yes"; then
 3273:     ntp_refclock=yes
 3274:     AC_DEFINE([CLOCK_HOPF_PCI], [1], [HOPF PCI clock device?])
 3275: fi
 3276: AC_MSG_RESULT([$ntp_ok])
 3277: 
 3278: AC_MSG_CHECKING([HP 58503A GPS receiver])
 3279: AC_ARG_ENABLE(
 3280:     [HPGPS],
 3281:     [AS_HELP_STRING(
 3282: 	[--enable-HPGPS],
 3283: 	[+ HP 58503A GPS receiver]
 3284:     )],
 3285:     [ntp_ok=$enableval],
 3286:     [ntp_ok=$ntp_eac]
 3287: )
 3288: if test "$ntp_ok" = "yes"; then
 3289:     ntp_refclock=yes
 3290:     AC_DEFINE([CLOCK_HPGPS], 1, [HP 58503A GPS receiver?])
 3291: fi
 3292: AC_MSG_RESULT([$ntp_ok])
 3293: 
 3294: AC_MSG_CHECKING([IRIG audio decoder])
 3295: AC_ARG_ENABLE(
 3296:     [IRIG],
 3297:     [AS_HELP_STRING(
 3298: 	[--enable-IRIG],
 3299: 	[s IRIG audio decoder]
 3300:     )],
 3301:     [ntp_ok=$enableval],
 3302:     [
 3303: 	case "$ntp_eac$ntp_canaudio" in
 3304: 	 *no*)	ntp_ok=no  ;;
 3305: 	 *)	ntp_ok=yes ;;
 3306: 	esac
 3307:     ]
 3308: )
 3309: if test "$ntp_ok" = "yes"; then
 3310:     ntp_refclock=yes
 3311:     AC_DEFINE([CLOCK_IRIG], [1], [IRIG audio decoder?])
 3312: fi
 3313: AC_MSG_RESULT([$ntp_ok])
 3314: case "$ntp_ok$ntp_canaudio" in
 3315:  yesno) AC_MSG_WARN([*** But the expected answer is... no ***])
 3316: esac
 3317: 
 3318: AC_MSG_CHECKING([for JJY receiver])
 3319: AC_ARG_ENABLE(
 3320:     [JJY],
 3321:     [AS_HELP_STRING(
 3322: 	[--enable-JJY],
 3323: 	[+ JJY receiver]
 3324:     )],
 3325:     [ntp_ok=$enableval],
 3326:     [ntp_ok=$ntp_eac]
 3327: )
 3328: if test "$ntp_ok" = "yes"; then
 3329:     ntp_refclock=yes
 3330:     AC_DEFINE([CLOCK_JJY], [1], [JJY receiver?])
 3331: fi
 3332: AC_MSG_RESULT([$ntp_ok])
 3333: 
 3334: AC_MSG_CHECKING([Rockwell Jupiter GPS receiver])
 3335: AC_ARG_ENABLE(
 3336:     [JUPITER],
 3337:     [AS_HELP_STRING(
 3338: 	[--enable-JUPITER],
 3339: 	[s Rockwell Jupiter GPS receiver]
 3340:     )],
 3341:     [ntp_ok=$enableval], [ntp_ok=$ntp_eac])
 3342: case "$ntp_jupiter_ok" in
 3343:  no) ntp_ok=no ;;
 3344: esac
 3345: if test "$ntp_ok" = "yes"; then
 3346:     ntp_refclock=yes
 3347:     AC_DEFINE([CLOCK_JUPITER], [1], [Rockwell Jupiter GPS clock?])
 3348: fi
 3349: AC_MSG_RESULT([$ntp_ok])
 3350: 
 3351: AC_MSG_CHECKING([Leitch CSD 5300 Master Clock System Driver])
 3352: AC_ARG_ENABLE(
 3353:     [LEITCH],
 3354:     [AS_HELP_STRING(
 3355: 	[--enable-LEITCH],
 3356: 	[+ Leitch CSD 5300 Master Clock System Driver]
 3357:     )],
 3358:     [ntp_ok=$enableval],
 3359:     [ntp_ok=$ntp_eac]
 3360: )
 3361: if test "$ntp_ok" = "yes"; then
 3362:     ntp_refclock=yes
 3363:     AC_DEFINE([CLOCK_LEITCH], [1],
 3364: 	[Leitch CSD 5300 Master Clock System Driver?])
 3365: fi
 3366: AC_MSG_RESULT([$ntp_ok])
 3367: 
 3368: AC_MSG_CHECKING([local clock reference])
 3369: AC_ARG_ENABLE(
 3370:     [LOCAL-CLOCK],
 3371:     [AS_HELP_STRING(
 3372: 	[--enable-LOCAL-CLOCK],
 3373: 	[+ local clock reference]
 3374:     )],
 3375:     [ntp_ok=$enableval],
 3376:     [ntp_ok=$ntp_eac]
 3377: )
 3378: if test "$ntp_ok" = "yes"; then
 3379:     ntp_refclock=yes
 3380:     AC_DEFINE([CLOCK_LOCAL], [1], [local clock reference?])
 3381: fi
 3382: AC_MSG_RESULT([$ntp_ok])
 3383: 
 3384: dnl Bug 340: longstanding unfixed bugs
 3385: dnl AC_MSG_CHECKING([EES M201 MSF receiver])
 3386: dnl AC_ARG_ENABLE([MSFEES],
 3387: dnl     [AS_HELP_STRING([--enable-MSFEES], [+ EES M201 MSF receiver])],
 3388: dnl     [ntp_ok=$enableval], [ntp_ok=$ntp_eac])
 3389: dnl if test "$ntp_ok" = "yes"; then
 3390: dnl     ntp_refclock=yes
 3391: dnl     AC_DEFINE([CLOCK_MSFEES], [1], [EES M201 MSF receiver])
 3392: dnl fi
 3393: dnl AC_MSG_RESULT([$ntp_ok])
 3394: 
 3395: # Not Ultrix
 3396: AC_MSG_CHECKING([Magnavox MX4200 GPS receiver])
 3397: AC_ARG_ENABLE(
 3398:     [MX4200],
 3399:     [AS_HELP_STRING(
 3400: 	[--enable-MX4200 ],
 3401: 	[s Magnavox MX4200 GPS receiver]
 3402:     )],
 3403:     [ntp_ok=$enableval],
 3404:     [
 3405: 	case "$ac_cv_var_ppsclock" in
 3406: 	 yes)
 3407: 	    ntp_ok=$ntp_eac
 3408: 	    ;;
 3409: 	 *)
 3410: 	    ntp_ok=no
 3411: 	    ;;
 3412: 	esac
 3413:     ]
 3414: )
 3415: if test "$ntp_ok" = "yes"; then
 3416:     ntp_refclock=yes
 3417:     AC_DEFINE([CLOCK_MX4200], [1], [Magnavox MX4200 GPS receiver])
 3418: fi
 3419: AC_MSG_RESULT([$ntp_ok])
 3420: case "$ntp_ok$host" in
 3421:  yes*-*-ultrix*) AC_MSG_WARN([*** But the expected answer is... no ***])
 3422: esac
 3423: 
 3424: AC_MSG_CHECKING([for NeoClock4X receiver])
 3425: AC_ARG_ENABLE(
 3426:     [NEOCLOCK4X],
 3427:     [AS_HELP_STRING(
 3428: 	[--enable-NEOCLOCK4X],
 3429: 	[+ NeoClock4X DCF77 / TDF receiver]
 3430:     )],
 3431:     [ntp_ok=$enableval],
 3432:     [ntp_ok=$ntp_eac]
 3433: )
 3434: if test "$ntp_ok" = "yes"; then
 3435:     ntp_refclock=yes
 3436:     AC_DEFINE([CLOCK_NEOCLOCK4X], [1], [NeoClock4X])
 3437: fi
 3438: AC_MSG_RESULT([$ntp_ok])
 3439: 
 3440: AC_MSG_CHECKING([NMEA GPS receiver])
 3441: AC_ARG_ENABLE(
 3442:     [NMEA],
 3443:     [AS_HELP_STRING(
 3444: 	[--enable-NMEA],
 3445: 	[+ NMEA GPS receiver]
 3446:     )],
 3447:     [ntp_ok=$enableval],
 3448:     [ntp_ok=$ntp_eac]
 3449: )
 3450: if test "$ntp_ok" = "yes"; then
 3451:     ntp_refclock=yes
 3452:     AC_DEFINE([CLOCK_NMEA], [1], [NMEA GPS receiver])
 3453: fi
 3454: AC_MSG_RESULT([$ntp_ok])
 3455: 
 3456: AC_MSG_CHECKING([for ONCORE Motorola VP/UT Oncore GPS])
 3457: AC_ARG_ENABLE(
 3458:     [ONCORE],
 3459:     [AS_HELP_STRING(
 3460: 	[--enable-ONCORE],
 3461: 	[s Motorola VP/UT Oncore GPS receiver]
 3462:     )],
 3463:     [ntp_ok=$enableval],
 3464:     [ntp_ok=$ntp_eac]
 3465: )
 3466: case "$ntp_oncore_ok" in
 3467:  no) ntp_ok=no ;;
 3468: esac
 3469: if test "$ntp_ok" = "yes"; then
 3470:     ntp_refclock=yes
 3471:     AC_DEFINE([CLOCK_ONCORE], 1, [Motorola UT Oncore GPS])
 3472: fi
 3473: AC_MSG_RESULT([$ntp_ok])
 3474: 
 3475: # Requires modem control
 3476: AC_MSG_CHECKING([for Palisade clock])
 3477: AC_ARG_ENABLE(
 3478:     [PALISADE],
 3479:     [AS_HELP_STRING(
 3480: 	[--enable-PALISADE],
 3481: 	[s Palisade clock]
 3482:     )],
 3483:     [ntp_ok=$enableval],
 3484:     [ntp_ok=$ntp_enable_all_modem_control_clocks]
 3485: )
 3486: if test "$ntp_ok" = "yes"; then
 3487:     ntp_refclock=yes
 3488:     AC_DEFINE([CLOCK_PALISADE], [1], [Palisade clock])
 3489: fi
 3490: AC_MSG_RESULT([$ntp_ok])
 3491: 
 3492: AC_MSG_CHECKING([Conrad parallel port radio clock])
 3493: AC_ARG_ENABLE(
 3494:     [PCF],
 3495:     [AS_HELP_STRING(
 3496: 	[--enable-PCF ],
 3497: 	[+ Conrad parallel port radio clock]
 3498:     )],
 3499:     [ntp_ok=$enableval],
 3500:     [ntp_ok=$ntp_eac]
 3501: )
 3502: if test "$ntp_ok" = "yes"; then
 3503:     ntp_refclock=yes
 3504:     AC_DEFINE([CLOCK_PCF], [1], [Conrad parallel port radio clock])
 3505: fi
 3506: AC_MSG_RESULT([$ntp_ok])
 3507: 
 3508: AC_MSG_CHECKING([PST/Traconex 1020 WWV/WWVH receiver])
 3509: AC_ARG_ENABLE(
 3510:     [PST],
 3511:     [AS_HELP_STRING(
 3512: 	[--enable-PST],
 3513: 	[+ PST/Traconex 1020 WWV/WWVH receiver]
 3514:     )],
 3515:     [ntp_ok=$enableval],
 3516:     [ntp_ok=$ntp_eac]
 3517: )
 3518: if test "$ntp_ok" = "yes"; then
 3519:     ntp_refclock=yes
 3520:     AC_DEFINE([CLOCK_PST], [1], [PST/Traconex 1020 WWV/WWVH receiver])
 3521: fi
 3522: AC_MSG_RESULT([$ntp_ok])
 3523: 
 3524: AC_MSG_CHECKING([RIPENCC specific Trimble driver])
 3525: AC_ARG_ENABLE(
 3526:     [RIPENCC],
 3527:     [AS_HELP_STRING(
 3528: 	[--enable-RIPENCC],
 3529: 	[- RIPENCC specific Trimble driver]
 3530:     )],
 3531:     [ntp_ok=$enableval],
 3532:     [ntp_ok=no]
 3533: )
 3534: # 020629: HMS: s/$ntp_eac -> -/no because of ptr += sprintf(ptr, ...) usage
 3535: case "$ntp_ripe_ncc_ok" in
 3536:  no) ntp_ok=no ;;
 3537: esac
 3538: if test "$ntp_ok" = "yes"; then
 3539:     ntp_refclock=yes
 3540:     AC_DEFINE([CLOCK_RIPENCC], [],[RIPE NCC Trimble clock])
 3541: fi
 3542: AC_MSG_RESULT([$ntp_ok])
 3543: 
 3544: # Danny Meyer says SHM compiles (with a few warnings) under Win32.
 3545: # For *IX, we need sys/ipc.h and sys/shm.h.
 3546: AC_MSG_CHECKING([for SHM clock attached thru shared memory])
 3547: AC_ARG_ENABLE(
 3548:     [SHM],
 3549:     [AS_HELP_STRING(
 3550: 	[--enable-SHM],
 3551: 	[s SHM clock attached thru shared memory]
 3552:     )],
 3553:     [ntp_ok=$enableval],
 3554:     [
 3555: 	case "$ntp_eac$ntp_canshm" in
 3556: 	 *no*)	ntp_ok=no  ;;
 3557: 	 *)	ntp_ok=yes ;;
 3558: 	esac
 3559:     ]
 3560: )
 3561: if test "$ntp_ok" = "yes"; then
 3562:     ntp_refclock=yes
 3563:     AC_DEFINE([CLOCK_SHM], [1], [clock thru shared memory])
 3564: fi
 3565: AC_MSG_RESULT([$ntp_ok])
 3566: 
 3567: AC_MSG_CHECKING([Spectracom 8170/Netclock/2 WWVB receiver])
 3568: AC_ARG_ENABLE(
 3569:     [SPECTRACOM],
 3570:     [AS_HELP_STRING(
 3571: 	[--enable-SPECTRACOM],
 3572: 	[+ Spectracom 8170/Netclock/2 WWVB receiver]
 3573:     )],
 3574:     [ntp_ok=$enableval],
 3575:     [ntp_ok=$ntp_eac]
 3576: )
 3577: if test "$ntp_ok" = "yes"; then
 3578:     ntp_refclock=yes
 3579:     AC_DEFINE([CLOCK_SPECTRACOM], [1],
 3580: 	[Spectracom 8170/Netclock/2 WWVB receiver])
 3581: fi
 3582: AC_MSG_RESULT([$ntp_ok])
 3583: 
 3584: AC_MSG_CHECKING([KSI/Odetics TPRO/S GPS receiver/IRIG interface])
 3585: AC_ARG_ENABLE(
 3586:     [TPRO],
 3587:     [AS_HELP_STRING(
 3588: 	[--enable-TPRO],
 3589: 	[s KSI/Odetics TPRO/S GPS receiver/IRIG interface]
 3590:     )],
 3591:     [ntp_ok=$enableval],
 3592:     [
 3593: 	case "$ac_cv_header_sys_tpro_h" in
 3594: 	 yes)
 3595: 	    ntp_ok=$ntp_eac
 3596: 	    ;;
 3597: 	 *)
 3598: 	    ntp_ok=no
 3599: 	    ;;
 3600: 	esac
 3601:     ]
 3602: )
 3603: if test "$ntp_ok" = "yes"; then
 3604:     ntp_refclock=yes
 3605:     AC_DEFINE([CLOCK_TPRO], [1],
 3606: 	[KSI/Odetics TPRO/S GPS receiver/IRIG interface])
 3607: fi
 3608: AC_MSG_RESULT([$ntp_ok])
 3609: case "$ntp_ok$ac_cv_header_sys_tpro" in
 3610:  yesno) AC_MSG_WARN([*** But the expected answer is... no ***])
 3611: esac
 3612: 
 3613: dnl Bug 342: longstanding unfixed bugs
 3614: dnl AC_MSG_CHECKING([TRAK 8810 GPS receiver])
 3615: dnl AC_ARG_ENABLE([TRAK],
 3616: dnl     [AS_HELP_STRING([--enable-TRAK], [+ TRAK 8810 GPS receiver])],
 3617: dnl     [ntp_ok=$enableval], [ntp_ok=$ntp_eac])
 3618: dnl if test "$ntp_ok" = "yes"; then
 3619: dnl     ntp_refclock=yes
 3620: dnl     AC_DEFINE([CLOCK_TRAK], [1], [TRAK 8810 GPS receiver])
 3621: dnl fi
 3622: dnl AC_MSG_RESULT([$ntp_ok])
 3623: 
 3624: # Not on a vax-dec-bsd
 3625: AC_MSG_CHECKING([Kinemetrics/TrueTime receivers])
 3626: AC_ARG_ENABLE(
 3627:     [TRUETIME],
 3628:     [AS_HELP_STRING(
 3629: 	[--enable-TRUETIME],
 3630: 	[s Kinemetrics/TrueTime receivers]
 3631:     )],
 3632:     [ntp_ok=$enableval],
 3633:     [
 3634: 	case "$host" in
 3635: 	 vax-dec-bsd)
 3636: 	    ntp_ok=no
 3637: 	    ;;
 3638: 	 *)
 3639: 	    ntp_ok=$ntp_eac
 3640: 	    ;;
 3641: 	esac
 3642:     ]
 3643: )    
 3644: if test "$ntp_ok" = "yes"; then
 3645:     ntp_refclock=yes
 3646:     AC_DEFINE([CLOCK_TRUETIME], [1], [Kinemetrics/TrueTime receivers])
 3647: fi
 3648: AC_MSG_RESULT([$ntp_ok])
 3649: case "$ntp_ok$host" in
 3650:  yesvax-dec-bsd) AC_MSG_WARN([*** But the expected answer is... no ***])
 3651: esac
 3652: 
 3653: AC_MSG_CHECKING([TrueTime 560 IRIG-B decoder])
 3654: AC_ARG_ENABLE(
 3655:     [TT560],
 3656:     [AS_HELP_STRING(
 3657: 	[--enable-TT560],
 3658: 	[- TrueTime 560 IRIG-B decoder]
 3659:     )],
 3660:     [ntp_ok=$enableval],
 3661:     [ntp_ok=no]
 3662: )
 3663: if test "$ntp_ok" = "yes"; then
 3664:     ntp_refclock=yes
 3665:     AC_DEFINE([CLOCK_TT560], [], [TrueTime 560 IRIG-B decoder?])
 3666: fi
 3667: AC_MSG_RESULT([$ntp_ok])
 3668: 
 3669: AC_MSG_CHECKING([Ultralink M320 WWVB receiver])
 3670: AC_ARG_ENABLE(
 3671:     [ULINK],
 3672:     [AS_HELP_STRING(
 3673: 	[--enable-ULINK],
 3674: 	[+ Ultralink WWVB receiver]
 3675:     )],
 3676:     [ntp_ok=$enableval],
 3677:     [ntp_ok=$ntp_eac]
 3678: )
 3679: if test "$ntp_ok" = "yes"; then
 3680:     ntp_refclock=yes
 3681:     AC_DEFINE([CLOCK_ULINK], [1], [Ultralink M320 WWVB receiver?])
 3682: fi
 3683: AC_MSG_RESULT([$ntp_ok])
 3684: 
 3685: AC_MSG_CHECKING([WWV receiver])
 3686: AC_ARG_ENABLE(
 3687:     [WWV],
 3688:     [AS_HELP_STRING(
 3689: 	[--enable-WWV],
 3690: 	[s WWV Audio receiver]
 3691:     )],
 3692:     [ntp_ok=$enableval],
 3693:     [
 3694: 	case "$ntp_eac$ntp_canaudio" in
 3695: 	 *no*)	ntp_ok=no  ;;
 3696: 	 *)	ntp_ok=yes ;;
 3697: 	esac
 3698:     ]
 3699: )
 3700: if test "$ntp_ok" = "yes"; then
 3701:     ntp_refclock=yes
 3702:     AC_DEFINE([CLOCK_WWV], [1], [WWV audio driver])
 3703: fi
 3704: AC_MSG_RESULT([$ntp_ok])
 3705: case "$ntp_ok$ntp_canaudio" in
 3706:  yesno) AC_MSG_WARN([*** But the expected answer is... no ***])
 3707: esac
 3708: 
 3709: AC_MSG_CHECKING([for Zyfer receiver])
 3710: AC_ARG_ENABLE(
 3711:     [ZYFER],
 3712:     [AS_HELP_STRING(
 3713: 	[--enable-ZYFER],
 3714: 	[+ Zyfer GPStarplus receiver]
 3715:     )],
 3716:     [ntp_ok=$enableval],
 3717:     [ntp_ok=$ntp_eac]
 3718: )
 3719: if test "$ntp_ok" = "yes"; then
 3720:     ntp_refclock=yes
 3721:     AC_DEFINE([CLOCK_ZYFER], [1], [Zyfer GPStarplus])
 3722: fi
 3723: AC_MSG_RESULT([$ntp_ok])
 3724: 
 3725: AC_MSG_CHECKING([for default inclusion of all suitable PARSE clocks])
 3726: AC_ARG_ENABLE(
 3727:     [parse-clocks],
 3728:     [AS_HELP_STRING(
 3729: 	[--enable-parse-clocks],
 3730: 	[- include all suitable PARSE clocks:]
 3731:     )],
 3732:     [ntp_eapc=$enableval],
 3733:     [
 3734: 	case "$ntp_eac" in
 3735: 	 yes)	ntp_eapc=$ntp_canparse ;;
 3736: 	 *)	ntp_eapc=no ;;
 3737: 	esac
 3738: 	# Delete the next line one of these days
 3739: 	ntp_eapc=no
 3740:     ]
 3741: )
 3742: AC_MSG_RESULT($ntp_eapc)
 3743: 
 3744: case "$ntp_eac$ntp_eapc$ntp_canparse" in
 3745:  noyes*)
 3746:     AC_MSG_ERROR(["--enable-parse-clocks" requires "--enable-all-clocks".])
 3747:     ;;
 3748:  yesyesno)
 3749:     AC_MSG_ERROR([You said "--enable-parse-clocks" but PARSE isn't supported on this platform!])
 3750:     ;;
 3751: esac
 3752: 
 3753: ntp_libparse=no
 3754: ntp_parseutil=no
 3755: ntp_rawdcf=no
 3756: 
 3757: AC_MSG_CHECKING([Diem Computime Radio Clock])
 3758: AC_ARG_ENABLE(
 3759:     [COMPUTIME],
 3760:     [AS_HELP_STRING(
 3761: 	[--enable-COMPUTIME],
 3762: 	[s Diem Computime Radio Clock]
 3763:     )],
 3764:     [ntp_ok=$enableval],
 3765:     [ntp_ok=$ntp_eapc]
 3766: )
 3767: if test "$ntp_ok" = "yes"; then
 3768:     ntp_libparse=yes
 3769:     ntp_refclock=yes
 3770:     AC_DEFINE([CLOCK_COMPUTIME], [1], [Diems Computime Radio Clock?])
 3771: fi
 3772: AC_MSG_RESULT([$ntp_ok])
 3773: case "$ntp_ok$ntp_canparse" in
 3774:  yesno)
 3775:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3776: esac
 3777: 
 3778: AC_MSG_CHECKING([ELV/DCF7000 clock])
 3779: AC_ARG_ENABLE(
 3780:     [DCF7000],
 3781:     [AS_HELP_STRING(
 3782: 	[--enable-DCF7000],
 3783: 	[s ELV/DCF7000 clock]
 3784:     )],
 3785:     [ntp_ok=$enableval],
 3786:     [ntp_ok=$ntp_eapc]
 3787: )
 3788: if test "$ntp_ok" = "yes"; then
 3789:     ntp_libparse=yes
 3790:     ntp_refclock=yes
 3791:     AC_DEFINE([CLOCK_DCF7000], [1], [ELV/DCF7000 clock?])
 3792: fi
 3793: AC_MSG_RESULT([$ntp_ok])
 3794: case "$ntp_ok$ntp_canparse" in
 3795:  yesno)
 3796:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3797: esac
 3798: 
 3799: AC_MSG_CHECKING([HOPF 6021 clock])
 3800: AC_ARG_ENABLE(
 3801:     [HOPF6021],
 3802:     [AS_HELP_STRING(
 3803: 	[--enable-HOPF6021],
 3804: 	[s HOPF 6021 clock]
 3805:     )],
 3806:     [ntp_ok=$enableval],
 3807:     [ntp_ok=$ntp_eapc]
 3808: )
 3809: if test "$ntp_ok" = "yes"; then
 3810:     ntp_libparse=yes
 3811:     ntp_refclock=yes
 3812:     AC_DEFINE([CLOCK_HOPF6021], [1], [HOPF 6021 clock?])
 3813: fi
 3814: AC_MSG_RESULT([$ntp_ok])
 3815: case "$ntp_ok$ntp_canparse" in
 3816:  yesno)
 3817:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3818: esac
 3819: 
 3820: AC_MSG_CHECKING([Meinberg clocks])
 3821: AC_ARG_ENABLE(
 3822:     [MEINBERG],
 3823:     [AS_HELP_STRING(
 3824: 	[--enable-MEINBERG],
 3825: 	[s Meinberg clocks]
 3826:     )],
 3827:     [ntp_ok=$enableval],
 3828:     [ntp_ok=$ntp_eapc]
 3829: )
 3830: if test "$ntp_ok" = "yes"; then
 3831:     ntp_libparse=yes
 3832:     ntp_refclock=yes
 3833:     AC_DEFINE([CLOCK_MEINBERG], [1], [Meinberg clocks])
 3834: fi
 3835: AC_MSG_RESULT([$ntp_ok])
 3836: case "$ntp_ok$ntp_canparse" in
 3837:  yesno)
 3838:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3839: esac
 3840: 
 3841: AC_MSG_CHECKING([DCF77 raw time code])
 3842: AC_ARG_ENABLE(
 3843:     [RAWDCF],
 3844:     [AS_HELP_STRING(
 3845: 	[--enable-RAWDCF],
 3846: 	[s DCF77 raw time code]
 3847:     )],
 3848:     [ntp_ok=$enableval],
 3849:     [ntp_ok=$ntp_eapc]
 3850: )
 3851: if test "$ntp_ok" = "yes"; then
 3852:     ntp_libparse=yes
 3853:     ntp_parseutil=yes
 3854:     ntp_refclock=yes
 3855:     ntp_rawdcf=yes
 3856:     AC_DEFINE([CLOCK_RAWDCF], [1], [DCF77 raw time code])
 3857: fi
 3858: AC_MSG_RESULT([$ntp_ok])
 3859: case "$ntp_ok$ntp_canparse" in
 3860:  yesno)
 3861:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3862: esac
 3863: 
 3864: case "$ntp_rawdcf" in
 3865:  yes)
 3866:     AC_CACHE_CHECK([if we must enable parity for RAWDCF],
 3867: 	[ntp_cv_rawdcf_parity],
 3868: 	[
 3869: 	    ans=no
 3870: 	    case "$host" in
 3871: 	     *-*-*linux*)
 3872: 		ans=yes
 3873: 		;;
 3874: 	    esac
 3875: 	    ntp_cv_rawdcf_parity=$ans
 3876: 	]
 3877:     )
 3878:     case "$ntp_cv_rawdcf_parity" in
 3879:      yes)
 3880: 	AC_DEFINE([RAWDCF_NO_IGNPAR], [1],
 3881: 	    [Should we not IGNPAR (Linux)?]) ;;
 3882:     esac
 3883: esac
 3884: 
 3885: AC_MSG_CHECKING([RCC 8000 clock])
 3886: AC_ARG_ENABLE(
 3887:     [RCC8000],
 3888:     [AS_HELP_STRING(
 3889: 	[--enable-RCC8000],
 3890: 	[s RCC 8000 clock]
 3891:     )],
 3892:     [ntp_ok=$enableval],
 3893:     [ntp_ok=$ntp_eapc]
 3894: )
 3895: if test "$ntp_ok" = "yes"; then
 3896:     ntp_libparse=yes
 3897:     ntp_refclock=yes
 3898:     AC_DEFINE([CLOCK_RCC8000], [1], [RCC 8000 clock])
 3899: fi
 3900: AC_MSG_RESULT([$ntp_ok])
 3901: case "$ntp_ok$ntp_canparse" in
 3902:  yesno)
 3903:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3904: esac
 3905: 
 3906: AC_MSG_CHECKING([Schmid DCF77 clock])
 3907: AC_ARG_ENABLE(
 3908:     [SCHMID],
 3909:     [AS_HELP_STRING(
 3910: 	[--enable-SCHMID ],
 3911: 	[s Schmid DCF77 clock]
 3912:     )],
 3913:     [ntp_ok=$enableval],
 3914:     [ntp_ok=$ntp_eapc]
 3915: )
 3916: if test "$ntp_ok" = "yes"; then
 3917:     ntp_libparse=yes
 3918:     ntp_refclock=yes
 3919:     AC_DEFINE([CLOCK_SCHMID], [1], [Schmid DCF77 clock])
 3920: fi
 3921: AC_MSG_RESULT([$ntp_ok])
 3922: case "$ntp_ok$ntp_canparse" in
 3923:  yesno)
 3924:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3925: esac
 3926: 
 3927: AC_MSG_CHECKING([Trimble GPS receiver/TAIP protocol])
 3928: AC_ARG_ENABLE(
 3929:     [TRIMTAIP],
 3930:     [AS_HELP_STRING(
 3931: 	[--enable-TRIMTAIP],
 3932: 	[s Trimble GPS receiver/TAIP protocol]
 3933:     )],
 3934:     [ntp_ok=$enableval],
 3935:     [ntp_ok=$ntp_eapc]
 3936: )
 3937: if test "$ntp_ok" = "yes"; then
 3938:     ntp_libparse=yes
 3939:     ntp_refclock=yes
 3940:     AC_DEFINE([CLOCK_TRIMTAIP], [1],
 3941: 	[Trimble GPS receiver/TAIP protocol])
 3942: fi
 3943: AC_MSG_RESULT([$ntp_ok])
 3944: case "$ntp_ok$ntp_canparse" in
 3945:  yesno)
 3946:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3947: esac
 3948: 
 3949: AC_MSG_CHECKING([Trimble GPS receiver/TSIP protocol])
 3950: AC_ARG_ENABLE(
 3951:     [TRIMTSIP],
 3952:     [AS_HELP_STRING(
 3953: 	[--enable-TRIMTSIP],
 3954: 	[s Trimble GPS receiver/TSIP protocol]
 3955:     )],
 3956:     [ntp_ok=$enableval],
 3957:     [ntp_ok=$ntp_eapc]
 3958: )
 3959: if test "$ntp_ok" = "yes"; then
 3960:     ntp_libparse=yes
 3961:     ntp_refclock=yes
 3962:     AC_DEFINE([CLOCK_TRIMTSIP], [1],
 3963: 	[Trimble GPS receiver/TSIP protocol])
 3964: fi
 3965: AC_MSG_RESULT([$ntp_ok])
 3966: case "$ntp_ok$ntp_canparse" in
 3967:  yesno)
 3968:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3969: esac
 3970: 
 3971: AC_MSG_CHECKING([WHARTON 400A Series clock])
 3972: AC_ARG_ENABLE(
 3973:     [WHARTON],
 3974:     [AS_HELP_STRING(
 3975: 	[--enable-WHARTON],
 3976: 	[s WHARTON 400A Series clock]
 3977:     )],
 3978:     [ntp_ok=$enableval],
 3979:     [ntp_ok=$ntp_eapc]
 3980: )
 3981: if test "$ntp_ok" = "yes"; then
 3982:     ntp_libparse=yes
 3983:     ntp_refclock=yes
 3984:     AC_DEFINE([CLOCK_WHARTON_400A], [1], [WHARTON 400A Series clock])
 3985: fi
 3986: AC_MSG_RESULT([$ntp_ok])
 3987: case "$ntp_ok$ntp_canparse" in
 3988:  yesno)
 3989:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 3990: esac
 3991: 
 3992: AC_MSG_CHECKING([VARITEXT clock])
 3993: AC_ARG_ENABLE(
 3994:     [VARITEXT],
 3995:     [AS_HELP_STRING(
 3996: 	[--enable-VARITEXT],
 3997: 	[s VARITEXT clock]
 3998:     )],
 3999:     [ntp_ok=$enableval],
 4000:     [ntp_ok=$ntp_eapc]
 4001: )
 4002: if test "$ntp_ok" = "yes"; then
 4003:     ntp_libparse=yes
 4004:     ntp_refclock=yes
 4005:     AC_DEFINE([CLOCK_VARITEXT], [1], [VARITEXT clock])
 4006: fi
 4007: AC_MSG_RESULT([$ntp_ok])
 4008: case "$ntp_ok$ntp_canparse" in
 4009:  yesno)
 4010:     AC_MSG_ERROR([That's a parse clock and this system doesn't support it!])
 4011: esac
 4012: 
 4013: AC_SUBST([LIBPARSE])
 4014: AC_SUBST([MAKE_LIBPARSE])
 4015: AC_SUBST([MAKE_LIBPARSE_KERNEL])
 4016: AC_SUBST([MAKE_CHECK_Y2K])
 4017: 
 4018: AC_MSG_CHECKING([if we need to make and use the parse libraries])
 4019: ans=no
 4020: case "$ntp_libparse" in
 4021:  yes)
 4022:     ans=yes
 4023:     AC_DEFINE([CLOCK_PARSE], [1], [PARSE driver interface])
 4024:     LIBPARSE=../libparse/libparse.a
 4025:     MAKE_LIBPARSE=libparse.a
 4026:     # HMS: check_y2k trips the 34 year problem now...
 4027:     false && MAKE_CHECK_Y2K=check_y2k
 4028: esac
 4029: AC_MSG_RESULT([$ans])
 4030: 
 4031: NTP_OPENSSL
 4032: 
 4033: AC_MSG_CHECKING([if we want to compile with ElectricFence])
 4034: AC_ARG_WITH(
 4035:     [electricfence],
 4036:     [AS_HELP_STRING(
 4037: 	[--with-electricfence],
 4038: 	[- compile with ElectricFence malloc debugger]
 4039:     )],
 4040:     [ans=$withval],
 4041:     [ans=no]
 4042: )
 4043: case "$ans" in
 4044:  no) ;;
 4045:  *)
 4046:     LIBS="$LIBS \${top_builddir}/ElectricFence/libefence.a"
 4047:     EF_PROGS="eftest tstheap"
 4048:     AC_SUBST([EF_PROGS])
 4049:     EF_LIBS=libefence.a
 4050:     AC_SUBST([EF_LIBS])
 4051:     ans=yes
 4052:     ;;
 4053: esac
 4054: AC_MSG_RESULT([$ans])
 4055: 
 4056: AC_SUBST([MAKE_CHECK_LAYOUT])
 4057: AC_MSG_CHECKING([if we want to run check-layout])
 4058: case "$cross_compiling$PATH_PERL" in
 4059:  no/*)
 4060:     MAKE_CHECK_LAYOUT=check-layout
 4061:     ans=yes
 4062:     ;;
 4063:  *)
 4064:     ans=no
 4065:     ;;
 4066: esac
 4067: AC_MSG_RESULT([$ans])
 4068: 
 4069: AC_SUBST([TESTDCF])
 4070: AC_SUBST([DCFD])
 4071: AC_MSG_CHECKING([if we can make dcf parse utilities])
 4072: ans=no
 4073: if test "$ntp_parseutil" = "yes"; then
 4074:     case "$host" in
 4075:      *-*-sunos4*|*-*-solaris2*|*-*-*linux*|*-*-netbsd*)
 4076: 	ans="dcfd testdcf"
 4077: 	DCFD=dcfd
 4078:         TESTDCF=testdcf
 4079:     esac
 4080: fi
 4081: AC_MSG_RESULT([$ans])
 4082: 
 4083: AC_SUBST([MAKE_PARSEKMODULE])
 4084: AC_MSG_CHECKING([if we can build kernel streams modules for parse])
 4085: ans=no
 4086: case "$ntp_parseutil$ac_cv_header_sys_stropts_h" in
 4087:  yesyes)
 4088:     case "$host" in
 4089:      sparc-*-sunos4*)
 4090:         case "$ntp_cv_var_kernel_pll" in
 4091: 	yes)
 4092: 	    AC_DEFINE([PPS_SYNC], [1], [PARSE kernel PLL PPS support])
 4093: 	    ;;
 4094: 	esac
 4095: 	ans=parsestreams
 4096: 	MAKE_PARSEKMODULE=parsestreams.loadable_module.o
 4097: 	;;
 4098:      sparc-*-solaris2*)
 4099: 	ans=parsesolaris
 4100: 	MAKE_PARSEKMODULE=parse
 4101: 	AC_CHECK_HEADERS([strings.h])
 4102: 	;;
 4103:     esac
 4104:     ;;
 4105: esac
 4106: AC_MSG_RESULT([$ans])
 4107: 
 4108: AC_MSG_CHECKING([if we need basic refclock support])
 4109: if test "$ntp_refclock" = "yes"; then
 4110:     AC_DEFINE([REFCLOCK], [1], [Basic refclock support?])
 4111: fi
 4112: AC_MSG_RESULT($ntp_refclock)
 4113: 
 4114: dnl Things that can be made in clockstuff/
 4115: AC_SUBST([PROPDELAY])	dnl Set to "propdelay"
 4116: AC_SUBST([CHUTEST])	dnl Set to "chutest"
 4117: AC_SUBST([CLKTEST])	dnl Set to "clktest"
 4118: 
 4119: AC_SUBST([MAKE_ADJTIMED])
 4120: AC_MSG_CHECKING([if we want HP-UX adjtimed support])
 4121: case "$host" in
 4122:  *-*-hpux[[56789]]*)
 4123:     ans=yes
 4124:     ;;
 4125:  *) ans=no
 4126:     ;;
 4127: esac
 4128: if test "$ans" = "yes"; then
 4129:     MAKE_ADJTIMED=adjtimed
 4130:     AC_DEFINE([NEED_HPUX_ADJTIME], [1],
 4131: 	[Do we need HPUX adjtime() library support?])
 4132: fi
 4133: AC_MSG_RESULT([$ans])
 4134: 
 4135: AC_MSG_CHECKING([if we want QNX adjtime support])
 4136: case "$host" in
 4137:  *-*-qnx*)
 4138:     ans=yes
 4139:     ;;
 4140:  *) ans=no
 4141:     ;;
 4142: esac
 4143: if test "$ans" = "yes"; then
 4144:     AC_DEFINE([NEED_QNX_ADJTIME], [1],
 4145: 	[Do we need the qnx adjtime call?])
 4146: fi
 4147: AC_MSG_RESULT([$ans])
 4148: 
 4149: AC_MSG_CHECKING([if we can read kmem])
 4150: 
 4151: #  the default is to enable it if the system has the capability
 4152: 
 4153: case "$ac_cv_func_nlist$ac_cv_func_K_open$ac_cv_func_kvm_open" in
 4154:  *yes*)
 4155:     ans=yes
 4156:     ;;
 4157:  *) ans=no
 4158: esac
 4159: 
 4160: case "$host" in
 4161:  *-*-domainos)	# Won't be found...
 4162:     ans=no
 4163:     ;;
 4164:  *-*-hpux*)
 4165:     #ans=no
 4166:     ;;
 4167:  *-*-irix[[456]]*)
 4168:     ans=no
 4169:     ;;
 4170:  *-*-*linux*)
 4171:     ans=no
 4172:     ;;
 4173:  *-*-winnt3.5)
 4174:     ans=no
 4175:     ;;
 4176:  *-*-unicosmp*)
 4177:     ans=no
 4178:     ;;
 4179: esac
 4180: 
 4181: # --enable-kmem / --disable-kmem controls if present
 4182: AC_ARG_ENABLE(
 4183:     [kmem],
 4184:     [AS_HELP_STRING(
 4185: 	[--enable-kmem],
 4186: 	[s read /dev/kmem for tick and/or tickadj]
 4187:     )],
 4188:     [ans=$enableval]
 4189: )
 4190: 
 4191: AC_MSG_RESULT([$ans])
 4192: 
 4193: case "$ans" in
 4194:  yes)
 4195:     can_kmem=yes
 4196:     ;;
 4197:  *) 
 4198:     can_kmem=no
 4199:     AC_DEFINE([NOKMEM], [1], [Should we NOT read /dev/kmem?])
 4200: esac
 4201: 
 4202: 
 4203: AC_MSG_CHECKING([if adjtime is accurate])
 4204: 
 4205: # target-dependent defaults
 4206: 
 4207: case "$host" in
 4208:  i386-sequent-ptx*)
 4209:     ans=no
 4210:     ;;
 4211:  i386-unknown-osf1*)
 4212:     ans=yes
 4213:     ;;
 4214:  mips-sgi-irix[[456]]*)
 4215:     ans=yes
 4216:     ;;
 4217:  *-fujitsu-uxp*)
 4218:     ans=yes
 4219:     ;;
 4220:  *-ibm-aix[[456]]*)
 4221:     ans=yes
 4222:     ;;
 4223:  *-*-*linux*)
 4224:     ans=yes
 4225:     ;;
 4226:  *-*-solaris2.[[01]])
 4227:     ans=no
 4228:     ;;
 4229:  *-*-solaris2*)
 4230:     ans=yes
 4231:     ;;
 4232:  *-*-unicosmp*)
 4233:     ans=yes
 4234:     ;;
 4235:  *) ans=no
 4236: esac
 4237: 
 4238: # --enable-accurate-adjtime / --disable-accurate-adjtime
 4239: # override the default
 4240: AC_ARG_ENABLE(
 4241:     [accurate-adjtime],
 4242:     [AS_HELP_STRING(
 4243: 	[--enable-accurate-adjtime], 
 4244: 	[s the adjtime() call is accurate]
 4245:     )],
 4246:     [ans=$enableval]
 4247: )
 4248: 
 4249: AC_MSG_RESULT([$ans])
 4250: 
 4251: case "$ans" in
 4252:  yes) 
 4253:     AC_DEFINE([ADJTIME_IS_ACCURATE], [1], [Is adjtime() accurate?])
 4254:     adjtime_is_accurate=yes
 4255:     ;;
 4256:  *)
 4257:     adjtime_is_accurate=no
 4258:     ;;
 4259: esac
 4260: 
 4261: AC_CACHE_CHECK(
 4262:     [the name of 'tick' in the kernel],
 4263:     [ntp_cv_nlist_tick],
 4264:     [
 4265: 	ans=_tick
 4266: 	case "$host" in
 4267: 	 m68*-hp-hpux*) # HP9000/300?
 4268: 	    ans=_old_tick
 4269: 	    ;;
 4270: 	 *-apple-aux[[23]]*)
 4271: 	    ans=tick
 4272: 	    ;;
 4273: 	 *-hp-hpux*)
 4274: 	    ans=old_tick
 4275: 	    ;;
 4276: 	 *-ibm-aix[[3456]]*)
 4277: 	    ans=no
 4278: 	    ;;
 4279: 	 *-*-mpeix*)
 4280: 	    ans=no
 4281: 	    ;;
 4282: 	 *-*-ptx*)
 4283: 	    ans=tick
 4284: 	    ;;
 4285: 	 *-*-sco3.2v[[45]]*)
 4286: 	    ans=no
 4287: 	    ;;
 4288: 	 *-*-solaris2*)
 4289: 	    ans=nsec_per_tick
 4290: 	    ;;
 4291: 	 *-*-sysv4*)
 4292: 	    ans=tick
 4293: 	    ;;
 4294: 	esac
 4295: 	ntp_cv_nlist_tick=$ans
 4296:     ]
 4297: )
 4298: case "$ntp_cv_nlist_tick" in
 4299:  ''|no)
 4300:     ;;	# HMS: I think we can only get 'no' here...
 4301:  *) 
 4302:     AC_DEFINE_UNQUOTED([K_TICK_NAME], ["$ntp_cv_nlist_tick"],
 4303: 	[What is the name of TICK in the kernel?])
 4304: esac
 4305: 
 4306: AC_CACHE_CHECK(
 4307:     [for the units of 'tick'],
 4308:     [ntp_cv_tick_nano],
 4309:     [
 4310: 	ans=usec
 4311: 	case "$host" in
 4312: 	 *-*-solaris2*)
 4313: 	    ans=nsec
 4314: 	    ;;
 4315: 	esac
 4316: 	ntp_cv_tick_nano=$ans
 4317:     ]
 4318: )
 4319: case "$ntp_cv_tick_nano" in
 4320:  nsec)
 4321:     AC_DEFINE([TICK_NANO], [1], [Is K_TICK_NAME in nanoseconds?])
 4322: esac
 4323: 
 4324: AC_CACHE_CHECK(
 4325:     [the name of 'tickadj' in the kernel],
 4326:     [ntp_cv_nlist_tickadj],
 4327:     [
 4328: 	ans=_tickadj
 4329: 	case "$host" in
 4330: 	 m68*-hp-hpux*) # HP9000/300?
 4331: 	    ans=_tickadj
 4332: 	    ;;
 4333: 	 *-apple-aux[[23]]*)
 4334: 	    ans=tickadj
 4335: 	    ;;
 4336: 	 *-hp-hpux10*)
 4337: 	    ans=no
 4338: 	    ;;
 4339: 	 *-hp-hpux9*)
 4340: 	    ans=no
 4341: 	    ;;
 4342: 	 *-hp-hpux*)
 4343: 	    ans=tickadj
 4344: 	    ;;
 4345: 	 *-*-aix*)
 4346: 	    ans=tickadj
 4347: 	    ;;
 4348: 	 *-*-mpeix*)
 4349: 	    ans=no
 4350: 	    ;;
 4351: 	 *-*-ptx*)
 4352: 	    ans=tickadj
 4353: 	    ;;
 4354: 	 *-*-sco3.2v4*)
 4355: 	    ans=no
 4356: 	    ;;
 4357: 	 *-*-sco3.2v5.0*)
 4358: 	    ans=clock_drift
 4359: 	    ;;
 4360: 	 *-*-solaris2*)
 4361: 	    ans=no	# hrestime_adj
 4362: 	    ;;
 4363: 	 *-*-sysv4*)
 4364: 	    ans=tickadj
 4365: 	    ;;
 4366: 	esac
 4367: 	ntp_cv_nlist_tickadj=$ans
 4368:     ]
 4369: )
 4370: case "$ntp_cv_nlist_tickadj" in
 4371:  ''|no)
 4372:     ;;	# HMS: I think we can only get 'no' here...
 4373:  *) 
 4374:     AC_DEFINE_UNQUOTED([K_TICKADJ_NAME], ["$ntp_cv_nlist_tickadj"],
 4375: 	[What is the name of TICKADJ in the kernel?])
 4376: esac
 4377: 
 4378: AC_CACHE_CHECK(
 4379:     [for the units of 'tickadj'],
 4380:     [ntp_cv_tickadj_nano],
 4381:     [
 4382: 	ans=usec
 4383: 	case "$host" in
 4384: 	 *-*-solaris2*)
 4385: 	    ans=nsec
 4386: 	    ;;
 4387: 	esac
 4388: 	ntp_cv_tickadj_nano=$ans
 4389:     ]
 4390: )
 4391: case "$ntp_cv_tickadj_nano" in
 4392:  nsec)
 4393:     AC_DEFINE([TICKADJ_NANO], [1], [Is K_TICKADJ_NAME in nanoseconds?])
 4394: esac
 4395: 
 4396: AC_CACHE_CHECK(
 4397:     [half-heartedly for 'dosynctodr' in the kernel],
 4398:     [ntp_cv_nlist_dosynctodr],
 4399:     [
 4400: 	case "$host" in
 4401: 	 *-apple-aux[[23]]*)
 4402: 	    ans=no
 4403: 	    ;;
 4404: 	 *-sni-sysv*)
 4405: 	    ans=dosynctodr
 4406: 	    ;;
 4407: 	 *-*-aix*)
 4408: 	    ans=dosynctodr
 4409: 	    ;;
 4410: 	 *-*-hpux*)
 4411: 	    ans=no
 4412: 	    ;;
 4413: 	 *-*-mpeix*)
 4414: 	    ans=no
 4415: 	    ;;
 4416: 	 *-*-nextstep*)
 4417: 	    ans=_dosynctodr
 4418: 	    ;;
 4419: 	 *-*-ptx*)
 4420: 	    ans=doresettodr
 4421: 	    ;;
 4422: 	 *-*-sco3.2v4*)
 4423: 	    ans=no
 4424: 	    ;;
 4425: 	 *-*-sco3.2v5*)
 4426: 	    ans=track_rtc
 4427: 	    ;;
 4428: 	 *-*-solaris2*)
 4429: 	    ans=dosynctodr
 4430: 	    ;;
 4431: 	 *-*-sysv4*)
 4432: 	    ans=doresettodr
 4433: 	    ;;
 4434: 	 *)
 4435: 	    ans=_dosynctodr
 4436: 	    ;;
 4437: 	esac
 4438: 	ntp_cv_nlist_dosynctodr=$ans
 4439:     ]
 4440: )
 4441: case "$ntp_cv_nlist_dosynctodr" in
 4442:  no)
 4443:     ;;
 4444:  *)
 4445:     AC_DEFINE_UNQUOTED([K_DOSYNCTODR_NAME], ["$ntp_cv_nlist_dosynctodr"],
 4446: 	[What is (probably) the name of DOSYNCTODR in the kernel?])
 4447:     ;;
 4448: esac
 4449: 
 4450: AC_CACHE_CHECK(
 4451:     [half-heartedly for 'noprintf' in the kernel],
 4452:     [ntp_cv_nlist_noprintf],
 4453:     [
 4454: 	case "$host" in
 4455: 	 *-apple-aux[[23]]*)
 4456: 	    ans=no
 4457: 	    ;;
 4458: 	 *-sni-sysv*)
 4459: 	    ans=noprintf
 4460: 	    ;;
 4461: 	 *-*-aix*)
 4462: 	    ans=noprintf
 4463: 	    ;;
 4464: 	 *-*-hpux*)
 4465: 	    ans=no
 4466: 	    ;;
 4467: 	 *-*-mpeix*)
 4468: 	    ans=no
 4469: 	    ;;
 4470: 	 *-*-ptx*)
 4471: 	    ans=noprintf
 4472: 	    ;;
 4473: 	 *-*-nextstep*)
 4474: 	    ans=_noprintf
 4475: 	    ;;
 4476: 	 *-*-solaris2*)
 4477: 	    ans=noprintf
 4478: 	    ;;
 4479: 	 *-*-sysv4*)
 4480: 	    ans=noprintf
 4481: 	    ;;
 4482: 	 *)
 4483: 	    ans=_noprintf
 4484: 	    ;;
 4485: 	esac
 4486: 	ntp_cv_nlist_noprintf=$ans
 4487:     ]
 4488: )
 4489: case "$ntp_cv_nlist_noprintf" in
 4490:  no)
 4491:     ;;
 4492:  *)
 4493:     AC_DEFINE_UNQUOTED([K_NOPRINTF_NAME], ["$ntp_cv_nlist_noprintf"],
 4494: 	[What is (probably) the name of NOPRINTF in the kernel?])
 4495:     ;;
 4496: esac
 4497: 
 4498: dnl The tick/tickadj sections were written by Skippy, who never learned
 4499: dnl that it's impolite (horridly gross) to show your guts in public.
 4500: 
 4501: dnl	tick		tickadj	
 4502: dnl	10000		80	    Unixware
 4503: dnl	1000000L/hz	tick/16     (Solaris,UXPV,HPUX) && ADJTIME_IS_ACCURATE
 4504: dnl	10000		150	    sgi IRIX
 4505: dnl	1000000L/hz	1000	    RS6000 && NOKMEM
 4506: dnl	1000000L/hz	668	    DOMAINOS && NOKMEM
 4507: dnl	1000000L/hz	500/HZ	    other && NOKMEM
 4508: dnl	txc.tick	1	    Linux
 4509: dnl	(every / 10)	50	    WinNT - tickadj is roughly 500/hz
 4510: dnl	1000000L/hz	(nlist)     (Solaris && !ADJTIME_IS_ACCURATE),
 4511: dnl				    (RS6000 && !NOKMEM), SINIX MIPS
 4512: 
 4513: dnl But we'll only use these "values" if we can't find anything else.
 4514: 
 4515: AC_MSG_CHECKING([for a default value for 'tick'])
 4516: 
 4517: # target-dependent default for tick
 4518: 
 4519: case "$host" in
 4520:  *-*-pc-cygwin*)
 4521:     AC_MSG_ERROR([tick needs work for cygwin])
 4522:     ;;
 4523:  *-univel-sysv*)
 4524:     ans=10000
 4525:     ;;
 4526:  *-*-irix*)
 4527:     ans=10000
 4528:     ;;
 4529:  *-*-*linux*)
 4530:     ans=txc.tick
 4531:     ;;
 4532:  *-*-mpeix*)
 4533:     ans=no
 4534:     ;;
 4535:  *-*-winnt3.5)
 4536:     ans='(every / 10)'
 4537:     ;;
 4538:  *-*-unicosmp*)
 4539:     ans=10000
 4540:     ;;
 4541:  *)
 4542:     ans='1000000L/hz'
 4543:     ;;
 4544: esac
 4545: 
 4546: AC_ARG_ENABLE(
 4547:     [tick],
 4548:     [AS_HELP_STRING(
 4549: 	[--enable-tick=VALUE],
 4550: 	[s force a value for 'tick']
 4551:     )],
 4552:     [ans=$enableval]
 4553: )
 4554: 
 4555: AC_MSG_RESULT([$ans])
 4556: 
 4557: case "$ans" in
 4558:  ''|no)
 4559:     ;;	# HMS: I think we can only get 'no' here...
 4560:  *)
 4561:     AC_DEFINE_UNQUOTED([PRESET_TICK], [$ans],
 4562: 	[Preset a value for 'tick'?])
 4563: esac
 4564: 
 4565: AC_MSG_CHECKING([for a default value for 'tickadj'])
 4566: 
 4567: # target-specific default
 4568: ans='500/hz'
 4569: case "$host" in
 4570:  *-fujitsu-uxp*)
 4571:     case "$adjtime_is_accurate" in
 4572:      yes)
 4573: 	ans='tick/16'
 4574:     esac
 4575:     ;;
 4576:  *-univel-sysv*)
 4577:     ans=80
 4578:     ;;
 4579:  *-*-aix*)
 4580:     case "$can_kmem" in
 4581:      no)
 4582: 	ans=1000
 4583:     esac
 4584:     ;;
 4585:  *-*-domainos)	# Skippy: won't be found...
 4586:     case "$can_kmem" in
 4587:      no)
 4588: 	ans=668
 4589:     esac
 4590:     ;;
 4591:  *-*-hpux*)
 4592:     case "$adjtime_is_accurate" in
 4593:      yes)
 4594: 	ans='tick/16'
 4595:     esac
 4596:     ;;
 4597:  *-*-irix*)
 4598:     ans=150
 4599:     ;;
 4600:  *-*-mpeix*)
 4601:     ans=no
 4602:     ;;
 4603:  *-*-sco3.2v5.0*)
 4604:     ans=10000L/hz
 4605:     ;;
 4606:  *-*-winnt3.5)
 4607:     ans=50
 4608:     ;;
 4609:  *-*-unicosmp*)
 4610:     ans=150
 4611: esac
 4612: 
 4613: AC_ARG_ENABLE(
 4614:     [tickadj],
 4615:     [AS_HELP_STRING(
 4616: 	[--enable-tickadj=VALUE],
 4617: 	[s force a value for 'tickadj']
 4618:     )],
 4619:     [ans=$enableval]
 4620: )
 4621: 
 4622: AC_MSG_RESULT([$ans])
 4623: 
 4624: default_tickadj=$ans
 4625: 
 4626: case "$default_tickadj" in
 4627:  ''|no)
 4628:     ;;	# HMS: I think we can only get 'no' here...
 4629:  *)
 4630:     AC_DEFINE_UNQUOTED([PRESET_TICKADJ], [$default_tickadj],
 4631: 	[Preset a value for 'tickadj'?]) ;;
 4632: esac
 4633: 
 4634: # Newer versions of ReliantUNIX round adjtime() values down to
 4635: # 1/100s (system tick). Sigh ...
 4636: # Unfortunately, there is no easy way to know if particular release
 4637: # has this "feature" or any obvious way to test for it.
 4638: case "$host" in
 4639:  mips-sni-sysv4*)
 4640:     AC_DEFINE([RELIANTUNIX_CLOCK], [1],
 4641: 	[Do we want the ReliantUNIX clock hacks?])
 4642: esac
 4643: 
 4644: case "$host" in
 4645:  *-*-sco3.2v5*)
 4646:     AC_DEFINE([SCO5_CLOCK], [1], [Do we want the SCO clock hacks?])
 4647: esac
 4648: 
 4649: ntp_cv_make_tickadj=yes
 4650: case "$can_kmem$ac_cv_var_tick$default_tickadj" in
 4651:  nonono)	# Don't read KMEM, no presets.  Bogus.
 4652:     AC_MSG_WARN([Can't read kmem, no PRESET_TICK or PRESET_TICKADJ.  No tickadj.])
 4653:     ntp_cv_make_tickadj=no
 4654:     ;;
 4655:  nono*)		# Don't read KMEM, no PRESET_TICK but PRESET_TICKADJ.  Bogus.
 4656:     AC_MSG_WARN([Can't read kmem but no PRESET_TICK.  No tickadj.])
 4657:     ntp_cv_make_tickadj=no
 4658:     ;;
 4659:  no*no)		# Don't read KMEM, PRESET_TICK but no PRESET_TICKADJ.  Bogus.
 4660:     AC_MSG_WARN([Can't read kmem but no PRESET_TICKADJ.  No tickadj.])
 4661:     ntp_cv_make_tickadj=no
 4662:     ;;
 4663:  no*)		# Don't read KMEM, PRESET_TICK and PRESET_TICKADJ.  Cool.
 4664:     ;;
 4665:  yesnono)	# Read KMEM, no presets.  Cool.
 4666:     ;;
 4667:  yesno*)	# Read KMEM, no PRESET_TICK but PRESET_TICKADJ.  Bogus.
 4668:     AC_MSG_WARN([PRESET_TICKADJ is defined but not PRESET_TICK.  Please report this.])
 4669:     ;;
 4670:  yes*no)	# Read KMEM, PRESET_TICK but no PRESET_TICKADJ.  Cool.
 4671:     ;;
 4672:  yes*)		# READ KMEM, PRESET_TICK and PRESET_TICKADJ.
 4673:     ;;
 4674:  *)		# Generally bogus.
 4675:     AC_MSG_ERROR([This shouldn't happen.])
 4676:     ;;
 4677: esac
 4678: 
 4679: AC_SUBST(MAKE_NTPTIME)
 4680: AC_CACHE_CHECK([if we want and can make the ntptime utility], ac_cv_make_ntptime,
 4681: [case "$host" in
 4682:  *) case "$ntp_cv_struct_ntptimeval$ntp_cv_var_kernel_pll" in
 4683:      yesyes)
 4684: 	ans=yes
 4685: 	;;
 4686:      *)
 4687: 	ans=no
 4688: 	;;
 4689:     esac
 4690:     ;;
 4691: esac
 4692: ac_cv_make_ntptime=$ans])
 4693: case "$ac_cv_make_ntptime" in
 4694:  yes)
 4695:     MAKE_NTPTIME=ntptime
 4696:     ;;
 4697: esac
 4698: 
 4699: AC_SUBST([MAKE_TICKADJ])
 4700: case "$host" in
 4701:  mips-sni-sysv4*)
 4702:     # tickadj is pretty useless on newer versions of ReliantUNIX
 4703:     # Do not bother
 4704:     ntp_cv_make_tickadj=no
 4705:     ;;
 4706:  *-*-irix*)
 4707:     ntp_cv_make_tickadj=no
 4708:     ;;
 4709:  *-*-solaris2*)
 4710:     # DLM says tickadj is a no-no starting with solaris2.5
 4711:     case "$host" in
 4712:      *-*-solaris2.1[[0-9]]*)
 4713: 	ntp_cv_make_tickadj=no
 4714: 	;;
 4715:      *-*-solaris2.[[0-4]]*) ;;
 4716:      *) ntp_cv_make_tickadj=no ;;
 4717:     esac
 4718:     ;;
 4719:  *-*-unicosmp*)
 4720:     ntp_cv_make_tickadj=no
 4721:     ;;
 4722: esac
 4723: 
 4724: #
 4725: # Despite all the above, we always make tickadj.  Setting
 4726: # ntp_cv_make_tickadj before AC_CACHE_CHECK will cause a false
 4727: # report that the configuration variable was cached.  It may
 4728: # be better to simply remove the hunk above, I did not want
 4729: # to remove it if there is hope it will be used again.
 4730: #
 4731: AS_UNSET([ntp_cv_make_tickadj])
 4732: 
 4733: AC_CACHE_CHECK(
 4734:     [if we want and can make the tickadj utility],
 4735:     [ntp_cv_make_tickadj],
 4736:     [ntp_cv_make_tickadj=yes]
 4737: )
 4738: case "$ntp_cv_make_tickadj" in
 4739:  yes)
 4740:     MAKE_TICKADJ=tickadj
 4741: esac
 4742: 
 4743: AC_SUBST([MAKE_TIMETRIM])
 4744: AC_CACHE_CHECK(
 4745:     [if we want and can make the timetrim utility],
 4746:     [ntp_cv_make_timetrim],
 4747:     [
 4748: 	case "$host" in
 4749: 	 *-*-irix*)
 4750: 	    ntp_cv_make_timetrim=yes
 4751: 	    ;;
 4752: 	 *-*-unicosmp*)
 4753: 	    ntp_cv_make_timetrim=yes
 4754: 	    ;;
 4755: 	 *)
 4756: 	    ntp_cv_make_timetrim=no
 4757: 	    ;;
 4758: 	esac
 4759:     ]
 4760: )
 4761: case "$ntp_cv_make_timetrim" in
 4762:  yes)
 4763:     MAKE_TIMETRIM=timetrim
 4764: esac
 4765: 
 4766: AC_SUBST([MAKE_LIBNTPSIM])
 4767: AC_SUBST([MAKE_NTPDSIM])
 4768: 
 4769: AC_MSG_CHECKING([if we want to build the NTPD simulator])
 4770: AC_ARG_ENABLE(
 4771:     [simulator],
 4772:     [AS_HELP_STRING(
 4773: 	[--enable-simulator],
 4774: 	[- build/install the NTPD simulator?]
 4775:     )],
 4776:     [ans=$enableval], 
 4777:     [ans=no]
 4778: )
 4779: AC_MSG_RESULT([$ans])
 4780: case "$ans" in
 4781:  yes)
 4782:     MAKE_NTPDSIM=ntpdsim
 4783:     MAKE_LIBNTPSIM=libntpsim.a
 4784: esac
 4785: 
 4786: case "$build" in
 4787:  $host)
 4788:     ;;
 4789:  *) case "$host" in
 4790:      *-*-vxworks*)
 4791: 	LDFLAGS="$LDFLAGS -r"
 4792: 	;;
 4793:     esac
 4794:     ;;
 4795: esac
 4796: 
 4797: 
 4798: AC_MSG_CHECKING([if we want to build ntpsnmpd])
 4799: AC_ARG_WITH(
 4800:     [ntpsnmpd],
 4801:     [AS_HELP_STRING(
 4802: 	[--with-ntpsnmpd],
 4803: 	[s Build ntpsnmpd MIB agent?]
 4804:     )],
 4805:     [ans=$withval],
 4806:     [
 4807: 	case "$PATH_NET_SNMP_CONFIG" in
 4808: 	 /*)	ans=yes ;;
 4809: 	 *)	ans=no  ;;
 4810: 	esac
 4811:     ]
 4812: )
 4813: AC_MSG_RESULT([$ans])
 4814: case "$ans" in
 4815:  yes)
 4816:     case "$PATH_NET_SNMP_CONFIG" in
 4817:      /*)
 4818: 	SNMP_LIBS=`$PATH_NET_SNMP_CONFIG --agent-libs`
 4819: 	AC_SUBST([SNMP_LIBS])
 4820: 	# HMS: we really want to separate CPPFLAGS and CFLAGS
 4821: 	foo=`$PATH_NET_SNMP_CONFIG --cflags`
 4822: 	SNMP_CPPFLAGS=
 4823: 	SNMP_CFLAGS=
 4824: 	for i in $foo; do
 4825: 	    case "$i" in
 4826: 	     -D*|-U*|-I*)
 4827: 		SNMP_CPPFLAGS="$SNMP_CPPFLAGS $i"
 4828: 		;;
 4829: 	    *)	SNMP_CFLAGS="$SNMP_CFLAGS $i"
 4830: 		;;
 4831: 	    esac
 4832: 	done
 4833: 	AC_SUBST([SNMP_CPPFLAGS])
 4834: 	AC_SUBST([SNMP_CFLAGS])
 4835: 
 4836: 	save_CFLAGS=$CFLAGS
 4837: 	save_CPPFLAGS=$CPPFLAGS
 4838: 	save_LIBS=$LIBS
 4839: 	CFLAGS=$SNMP_CFLAGS
 4840: 	CPPFLAGS=$SNMP_CPPFLAGS
 4841: 
 4842: 	AC_CHECK_HEADER(
 4843: 	    [net-snmp/net-snmp-config.h],
 4844: 	    [MAKE_NTPSNMPD=ntpsnmpd],
 4845: 	    [AC_MSG_WARN([net-snmp-config present but net-snmp headers are not available!])]
 4846: 	)
 4847: 
 4848: 	# Do this last, as we're messing up LIBS.
 4849: 	# check -lnetsnmp for netsnmp_daemonize
 4850: 	LIBS=`$PATH_NET_SNMP_CONFIG --libs`
 4851: 	AC_CHECK_LIB(
 4852: 	    [netsnmp],
 4853: 	    [netsnmp_daemonize],
 4854: 	    [ans=yes],
 4855: 	    [ans=no]
 4856: 	)
 4857: 	case "$ans" in
 4858: 	 no)
 4859: 	    AC_DEFINE([NEED_NETSNMP_DAEMONIZE], [1],
 4860: 		[We need to provide netsnmp_daemonize()])
 4861: 	esac
 4862: 	
 4863: 	CFLAGS=$save_CFLAGS
 4864: 	CPPFLAGS=$save_CPPFLAGS
 4865: 	LIBS=$save_LIBS
 4866: 	;;
 4867:      *) 
 4868: 	AC_MSG_WARN([Cannot build ntpsnmpd - net-snmp-config cannot be found])
 4869: 	;;
 4870:     esac
 4871:     ;;
 4872: esac
 4873: AC_SUBST([MAKE_NTPSNMPD])
 4874: 
 4875: 
 4876: AC_MSG_CHECKING([if we should always slew the time])
 4877: 
 4878: # target-specific defaults
 4879: 
 4880: case "$host" in
 4881:  *-apple-aux[[23]]*)
 4882:     ans=yes
 4883:     ;;
 4884:  *-*-bsdi[[012]]*)
 4885:     ans=no
 4886:     ;;
 4887:  *-*-bsdi*)
 4888:     ans=yes
 4889:     ;;
 4890:  *-*-openvms*)	# HMS: won't be found
 4891:     ans=yes
 4892:     ;;
 4893:  *) ans=no
 4894:     ;;
 4895: esac
 4896: 
 4897: # --enable-slew-always / --disable-slew-always overrides default
 4898: 
 4899: AC_ARG_ENABLE(
 4900:     [slew-always],
 4901:     [AS_HELP_STRING(
 4902: 	[--enable-slew-always],
 4903: 	[s always slew the time]
 4904:     )],
 4905:     [ans=$enableval]
 4906: )
 4907: 
 4908: AC_MSG_RESULT([$ans])
 4909: 
 4910: case "$ans" in
 4911:  yes)
 4912:     AC_DEFINE([SLEWALWAYS], [1], [Slew always?])
 4913: esac
 4914: 
 4915: AC_MSG_CHECKING([if we should step and slew the time])
 4916: 
 4917: case "$host" in
 4918:  *-sni-sysv*)
 4919:     ans=yes
 4920:     ;;
 4921:  *-univel-sysv*)
 4922:     ans=no
 4923:     ;;
 4924:  *-*-ptx*)
 4925:     ans=yes
 4926:     ;;
 4927:  *-*-solaris2.1[[0-9]]*)
 4928:     ans=no
 4929:     ;;
 4930:  *-*-solaris2.[[012]]*)
 4931:     ans=yes
 4932:     ;;
 4933:  *-*-sysv4*)	# HMS: Does this catch Fujitsu UXP?
 4934:     ans=yes
 4935:     ;;
 4936:  *) ans=no
 4937:     ;;
 4938: esac
 4939: 
 4940: AC_ARG_ENABLE(
 4941:     [step-slew],
 4942:     [AS_HELP_STRING(
 4943: 	[--enable-step-slew],
 4944: 	[s step and slew the time]
 4945:     )],
 4946:     [ans=$enableval]
 4947: )
 4948: 
 4949: AC_MSG_RESULT([$ans])
 4950: 
 4951: case "$ans" in
 4952:  yes)
 4953:     AC_DEFINE([STEP_SLEW], [1], [Step, then slew the clock?])
 4954: esac
 4955: 
 4956: AC_MSG_CHECKING([if ntpdate should step the time])
 4957: 
 4958: case "$host" in
 4959:  *-apple-aux[[23]]*)
 4960:     ans=yes
 4961:     ;;
 4962:  *) ans=no
 4963: esac
 4964: 
 4965: AC_ARG_ENABLE(
 4966:     [ntpdate-step],
 4967:     [AS_HELP_STRING(
 4968: 	[--enable-ntpdate-step],
 4969: 	[s if ntpdate should step the time]
 4970:     )],
 4971:     [ans=$enableval]
 4972: )
 4973: 
 4974: AC_MSG_RESULT([$ans])
 4975: 
 4976: case "$ans" in
 4977:  yes)
 4978:     AC_DEFINE([FORCE_NTPDATE_STEP], [1],
 4979: 	[force ntpdate to step the clock if !defined(STEP_SLEW) ?])
 4980: esac
 4981: 
 4982: 
 4983: AC_MSG_CHECKING([if we should sync TODR clock every hour])
 4984: 
 4985: case "$host" in
 4986:  *-*-nextstep*)
 4987:     ans=yes
 4988:     ;;
 4989:  *-*-openvms*)	# HMS: won't be found
 4990:     ans=yes
 4991:     ;;
 4992:  *)
 4993:     ans=no
 4994: esac
 4995: 
 4996: AC_ARG_ENABLE(
 4997:     [hourly-todr-sync],
 4998:     [AS_HELP_STRING(
 4999: 	[--enable-hourly-todr-sync],
 5000: 	[s if we should sync TODR hourly]
 5001:     )],
 5002:     [ans=$enableval]
 5003: )
 5004: 
 5005: AC_MSG_RESULT([$ans])
 5006: 
 5007: case "$ac_cv_var_sync_todr" in
 5008:  yes)
 5009:     AC_DEFINE([DOSYNCTODR], [1], [synch TODR hourly?]) ;;
 5010: esac
 5011: 
 5012: 
 5013: AC_MSG_CHECKING([if we should avoid kernel FLL bug])
 5014: 
 5015: case "$host" in
 5016:  *-*-solaris2.6)
 5017:     unamev=`uname -v`
 5018:     case "$unamev" in
 5019:      Generic_105181-*)
 5020: 	old_IFS="$IFS"
 5021: 	IFS="-"
 5022: 	set $unamev
 5023: 	IFS="$old_IFS"
 5024: 	if test "$2" -ge 17
 5025: 	then
 5026: 	    # Generic_105181-17 and higher
 5027: 	    ans=no
 5028: 	else
 5029: 	    ans=yes
 5030: 	fi
 5031: 	;;
 5032:      *) 
 5033: 	ans=yes
 5034:     esac
 5035:     ;;
 5036:  *-*-solaris2.7)
 5037:     unamev=`uname -v`
 5038:     case "$unamev" in
 5039:      Generic_106541-*)
 5040: 	old_IFS="$IFS"
 5041: 	IFS="-"
 5042: 	set $unamev
 5043: 	IFS="$old_IFS"
 5044: 	if test "$2" -ge 07
 5045: 	then
 5046: 	    # Generic_106541-07 and higher
 5047: 	    ans=no
 5048: 	else
 5049: 	    ans=yes
 5050: 	fi
 5051: 	;;
 5052:      *)
 5053: 	ans=yes
 5054:     esac
 5055:     ;;
 5056:  *)
 5057:     ans=no
 5058: esac
 5059: 
 5060: AC_ARG_ENABLE(
 5061:     [kernel-fll-bug],
 5062:     [AS_HELP_STRING(
 5063: 	[--enable-kernel-fll-bug],
 5064: 	[s if we should avoid a kernel FLL bug]
 5065:     )],
 5066:     [ans=$enableval]
 5067: )
 5068: 
 5069: AC_MSG_RESULT([$ans])
 5070: 
 5071: case "$ans" in
 5072:  yes)
 5073:     AC_DEFINE([KERNEL_FLL_BUG], [1], [Does the kernel have an FLL bug?])
 5074: esac
 5075: 
 5076: 
 5077: AC_MSG_CHECKING([if we want new session key behavior])
 5078: AC_ARG_ENABLE(
 5079:     [bug1243-fix],
 5080:     [AS_HELP_STRING(
 5081: 	[--enable-bug1243-fix],
 5082: 	[+ use unmodified autokey session keys]
 5083:     )],
 5084:     [ans=$enableval],
 5085:     [ans=yes]
 5086: )
 5087: AC_MSG_RESULT([$ans])
 5088: case "$ans" in
 5089:  no)
 5090:     AC_DEFINE([DISABLE_BUG1243_FIX], [1],
 5091: 	[use old autokey session key behavior?])
 5092: esac
 5093: 
 5094: 
 5095: AC_MSG_CHECKING([if we should use the IRIG sawtooth filter])
 5096: 
 5097: case "$host" in
 5098:  *-*-solaris2.[[89]])
 5099:     ans=yes
 5100:     ;;
 5101:  *-*-solaris2.1[[0-9]]*)
 5102:     ans=yes
 5103:     ;;
 5104:  *) ans=no
 5105: esac
 5106: 
 5107: AC_ARG_ENABLE(
 5108:     [irig-sawtooth], 
 5109:     [AS_HELP_STRING(
 5110: 	[--enable-irig-sawtooth],
 5111: 	[s if we should enable the IRIG sawtooth filter]
 5112:     )],
 5113:     [ans=$enableval]
 5114: )
 5115: 
 5116: AC_MSG_RESULT([$ans])
 5117: 
 5118: case "$ans" in
 5119:  yes)
 5120:     AC_DEFINE([IRIG_SUCKS], [1],
 5121: 	[Should we use the IRIG sawtooth filter?])
 5122: esac
 5123: 
 5124: 
 5125: AC_MSG_CHECKING([if we should enable NIST lockclock scheme])
 5126: 
 5127: AC_ARG_ENABLE(
 5128: 	[nist], 
 5129: 	[AS_HELP_STRING(
 5130: 	    [--enable-nist],
 5131: 	    [- if we should enable the NIST lockclock scheme]
 5132: 	)],
 5133: 	[ans=$enableval],
 5134: 	[ans=no]
 5135: )
 5136: 
 5137: AC_MSG_RESULT([$ans])
 5138: 
 5139: case "$ans" in
 5140:  yes)
 5141:     AC_DEFINE([LOCKCLOCK], [1],
 5142: 	[Should we align with the NIST lockclock scheme?]) ;;
 5143: esac
 5144: 
 5145: 
 5146: AC_MSG_CHECKING([if we want support for Samba's signing daemon])
 5147: 
 5148: AC_ARG_ENABLE(
 5149:     [ntp-signd],
 5150:     [AS_HELP_STRING(
 5151: 	[--enable-ntp-signd],
 5152: 	[- Provide support for Samba's signing daemon, =/var/run/ntp_signd]
 5153:     )],
 5154:     [ans=$enableval],
 5155:     [ans=no]
 5156: )
 5157: 
 5158: AC_MSG_RESULT([$ans])
 5159: 
 5160: case "$ans" in
 5161:  no)
 5162:     ntp_signd_path=
 5163:     ;;
 5164:  yes)
 5165:     ntp_signd_path=/var/run/ntp_signd
 5166:     ;;
 5167:  *)
 5168:     ntp_signd_path="$ans"
 5169: esac
 5170: 
 5171: case "$ntp_signd_path" in
 5172:  '')
 5173:     ;;
 5174:  *)
 5175:     AC_DEFINE([HAVE_NTP_SIGND], [1],
 5176: 	[Do we want support for Samba's signing daemon?])
 5177:     AC_DEFINE_UNQUOTED([NTP_SIGND_PATH], ["$ntp_signd_path"],
 5178: 	[Path to sign daemon rendezvous socket])
 5179: esac
 5180: 
 5181: 
 5182: AC_CHECK_HEADERS([sys/clockctl.h])
 5183: 
 5184: case "$host" in
 5185:  *-*-netbsd*)
 5186:     ans=yes
 5187:     ;;
 5188:  *) ans=no
 5189:     ;;
 5190: esac
 5191: 
 5192: AC_ARG_ENABLE(
 5193:     [clockctl],
 5194:     [AS_HELP_STRING(
 5195: 	[--enable-clockctl],
 5196: 	[s Use /dev/clockctl for non-root clock control]
 5197:     )],
 5198:     [ntp_use_dev_clockctl=$enableval],
 5199:     [ntp_use_dev_clockctl=$ac_cv_header_sys_clockctl_h]
 5200: )
 5201: 
 5202: AC_MSG_CHECKING([[if we should use /dev/clockctl]])
 5203: AC_MSG_RESULT([$ntp_use_dev_clockctl])
 5204: 
 5205: 
 5206: AC_CHECK_HEADERS([sys/capability.h sys/prctl.h])
 5207: 
 5208: AC_MSG_CHECKING([if we have linux capabilities (libcap)])
 5209: 
 5210: case "$ac_cv_header_sys_capability_h$ac_cv_header_sys_prctl_h" in
 5211:  yesyes)
 5212:     case "$host" in
 5213:      mips-sgi-irix*)
 5214: 	ntp_have_linuxcaps=no
 5215: 	;;
 5216:      *) ntp_have_linuxcaps=yes
 5217: 	;;
 5218:     esac
 5219:     ;;
 5220:  *)
 5221:     ntp_have_linuxcaps=no
 5222:     ;;
 5223: esac
 5224: 
 5225: AC_ARG_ENABLE(
 5226:     [linuxcaps],
 5227:     [AS_HELP_STRING(
 5228: 	[--enable-linuxcaps],
 5229: 	[+ Use Linux capabilities for non-root clock control]
 5230:     )],
 5231:     [ntp_have_linuxcaps=$enableval]
 5232: )
 5233: 
 5234: AC_MSG_RESULT([$ntp_have_linuxcaps])
 5235: 
 5236: case "$ntp_have_linuxcaps" in
 5237:  yes)
 5238:     AC_DEFINE([HAVE_LINUX_CAPABILITIES], [1],
 5239: 	[Do we have Linux capabilities?])
 5240:     LIBS="$LIBS -lcap"
 5241: esac
 5242: 
 5243: case "$ntp_use_dev_clockctl$ntp_have_linuxcaps" in
 5244:  *yes*)
 5245:     AC_DEFINE([HAVE_DROPROOT], [1],
 5246: 	[Can we drop root privileges?])
 5247: esac
 5248: 
 5249: 
 5250: AC_CHECK_HEADERS([libscf.h])
 5251: LSCF=
 5252: case "$ac_cv_header_libscf_h" in
 5253:  yes)
 5254:     LSCF='-lscf'
 5255: esac
 5256: AC_SUBST([LSCF])
 5257: 
 5258: AC_CHECK_FUNC(
 5259:     [setppriv],
 5260:     [ans=yes],
 5261:     [ans=no]
 5262: )
 5263: case "$ans" in
 5264:  yes)
 5265:     AC_DEFINE([HAVE_SOLARIS_PRIVS], [1],
 5266: 	[Are Solaris privileges available?])
 5267: esac
 5268: 
 5269: 
 5270: AC_CACHE_CHECK(
 5271:     [struct sockaddr for sa_len],
 5272:     [isc_cv_platform_havesalen],
 5273:     [AC_COMPILE_IFELSE(
 5274: 	[AC_LANG_PROGRAM(
 5275: 	    [[
 5276: 		#include <sys/types.h>
 5277: 		#include <sys/socket.h>
 5278: 	    ]],
 5279: 	    [[
 5280: 		extern struct sockaddr *ps;
 5281: 		return ps->sa_len;
 5282: 	    ]]
 5283: 	)],
 5284: 	[isc_cv_platform_havesalen=yes],
 5285: 	[isc_cv_platform_havesalen=no]
 5286:     )]
 5287: )
 5288: case "$isc_cv_platform_havesalen" in
 5289:  yes)
 5290:     AC_DEFINE([ISC_PLATFORM_HAVESALEN], [1],
 5291: 	 [struct sockaddr has sa_len?])
 5292: esac
 5293: 
 5294: AC_ARG_ENABLE(
 5295:     [ipv6],
 5296:     [AS_HELP_STRING(
 5297: 	[--enable-ipv6],
 5298: 	[s use IPv6?]
 5299:     )]
 5300: )
 5301: 
 5302: case "$enable_ipv6" in
 5303:  yes|''|autodetect)
 5304:     case "$host" in
 5305:      powerpc-ibm-aix4*)
 5306: 	;;
 5307:      *)
 5308: 	AC_DEFINE([WANT_IPV6], [1], [configure --enable-ipv6])
 5309: 	;;
 5310:     esac
 5311:     ;;
 5312:  no)
 5313:     ;;
 5314: esac
 5315: 
 5316: 
 5317: dnl [Bug 1984] ntp/libisc fails to compile on OS X 10.7 (Lion)
 5318: case "$host" in
 5319:  *-*-darwin*)
 5320:     AC_DEFINE([__APPLE_USE_RFC_3542], [1], [Are we _special_?])
 5321: esac
 5322: 
 5323: 
 5324: AC_CACHE_CHECK(
 5325:     [for IPv6 structures],
 5326:     [isc_cv_found_ipv6],
 5327:     [AC_COMPILE_IFELSE(
 5328: 	[AC_LANG_PROGRAM(
 5329: 	    [[
 5330: 		#include <sys/types.h>
 5331: 		#include <sys/socket.h>
 5332: 		#include <netinet/in.h>
 5333: 	    ]],
 5334: 	    [[
 5335: 		struct sockaddr_in6 sin6;
 5336: 	    ]]
 5337: 	)],
 5338: 	[isc_cv_found_ipv6=yes],
 5339: 	[isc_cv_found_ipv6=no]
 5340:     )]
 5341: )
 5342: 
 5343: #
 5344: # See whether IPv6 support is provided via a Kame add-on.
 5345: # This is done before other IPv6 linking tests so LIBS is properly set.
 5346: #
 5347: AC_MSG_CHECKING([for Kame IPv6 support])
 5348: AC_ARG_WITH(
 5349:     [kame],
 5350:     [AS_HELP_STRING(
 5351: 	[--with-kame],
 5352: 	[- =/usr/local/v6]
 5353:     )],
 5354:     [use_kame="$withval"],
 5355:     [use_kame="no"]
 5356: )
 5357: case "$use_kame" in
 5358:  no)
 5359:     ;;
 5360:  yes)
 5361:     kame_path=/usr/local/v6
 5362:     ;;
 5363:  *)
 5364:     kame_path="$use_kame"
 5365:     ;;
 5366: esac
 5367: case "$use_kame" in
 5368:  no)
 5369:     AC_MSG_RESULT([no])
 5370:     ;;
 5371:  *)
 5372:     if test -f $kame_path/lib/libinet6.a; then
 5373: 	AC_MSG_RESULT([$kame_path/lib/libinet6.a])
 5374: 	LIBS="-L$kame_path/lib -linet6 $LIBS"
 5375:     else
 5376: 	AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
 5377: 
 5378: Please choose the proper path with the following command:
 5379: 
 5380:     configure --with-kame=PATH
 5381: ])
 5382:     fi
 5383:     ;;
 5384: esac
 5385: 
 5386: #
 5387: # Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
 5388: # Including it on Kame-using platforms is very bad, though, because
 5389: # Kame uses #error against direct inclusion.   So include it on only
 5390: # the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
 5391: # This is done before the in6_pktinfo check because that's what
 5392: # netinet6/in6.h is needed for.
 5393: #
 5394: case "$host" in
 5395:  *-bsdi4.[[01]]*)
 5396:     AC_DEFINE([ISC_PLATFORM_NEEDNETINET6IN6H], [1],
 5397: 	[Do we need netinet6/in6.h?])
 5398:     isc_netinet6in6_hack="#include <netinet6/in6.h>"
 5399:     ;;
 5400:  *)
 5401:     isc_netinet6in6_hack=""
 5402:     ;;
 5403: esac
 5404: 
 5405: #
 5406: # This is similar to the netinet6/in6.h issue.
 5407: #
 5408: case "$host" in
 5409:  *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
 5410:     AC_DEFINE([ISC_PLATFORM_FIXIN6ISADDR], [1],
 5411: 	[Do we need to fix in6isaddr?])
 5412:     isc_netinetin6_hack="#include <netinet/in6.h>"
 5413:     ;;
 5414:  *)
 5415:     isc_netinetin6_hack=""
 5416:     ;;
 5417: esac
 5418: 
 5419: 
 5420: case "$isc_cv_found_ipv6" in
 5421:  yes)
 5422:     AC_DEFINE([ISC_PLATFORM_HAVEIPV6], [1], [have IPv6?])
 5423:     AC_CACHE_CHECK(
 5424: 	[for in6_pktinfo],
 5425: 	[isc_cv_have_in6_pktinfo],
 5426: 	[AC_COMPILE_IFELSE(
 5427: 	    [AC_LANG_PROGRAM(
 5428: 		[[
 5429: 		    #include <sys/types.h>
 5430: 		    #include <sys/socket.h>
 5431: 		    #include <netinet/in.h>
 5432: 		    $isc_netinetin6_hack
 5433: 		    $isc_netinet6in6_hack
 5434: 		]],
 5435: 		[[
 5436: 		    struct in6_pktinfo xyzzy;
 5437: 		]]
 5438: 	    )],
 5439: 	    [isc_cv_have_in6_pktinfo=yes],
 5440: 	    [isc_cv_have_in6_pktinfo=no]
 5441: 	)]
 5442:     )
 5443:     case "$isc_cv_have_in6_pktinfo" in
 5444:      yes)
 5445: 	AC_DEFINE([ISC_PLATFORM_HAVEIN6PKTINFO], [1],
 5446: 		[have struct in6_pktinfo?])
 5447:     esac
 5448: 
 5449: 
 5450:     # HMS: Use HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID instead?
 5451:     AC_CACHE_CHECK(
 5452: 	[for sockaddr_in6.sin6_scope_id],
 5453: 	[isc_cv_have_sin6_scope_id],
 5454: 	[AC_COMPILE_IFELSE(
 5455: 	    [AC_LANG_PROGRAM(
 5456: 		[[
 5457: 		    #include <sys/types.h>
 5458: 		    #include <sys/socket.h>
 5459: 		    #include <netinet/in.h>
 5460: 		    $isc_netinetin6_hack
 5461: 		    $isc_netinet6in6_hack
 5462: 		]],
 5463: 		[[
 5464: 		    struct sockaddr_in6 xyzzy;
 5465: 		    xyzzy.sin6_scope_id = 0;
 5466: 		]]
 5467: 	    )],
 5468: 	    [isc_cv_have_sin6_scope_id=yes],
 5469: 	    [isc_cv_have_sin6_scope_id=no]
 5470: 	)]
 5471:     )
 5472: 
 5473:     case "$isc_cv_have_sin6_scope_id" in
 5474:      yes)
 5475: 	AC_DEFINE([ISC_PLATFORM_HAVESCOPEID], [1], [sin6_scope_id?])
 5476:     esac
 5477: esac
 5478: 
 5479: 
 5480: # We need this check run even without isc_cv_found_ipv6=yes
 5481: 
 5482: AC_CACHE_CHECK(
 5483:     [for in6addr_any],
 5484:     [isc_cv_have_in6addr_any],
 5485:     [AC_LINK_IFELSE(
 5486: 	[AC_LANG_PROGRAM(
 5487: 	    [[
 5488: 		#include <sys/types.h>
 5489: 		#include <sys/socket.h>
 5490: 		#include <netinet/in.h>
 5491: 		$isc_netinetin6_hack
 5492: 		$isc_netinet6in6_hack
 5493: 	    ]],
 5494: 	    [[
 5495: 		struct in6_addr in6; 
 5496: 		in6 = in6addr_any;
 5497: 	    ]]
 5498: 	)],
 5499: 	[isc_cv_have_in6addr_any=yes],
 5500: 	[isc_cv_have_in6addr_any=no]
 5501:     )]
 5502: )
 5503: 
 5504: case "$isc_cv_have_in6addr_any" in
 5505:  no)
 5506:     AC_DEFINE([ISC_PLATFORM_NEEDIN6ADDRANY], [1], [missing in6addr_any?])
 5507: esac
 5508: 
 5509: 
 5510: AC_CACHE_CHECK(
 5511:     [for struct if_laddrconf],
 5512:     [isc_cv_struct_if_laddrconf],
 5513:     [AC_COMPILE_IFELSE(
 5514: 	[AC_LANG_PROGRAM(
 5515: 	    [[
 5516: 		#include <sys/types.h>
 5517: 		#include <net/if6.h>
 5518: 	    ]],
 5519: 	    [[
 5520: 		struct if_laddrconf a;
 5521: 	    ]]
 5522: 	)],
 5523: 	[isc_cv_struct_if_laddrconf=yes],
 5524: 	[isc_cv_struct_if_laddrconf=no]
 5525:     )]
 5526: )
 5527: 
 5528: case "$isc_cv_struct_if_laddrconf" in
 5529:  yes)
 5530:     AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRCONF], [1],
 5531: 	[have struct if_laddrconf?])
 5532: esac
 5533: 
 5534: AC_CACHE_CHECK(
 5535:     [for struct if_laddrreq],
 5536:     isc_cv_struct_if_laddrreq,
 5537:     [AC_COMPILE_IFELSE(
 5538: 	[AC_LANG_PROGRAM(
 5539: 	    [[
 5540: 		#include <sys/types.h>
 5541: 		#include <net/if6.h>
 5542: 	    ]],
 5543: 	    [[
 5544: 		struct if_laddrreq a;
 5545: 	    ]]
 5546: 	)],
 5547: 	[isc_cv_struct_if_laddrreq=yes],
 5548: 	[isc_cv_struct_if_laddrreq=no]
 5549:     )]
 5550: )
 5551: 
 5552: case "$isc_cv_struct_if_laddrreq" in
 5553:  yes)
 5554:     AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRREQ], [1],
 5555: 	[have struct if_laddrreq?])
 5556: esac
 5557: 
 5558: #
 5559: # Look for a sysctl call to get the list of network interfaces.
 5560: #
 5561: AC_CACHE_CHECK(
 5562:     [for interface list sysctl],
 5563:     [ntp_cv_iflist_sysctl],
 5564:     [AC_EGREP_CPP(
 5565: 	[found_rt_iflist], 
 5566: 	[
 5567: 	    #include <sys/param.h>
 5568: 	    #include <sys/sysctl.h>
 5569: 	    #include <sys/socket.h>
 5570: 	    #ifdef NET_RT_IFLIST  
 5571: 		found_rt_iflist
 5572: 	    #endif
 5573: 	],
 5574: 	[ntp_cv_iflist_sysctl=yes],
 5575: 	[ntp_cv_iflist_sysctl=no]
 5576:     )]
 5577: )
 5578: case "$ntp_cv_iflist_sysctl" in
 5579:  yes)
 5580:     AC_DEFINE([HAVE_IFLIST_SYSCTL], [1], [have iflist_sysctl?])
 5581: esac
 5582: 
 5583: ###
 5584: 
 5585: AC_MSG_CHECKING([if we want the saveconfig mechanism])
 5586: AC_ARG_ENABLE(
 5587:     [saveconfig],
 5588:     [AS_HELP_STRING(
 5589: 	[--enable-saveconfig],
 5590: 	[+ saveconfig mechanism]
 5591:     )],
 5592:     [ntp_ok=$enableval],
 5593:     [ntp_ok=yes]
 5594: )
 5595: ntp_saveconfig_enabled=0
 5596: if test "$ntp_ok" = "yes"; then
 5597:     ntp_saveconfig_enabled=1
 5598:     AC_DEFINE([SAVECONFIG], [1], [saveconfig mechanism])
 5599: fi
 5600: AM_CONDITIONAL([SAVECONFIG_ENABLED], [test x$ntp_saveconfig_enabled = x1])
 5601: AC_MSG_RESULT([$ntp_ok])
 5602: 
 5603: ###
 5604: 
 5605: AC_DEFINE_DIR([NTP_KEYSDIR], [sysconfdir],
 5606:     [Default location of crypto key info])
 5607: 
 5608: AC_CONFIG_FILES([Makefile])
 5609: AC_CONFIG_FILES([ElectricFence/Makefile])
 5610: AC_CONFIG_FILES([adjtimed/Makefile])
 5611: AC_CONFIG_FILES([clockstuff/Makefile])
 5612: AC_CONFIG_FILES([include/Makefile])
 5613: AC_CONFIG_FILES([include/isc/Makefile])
 5614: AC_CONFIG_FILES([kernel/Makefile])
 5615: AC_CONFIG_FILES([kernel/sys/Makefile])
 5616: AC_CONFIG_FILES([libntp/Makefile])
 5617: AC_CONFIG_FILES([libparse/Makefile])
 5618: AC_CONFIG_FILES([ntpd/Makefile])
 5619: AC_CONFIG_FILES([ntpdate/Makefile])
 5620: AC_CONFIG_FILES([ntpdc/Makefile])
 5621: AC_CONFIG_FILES([ntpdc/nl.pl],		[chmod +x ntpdc/nl.pl])
 5622: AC_CONFIG_FILES([ntpq/Makefile])
 5623: AC_CONFIG_FILES([ntpsnmpd/Makefile])
 5624: AC_CONFIG_FILES([parseutil/Makefile])
 5625: AC_CONFIG_FILES([scripts/Makefile])
 5626: AC_CONFIG_FILES([scripts/calc_tickadj],	[chmod +x scripts/calc_tickadj])
 5627: AC_CONFIG_FILES([scripts/checktime],	[chmod +x scripts/checktime])
 5628: AC_CONFIG_FILES([scripts/freq_adj],	[chmod +x scripts/freq_adj])
 5629: AC_CONFIG_FILES([scripts/html2man],	[chmod +x scripts/html2man])
 5630: AC_CONFIG_FILES([scripts/mkver],	[chmod +x scripts/mkver])
 5631: AC_CONFIG_FILES([scripts/ntp-wait],	[chmod +x scripts/ntp-wait])
 5632: AC_CONFIG_FILES([scripts/ntpsweep],	[chmod +x scripts/ntpsweep])
 5633: AC_CONFIG_FILES([scripts/ntptrace],	[chmod +x scripts/ntptrace])
 5634: AC_CONFIG_FILES([scripts/ntpver],	[chmod +x scripts/ntpver])
 5635: AC_CONFIG_FILES([scripts/plot_summary],	[chmod +x scripts/plot_summary])
 5636: AC_CONFIG_FILES([scripts/summary],	[chmod +x scripts/summary])
 5637: AC_CONFIG_FILES([util/Makefile])
 5638: 
 5639: AC_CONFIG_SUBDIRS([sntp])
 5640: 
 5641: AC_OUTPUT

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>