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