1AC_PREREQ(2.52) 2AC_COPYRIGHT([Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009 3Massachusetts Institute of Technology. 4])dnl 5dnl Maintainer mode, akin to what automake provides, 'cept we don't 6dnl want to use automake right now. 7AC_DEFUN([KRB5_AC_MAINTAINER_MODE], 8[AC_ARG_ENABLE([maintainer-mode], 9AC_HELP_STRING([--enable-maintainer-mode],[enable rebuilding of source files, Makefiles, etc]), 10USE_MAINTAINER_MODE=$enableval, 11USE_MAINTAINER_MODE=no) 12if test "$USE_MAINTAINER_MODE" = yes; then 13 MAINTAINER_MODE_TRUE= 14 MAINTAINER_MODE_FALSE='#' 15 AC_MSG_NOTICE(enabling maintainer mode) 16else 17 MAINTAINER_MODE_TRUE='#' 18 MAINTAINER_MODE_FALSE= 19fi 20MAINT=$MAINTAINER_MODE_TRUE 21AC_SUBST(MAINTAINER_MODE_TRUE) 22AC_SUBST(MAINTAINER_MODE_FALSE) 23AC_SUBST(MAINT) 24])dnl 25dnl 26dnl DECLARE_SYS_ERRLIST - check for sys_errlist in libc 27dnl 28AC_DEFUN([DECLARE_SYS_ERRLIST], 29[AC_CACHE_CHECK([for sys_errlist declaration], krb5_cv_decl_sys_errlist, 30[AC_TRY_COMPILE([#include <stdio.h> 31#include <errno.h>], [1+sys_nerr;], 32krb5_cv_decl_sys_errlist=yes, krb5_cv_decl_sys_errlist=no)]) 33# assume sys_nerr won't be declared w/o being in libc 34if test $krb5_cv_decl_sys_errlist = yes; then 35 AC_DEFINE(SYS_ERRLIST_DECLARED,1,[Define if sys_errlist is defined in errno.h]) 36 AC_DEFINE(HAVE_SYS_ERRLIST,1,[Define if sys_errlist in libc]) 37else 38 # This means that sys_errlist is not declared in errno.h, but may still 39 # be in libc. 40 AC_CACHE_CHECK([for sys_errlist in libc], krb5_cv_var_sys_errlist, 41 [AC_TRY_LINK([extern int sys_nerr;], [if (1+sys_nerr < 0) return 1;], 42 krb5_cv_var_sys_errlist=yes, krb5_cv_var_sys_errlist=no;)]) 43 if test $krb5_cv_var_sys_errlist = yes; then 44 AC_DEFINE(HAVE_SYS_ERRLIST,1,[Define if sys_errlist in libc]) 45 # Do this cruft for backwards compatibility for now. 46 AC_DEFINE(NEED_SYS_ERRLIST,1,[Define if need to declare sys_errlist]) 47 else 48 AC_MSG_WARN([sys_errlist is neither in errno.h nor in libc]) 49 fi 50fi])dnl 51dnl 52dnl check for sigmask/sigprocmask -- CHECK_SIGPROCMASK 53dnl 54AC_DEFUN(CHECK_SIGPROCMASK,[ 55AC_MSG_CHECKING([for use of sigprocmask]) 56AC_CACHE_VAL(krb5_cv_func_sigprocmask_use, 57[AC_TRY_LINK([#include <signal.h>], [sigprocmask(SIG_SETMASK,0,0);], 58 krb5_cv_func_sigprocmask_use=yes, 59AC_TRY_LINK([#include <signal.h>], [sigmask(1);], 60 krb5_cv_func_sigprocmask_use=no, krb5_cv_func_sigprocmask_use=yes))]) 61AC_MSG_RESULT($krb5_cv_func_sigprocmask_use) 62if test $krb5_cv_func_sigprocmask_use = yes; then 63 AC_DEFINE(USE_SIGPROCMASK,1,[Define if sigprocmask should be used]) 64fi 65])dnl 66dnl 67AC_DEFUN(AC_PROG_ARCHIVE, [AC_CHECK_PROG(ARCHIVE, ar, ar cqv, false)])dnl 68AC_DEFUN(AC_PROG_ARCHIVE_ADD, [AC_CHECK_PROG(ARADD, ar, ar cruv, false)])dnl 69dnl 70dnl check for <dirent.h> -- CHECK_DIRENT 71dnl (may need to be more complex later) 72dnl 73AC_DEFUN(CHECK_DIRENT,[ 74AC_CHECK_HEADER(dirent.h,AC_DEFINE(USE_DIRENT_H,1,[Define if you have dirent.h functionality]))])dnl 75dnl 76dnl check if union wait is defined, or if WAIT_USES_INT -- CHECK_WAIT_TYPE 77dnl 78AC_DEFUN(CHECK_WAIT_TYPE,[ 79AC_MSG_CHECKING([if argument to wait is int *]) 80AC_CACHE_VAL(krb5_cv_struct_wait, 81dnl Test for prototype clash - if there is none - then assume int * works 82[AC_TRY_COMPILE([#include <sys/types.h> 83#include <sys/wait.h> 84extern pid_t wait(int *);],[], krb5_cv_struct_wait=no,dnl 85dnl Else fallback on old stuff 86[AC_TRY_COMPILE( 87[#include <sys/wait.h>], [union wait i; 88#ifdef WEXITSTATUS 89 WEXITSTATUS (i); 90#endif 91], 92 krb5_cv_struct_wait=yes, krb5_cv_struct_wait=no)])]) 93AC_MSG_RESULT($krb5_cv_struct_wait) 94if test $krb5_cv_struct_wait = no; then 95 AC_DEFINE(WAIT_USES_INT,1,[Define if wait takes int as a argument]) 96fi 97])dnl 98dnl 99dnl check for POSIX signal handling -- CHECK_SIGNALS 100dnl 101AC_DEFUN(CHECK_SIGNALS,[ 102AC_CHECK_FUNC(sigprocmask, 103AC_MSG_CHECKING(for sigset_t and POSIX_SIGNALS) 104AC_CACHE_VAL(krb5_cv_type_sigset_t, 105[AC_TRY_COMPILE( 106[#include <signal.h>], 107[sigset_t x], 108krb5_cv_type_sigset_t=yes, krb5_cv_type_sigset_t=no)]) 109AC_MSG_RESULT($krb5_cv_type_sigset_t) 110if test $krb5_cv_type_sigset_t = yes; then 111 AC_DEFINE(POSIX_SIGNALS,1,[Define if POSIX signal handling is used]) 112fi 113)])dnl 114dnl 115dnl check for signal type 116dnl 117dnl AC_RETSIGTYPE isn't quite right, but almost. 118AC_DEFUN(KRB5_SIGTYPE,[ 119AC_MSG_CHECKING([POSIX signal handlers]) 120AC_CACHE_VAL(krb5_cv_has_posix_signals, 121[AC_TRY_COMPILE( 122[#include <sys/types.h> 123#include <signal.h> 124#ifdef signal 125#undef signal 126#endif 127extern void (*signal ()) ();], [], 128krb5_cv_has_posix_signals=yes, krb5_cv_has_posix_signals=no)]) 129AC_MSG_RESULT($krb5_cv_has_posix_signals) 130if test $krb5_cv_has_posix_signals = yes; then 131 stype=void 132 AC_DEFINE(POSIX_SIGTYPE, 1, [Define if POSIX signal handlers are used]) 133else 134 if test $ac_cv_type_signal = void; then 135 stype=void 136 else 137 stype=int 138 fi 139fi 140AC_DEFINE_UNQUOTED(krb5_sigtype, $stype, [Define krb5_sigtype to type of signal handler])dnl 141])dnl 142dnl 143dnl check for POSIX setjmp/longjmp -- CHECK_SETJMP 144dnl 145AC_DEFUN(CHECK_SETJMP,[ 146AC_CHECK_FUNC(sigsetjmp, 147AC_MSG_CHECKING(for sigjmp_buf) 148AC_CACHE_VAL(krb5_cv_struct_sigjmp_buf, 149[AC_TRY_COMPILE( 150[#include <setjmp.h>],[sigjmp_buf x], 151krb5_cv_struct_sigjmp_buf=yes,krb5_cv_struct_sigjmp_buf=no)]) 152AC_MSG_RESULT($krb5_cv_struct_sigjmp_buf) 153if test $krb5_cv_struct_sigjmp_buf = yes; then 154 AC_DEFINE(POSIX_SETJMP,1,[Define if setjmp indicates POSIX interface]) 155fi 156)])dnl 157dnl 158dnl Check for IPv6 compile-time support. 159dnl 160AC_DEFUN(KRB5_AC_INET6,[ 161AC_CHECK_HEADERS(sys/types.h sys/socket.h netinet/in.h netdb.h) 162AC_CHECK_FUNCS(inet_ntop inet_pton getnameinfo) 163dnl getaddrinfo test needs netdb.h, for proper compilation on alpha 164dnl under OSF/1^H^H^H^H^HDigital^H^H^H^H^H^H^HTru64 UNIX, where it's 165dnl a macro 166AC_MSG_CHECKING(for getaddrinfo) 167AC_CACHE_VAL(ac_cv_func_getaddrinfo, 168[AC_TRY_LINK([#ifdef HAVE_NETDB_H 169#include <netdb.h> 170#endif],[ 171struct addrinfo *ai; 172getaddrinfo("kerberos.mit.edu", "echo", 0, &ai); 173], ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no)]) 174AC_MSG_RESULT($ac_cv_func_getaddrinfo) 175if test $ac_cv_func_getaddrinfo = yes; then 176 AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo function]) 177fi 178dnl 179AC_REQUIRE([KRB5_SOCKADDR_SA_LEN])dnl 180AC_MSG_CHECKING(for IPv6 compile-time support) 181AC_CACHE_VAL(krb5_cv_inet6,[ 182if test "$ac_cv_func_inet_ntop" != "yes" ; then 183 krb5_cv_inet6=no 184else 185AC_TRY_COMPILE([ 186#ifdef HAVE_SYS_TYPES_H 187#include <sys/types.h> 188#endif 189#include <sys/socket.h> 190#include <netinet/in.h> 191#include <netdb.h> 192],[ 193 struct sockaddr_in6 in; 194 AF_INET6; 195 IN6_IS_ADDR_LINKLOCAL (&in.sin6_addr); 196],krb5_cv_inet6=yes,krb5_cv_inet6=no)]) 197fi 198AC_MSG_RESULT($krb5_cv_inet6) 199if test "$krb5_cv_inet6" = no && test "$ac_cv_func_inet_ntop" = yes; then 200AC_MSG_CHECKING(for IPv6 compile-time support with -DINET6) 201AC_CACHE_VAL(krb5_cv_inet6_with_dinet6,[ 202old_CC="$CC" 203CC="$CC -DINET6" 204AC_TRY_COMPILE([ 205#ifdef HAVE_SYS_TYPES_H 206#include <sys/types.h> 207#endif 208#include <sys/socket.h> 209#include <netinet/in.h> 210#include <netdb.h> 211],[ 212 struct sockaddr_in6 in; 213 AF_INET6; 214 IN6_IS_ADDR_LINKLOCAL (&in.sin6_addr); 215],krb5_cv_inet6_with_dinet6=yes,krb5_cv_inet6_with_dinet6=no) 216CC="$old_CC"]) 217AC_MSG_RESULT($krb5_cv_inet6_with_dinet6) 218fi 219if test $krb5_cv_inet6 = yes || test "$krb5_cv_inet6_with_dinet6" = yes; then 220 if test "$krb5_cv_inet6_with_dinet6" = yes; then 221 AC_DEFINE(INET6,1,[May need to be defined to enable IPv6 support, for example on IRIX]) 222 fi 223 AC_DEFINE(KRB5_USE_INET6,1,[Define if we should compile in IPv6 support (even if we can't use it at run time)]) 224fi 225])dnl 226dnl 227AC_DEFUN(KRB5_AC_CHECK_FOR_CFLAGS,[ 228AC_BEFORE([$0],[AC_PROG_CC]) 229krb5_ac_cflags_set=${CFLAGS+set} 230krb5_ac_warn_cflags_set=${WARN_CFLAGS+set} 231]) 232dnl 233AC_DEFUN(TRY_WARN_CC_FLAG,[dnl 234 cachevar=`echo "krb5_cv_cc_flag_$1" | sed s/[[^a-zA-Z0-9_]]/_/g` 235 AC_CACHE_CHECK([if C compiler supports $1], [$cachevar], 236 [# first try without, then with 237 AC_TRY_COMPILE([], 1;, 238 [old_cflags="$CFLAGS" 239 CFLAGS="$CFLAGS $1" 240 AC_TRY_COMPILE([], 1;, eval $cachevar=yes, eval $cachevar=no) 241 CFLAGS="$old_cflags"], 242 [AC_MSG_ERROR(compiling simple test program with $CFLAGS failed)])]) 243 if eval test '"${'$cachevar'}"' = yes; then 244 WARN_CFLAGS="$WARN_CFLAGS $1" 245 fi 246 eval flag_supported='${'$cachevar'}' 247])dnl 248dnl 249AC_DEFUN(WITH_CC,[dnl 250AC_REQUIRE([KRB5_AC_CHECK_FOR_CFLAGS])dnl 251AC_REQUIRE([AC_PROG_CC])dnl 252AC_REQUIRE([AC_PROG_CXX])dnl 253if test $ac_cv_c_compiler_gnu = yes ; then 254 HAVE_GCC=yes 255 else HAVE_GCC= 256fi 257AC_SUBST(HAVE_GCC) 258AC_CACHE_CHECK([for GNU linker], krb5_cv_prog_gnu_ld, 259[krb5_cv_prog_gnu_ld=no 260if test "$GCC" = yes; then 261 if AC_TRY_COMMAND([$CC -Wl,-v 2>&1 dnl 262 | grep "GNU ld" > /dev/null]); then 263 krb5_cv_prog_gnu_ld=yes 264 fi 265fi]) 266# -Wno-long-long, if needed, for k5-platform.h without inttypes.h etc. 267extra_gcc_warn_opts="-Wall -Wcast-qual -Wcast-align -Wshadow" 268# -Wmissing-prototypes 269if test "$GCC" = yes ; then 270 if test "x$krb5_ac_warn_cflags_set" = xset ; then 271 AC_MSG_NOTICE(not adding extra gcc warning flags because WARN_CFLAGS was set) 272 else 273 AC_MSG_NOTICE(adding extra warning flags for gcc) 274 WARN_CFLAGS="$WARN_CFLAGS $extra_gcc_warn_opts -Wmissing-prototypes" 275 if test "`uname -s`" = Darwin ; then 276 AC_MSG_NOTICE(skipping pedantic warnings on Darwin) 277 elif test "`uname -s`" = Linux ; then 278 AC_MSG_NOTICE(skipping pedantic warnings on Linux) 279 else 280 WARN_CFLAGS="$WARN_CFLAGS -pedantic" 281 fi 282 # Currently, G++ does not support -Wno-format-zero-length. 283 TRY_WARN_CC_FLAG(-Wno-format-zero-length) 284 # Other flags here may not be supported on some versions of 285 # gcc that people want to use. 286 for flag in overflow strict-overflow missing-format-attribute missing-prototypes return-type missing-braces parentheses switch unused-function unused-label unused-variable unused-value unknown-pragmas sign-compare newline-eof ; do 287 TRY_WARN_CC_FLAG(-W$flag) 288 done 289 # old-style-definition? generates many, many warnings 290 # 291 # Warnings that we'd like to turn into errors on versions of gcc 292 # that support promoting only specific warnings to errors, but 293 # we'll take as warnings on older compilers. (If such a warning 294 # is added after the -Werror=foo feature, you can just put 295 # error=foo in the above list, and skip the test for the 296 # warning-only form.) At least in some versions, -Werror= doesn't 297 # seem to make the conditions actual errors, but still issues 298 # warnings; I guess we'll take what we can get. 299 # 300 # We're currently targeting C89+, not C99, so disallow some 301 # constructs. 302 for flag in declaration-after-statement variadic-macros ; do 303 TRY_WARN_CC_FLAG(-Werror=$flag) 304 if test "$flag_supported" = no; then 305 TRY_WARN_CC_FLAG(-W$flag) 306 fi 307 done 308 # missing-prototypes? maybe someday 309 # 310 fi 311 if test "`uname -s`" = Darwin ; then 312 # Someday this should be a feature test. 313 # One current (Jaguar = OS 10.2) problem: 314 # Archive library with foo.o undef sym X and bar.o common sym X, 315 # if foo.o is pulled in at link time, bar.o may not be, causing 316 # the linker to complain. 317 # Dynamic library problems too? 318 case "$CC $CFLAGS" in 319 *-fcommon*) ;; # why someone would do this, I don't know 320 *-fno-common*) ;; # okay, they're already doing the right thing 321 *) 322 AC_MSG_NOTICE(disabling the use of common storage on Darwin) 323 CFLAGS="$CFLAGS -fno-common" 324 ;; 325 esac 326 case "$LD $LDFLAGS" in 327 *-Wl,-search_paths_first*) ;; 328 *) LDFLAGS="${LDFLAGS} -Wl,-search_paths_first" ;; 329 esac 330 fi 331else 332 if test "`uname -s`" = AIX ; then 333 # Using AIX but not GCC, assume native compiler. 334 # The native compiler appears not to give a nonzero exit 335 # status for certain classes of errors, like missing arguments 336 # in function calls. Let's try to fix that with -qhalt=e. 337 case "$CC $CFLAGS" in 338 *-qhalt=*) ;; 339 *) 340 CFLAGS="$CFLAGS -qhalt=e" 341 AC_MSG_NOTICE(adding -qhalt=e for better error reporting) 342 ;; 343 esac 344 # Also, the optimizer isn't turned on by default, which means 345 # the static inline functions get left in random object files, 346 # leading to references to pthread_mutex_lock from anything that 347 # includes k5-int.h whether it uses threads or not. 348 case "$CC $CFLAGS" in 349 *-O*) ;; 350 *) 351 CFLAGS="$CFLAGS -O" 352 AC_MSG_NOTICE(adding -O for inline thread-support function elimination) 353 ;; 354 esac 355 fi 356 if test "`uname -s`" = SunOS ; then 357 # Using Solaris but not GCC, assume Sunsoft compiler. 358 # We have some error-out-on-warning options available. 359 # Sunsoft 12 compiler defaults to -xc99=all, it appears, so "inline" 360 # works, but it also means that declaration-in-code warnings won't 361 # be issued. 362 # -v -fd -errwarn=E_DECLARATION_IN_CODE ... 363 WARN_CFLAGS="-errtags=yes -errwarn=E_BAD_PTR_INT_COMBINATION,E_BAD_PTR_INT_COMB_ARG,E_PTR_TO_VOID_IN_ARITHMETIC,E_NO_IMPLICIT_DECL_ALLOWED,E_ATTRIBUTE_PARAM_UNDEFINED" 364 fi 365fi 366AC_SUBST(WARN_CFLAGS) 367])dnl 368dnl 369dnl V5_AC_OUTPUT_MAKEFILE 370dnl 371AC_DEFUN(V5_AC_OUTPUT_MAKEFILE, 372[ifelse($1, , [_V5_AC_OUTPUT_MAKEFILE(.,$2)],[_V5_AC_OUTPUT_MAKEFILE($1,$2)])]) 373dnl 374define(_V5_AC_OUTPUT_MAKEFILE, 375[ifelse($2, , ,AC_CONFIG_FILES($2)) 376AC_FOREACH([DIR], [$1],dnl 377 [AC_CONFIG_FILES(DIR[/Makefile:$srcdir/pre.in:]DIR[/Makefile.in:]DIR[/deps:$srcdir/post.in])]) 378AC_OUTPUT])dnl 379dnl 380dnl 381dnl KRB5_SOCKADDR_SA_LEN: define HAVE_SA_LEN if sockaddr contains the sa_len 382dnl component 383dnl 384AC_DEFUN([KRB5_SOCKADDR_SA_LEN],[ dnl 385AC_CHECK_MEMBER(struct sockaddr.sa_len, 386 AC_DEFINE(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]) 387,,[#include <sys/types.h> 388#include <sys/socket.h>])]) 389dnl 390dnl Check if stdarg or varargs is available *and compiles*; prefer stdarg. 391dnl (This was sent to djm for incorporation into autoconf 3/12/1996. KR) 392dnl 393AC_DEFUN(AC_HEADER_STDARG, [ 394 395AC_MSG_CHECKING([for stdarg.h]) 396AC_CACHE_VAL(ac_cv_header_stdarg_h, 397[AC_TRY_COMPILE([#include <stdarg.h>], [ 398 } /* ac_try_compile will have started a function body */ 399 int aoeu (char *format, ...) { 400 va_list v; 401 int i; 402 va_start (v, format); 403 i = va_arg (v, int); 404 va_end (v); 405],ac_cv_header_stdarg_h=yes,ac_cv_header_stdarg_h=no)])dnl 406AC_MSG_RESULT($ac_cv_header_stdarg_h) 407if test $ac_cv_header_stdarg_h = yes; then 408 AC_DEFINE(HAVE_STDARG_H, 1, [Define if stdarg available and compiles]) 409else 410 411AC_MSG_CHECKING([for varargs.h]) 412AC_CACHE_VAL(ac_cv_header_varargs_h, 413[AC_TRY_COMPILE([#include <varargs.h>],[ 414 } /* ac_try_compile will have started a function body */ 415 int aoeu (va_alist) va_dcl { 416 va_list v; 417 int i; 418 va_start (v); 419 i = va_arg (v, int); 420 va_end (v); 421],ac_cv_header_varargs_h=yes,ac_cv_header_varargs_h=no)])dnl 422AC_MSG_RESULT($ac_cv_header_varargs_h) 423if test $ac_cv_header_varargs_h = yes; then 424 AC_DEFINE(HAVE_VARARGS_H, 1, [Define if varargs available and compiles]) 425else 426 AC_MSG_ERROR(Neither stdarg nor varargs compile?) 427fi 428 429fi dnl stdarg test failure 430 431])dnl 432dnl 433dnl ============================================================= 434dnl Internal function for testing for getsockname arguments 435dnl 436AC_DEFUN([TRY_GETSOCK_INT],[ 437krb5_lib_var=`echo "$1 $2" | sed 'y% ./+-*%___p_p%'` 438AC_MSG_CHECKING([if getsockname() takes arguments $1 and $2]) 439AC_CACHE_VAL(krb5_cv_getsockname_proto_$krb5_lib_var, 440[ 441AC_TRY_COMPILE([#include <sys/types.h> 442#include <sys/socket.h> 443extern int getsockname(int, $1, $2); 444],,eval "krb5_cv_getsockname_proto_$krb5_lib_var=yes", 445 eval "krb5_cv_getsockname_proto_$krb5_lib_var=no")]) 446if eval "test \"`echo '$krb5_cv_getsockname_proto_'$krb5_lib_var`\" = yes"; then 447 AC_MSG_RESULT(yes) 448 sock_set=yes; res1="$1"; res2="$2" 449else 450 AC_MSG_RESULT(no) 451fi 452])dnl 453dnl 454dnl Determines the types of the second and third arguments to getsockname(). 455dnl 456AC_DEFUN([KRB5_GETSOCKNAME_ARGS],[ 457sock_set=no 458for sock_arg1 in "struct sockaddr *" "void *" 459do 460 for sock_arg2 in "size_t *" "int *" "socklen_t *" 461 do 462 if test $sock_set = no; then 463 TRY_GETSOCK_INT($sock_arg1, $sock_arg2) 464 fi 465 done 466done 467if test "$sock_set" = no; then 468 AC_MSG_NOTICE(assuming struct sockaddr and socklen_t for getsockname args) 469 res1="struct sockaddr *" 470 res2="socklen_t *" 471fi 472res1=`echo "$res1" | tr -d '*' | sed -e 's/ *$//'` 473res2=`echo "$res2" | tr -d '*' | sed -e 's/ *$//'` 474AC_DEFINE_UNQUOTED([GETSOCKNAME_ARG2_TYPE],$res1,[Type of pointer target for argument 2 to getsockname]) 475AC_DEFINE_UNQUOTED([GETSOCKNAME_ARG3_TYPE],$res2,[Type of pointer target for argument 3 to getsockname]) 476])dnl 477dnl 478dnl KRB5_AC_LIBUTIL 479dnl 480dnl Check for libutil, for NetBSD, et al.; needed for openpty() and 481dnl logwtmp() on some platforms. 482dnl 483AC_DEFUN([KRB5_AC_LIBUTIL], 484 [AC_CHECK_LIB(util, main, 485 [AC_DEFINE(HAVE_LIBUTIL,1,[Define if util library is available with openpty, logwtmp, etc]) 486 UTIL_LIB=-lutil])dnl 487AC_SUBST(UTIL_LIB) 488])dnl 489