1dnl $Id: aclocal.m4,v 1.14 2000/04/28 14:37:25 ghudson Exp $ 2 3dnl Copyright 1996 by the Massachusetts Institute of Technology. 4dnl 5dnl Permission to use, copy, modify, and distribute this 6dnl software and its documentation for any purpose and without 7dnl fee is hereby granted, provided that the above copyright 8dnl notice appear in all copies and that both that copyright 9dnl notice and this permission notice appear in supporting 10dnl documentation, and that the name of M.I.T. not be used in 11dnl advertising or publicity pertaining to distribution of the 12dnl software without specific, written prior permission. 13dnl M.I.T. makes no representations about the suitability of 14dnl this software for any purpose. It is provided "as is" 15dnl without express or implied warranty. 16 17dnl This file provides local macros for packages which use specific 18dnl external libraries. The public macros are: 19dnl 20dnl ATHENA_UTIL_COM_ERR 21dnl Generates error if com_err not found. 22dnl ATHENA_UTIL_SS 23dnl Generates error if ss not found. 24dnl ATHENA_REGEXP 25dnl Sets REGEX_LIBS if rx library used; ensures POSIX 26dnl regexp support. 27dnl ATHENA_MOTIF 28dnl Sets MOTIF_LIBS and defines HAVE_MOTIF if Motif used. 29dnl ATHENA_MOTIF_REQUIRED 30dnl Generates error if Motif not found. 31dnl ATHENA_AFS 32dnl Sets AFS_LIBS and defines HAVE_AFS if AFS used. Pass 33dnl in an argument giving the desired AFS libraries; 34dnl AFS_LIBS will be set to that value if AFS is found. 35dnl AFS_DIR will be set to the prefix given. 36dnl ATHENA_AFS_REQUIRED 37dnl Generates error if AFS libraries not found. AFS_DIR 38dnl will be set to the prefix given. 39dnl ATHENA_KRB4 40dnl Sets KRB4_LIBS and defines HAVE_KRB4 if krb4 used. 41dnl ATHENA_KRB4_REQUIRED 42dnl Generates error if krb4 not found. Sets KRB4_LIBS 43dnl otherwise. (Special behavior because krb4 libraries 44dnl may be different if using krb4 compatibility libraries 45dnl from krb5.) 46dnl ATHENA_KRB5 47dnl Sets KRB5_LIBS and defines HAVE_KRB5 if krb5 used. 48dnl ATHENA_KRB5_REQUIRED 49dnl Generates error if krb5 not found. 50dnl ATHENA_HESIOD 51dnl Sets HESIOD_LIBS and defines HAVE_HESIOD if Hesiod 52dnl used. 53dnl ATHENA_HESIOD_REQUIRED 54dnl Generates error if Hesiod not found. 55dnl ATHENA_ARES 56dnl Sets ARES_LIBS and defines HAVE_ARES if libares 57dnl used. 58dnl ATHENA_ARES_REQUIRED 59dnl Generates error if libares not found. 60dnl ATHENA_ZEPHYR 61dnl Sets ZEPHYR_LIBS and defines HAVE_ZEPHYR if zephyr 62dnl used. 63dnl ATHENA_ZEPHYR_REQUIRED 64dnl Generates error if zephyr not found. 65dnl 66dnl All of the macros may extend CPPFLAGS and LDFLAGS to let the 67dnl compiler find the requested libraries. Put ATHENA_UTIL_COM_ERR 68dnl and ATHENA_UTIL_SS before ATHENA_AFS or ATHENA_AFS_REQUIRED; there 69dnl is a com_err library in the AFS libraries which requires -lutil. 70 71dnl ----- com_err ----- 72 73AC_DEFUN(ATHENA_UTIL_COM_ERR, 74[AC_ARG_WITH(com_err, 75 [ --with-com_err=PREFIX Specify location of com_err], 76 [com_err="$withval"], [com_err=yes]) 77if test "$com_err" != no; then 78 if test "$com_err" != yes; then 79 CPPFLAGS="$CPPFLAGS -I$com_err/include" 80 LDFLAGS="$LDFLAGS -L$com_err/lib" 81 fi 82 AC_CHECK_LIB(com_err, com_err, :, 83 [AC_MSG_ERROR(com_err library not found)]) 84else 85 AC_MSG_ERROR(This package requires com_err.) 86fi]) 87 88dnl ----- ss ----- 89 90AC_DEFUN(ATHENA_UTIL_SS, 91[AC_ARG_WITH(ss, 92 [ --with-ss=PREFIX Specify location of ss (requires com_err)], 93 [ss="$withval"], [ss=yes]) 94if test "$ss" != no; then 95 if test "$ss" != yes; then 96 CPPFLAGS="$CPPFLAGS -I$ss/include" 97 LDFLAGS="$LDFLAGS -L$ss/lib" 98 fi 99 AC_CHECK_LIB(ss, ss_perror, :, 100 [AC_MSG_ERROR(ss library not found)], -lcom_err) 101else 102 AC_MSG_ERROR(This package requires ss.) 103fi]) 104 105dnl ----- Regular expressions ----- 106 107AC_DEFUN(ATHENA_REGEXP, 108[AC_ARG_WITH(regex, 109 [ --with-regex=PREFIX Use installed regex library], 110 [regex="$withval"], [regex=no]) 111if test "$regex" != no; then 112 if test "$regex" != yes; then 113 CPPFLAGS="$CPPFLAGS -I$regex/include" 114 LDFLAGS="$LDFLAGS -L$regex/lib" 115 fi 116 AC_CHECK_LIB(regex, regcomp, REGEX_LIBS=-lregex, 117 [AC_MSG_ERROR(regex library not found)]) 118else 119 AC_CHECK_FUNC(regcomp, :, 120 [AC_MSG_ERROR(can't find POSIX regexp support)]) 121fi 122AC_SUBST(REGEX_LIBS)]) 123 124dnl ----- Motif ----- 125 126AC_DEFUN(ATHENA_MOTIF_CHECK, 127[if test "$motif" != yes; then 128 CPPFLAGS="$CPPFLAGS -I$motif/include" 129 LDFLAGS="$LDFLAGS -L$motif/lib" 130fi 131AC_CHECK_LIB(Xm, XmStringFree, :, [AC_MSG_ERROR(Motif library not found)])]) 132 133AC_DEFUN(ATHENA_MOTIF, 134[AC_ARG_WITH(motif, 135 [ --with-motif=PREFIX Use Motif], 136 [motif="$withval"], [motif=no]) 137if test "$motif" != no; then 138 ATHENA_MOTIF_CHECK 139 MOTIF_LIBS=-lXm 140 AC_DEFINE(HAVE_MOTIF) 141fi 142AC_SUBST(MOTIF_LIBS)]) 143 144AC_DEFUN(ATHENA_MOTIF_REQUIRED, 145[AC_ARG_WITH(motif, 146 [ --with-motif=PREFIX Specify location of Motif], 147 [motif="$withval"], [motif=yes]) 148if test "$motif" != no; then 149 ATHENA_MOTIF_CHECK 150else 151 AC_MSG_ERROR(This package requires Motif.) 152fi]) 153 154dnl ----- AFS ----- 155 156AC_DEFUN(ATHENA_AFS_CHECK, 157[AC_CHECK_FUNC(insque, :, AC_CHECK_LIB(compat, insque)) 158AC_CHECK_FUNC(gethostbyname, :, AC_CHECK_LIB(nsl, gethostbyname)) 159AC_CHECK_FUNC(socket, :, AC_CHECK_LIB(socket, socket)) 160if test "$afs" != yes; then 161 CPPFLAGS="$CPPFLAGS -I$afs/include" 162 LDFLAGS="$LDFLAGS -L$afs/lib -L$afs/lib/afs" 163fi 164AC_CHECK_LIB(sys, pioctl, :, [AC_MSG_ERROR(AFS libraries not found)], 165 -lrx -llwp -lsys) 166AFS_DIR=$afs 167AC_SUBST(AFS_DIR)]) 168 169dnl Specify desired AFS libraries as a parameter. 170AC_DEFUN(ATHENA_AFS, 171[AC_ARG_WITH(afs, 172 [ --with-afs=PREFIX Use AFS libraries], 173 [afs="$withval"], [afs=no]) 174if test "$afs" != no; then 175 ATHENA_AFS_CHECK 176 AFS_LIBS=$1 177 AC_DEFINE(HAVE_AFS) 178fi 179AC_SUBST(AFS_LIBS)]) 180 181AC_DEFUN(ATHENA_AFS_REQUIRED, 182[AC_ARG_WITH(afs, 183 [ --with-afs=PREFIX Specify location of AFS libraries], 184 [afs="$withval"], [afs=/usr/afsws]) 185if test "$afs" != no; then 186 ATHENA_AFS_CHECK 187else 188 AC_MSG_ERROR(This package requires AFS libraries.) 189fi]) 190 191dnl ----- Kerberos 4 ----- 192 193AC_DEFUN(ATHENA_KRB4_CHECK, 194[AC_CHECK_FUNC(gethostbyname, :, AC_CHECK_LIB(nsl, gethostbyname)) 195AC_CHECK_FUNC(socket, :, AC_CHECK_LIB(socket, socket)) 196AC_CHECK_LIB(gen, compile) 197if test "$krb4" != yes; then 198 CPPFLAGS="$CPPFLAGS -I$krb4/include" 199 if test -d "$krb4/include/kerberosIV"; then 200 CPPFLAGS="$CPPFLAGS -I$krb4/include/kerberosIV" 201 fi 202 LDFLAGS="$LDFLAGS -L$krb4/lib" 203fi 204AC_CHECK_LIB(krb4, krb_rd_req, 205 [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"], 206 [AC_CHECK_LIB(krb, krb_rd_req, 207 [KRB4_LIBS="-lkrb -ldes"], 208 [AC_MSG_ERROR(Kerberos 4 libraries not found)], 209 -ldes)], 210 -ldes425 -lkrb5 -lk5crypto -lcom_err)]) 211 212AC_DEFUN(ATHENA_KRB4, 213[AC_ARG_WITH(krb4, 214 [ --with-krb4=PREFIX Use Kerberos 4], 215 [krb4="$withval"], [krb4=no]) 216if test "$krb4" != no; then 217 ATHENA_KRB4_CHECK 218 AC_DEFINE(HAVE_KRB4) 219fi 220AC_SUBST(KRB4_LIBS)]) 221 222AC_DEFUN(ATHENA_KRB4_REQUIRED, 223[AC_ARG_WITH(krb4, 224 [ --with-krb4=PREFIX Specify location of Kerberos 4], 225 [krb4="$withval"], [krb4=yes]) 226if test "$krb4" != no; then 227 ATHENA_KRB4_CHECK 228 AC_SUBST(KRB4_LIBS) 229else 230 AC_MSG_ERROR(This package requires Kerberos 4.) 231fi]) 232 233dnl ----- Kerberos 5 ----- 234 235AC_DEFUN(ATHENA_KRB5_CHECK, 236[AC_SEARCH_LIBS(gethostbyname, nsl) 237AC_SEARCH_LIBS(socket, socket) 238AC_CHECK_LIB(gen, compile) 239if test "$krb5" != yes; then 240 CPPFLAGS="$CPPFLAGS -I$krb5/include" 241 LDFLAGS="$LDFLAGS -L$krb5/lib" 242fi 243AC_CHECK_LIB(krb5, krb5_init_context, :, 244 [AC_MSG_ERROR(Kerberos 5 libraries not found)], 245 -lk5crypto -lcom_err)]) 246 247AC_DEFUN(ATHENA_KRB5, 248[AC_ARG_WITH(krb5, 249 [ --with-krb5=PREFIX Use Kerberos 5], 250 [krb5="$withval"], [krb5=no]) 251if test "$krb5" != no; then 252 ATHENA_KRB5_CHECK 253 KRB5_LIBS="-lkrb5 -lk5crypto -lcom_err" 254 AC_DEFINE(HAVE_KRB5) 255fi 256AC_SUBST(KRB5_LIBS)]) 257 258AC_DEFUN(ATHENA_KRB5_REQUIRED, 259[AC_ARG_WITH(krb5, 260 [ --with-krb5=PREFIX Specify location of Kerberos 5], 261 [krb5="$withval"], [krb5=yes]) 262if test "$krb5" != no; then 263 ATHENA_KRB5_CHECK 264else 265 AC_MSG_ERROR(This package requires Kerberos 5.) 266fi]) 267 268dnl ----- Hesiod ----- 269 270AC_DEFUN(ATHENA_HESIOD_CHECK, 271[AC_CHECK_FUNC(res_send, :, AC_CHECK_LIB(resolv, res_send)) 272if test "$hesiod" != yes; then 273 CPPFLAGS="$CPPFLAGS -I$hesiod/include" 274 LDFLAGS="$LDFLAGS -L$hesiod/lib" 275fi 276AC_CHECK_LIB(hesiod, hes_resolve, :, 277 [AC_MSG_ERROR(Hesiod library not found)])]) 278 279AC_DEFUN(ATHENA_HESIOD, 280[AC_ARG_WITH(hesiod, 281 [ --with-hesiod=PREFIX Use Hesiod], 282 [hesiod="$withval"], [hesiod=no]) 283if test "$hesiod" != no; then 284 ATHENA_HESIOD_CHECK 285 HESIOD_LIBS="-lhesiod" 286 AC_DEFINE(HAVE_HESIOD) 287fi 288AC_SUBST(HESIOD_LIBS)]) 289 290AC_DEFUN(ATHENA_HESIOD_REQUIRED, 291[AC_ARG_WITH(hesiod, 292 [ --with-hesiod=PREFIX Specify location of Hesiod], 293 [hesiod="$withval"], [hesiod=yes]) 294if test "$hesiod" != no; then 295 ATHENA_HESIOD_CHECK 296else 297 AC_MSG_ERROR(This package requires Hesiod.) 298fi]) 299 300dnl ----- libares ----- 301 302AC_DEFUN(ATHENA_ARES_CHECK, 303[AC_CHECK_FUNC(res_send, :, AC_CHECK_LIB(resolv, res_send)) 304if test "$ares" != yes; then 305 CPPFLAGS="$CPPFLAGS -I$ares/include" 306 LDFLAGS="$LDFLAGS -L$ares/lib" 307fi 308AC_CHECK_LIB(ares, ares_init, :, [AC_MSG_ERROR(libares not found)])]) 309 310AC_DEFUN(ATHENA_ARES, 311[AC_ARG_WITH(ares, 312 [ --with-ares=PREFIX Use libares], 313 [ares="$withval"], [ares=no]) 314if test "$ares" != no; then 315 ATHENA_ARES_CHECK 316 ARES_LIBS="-lares" 317 AC_DEFINE(HAVE_ARES) 318fi 319AC_SUBST(ARES_LIBS)]) 320 321AC_DEFUN(ATHENA_ARES_REQUIRED, 322[AC_ARG_WITH(ares, 323 [ --with-ares=PREFIX Specify location of libares], 324 [ares="$withval"], [ares=yes]) 325if test "$ares" != no; then 326 ATHENA_ARES_CHECK 327else 328 AC_MSG_ERROR(This package requires libares.) 329fi]) 330dnl ----- zephyr ----- 331 332AC_DEFUN(ATHENA_ZEPHYR_CHECK, 333[if test "$zephyr" != yes; then 334 CPPFLAGS="$CPPFLAGS -I$zephyr/include" 335 LDFLAGS="$LDFLAGS -L$zephyr/lib" 336fi 337AC_CHECK_LIB(zephyr, ZFreeNotice, :, [AC_MSG_ERROR(zephyr not found)])]) 338 339AC_DEFUN(ATHENA_ZEPHYR, 340[AC_ARG_WITH(zephyr, 341 [ --with-zephyr=PREFIX Use zephyr], 342 [zephyr="$withval"], [zephyr=no]) 343if test "$zephyr" != no; then 344 ATHENA_ZEPHYR_CHECK 345 ZEPHYR_LIBS="-lzephyr" 346 AC_DEFINE(HAVE_ZEPHYR) 347fi 348AC_SUBST(ZEPHYR_LIBS)]) 349 350AC_DEFUN(ATHENA_ZEPHYR_REQUIRED, 351[AC_ARG_WITH(zephyr, 352 [ --with-zephyr=PREFIX Specify location of zephyr], 353 [zephyr="$withval"], [zephyr=yes]) 354if test "$zephyr" != no; then 355 ATHENA_ZEPHYR_CHECK 356else 357 AC_MSG_ERROR(This package requires zephyr.) 358fi]) 359