1 |
jmc |
1.1 |
dnl kerberos_v4.m4--Kerberos 4 libraries and includes |
2 |
|
|
dnl Derrick Brashear |
3 |
|
|
dnl from KTH krb and Arla |
4 |
|
|
dnl $Id: kerberos_v4.m4,v 1.25 2002/12/29 05:13:02 cg2v Exp $ |
5 |
|
|
|
6 |
|
|
AC_DEFUN(CMU_KRB_SENDAUTH_PROTO, [ |
7 |
|
|
AC_MSG_CHECKING(for krb_sendauth prototype) |
8 |
|
|
AC_TRY_COMPILE( |
9 |
|
|
[#include <krb.h> |
10 |
|
|
int krb_sendauth (long options, int fd, KTEXT ktext, char *service, |
11 |
|
|
char *inst, char *realm, u_long checksum, |
12 |
|
|
MSG_DAT *msg_data, CREDENTIALS *cred, |
13 |
|
|
Key_schedule schedule, struct sockaddr_in *laddr, |
14 |
|
|
struct sockaddr_in *faddr, char *version);], |
15 |
|
|
[int foo = krb_sendauth(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); ], |
16 |
|
|
ac_cv_krb_sendauth_proto=no, |
17 |
|
|
ac_cv_krb_sendauth_proto=yes) |
18 |
|
|
AC_MSG_RESULT($ac_cv_krb_sendauth_proto) |
19 |
|
|
if test "$ac_cv_krb_sendauth_proto" = yes; then |
20 |
|
|
AC_DEFINE(HAVE_KRB_SENDAUTH_PROTO)dnl |
21 |
|
|
fi |
22 |
|
|
AC_MSG_RESULT($ac_cv_krb_sendauth_proto) |
23 |
|
|
]) |
24 |
|
|
|
25 |
|
|
AC_DEFUN(CMU_KRB_SET_KEY_PROTO, [ |
26 |
|
|
AC_MSG_CHECKING(for krb_set_key prototype) |
27 |
|
|
AC_CACHE_VAL(ac_cv_krb_set_key_proto, [ |
28 |
|
|
cmu_save_CPPFLAGS="$CPPFLAGS" |
29 |
|
|
CPPFLAGS="${CPPFLAGS} ${KRB_INC_FLAGS}" |
30 |
|
|
AC_TRY_COMPILE( |
31 |
|
|
[#include <krb.h> |
32 |
|
|
int krb_set_key(char *key, int cvt);], |
33 |
|
|
[int foo = krb_set_key(0, 0);], |
34 |
|
|
ac_cv_krb_set_key_proto=no, |
35 |
|
|
ac_cv_krb_set_key_proto=yes) |
36 |
|
|
]) |
37 |
|
|
CPPFLAGS="${cmu_save_CPPFLAGS}" |
38 |
|
|
if test "$ac_cv_krb_set_key_proto" = yes; then |
39 |
|
|
AC_DEFINE(HAVE_KRB_SET_KEY_PROTO)dnl |
40 |
|
|
fi |
41 |
|
|
AC_MSG_RESULT($ac_cv_krb_set_key_proto) |
42 |
|
|
]) |
43 |
|
|
|
44 |
|
|
AC_DEFUN(CMU_KRB4_32_DEFN, [ |
45 |
|
|
AC_MSG_CHECKING(for KRB4_32 definition) |
46 |
|
|
AC_CACHE_VAL(ac_cv_krb4_32_defn, [ |
47 |
|
|
cmu_save_CPPFLAGS="$CPPFLAGS" |
48 |
|
|
CPPFLAGS="${CPPFLAGS} ${KRB_INC_FLAGS}" |
49 |
|
|
AC_TRY_COMPILE( |
50 |
|
|
[#include <krb.h> |
51 |
|
|
], |
52 |
|
|
[KRB4_32 foo = 1;], |
53 |
|
|
ac_cv_krb4_32_defn=yes, |
54 |
|
|
ac_cv_krb4_32_defn=no) |
55 |
|
|
]) |
56 |
|
|
CPPFLAGS="${cmu_save_CPPFLAGS}" |
57 |
|
|
if test "$ac_cv_krb4_32_defn" = yes; then |
58 |
|
|
AC_DEFINE(HAVE_KRB4_32_DEFINE)dnl |
59 |
|
|
fi |
60 |
|
|
AC_MSG_RESULT($ac_cv_krb4_32_defn) |
61 |
|
|
]) |
62 |
|
|
|
63 |
|
|
AC_DEFUN(CMU_KRB_RD_REQ_PROTO, [ |
64 |
|
|
AC_MSG_CHECKING(for krb_rd_req prototype) |
65 |
|
|
AC_CACHE_VAL(ac_cv_krb_rd_req_proto, [ |
66 |
|
|
cmu_save_CPPFLAGS="$CPPFLAGS" |
67 |
|
|
CPPFLAGS="${CPPFLAGS} ${KRB_INC_FLAGS}" |
68 |
|
|
AC_TRY_COMPILE( |
69 |
|
|
[#include <krb.h> |
70 |
|
|
int krb_rd_req(KTEXT authent, char *service, char *instance, |
71 |
|
|
unsigned KRB_INT32 from_addr, AUTH_DAT *ad, char *fn);], |
72 |
|
|
[int foo = krb_rd_req(0,0,0,0,0,0);], |
73 |
|
|
ac_cv_krb_rd_req_proto=no, |
74 |
|
|
ac_cv_krb_rd_req_proto=yes) |
75 |
|
|
]) |
76 |
|
|
CPPFLAGS="${cmu_save_CPPFLAGS}" |
77 |
|
|
if test "$ac_cv_krb_rd_req_proto" = yes; then |
78 |
|
|
AC_DEFINE(HAVE_KRB_RD_REQ_PROTO)dnl |
79 |
|
|
fi |
80 |
|
|
AC_MSG_RESULT($ac_cv_krb_rd_req_proto) |
81 |
|
|
]) |
82 |
|
|
|
83 |
|
|
AC_DEFUN(CMU_KRB_INC_WHERE1, [ |
84 |
|
|
saved_CPPFLAGS=$CPPFLAGS |
85 |
|
|
CPPFLAGS="$saved_CPPFLAGS -I$1" |
86 |
|
|
AC_TRY_COMPILE([#include <krb.h>], |
87 |
|
|
[struct ktext foo;], |
88 |
|
|
ac_cv_found_krb_inc=yes, |
89 |
|
|
ac_cv_found_krb_inc=no) |
90 |
|
|
if test "$ac_cv_found_krb_inc" = "no"; then |
91 |
|
|
CPPFLAGS="$saved_CPPFLAGS -I$1 -I$1/kerberosIV" |
92 |
|
|
AC_TRY_COMPILE([#include <krb.h>], |
93 |
|
|
[struct ktext foo;], |
94 |
|
|
[ac_cv_found_krb_inc=yes], |
95 |
|
|
ac_cv_found_krb_inc=no) |
96 |
|
|
fi |
97 |
|
|
CPPFLAGS=$saved_CPPFLAGS |
98 |
|
|
]) |
99 |
|
|
|
100 |
|
|
AC_DEFUN(CMU_KRB_INC_WHERE, [ |
101 |
|
|
for i in $1; do |
102 |
|
|
AC_MSG_CHECKING(for kerberos headers in $i) |
103 |
|
|
CMU_KRB_INC_WHERE1($i) |
104 |
|
|
CMU_TEST_INCPATH($i, krb) |
105 |
|
|
if test "$ac_cv_found_krb_inc" = "yes"; then |
106 |
|
|
ac_cv_krb_where_inc=$i |
107 |
|
|
AC_MSG_RESULT(found) |
108 |
|
|
break |
109 |
|
|
else |
110 |
|
|
AC_MSG_RESULT(not found) |
111 |
|
|
fi |
112 |
|
|
done |
113 |
|
|
]) |
114 |
|
|
|
115 |
|
|
# |
116 |
|
|
# Test for kerberos lib files |
117 |
|
|
# |
118 |
|
|
|
119 |
|
|
AC_DEFUN(CMU_KRB_LIB_WHERE1, [ |
120 |
|
|
saved_LIBS=$LIBS |
121 |
|
|
LIBS="$saved_LIBS -L$1 -lkrb $KRB_LIBDES" |
122 |
|
|
AC_TRY_LINK(, |
123 |
|
|
[dest_tkt();], |
124 |
|
|
[ac_cv_found_krb_lib=yes], |
125 |
|
|
ac_cv_found_krb_lib=no) |
126 |
|
|
LIBS=$saved_LIBS |
127 |
|
|
]) |
128 |
|
|
|
129 |
|
|
AC_DEFUN(CMU_KRB_LIB_WHERE, [ |
130 |
|
|
for i in $1; do |
131 |
|
|
AC_MSG_CHECKING(for kerberos libraries in $i) |
132 |
|
|
CMU_KRB_LIB_WHERE1($i) |
133 |
|
|
dnl deal with false positives from implicit link paths |
134 |
|
|
CMU_TEST_LIBPATH($i, krb) |
135 |
|
|
if test "$ac_cv_found_krb_lib" = "yes" ; then |
136 |
|
|
ac_cv_krb_where_lib=$i |
137 |
|
|
AC_MSG_RESULT(found) |
138 |
|
|
break |
139 |
|
|
else |
140 |
|
|
AC_MSG_RESULT(not found) |
141 |
|
|
fi |
142 |
|
|
done |
143 |
|
|
]) |
144 |
|
|
|
145 |
|
|
AC_DEFUN(CMU_KRB4, [ |
146 |
|
|
AC_REQUIRE([CMU_SOCKETS]) |
147 |
|
|
AC_REQUIRE([CMU_LIBSSL]) |
148 |
|
|
AC_ARG_WITH(krb4, |
149 |
|
|
[ --with-krb4=PREFIX Compile with Kerberos 4 support], |
150 |
|
|
[if test "X$with_krb4" = "X"; then |
151 |
|
|
with_krb4=yes |
152 |
|
|
fi]) |
153 |
|
|
AC_ARG_WITH(krb4-lib, |
154 |
|
|
[ --with-krb4-lib=dir use kerberos 4 libraries in dir], |
155 |
|
|
[if test "$withval" = "yes" -o "$withval" = "no"; then |
156 |
|
|
AC_MSG_ERROR([No argument for --with-krb4-lib]) |
157 |
|
|
fi]) |
158 |
|
|
AC_ARG_WITH(krb4-include, |
159 |
|
|
[ --with-krb4-include=dir use kerberos 4 headers in dir], |
160 |
|
|
[if test "$withval" = "yes" -o "$withval" = "no"; then |
161 |
|
|
AC_MSG_ERROR([No argument for --with-krb4-include]) |
162 |
|
|
fi]) |
163 |
|
|
|
164 |
|
|
if test "X$with_krb4" != "X"; then |
165 |
|
|
if test "$with_krb4" != "yes" -a "$with_krb4" != "no"; then |
166 |
|
|
ac_cv_krb_where_lib=$with_krb4/lib |
167 |
|
|
ac_cv_krb_where_inc=$with_krb4/include |
168 |
|
|
fi |
169 |
|
|
fi |
170 |
|
|
|
171 |
|
|
if test "$with_krb4" != "no"; then |
172 |
|
|
if test "X$with_krb4_lib" != "X"; then |
173 |
|
|
ac_cv_krb_where_lib=$with_krb4_lib |
174 |
|
|
fi |
175 |
|
|
if test "X$with_krb4_include" != "X"; then |
176 |
|
|
ac_cv_krb_where_inc=$with_krb4_include |
177 |
|
|
fi |
178 |
|
|
if test "X$ac_cv_krb_where_inc" = "X"; then |
179 |
|
|
CMU_KRB_INC_WHERE(/usr/athena/include /usr/include/kerberosIV /usr/local/include /usr/include/kerberos) |
180 |
|
|
fi |
181 |
|
|
fi |
182 |
|
|
|
183 |
|
|
AC_MSG_CHECKING([if libdes is needed]) |
184 |
|
|
AC_TRY_LINK([],[des_quad_cksum();],KRB_DES_LIB="",KRB_DES_LIB="maybe") |
185 |
|
|
if test "X$KRB_DES_LIB" != "X"; then |
186 |
|
|
LIBS="$cmu_save_LIBS -ldes" |
187 |
|
|
AC_TRY_LINK([], [des_quad_cksum();],KRB_DES_LIB="yes") |
188 |
|
|
if test "X$KRB_DES_LIB" = "Xyes"; then |
189 |
|
|
AC_MSG_RESULT([yes]) |
190 |
|
|
KRB_LIBDES="-ldes" |
191 |
|
|
KRB_LIBDESA="${KRB_LIB_DIR}/libdes.a" |
192 |
|
|
else |
193 |
|
|
LIBS="$cmu_save_LIBS $LIBSSL_LIB_FLAGS" |
194 |
|
|
AC_TRY_LINK([], |
195 |
|
|
[des_quad_cksum();],KRB_DES_LIB="libcrypto") |
196 |
|
|
if test "X$KRB_DES_LIB" = "Xlibcrypto"; then |
197 |
|
|
AC_MSG_RESULT([libcrypto]) |
198 |
|
|
KRB_LIBDES="$LIBSSL_LIB_FLAGS" |
199 |
|
|
KRB_LIBDESA="$LIBSSL_LIB_FLAGS" |
200 |
|
|
else |
201 |
|
|
AC_MSG_RESULT([unknown]) |
202 |
|
|
AC_MSG_ERROR([Could not use -ldes]) |
203 |
|
|
fi |
204 |
|
|
fi |
205 |
|
|
else |
206 |
|
|
AC_MSG_RESULT([no]) |
207 |
|
|
fi |
208 |
|
|
LIBS="${cmu_save_LIBS}" |
209 |
|
|
|
210 |
|
|
if test "X$ac_cv_krb_where_lib" = "X"; then |
211 |
|
|
CMU_KRB_LIB_WHERE(/usr/athena/lib /usr/local/lib /usr/lib) |
212 |
|
|
fi |
213 |
|
|
|
214 |
|
|
AC_MSG_CHECKING(whether to include kerberos 4) |
215 |
|
|
if test "X$ac_cv_krb_where_lib" = "X" -o "X$ac_cv_krb_where_inc" = "X"; then |
216 |
|
|
ac_cv_found_krb=no |
217 |
|
|
AC_MSG_RESULT(no) |
218 |
|
|
else |
219 |
|
|
ac_cv_found_krb=yes |
220 |
|
|
AC_MSG_RESULT(yes) |
221 |
|
|
KRB_INC_DIR=$ac_cv_krb_where_inc |
222 |
|
|
KRB_LIB_DIR=$ac_cv_krb_where_lib |
223 |
|
|
KRB_INC_FLAGS="-I${KRB_INC_DIR}" |
224 |
|
|
KRB_LIB_FLAGS="-L${KRB_LIB_DIR} -lkrb ${KRB_LIBDES}" |
225 |
|
|
LIBS="${cmu_save_LIBS} ${KRB_LIB_FLAGS}" |
226 |
|
|
AC_CHECK_LIB(resolv, dns_lookup, KRB_LIB_FLAGS="${KRB_LIB_FLAGS} -lresolv",,"${KRB_LIB_FLAGS}") |
227 |
|
|
AC_CHECK_LIB(crypt, crypt, KRB_LIB_FLAGS="${KRB_LIB_FLAGS} -lcrypt",,"${KRB_LIB_FLAGS}") |
228 |
|
|
AC_CHECK_FUNCS(krb_get_int krb_life_to_time) |
229 |
|
|
AC_SUBST(KRB_INC_FLAGS) |
230 |
|
|
AC_SUBST(KRB_LIB_FLAGS) |
231 |
|
|
LIBS="${cmu_save_LIBS}" |
232 |
|
|
AC_DEFINE(KERBEROS,,[Use kerberos 4. find out what needs this symbol]) |
233 |
|
|
if test "X$RPATH" = "X"; then |
234 |
|
|
RPATH="" |
235 |
|
|
fi |
236 |
|
|
case "${host}" in |
237 |
|
|
*-*-linux*) |
238 |
|
|
if test "X$RPATH" = "X"; then |
239 |
|
|
RPATH="-Wl,-rpath,${KRB_LIB_DIR}" |
240 |
|
|
else |
241 |
|
|
RPATH="${RPATH}:${KRB_LIB_DIR}" |
242 |
|
|
fi |
243 |
|
|
;; |
244 |
|
|
*-*-hpux*) |
245 |
|
|
if test "X$RPATH" = "X"; then |
246 |
|
|
RPATH="-Wl,+b${KRB_LIB_DIR}" |
247 |
|
|
else |
248 |
|
|
RPATH="${RPATH}:${KRB_LIB_DIR}" |
249 |
|
|
fi |
250 |
|
|
;; |
251 |
|
|
*-*-irix*) |
252 |
|
|
if test "X$RPATH" = "X"; then |
253 |
|
|
RPATH="-Wl,-rpath,${KRB_LIB_DIR}" |
254 |
|
|
else |
255 |
|
|
RPATH="${RPATH}:${KRB_LIB_DIR}" |
256 |
|
|
fi |
257 |
|
|
;; |
258 |
|
|
*-*-solaris2*) |
259 |
|
|
if test "$ac_cv_prog_gcc" = yes; then |
260 |
|
|
if test "X$RPATH" = "X"; then |
261 |
|
|
RPATH="-Wl,-R${KRB_LIB_DIR}" |
262 |
|
|
else |
263 |
|
|
RPATH="${RPATH}:${KRB_LIB_DIR}" |
264 |
|
|
fi |
265 |
|
|
else |
266 |
|
|
RPATH="${RPATH} -R${KRB_LIB_DIR}" |
267 |
|
|
fi |
268 |
|
|
;; |
269 |
|
|
esac |
270 |
|
|
AC_SUBST(RPATH) |
271 |
|
|
fi |
272 |
|
|
]) |