1275970Scydnl ###################################################################### 2275970Scydnl Common m4sh code for libntp and clients 3275970Scydnl 4275970Scydnl Any configure tests which libntp or libisc code depends upon should 5275970Scydnl be here or in another m4 macro used by the top-level and sntp 6275970Scydnl configure.ac files, so that libntp can be moved into the sntp 7275970Scydnl subpackage while retaining access to such test results. 8275970Scydnl 9275970ScyAC_DEFUN([NTP_LIBNTP], [ 10275970Scy 11275970ScyAC_REQUIRE([NTP_CROSSCOMPILE]) 12275970Scy 13275970Scy# HMS: Save $LIBS and empty it. 14275970Scy# any LIBS we add here should go in to LDADD_LIBNTP 15275970ScyAC_SUBST([LDADD_LIBNTP]) 16275970Scy__LIBS=$LIBS 17275970ScyLIBS= 18275970Scy 19275970Scydnl The contents of NTP_PROG_CC used to be here... 20275970Scy 21275970ScyAC_PROG_INSTALL 22275970Scy# [Bug 2332] because we need to know if we are using GNU ld... 23275970ScyLT_PATH_LD 24275970Scy 25275970ScyNTP_DIR_SEP 26275970ScyNTP_LINEEDITLIBS 27275970ScyNTP_LIB_M 28275970Scy 29275970ScyAC_FUNC_FORK 30275970ScyAC_FUNC_ALLOCA 31275970ScyAC_FUNC_STRERROR_R 32275970Scy 33275970Scyac_busted_vpath_in_make=no 34275970Scycase "$build" in 35275970Scy *-*-irix6.1*) # 64 bit only 36275970Scy # busted vpath? 37275970Scy ;; 38275970Scy *-*-irix6*) # 6.2 (and later?) 39275970Scy ac_busted_vpath_in_make=yes 40275970Scy ;; 41275970Scy *-*-solaris2.5.1) 42275970Scy ac_busted_vpath_in_make=yes 43275970Scy ;; 44275970Scy *-*-unicosmp*) 45275970Scy ac_busted_vpath_in_make=yes 46275970Scy ;; 47275970Scyesac 48275970Scy 49275970Scycase "$ac_busted_vpath_in_make$srcdir" in 50275970Scy yes.|no*) 51275970Scy ;; 52275970Scy *) case "`${MAKE-make} -v -f /dev/null 2>/dev/null | grep 'GNU Make'`" in 53275970Scy '') 54275970Scy AC_MSG_ERROR([building outside of the main directory requires GNU make]) 55275970Scy esac 56275970Scy ;; 57275970Scyesac 58275970Scy 59275970Scycase "$host" in 60275970Scy *-*-aix4*) 61275970Scy # Bug 2516: 62275970Scy # Was *-*-aix[[4-9]]* 63275970Scy # XXX only verified thru AIX6. But... 64275970Scy # Ken Link says this is fine for AIX 5.3 and 7.1, and sees no reason 65275970Scy # that this support would be in 5.3, removed in 6, and added back. 66275970Scy # 67275970Scy # (prr) aix 4.1 doesn't have clock_settime, but in aix 4.3 it's a stub 68275970Scy # (returning ENOSYS). I didn't check 4.2. If, in the future, 69275970Scy # IBM pulls its thumbs out long enough to implement clock_settime, 70275970Scy # this conditional will need to change. Maybe use AC_TRY_RUN 71275970Scy # instead to try to set the time to itself and check errno. 72275970Scy ;; 73275970Scy *) 74275970Scy HMS_SEARCH_LIBS([LDADD_LIBNTP], [clock_gettime], [rt]) 75275970Scy AC_CHECK_FUNCS([clock_getres clock_gettime clock_settime]) 76275970Scy ;; 77275970Scyesac 78275970Scy 79275970ScyAC_CHECK_FUNCS([getclock stime timegm strlcpy strlcat]) 80275970Scy 81280849Scy# Bug 2713 82280849ScyLDADD_LIBUTIL= 83280849ScyAC_SUBST([LDADD_LIBUTIL]) 84280849ScyHMS_SEARCH_LIBS([LDADD_LIBUTIL], [snprintb], [util], 85280849Scy [AC_DEFINE([USE_SNPRINTB], 1, [OK to use snprintb()?])]) 86280849Scy 87275970Scydnl HP-UX 11.31 on HPPA has a net/if.h that can't be compiled with gcc4 88275970Scydnl due to an incomplete type (a union) mpinfou used in an array. gcc3 89275970Scydnl compiles it without complaint. The mpinfou union is defined later 90275970Scydnl in the resulting preprocessed source than the spu_info array in 91275970Scydnl /usr/include/machine/sys/getppdp.h: 92275970Scydnl extern union mpinfou spu_info[]; 93275970Scydnl triggering the error. Our strategy is on HP-UX only, test compile 94275970Scydnl net/if.h. If that fails, try adding a duplicate definition of 95275970Scydnl mpinfou, and if that helps add it to confdefs.h (used for further 96275970Scydnl configure tests) and config.h. 97275970Scy# 98275970ScyAC_CHECK_HEADERS([errno.h sys/socket.h sys/types.h time.h]) 99275970ScyAC_CHECK_HEADERS([net/if.h], [], [], [ 100275970Scy #ifdef HAVE_SYS_SOCKET_H 101275970Scy # include <sys/socket.h> 102275970Scy #endif 103275970Scy]) 104275970Scycase "$host" in 105275970Scy *-hp-hpux*) 106275970Scy AC_CACHE_CHECK( 107275970Scy [if net/if.h requires mpinfou predeclaration], 108275970Scy [ntp_cv_predecl_mpinfou], 109275970Scy [ 110275970Scy np_cv_predecl_mpinfou=no 111275970Scy case "$ac_cv_header_net_if_h" in 112275970Scy no) 113275970Scy AC_COMPILE_IFELSE( 114275970Scy [AC_LANG_PROGRAM( 115275970Scy [[ 116275970Scy typedef union mpinfou { 117275970Scy struct pdk_mpinfo *pdkptr; 118275970Scy struct mpinfo *pikptr; 119275970Scy } mpinfou_t; 120275970Scy #ifdef HAVE_SYS_SOCKET_H 121275970Scy # include <sys/socket.h> 122275970Scy #endif 123275970Scy #include <net/if.h> 124275970Scy ]], 125275970Scy [[ 126275970Scy ]] 127275970Scy )], 128275970Scy [ 129275970Scy ntp_cv_predecl_mpinfou=yes 130275970Scy ac_cv_header_net_if_h=yes 131275970Scy ] 132275970Scy ) 133275970Scy esac 134275970Scy ] 135275970Scy ) 136275970Scy case "$ntp_cv_predecl_mpinfou" in 137275970Scy yes) 138275970Scy cat >>confdefs.h <<_ACEOF 139275970Scy#ifndef MPINFOU_PREDECLARED 140275970Scy# define MPINFOU_PREDECLARED 141275970Scytypedef union mpinfou { 142275970Scy struct pdk_mpinfo *pdkptr; 143275970Scy struct mpinfo *pikptr; 144275970Scy} mpinfou_t; 145275970Scy#endif 146275970Scy_ACEOF 147275970Scy AH_BOTTOM([ 148275970Scy#ifndef MPINFOU_PREDECLARED 149275970Scy# define MPINFOU_PREDECLARED 150275970Scytypedef union mpinfou { 151275970Scy struct pdk_mpinfo *pdkptr; 152275970Scy struct mpinfo *pikptr; 153275970Scy} mpinfou_t; 154275970Scy#endif 155275970Scy]) 156275970Scy esac 157275970Scyesac 158275970Scy 159275970Scycase "$host" in 160275970Scy *-linux*) 161275970Scy AC_CHECK_HEADERS([linux/if_addr.h], [], [], [ 162275970Scy #ifdef HAVE_SYS_SOCKET_H 163275970Scy # include <sys/socket.h> 164275970Scy #endif 165275970Scy ]) 166298695Sdelphij AC_DEFINE([NEED_EARLY_FORK], [1], [having to fork the DNS worker early when doing chroot?]) 167275970Scyesac 168275970Scy 169275970ScyAC_CHECK_HEADERS([arpa/nameser.h sys/param.h sys/time.h sys/timers.h]) 170275970Scy# sys/sysctl.h depends on sys/param.h on OpenBSD - Bug 1576 171275970ScyAC_CHECK_HEADERS([sys/sysctl.h], [], [], [ 172275970Scy #if defined HAVE_SYS_PARAM_H 173275970Scy # include <sys/param.h> 174275970Scy #endif 175275970Scy]) 176275970ScyAC_CHECK_HEADERS([netinet/in_system.h netinet/in_systm.h netinet/in.h]) 177275970Scy 178275970ScyAC_CHECK_HEADERS([resolv.h], [], [], [ 179275970Scy #ifdef HAVE_SYS_TYPES_H 180275970Scy # include <sys/types.h> 181275970Scy #endif 182275970Scy #ifdef HAVE_NETINET_IN_H 183275970Scy # include <netinet/in.h> 184275970Scy #endif 185275970Scy #ifdef HAVE_ARPA_NAMESER_H 186275970Scy # include <arpa/nameser.h> 187275970Scy #endif 188275970Scy]) 189275970Scy 190275970ScyAC_CHECK_HEADERS([net/if_var.h], [], [], [ 191275970Scy #if HAVE_SYS_TYPES_H 192275970Scy # include <sys/types.h> 193275970Scy #endif 194275970Scy #ifdef HAVE_SYS_SOCKET_H 195275970Scy # include <sys/socket.h> 196275970Scy #endif 197275970Scy #ifdef HAVE_NETINET_IN_H 198275970Scy # include <netinet/in.h> 199275970Scy #endif 200275970Scy #ifdef HAVE_NET_IF_H 201275970Scy # include <net/if.h> 202275970Scy #endif 203275970Scy]) 204275970Scy 205275970ScyAC_CHECK_HEADERS([netinet/ip.h netinet/in_var.h], [], [], [ 206275970Scy #ifdef HAVE_SYS_TYPES_H 207275970Scy # include <sys/types.h> 208275970Scy #endif 209275970Scy #ifdef HAVE_SYS_SOCKET_H 210275970Scy # include <sys/socket.h> 211275970Scy #endif 212275970Scy #ifdef HAVE_NET_IF_H 213275970Scy # include <net/if.h> 214275970Scy #endif 215275970Scy #ifdef HAVE_NETINET_IN_H 216275970Scy # include <netinet/in.h> 217275970Scy #endif 218275970Scy #ifdef HAVE_NET_IF_VAR_H 219275970Scy # include <net/if_var.h> 220275970Scy #endif 221275970Scy #ifdef HAVE_NETINET_IN_SYSTM_H 222275970Scy # include <netinet/in_systm.h> 223275970Scy #endif 224275970Scy]) 225275970Scy 226275970Scy# HMS: Do we need to check for -lsocket before or after these tests? 227275970ScyHMS_SEARCH_LIBS([LDADD_LIBNTP], [inet_pton], [nsl]) 228275970ScyHMS_SEARCH_LIBS([LDADD_LIBNTP], [inet_ntop], [resolv], , , [-lnsl]) 229275970Scy 230275970Scy# [Bug 1628] On Solaris, we need -lxnet -lsocket. Generalize this to 231275970Scy# avoid keying on the OS name: If we find socket functions in 232275970Scy# libsocket, next try for them in libxnet without libsocket, if found, 233275970Scy# list both. If we simply tested libxnet first, we would find the 234275970Scy# functions there and never add libsocket. See also [Bug 660] 235275970Scy# http://bugs.ntp.org/show_bug.cgi?id=660#c9 236275970Scysaved_LIBS=$LIBS 237275970ScyHMS_SEARCH_LIBS([LDADD_LIBNTP], [setsockopt], [socket]) 238275970Scycase "$ac_cv_search_setsockopt" in 239275970Scy -lsocket) 240275970Scy LIBS="$saved_LIBS" 241275970Scy HMS_SEARCH_LIBS([LDADD_LIBNTP], [getsockopt], [xnet]) 242275970Scy # XXX Possible trouble here - reading the comments above and looking at the 243275970Scy # code below I wonder if we'll add -lxnet when we don't need it. 244275970Scy # Also, do we need to add -lxnet to LDADD_LIBNTP, or perhaps see if it's 245275970Scy # there when it is not needed? 246275970Scy case "$ac_cv_search_getsockopt" in 247275970Scy -lxnet) 248275970Scy LIBS="-lxnet -lsocket $saved_LIBS" 249275970Scy ;; 250275970Scy *) LIBS="-lsocket $saved_LIBS" 251275970Scy ;; 252275970Scy esac 253275970Scy ;; 254275970Scyesac 255275970ScyAS_UNSET([saved_LIBS]) 256275970Scy 257275970Scy# Bug 2427 - look for recvmsg here. 258275970ScyAC_CHECK_FUNCS([recvmsg]) 259275970Scy 260275970ScyAC_C_INLINE 261275970Scy 262275970Scycase "$ac_cv_c_inline" in 263275970Scy '') 264275970Scy ;; 265275970Scy *) 266275970Scy AC_DEFINE([HAVE_INLINE], [1], [inline keyword or macro available]) 267275970Scy AC_SUBST([HAVE_INLINE]) 268275970Scyesac 269275970Scy 270275970ScyAC_HEADER_TIME 271275970ScyAC_CHECK_SIZEOF([time_t]) 272275970ScyAC_C_CHAR_UNSIGNED dnl CROSS_COMPILE? 273275970ScyAC_CHECK_SIZEOF([signed char]) 274275970ScyAC_CHECK_TYPES([s_char, long long]) 275275970ScyAC_CHECK_SIZEOF([short]) 276275970ScyAC_CHECK_SIZEOF([int]) 277275970ScyAC_CHECK_SIZEOF([long]) 278275970Scy 279275970Scycase "$ac_cv_type_long_long" in 280275970Scy no) 281275970Scy ;; 282275970Scy *) 283275970Scy AC_CHECK_SIZEOF([long long]) 284275970Scy ;; 285275970Scyesac 286275970Scy 287275970Scycase "$ac_cv_c_char_unsigned$ac_cv_sizeof_signed_char$ac_cv_type_s_char" in 288275970Scy *yes) 289275970Scy # We have a typedef for s_char. Might as well believe it... 290275970Scy ;; 291275970Scy no0no) 292275970Scy # We have signed chars, can't say 'signed char', no s_char typedef. 293275970Scy AC_DEFINE([NEED_S_CHAR_TYPEDEF], [1], 294275970Scy [Do we need an s_char typedef?]) 295275970Scy ;; 296275970Scy no1no) 297275970Scy # We have signed chars, can say 'signed char', no s_char typedef. 298275970Scy AC_DEFINE([NEED_S_CHAR_TYPEDEF], [1], 299275970Scy [Do we need an s_char typedef?]) 300275970Scy ;; 301275970Scy yes0no) 302275970Scy # We have unsigned chars, can't say 'signed char', no s_char typedef. 303275970Scy AC_MSG_ERROR([No way to specify a signed character!]) 304275970Scy ;; 305275970Scy yes1no) 306275970Scy # We have unsigned chars, can say 'signed char', no s_char typedef. 307275970Scy AC_DEFINE([NEED_S_CHAR_TYPEDEF], [1], 308275970Scy [Do we need an s_char typedef?]) 309275970Scy ;; 310275970Scyesac 311275970Scy 312275970ScyAC_TYPE_UID_T 313275970Scy 314275970Scym4_divert_text([HELP_ENABLE], 315275970Scy[AS_HELP_STRING([defaults:], 316275970Scy [+ yes, - no, s system-specific])]) 317275970Scy 318275970ScyNTP_DEBUG 319275970Scy 320275970Scy# check if we can compile with pthreads 321275970ScyAC_CHECK_HEADERS([semaphore.h]) 322275970ScyAC_CHECK_FUNCS([socketpair]) 323275970ScyAC_ARG_ENABLE( 324275970Scy [thread-support], 325275970Scy [AS_HELP_STRING([--enable-thread-support], 326275970Scy [s use threads (+ if available)])], 327275970Scy [], 328275970Scy [enable_thread_support=yes] 329275970Scy ) 330275970Scyhave_pthreads=no 331275970Scycase "$enable_thread_support" in 332289764Sglebius no) ;; 333289764Sglebius *) 334275970Scy ol_found_pthreads=no 335275970Scy OL_THREAD_CHECK([ol_found_pthreads=yes]) 336275970Scy case "$ol_found_pthreads" in 337275970Scy yes) 338275970Scy saved_LIBS="$LIBS" 339275970Scy LIBS="$LTHREAD_LIBS $LIBS" 340275970Scy saved_CFLAGS="$CFLAGS" 341275970Scy CFLAGS="$PTHREAD_CFLAGS $CFLAGS" 342275970Scy AC_CHECK_FUNCS([sem_timedwait]) 343275970Scy LIBS="$saved_LIBS" 344275970Scy AS_UNSET([saved_LIBS]) 345275970Scy CFLAGS="$saved_CFLAGS" 346275970Scy AS_UNSET([saved_CFLAGS]) 347275970Scy case "$ac_cv_func_sem_timedwait" in 348275970Scy yes) 349275970Scy PTHREAD_LIBS="$LTHREAD_LIBS" 350275970Scy have_pthreads=yes 351275970Scy esac 352275970Scy esac 353275970Scyesac 354275970ScyAC_SUBST([PTHREAD_LIBS]) 355275970Scycase "$have_pthreads" in 356275970Scy yes) 357275970Scy CFLAGS_NTP="$CFLAGS_NTP $PTHREAD_CFLAGS" 358275970Scy saved_LIBS="$LIBS" 359275970Scy LIBS="$LTHREAD_LIBS $LIBS" 360275970Scy saved_CFLAGS="$CFLAGS" 361275970Scy CFLAGS="$PTHREAD_CFLAGS $CFLAGS" 362275970Scy AC_CHECK_SIZEOF( 363275970Scy [pthread_t], 364275970Scy , 365275970Scy [ 366275970Scy AC_INCLUDES_DEFAULT() 367275970Scy #include <pthread.h> 368275970Scy ] 369275970Scy ) 370275970Scy LIBISC_PTHREADS_NOTHREADS=pthreads 371275970Scy AC_DEFINE([ISC_PLATFORM_USETHREADS], [1], 372275970Scy [enable libisc thread support?]) 373275970Scy # 374275970Scy # We'd like to use sigwait() too 375275970Scy # 376275970Scy AC_CHECK_FUNC( 377275970Scy [sigwait], 378275970Scy [have_sigwait=yes], 379275970Scy [AC_CHECK_LIB( 380275970Scy [c], 381275970Scy [sigwait], 382275970Scy [have_sigwait=yes], 383275970Scy [AC_CHECK_LIB( 384275970Scy [pthread], 385275970Scy [sigwait], 386275970Scy [have_sigwait=yes], 387275970Scy [AC_CHECK_LIB( 388275970Scy [pthread], 389275970Scy [_Psigwait], 390275970Scy [have_sigwait=yes], 391275970Scy [have_sigwait=no] 392275970Scy )] 393275970Scy )] 394275970Scy )] 395275970Scy ) 396275970Scy case "$host:$have_sigwait" in 397275970Scy *-freebsd*:no) 398275970Scy AC_CHECK_LIB( 399275970Scy [c_r], 400275970Scy [sigwait], 401275970Scy [have_sigwait=yes] 402275970Scy ) 403275970Scy esac 404275970Scy case "$have_sigwait" in 405275970Scy yes) 406275970Scy ac_cv_func_sigwait=yes 407275970Scy AC_DEFINE([HAVE_SIGWAIT], [1], [sigwait() available?]) 408275970Scy esac 409275970Scy 410275970Scy AC_CHECK_FUNCS([pthread_attr_getstacksize]) 411275970Scy AC_CHECK_FUNCS([pthread_attr_setstacksize sysconf]) 412275970Scy 413275970Scy case "$host" in 414275970Scy *-freebsd5.[[012]]|*-freebsd5.[[012]].*) 415275970Scy ;; 416275970Scy *-freebsd5.[[3456789]]|*-freebsd5.[[3456789]].*|*-freebsd6.*) 417275970Scy AC_DEFINE([NEED_PTHREAD_SCOPE_SYSTEM], [1], 418275970Scy [use PTHREAD_SCOPE_SYSTEM?]) 419275970Scy ;; 420275970Scy *-bsdi3.*|*-bsdi4.0*) 421275970Scy AC_DEFINE([NEED_PTHREAD_INIT], [1], [pthread_init() required?]) 422275970Scy ;; 423275970Scy *-linux*) 424275970Scy AC_DEFINE([HAVE_LINUXTHREADS], [1], [using Linux pthread?]) 425275970Scy ;; 426275970Scy *-solaris*) 427275970Scy AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], [1]) 428275970Scy AC_CHECK_FUNCS([pthread_setconcurrency]) 429275970Scy case "$ac_cv_func_pthread_setconcurrency" in 430275970Scy yes) 431275970Scy AC_DEFINE([CALL_PTHREAD_SETCONCURRENCY], [1], 432275970Scy [why not HAVE_P_S?]) 433275970Scy esac 434275970Scy ;; 435275970Scy *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*) 436275970Scy AC_DEFINE([HAVE_UNIXWARE_SIGWAIT], [1], [deviant sigwait?]) 437275970Scy ;; 438275970Scy esac 439275970Scy hack_shutup_pthreadonceinit=no 440275970Scy case "$host" in 441275970Scy *-aix5.[[123]].*) 442275970Scy hack_shutup_pthreadonceinit=yes 443275970Scy ;; 444275970Scy *-solaris2.[[89]]) 445275970Scy hack_shutup_pthreadonceinit=yes 446275970Scy ;; 447275970Scy *-solaris2.1[[0-9]]) 448275970Scy AC_CACHE_CHECK( 449275970Scy [if extra braces are needed for PTHREAD_ONCE_INIT], 450275970Scy [ntp_cv_braces_around_pthread_once_init], 451275970Scy [AC_COMPILE_IFELSE( 452275970Scy [AC_LANG_PROGRAM( 453275970Scy [[ 454275970Scy #include <pthread.h> 455275970Scy ]], 456275970Scy [[ 457275970Scy static pthread_once_t once_test = 458275970Scy PTHREAD_ONCE_INIT; 459275970Scy ]] 460275970Scy )], 461275970Scy [ntp_cv_braces_around_pthread_once_init=no], 462275970Scy [ntp_cv_braces_around_pthread_once_init=yes] 463275970Scy )] 464275970Scy ) 465275970Scy case "$ntp_cv_braces_around_pthread_once_init" in 466275970Scy yes) 467275970Scy hack_shutup_pthreadonceinit=yes 468275970Scy esac 469275970Scy ;; 470275970Scy esac 471275970Scy case "$hack_shutup_pthreadonceinit" in 472275970Scy yes) 473275970Scy AC_DEFINE([ISC_PLATFORM_BRACEPTHREADONCEINIT], [1], 474275970Scy [Enclose PTHREAD_ONCE_INIT in extra braces?]) 475275970Scy esac 476275970Scy LIBS="$saved_LIBS" 477275970Scy AS_UNSET([saved_LIBS]) 478275970Scy CFLAGS="$saved_CFLAGS" 479275970Scy AS_UNSET([saved_CFLAGS]) 480275970Scy ;; 481275970Scy *) 482275970Scy LIBISC_PTHREADS_NOTHREADS=nothreads 483275970Scy ;; 484275970Scyesac 485275970ScyAC_SUBST([LIBISC_PTHREADS_NOTHREADS]) 486275970ScyAM_CONDITIONAL([PTHREADS], [test "$have_pthreads" != "no"]) 487275970Scy 488275970ScyAC_DEFUN([NTP_BEFORE_HW_FUNC_VSNPRINTF], [ 489275970Scy AC_BEFORE([$0], [HW_FUNC_VSNPRINTF])dnl 490275970Scy AC_BEFORE([$0], [HW_FUNC_SNPRINTF])dnl 491275970Scy AC_ARG_ENABLE( 492275970Scy [c99-snprintf], 493275970Scy [AS_HELP_STRING([--enable-c99-snprintf], [s force replacement])], 494275970Scy [force_c99_snprintf=$enableval], 495275970Scy [force_c99_snprintf=no] 496275970Scy ) 497275970Scy case "$force_c99_snprintf" in 498275970Scy yes) 499275970Scy hw_force_rpl_snprintf=yes 500275970Scy hw_force_rpl_vsnprintf=yes 501275970Scy esac 502275970Scy AH_VERBATIM( 503275970Scy [snprinte],dnl sorted in config.h just before #define snprintf 504275970Scy [ 505275970Scy #if !defined(_KERNEL) && !defined(PARSESTREAM) 506275970Scy /* 507275970Scy * stdio.h must be included after _GNU_SOURCE is defined 508275970Scy * but before #define snprintf rpl_snprintf 509275970Scy */ 510275970Scy # include <stdio.h> 511275970Scy #endif 512275970Scy ]) 513275970Scy AH_BOTTOM([ 514275970Scy #if !defined(_KERNEL) && !defined(PARSESTREAM) 515275970Scy # if defined(HW_WANT_RPL_VSNPRINTF) 516275970Scy # if defined(__cplusplus) 517275970Scy extern "C" { 518275970Scy # endif 519275970Scy # include <stdarg.h> 520275970Scy int rpl_vsnprintf(char *, size_t, const char *, va_list); 521275970Scy # if defined(__cplusplus) 522275970Scy } 523275970Scy # endif 524275970Scy # endif 525275970Scy # if defined(HW_WANT_RPL_SNPRINTF) 526275970Scy # if defined(__cplusplus) 527275970Scy extern "C" { 528275970Scy # endif 529275970Scy int rpl_snprintf(char *, size_t, const char *, ...); 530275970Scy # if defined(__cplusplus) 531275970Scy } 532275970Scy # endif 533275970Scy # endif 534275970Scy #endif /* !defined(_KERNEL) && !defined(PARSESTREAM) */ 535275970Scy ]) 536275970Scy]) dnl end of AC_DEFUN of NTP_BEFORE_HW_FUNC_VSNPRINTF 537275970Scy 538275970ScyAC_DEFUN([NTP_C99_SNPRINTF], [ 539275970Scy AC_REQUIRE([NTP_BEFORE_HW_FUNC_VSNPRINTF])dnl 540275970Scy AC_REQUIRE([HW_FUNC_VSNPRINTF])dnl 541275970Scy AC_REQUIRE([HW_FUNC_SNPRINTF])dnl 542275970Scy]) dnl end of DEFUN of NTP_C99_SNPRINTF 543275970Scy 544275970ScyNTP_C99_SNPRINTF 545275970Scy 546275970Scydnl C99-snprintf does not handle %m 547275970Scycase "$hw_use_rpl_vsnprintf:$hw_cv_func_vsnprintf" in 548275970Scy no:yes) 549275970Scy AC_CACHE_CHECK( 550275970Scy [if vsnprintf expands "%m" to strerror(errno)], 551275970Scy [ntp_cv_vsnprintf_percent_m], 552275970Scy [AC_RUN_IFELSE( 553275970Scy [AC_LANG_PROGRAM( 554275970Scy [[ 555275970Scy #include <stdarg.h> 556275970Scy #include <errno.h> 557275970Scy #include <stdio.h> 558275970Scy #include <string.h> 559275970Scy 560275970Scy int call_vsnprintf( 561275970Scy char * dst, 562275970Scy size_t sz, 563275970Scy const char *fmt, 564275970Scy ... 565275970Scy ); 566275970Scy 567275970Scy int call_vsnprintf( 568275970Scy char * dst, 569275970Scy size_t sz, 570275970Scy const char *fmt, 571275970Scy ... 572275970Scy ) 573275970Scy { 574275970Scy va_list ap; 575275970Scy int rc; 576275970Scy 577275970Scy va_start(ap, fmt); 578275970Scy rc = vsnprintf(dst, sz, fmt, ap); 579275970Scy va_end(ap); 580275970Scy 581275970Scy return rc; 582275970Scy } 583275970Scy ]], 584275970Scy [[ 585275970Scy char sbuf[512]; 586275970Scy char pbuf[512]; 587275970Scy int slen; 588275970Scy 589275970Scy strcpy(sbuf, strerror(ENOENT)); 590275970Scy errno = ENOENT; 591275970Scy slen = call_vsnprintf(pbuf, sizeof(pbuf), "%m", 592275970Scy "wrong"); 593275970Scy return strcmp(sbuf, pbuf); 594275970Scy ]] 595275970Scy )], 596275970Scy [ntp_cv_vsnprintf_percent_m=yes], 597275970Scy [ntp_cv_vsnprintf_percent_m=no], 598275970Scy [ntp_cv_vsnprintf_percent_m=no] 599275970Scy )] 600275970Scy ) 601275970Scy case "$ntp_cv_vsnprintf_percent_m" in 602275970Scy yes) 603275970Scy AC_DEFINE([VSNPRINTF_PERCENT_M], [1], 604275970Scy [vsnprintf expands "%m" to strerror(errno)]) 605275970Scy esac 606275970Scyesac 607275970Scy 608275970ScyAC_CHECK_HEADERS([sys/clockctl.h]) 609275970Scy 610275970ScyAC_ARG_ENABLE( 611275970Scy [clockctl], 612275970Scy [AS_HELP_STRING( 613275970Scy [--enable-clockctl], 614275970Scy [s Use /dev/clockctl for non-root clock control] 615275970Scy )], 616275970Scy [ntp_use_dev_clockctl=$enableval], 617275970Scy [ntp_use_dev_clockctl=$ac_cv_header_sys_clockctl_h] 618275970Scy) 619275970Scy 620275970ScyAC_MSG_CHECKING([if we should use /dev/clockctl]) 621275970ScyAC_MSG_RESULT([$ntp_use_dev_clockctl]) 622275970Scy 623275970Scy 624275970ScyAC_CHECK_HEADERS([sys/capability.h sys/prctl.h]) 625275970Scy 626275970ScyAC_MSG_CHECKING([if we have linux capabilities (libcap)]) 627275970Scy 628275970Scycase "$ac_cv_header_sys_capability_h$ac_cv_header_sys_prctl_h" in 629275970Scy yesyes) 630275970Scy case "$host" in 631275970Scy mips-sgi-irix*) 632275970Scy ntp_have_linuxcaps=no 633275970Scy ;; 634275970Scy *) ntp_have_linuxcaps=yes 635275970Scy ;; 636275970Scy esac 637275970Scy ;; 638275970Scy *) 639275970Scy ntp_have_linuxcaps=no 640275970Scy ;; 641275970Scyesac 642275970Scy 643275970ScyAC_ARG_ENABLE( 644275970Scy [linuxcaps], 645275970Scy [AS_HELP_STRING( 646275970Scy [--enable-linuxcaps], 647275970Scy [+ Use Linux capabilities for non-root clock control] 648275970Scy )], 649275970Scy [ntp_have_linuxcaps=$enableval] 650275970Scy) 651275970Scy 652275970ScyAC_MSG_RESULT([$ntp_have_linuxcaps]) 653275970Scy 654275970Scycase "$ntp_have_linuxcaps" in 655275970Scy yes) 656275970Scy AC_DEFINE([HAVE_LINUX_CAPABILITIES], [1], 657275970Scy [Do we have Linux capabilities?]) 658275970Scy LIBS="$LIBS -lcap" 659275970Scy ;; 660275970Scyesac 661275970Scy 662275970Scy 663275970ScyAC_CHECK_HEADERS([priv.h]) 664275970Scycase "$ac_cv_header_priv_h" in 665275970Scy yes) 666275970Scy case "$host" in 667275970Scy *-solaris*) 668275970Scy AC_CHECK_FUNC( 669275970Scy [setppriv], 670275970Scy [ntp_have_solarisprivs=yes], 671275970Scy [ntp_have_solarisprivs=no] 672275970Scy ) 673275970Scy ;; 674275970Scy esac 675275970Scyesac 676275970Scy 677275970ScyAC_ARG_ENABLE( 678275970Scy [solarisprivs], 679275970Scy [AS_HELP_STRING( 680275970Scy [--enable-solarisprivs], 681275970Scy [+ Use Solaris privileges for non-root clock control] 682275970Scy )], 683275970Scy [ntp_have_solarisprivs=$enableval] 684275970Scy) 685275970Scy 686316068SdelphijAC_MSG_CHECKING([if we have solaris privileges]) 687275970Scy 688275970Scycase "$ntp_have_solarisprivs" in 689275970Scy yes) 690275970Scy AC_DEFINE([HAVE_SOLARIS_PRIVS], [1], 691275970Scy [Are Solaris privileges available?]) 692344884Scy ;; 693344884Scy '') ntp_have_solarisprivs="no" 694344884Scy ;; 695275970Scyesac 696275970Scy 697275970ScyAC_MSG_RESULT([$ntp_have_solarisprivs]) 698275970Scy 699338530SdelphijAC_CHECK_HEADERS([sys/mac.h]) 700338530Sdelphij 701338530SdelphijAC_ARG_ENABLE( 702338530Sdelphij [trustedbsd_mac], 703338530Sdelphij [AS_HELP_STRING( 704338530Sdelphij [--enable-trustedbsd-mac], 705338530Sdelphij [s Use TrustedBSD MAC policy for non-root clock control] 706338530Sdelphij )], 707338530Sdelphij [ntp_use_trustedbsd_mac=$enableval] 708338530Sdelphij) 709338530Sdelphij 710338530SdelphijAC_MSG_CHECKING([if we should use TrustedBSD MAC privileges]) 711338530Sdelphij 712338530Sdelphijcase "$ntp_use_trustedbsd_mac$ac_cv_header_sys_mac_h" in 713338530Sdelphij yesyes) 714338530Sdelphij AC_DEFINE([HAVE_TRUSTEDBSD_MAC], [1], 715338530Sdelphij [Are TrustedBSD MAC policy privileges available?]) 716344884Scy ;; 717344884Scy *) ntp_use_trustedbsd_mac="no"; 718344884Scy ;; 719338530Sdelphijesac 720338530Sdelphij 721338530SdelphijAC_MSG_RESULT([$ntp_use_trustedbsd_mac]) 722338530Sdelphij 723338530Sdelphijcase "$ntp_use_dev_clockctl$ntp_have_linuxcaps$ntp_have_solarisprivs$ntp_use_trustedbsd_mac" in 724275970Scy *yes*) 725275970Scy AC_DEFINE([HAVE_DROPROOT], [1], 726275970Scy [Can we drop root privileges?]) 727275970Scyesac 728275970Scy 729275970Scycase "$host" in 730275970Scy *-*-darwin*) 731275970Scy AC_SEARCH_LIBS([res_9_init], [resolv]) 732275970Scy ;; 733275970Scy *) AC_SEARCH_LIBS([res_init], [resolv]) 734275970Scy ;; 735275970Scyesac 736275970ScyAC_HEADER_RESOLV 737275970Scy#HMS: Why do we do this check so "early"? 738275970ScyAC_CHECK_FUNCS([res_init], , [AC_CHECK_FUNCS([__res_init])]) 739275970Scy 740275970Scy# We also need -lsocket, but we have tested for that already. 741275970ScyAC_CHECK_FUNC([inet_ntop], [], 742275970Scy [AC_DEFINE([ISC_PLATFORM_NEEDNTOP], [1], [ISC: provide inet_ntop()])]) 743275970ScyAC_CHECK_FUNC([inet_pton], [], 744275970Scy [AC_DEFINE([ISC_PLATFORM_NEEDPTON], [1], [ISC: provide inet_pton()])]) 745275970Scy 746275970ScyAC_CHECK_TYPES([uintptr_t, int32, u_int32]) 747275970Scy 748275970ScyAH_VERBATIM([TYPEDEF_UINTPTR_T], 749275970Scy[/* Provide a typedef for uintptr_t? */ 750275970Scy#ifndef HAVE_UINTPTR_T 751275970Scytypedef unsigned int uintptr_t; 752275970Scy#define HAVE_UINTPTR_T 1 753275970Scy#endif]) 754275970Scy 755275970Scycase "$ac_cv_type_int32::$ac_cv_header_resolv_h" in 756275970Scy no::yes) 757275970Scy AC_CACHE_CHECK( 758275970Scy [for int32 with DNS headers included], 759275970Scy [ntp_cv_type_int32_with_dns], 760275970Scy [AC_COMPILE_IFELSE( 761275970Scy [AC_LANG_PROGRAM( 762275970Scy [[ 763275970Scy #ifdef HAVE_ARPA_NAMESER_H 764275970Scy # include <arpa/nameser.h> 765275970Scy #endif 766275970Scy #include <resolv.h> 767275970Scy ]], 768275970Scy [[ 769275970Scy size_t cb = sizeof(int32); 770275970Scy ]] 771275970Scy )], 772275970Scy [ntp_cv_type_int32_with_dns=yes], 773275970Scy [ntp_cv_type_int32_with_dns=no] 774275970Scy )] 775275970Scy ) 776275970Scy case "$ntp_cv_type_int32_with_dns" in 777275970Scy yes) 778275970Scy AC_DEFINE([HAVE_INT32_ONLY_WITH_DNS], [1], 779275970Scy [int32 type in DNS headers, not others.]) 780275970Scy esac 781275970Scyesac 782275970Scy 783275970Scycase "$ac_cv_type_u_int32::$ac_cv_header_resolv_h" in 784275970Scy no::yes) 785275970Scy AC_CACHE_CHECK( 786275970Scy [for u_int32 with DNS headers included], 787275970Scy [ntp_cv_type_u_int32_with_dns], 788275970Scy [AC_COMPILE_IFELSE( 789275970Scy [AC_LANG_PROGRAM( 790275970Scy [[ 791275970Scy #ifdef HAVE_ARPA_NAMESER_H 792275970Scy # include <arpa/nameser.h> 793275970Scy #endif 794275970Scy #include <resolv.h> 795275970Scy ]], 796275970Scy [[ 797275970Scy size_t cb = sizeof(u_int32); 798275970Scy ]] 799275970Scy )], 800275970Scy [ntp_cv_type_u_int32_with_dns=yes], 801275970Scy [ntp_cv_type_u_int32_with_dns=no] 802275970Scy )] 803275970Scy ) 804275970Scy case "$ntp_cv_type_u_int32_with_dns" in 805275970Scy yes) 806275970Scy AC_DEFINE([HAVE_U_INT32_ONLY_WITH_DNS], [1], 807275970Scy [u_int32 type in DNS headers, not others.]) 808275970Scy esac 809275970Scyesac 810275970Scy 811275970ScyAC_CHECK_HEADERS( 812275970Scy [sys/timepps.h], 813275970Scy [], 814275970Scy [], 815275970Scy [ 816275970Scy #ifdef HAVE_SYS_TIME_H 817275970Scy # include <sys/time.h> 818275970Scy #endif 819275970Scy #ifdef HAVE_ERRNO_H 820275970Scy # include <errno.h> 821275970Scy #endif 822275970Scy ] 823275970Scy) 824275970Scy 825275970ScyAC_CACHE_CHECK( 826275970Scy [for struct timespec], 827275970Scy [ntp_cv_struct_timespec], 828275970Scy [AC_COMPILE_IFELSE( 829275970Scy [AC_LANG_PROGRAM( 830275970Scy [[ 831275970Scy #include <sys/time.h> 832275970Scy /* Under SunOS, timespec is in sys/timepps.h, 833275970Scy which needs errno.h and FRAC */ 834275970Scy #ifdef HAVE_ERRNO_H 835275970Scy # include <errno.h> 836275970Scy #endif 837275970Scy #ifdef HAVE_SYS_TIMEPPS_H 838275970Scy # define FRAC 4294967296 839275970Scy # include <sys/timepps.h> 840275970Scy #endif 841275970Scy ]], 842275970Scy [[ 843275970Scy struct timespec n; 844275970Scy ]] 845275970Scy )], 846275970Scy [ntp_cv_struct_timespec=yes], 847275970Scy [ntp_cv_struct_timespec=no] 848275970Scy )] 849275970Scy) 850275970Scycase "$ntp_cv_struct_timespec" in 851275970Scy yes) 852275970Scy AC_DEFINE([HAVE_STRUCT_TIMESPEC], [1], [struct timespec declared?]) 853275970Scyesac 854275970Scy 855275970ScyAC_CACHE_CHECK( 856275970Scy [for struct ntptimeval], 857275970Scy [ntp_cv_struct_ntptimeval], 858275970Scy [AC_COMPILE_IFELSE( 859275970Scy [AC_LANG_PROGRAM( 860275970Scy [[ 861275970Scy #include <sys/time.h> 862275970Scy #include <sys/timex.h> 863275970Scy ]], 864275970Scy [[ 865275970Scy struct ntptimeval n; 866275970Scy ]] 867275970Scy )], 868275970Scy [ntp_cv_struct_ntptimeval=yes], 869275970Scy [ntp_cv_struct_ntptimeval=no] 870275970Scy )] 871275970Scy) 872275970Scycase "$ntp_cv_struct_ntptimeval" in 873275970Scy yes) 874275970Scy AC_DEFINE([HAVE_STRUCT_NTPTIMEVAL], [1], 875275970Scy [Do we have struct ntptimeval?]) 876275970Scyesac 877275970Scy 878275970ScyAC_CHECK_HEADERS( 879275970Scy [md5.h], 880275970Scy [], 881275970Scy [], 882275970Scy [ 883275970Scy #ifdef HAVE_SYS_TYPES_H 884275970Scy # include <sys/types.h> 885275970Scy #endif 886275970Scy ] 887275970Scy) 888275970Scy 889275970ScyAC_SEARCH_LIBS([MD5Init], [md5 md]) 890275970ScyAC_CHECK_FUNCS([MD5Init sysconf getdtablesize sigaction sigset sigvec]) 891275970Scy 892344884Scy# HMS: does this need to be a cached variable? 893344884ScyAC_ARG_ENABLE( 894344884Scy [signalled-io], 895344884Scy [AS_HELP_STRING([--enable-signalled-io], [s Use signalled IO if we can])], 896344884Scy [use_signalled_io=$enableval], 897344884Scy [use_signalled_io=yes] 898344884Scy ) 899344884Scy 900275970ScyAC_CACHE_CHECK( 901275970Scy [for SIGIO], 902275970Scy [ntp_cv_hdr_def_sigio], 903275970Scy [AC_PREPROC_IFELSE( 904282408Scy [AC_LANG_SOURCE([ 905275970Scy #include <signal.h> 906275970Scy 907275970Scy #ifndef SIGIO 908275970Scy # error 909275970Scy #endif 910282408Scy ])], 911275970Scy [ntp_cv_hdr_def_sigio=yes], 912275970Scy [ntp_cv_hdr_def_sigio=no] 913275970Scy )] 914275970Scy ) 915275970Scy 916275970Scydnl Override those system that have a losing SIGIO 917275970ScyAC_MSG_CHECKING([if we want to use SIGIO]) 918275970Scyans=no 919275970Scycase "$ntp_cv_hdr_def_sigio" in 920275970Scy yes) 921275970Scy ans=yes 922275970Scy case "$host" in 923275970Scy alpha*-dec-osf4*|alpha*-dec-osf5*) 924275970Scy ans=no 925275970Scy ;; 926275970Scy *-convex-*) 927275970Scy ans=no 928275970Scy ;; 929275970Scy *-dec-*) 930275970Scy ans=no 931275970Scy ;; 932275970Scy *-pc-cygwin*) 933275970Scy ans=no 934275970Scy ;; 935275970Scy *-sni-sysv*) 936275970Scy ans=no 937275970Scy ;; 938285169Scy *-stratus-vos) 939285169Scy ans=no 940285169Scy ;; 941275970Scy *-univel-sysv*) 942275970Scy ans=no 943275970Scy ;; 944275970Scy *-*-irix6*) 945275970Scy ans=no 946275970Scy ;; 947275970Scy *-*-freebsd*) 948275970Scy ans=no 949275970Scy ;; 950275970Scy *-*-*linux*) 951275970Scy ans=no 952275970Scy ;; 953275970Scy *-*-unicosmp*) 954275970Scy ans=no 955275970Scy ;; 956275970Scy *-*-kfreebsd*) 957275970Scy ans=no 958275970Scy ;; 959275970Scy m68k-*-mint*) 960275970Scy ans=no 961275970Scy ;; 962275970Scy esac 963344884Scy case "$ans" in 964344884Scy no) 965344884Scy ans="Possible for $host but disabled because of reported problems" 966344884Scy ;; 967344884Scy esac 968275970Scy ;; 969275970Scyesac 970275970Scycase "$ans" in 971275970Scy yes) 972344884Scy case "$use_signalled_io" in 973344884Scy yes) 974344884Scy AC_DEFINE([HAVE_SIGNALED_IO], [1], 975344884Scy [Can we use SIGIO for tcp and udp IO?]) 976344884Scy ;; 977344884Scy *) ans="Allowed for $host but --disable-signalled-io was given" 978344884Scy ;; 979344884Scy esac 980275970Scyesac 981275970ScyAC_MSG_RESULT([$ans]) 982275970Scy 983275970ScyAC_CACHE_CHECK( 984275970Scy [for SIGPOLL], 985275970Scy [ntp_cv_hdr_def_sigpoll], 986275970Scy [AC_PREPROC_IFELSE( 987282408Scy [AC_LANG_SOURCE([ 988275970Scy #include <signal.h> 989275970Scy 990275970Scy #ifndef SIGPOLL 991275970Scy # error 992275970Scy #endif 993282408Scy ])], 994275970Scy [ntp_cv_hdr_def_sigpoll=yes], 995275970Scy [ntp_cv_hdr_def_sigpoll=no] 996275970Scy )] 997275970Scy) 998275970Scy 999275970ScyAC_MSG_CHECKING([if we can use SIGPOLL for UDP I/O]) 1000275970Scyans=no 1001275970Scycase "$ntp_cv_hdr_def_sigpoll" in 1002275970Scy yes) 1003275970Scy case "$host" in 1004275970Scy mips-sgi-irix*) 1005275970Scy ans=no 1006275970Scy ;; 1007275970Scy vax-dec-bsd) 1008275970Scy ans=no 1009275970Scy ;; 1010275970Scy *-pc-cygwin*) 1011275970Scy ans=no 1012275970Scy ;; 1013275970Scy *-sni-sysv*) 1014275970Scy ans=no 1015275970Scy ;; 1016285169Scy *-stratus-vos) 1017285169Scy ans=no 1018285169Scy ;; 1019275970Scy *-*-aix[[4-9]]*) 1020275970Scy # XXX Only verified thru AIX6 1021275970Scy ans=no 1022275970Scy ;; 1023275970Scy *-*-hpux*) 1024275970Scy ans=no 1025275970Scy ;; 1026275970Scy *-*-*linux*) 1027275970Scy ans=no 1028275970Scy ;; 1029275970Scy *-*-osf*) 1030275970Scy ans=no 1031275970Scy ;; 1032275970Scy *-*-qnx*) 1033275970Scy ans=no 1034275970Scy ;; 1035275970Scy *-*-sunos*) 1036275970Scy ans=no 1037275970Scy ;; 1038275970Scy *-*-solaris*) 1039275970Scy ans=no 1040275970Scy ;; 1041275970Scy *-*-ultrix*) 1042275970Scy ans=no 1043275970Scy ;; 1044275970Scy *-*-unicosmp*) 1045275970Scy ans=no 1046275970Scy ;; 1047275970Scy *-*-kfreebsd*) 1048275970Scy ans=no 1049275970Scy ;; 1050275970Scy *) ans=yes 1051275970Scy ;; 1052275970Scy esac 1053275970Scy ;; 1054275970Scyesac 1055275970Scycase "$ans" in 1056275970Scy yes) 1057275970Scy AC_DEFINE([USE_UDP_SIGPOLL], [1], [Can we use SIGPOLL for UDP?]) 1058275970Scyesac 1059275970ScyAC_MSG_RESULT([$ans]) 1060275970Scy 1061275970ScyAC_MSG_CHECKING([if we can use SIGPOLL for TTY I/O]) 1062275970Scyans=no 1063275970Scycase "$ntp_cv_hdr_def_sigpoll" in 1064275970Scy yes) 1065275970Scy case "$host" in 1066275970Scy mips-sgi-irix*) 1067275970Scy ans=no 1068275970Scy ;; 1069275970Scy vax-dec-bsd) 1070275970Scy ans=no 1071275970Scy ;; 1072275970Scy *-pc-cygwin*) 1073275970Scy ans=no 1074275970Scy ;; 1075275970Scy *-sni-sysv*) 1076275970Scy ans=no 1077275970Scy ;; 1078285169Scy *-stratus-vos) 1079285169Scy ans=no 1080285169Scy ;; 1081275970Scy *-*-aix[[4-9]]*) 1082275970Scy # XXX Only verified thru AIX6 1083275970Scy ans=no 1084275970Scy ;; 1085275970Scy *-*-hpux*) 1086275970Scy ans=no 1087275970Scy ;; 1088275970Scy *-*-*linux*) 1089275970Scy ans=no 1090275970Scy ;; 1091275970Scy *-*-osf*) 1092275970Scy ans=no 1093275970Scy ;; 1094275970Scy *-*-sunos*) 1095275970Scy ans=no 1096275970Scy ;; 1097275970Scy *-*-ultrix*) 1098275970Scy ans=no 1099275970Scy ;; 1100275970Scy *-*-qnx*) 1101275970Scy ans=no 1102275970Scy ;; 1103275970Scy *-*-unicosmp*) 1104275970Scy ans=no 1105275970Scy ;; 1106275970Scy *-*-kfreebsd*) 1107275970Scy ans=no 1108275970Scy ;; 1109275970Scy *) ans=yes 1110275970Scy ;; 1111275970Scy esac 1112275970Scy ;; 1113275970Scyesac 1114275970Scycase "$ans" in 1115275970Scy yes) 1116275970Scy AC_DEFINE([USE_TTY_SIGPOLL], [1], [Can we use SIGPOLL for tty IO?]) 1117275970Scyesac 1118275970ScyAC_MSG_RESULT([$ans]) 1119275970Scy 1120275970ScyAC_CACHE_CHECK( 1121275970Scy [number of arguments to gettimeofday()], 1122275970Scy [ntp_cv_func_Xettimeofday_nargs], 1123275970Scy [AC_COMPILE_IFELSE( 1124275970Scy [AC_LANG_PROGRAM( 1125275970Scy [[ 1126275970Scy #include <sys/time.h> 1127275970Scy ]], 1128275970Scy [[ 1129275970Scy gettimeofday(0, 0); 1130275970Scy settimeofday(0, 0); 1131275970Scy ]] 1132275970Scy )], 1133275970Scy [ntp_cv_func_Xettimeofday_nargs=2], 1134275970Scy [ntp_cv_func_Xettimeofday_nargs=1] 1135275970Scy )] 1136275970Scy) 1137275970Scycase "$ntp_cv_func_Xettimeofday_nargs" in 1138275970Scy 1) 1139275970Scy AC_DEFINE([SYSV_TIMEOFDAY], [1], [Does Xettimeofday take 1 arg?]) 1140275970Scyesac 1141275970Scy 1142275970ScyAC_CHECK_FUNCS([settimeofday], ,[ 1143275970Scy case "$host" in 1144275970Scy *-*-mpeix*) ac_cv_func_settimeofday=yes 1145275970Scy esac 1146275970Scy]) 1147275970Scy 1148275970ScyAC_MSG_CHECKING([if we'll use clock_settime or settimeofday or stime]) 1149275970Scyntp_warning='GRONK' 1150275970Scyans=none 1151275970Scycase "$ac_cv_func_clock_settime$ac_cv_func_settimeofday$ac_cv_func_stime" in 1152275970Scy yes*) 1153275970Scy ntp_warning='' 1154275970Scy ans='clock_settime()' 1155275970Scy ;; 1156275970Scy noyes*) 1157275970Scy ntp_warning='But clock_settime() would be better (if we had it)' 1158275970Scy ans='settimeofday()' 1159275970Scy ;; 1160275970Scy nonoyes) 1161275970Scy ntp_warning='Which is the worst of the three' 1162275970Scy ans='stime()' 1163275970Scy ;; 1164275970Scy *) 1165275970Scy case "$build" in 1166275970Scy $host) 1167275970Scy ntp_warning='Which leaves us with nothing to use!' 1168275970Scy esac 1169275970Scyesac 1170275970ScyAC_MSG_RESULT([$ans]) 1171275970Scycase "$ntp_warning" in 1172275970Scy '') 1173275970Scy ;; 1174275970Scy *) 1175275970Scy AC_MSG_WARN([*** $ntp_warning ***]) 1176275970Scy ;; 1177275970Scyesac 1178275970Scy 1179275970Scy 1180275970Scydnl add to LDADD_LIBNTP set by ntp_compiler.m4 1181275970ScyLDADD_LIBNTP="$LDADD_LIBNTP $LIBS" 1182275970ScyLIBS=$__LIBS 1183275970ScyAS_UNSET([__LIBS]) 1184275970Scy 1185275970Scy])dnl 1186275970Scydnl ====================================================================== 1187