]> asedeno.scripts.mit.edu Git - 1ts-debian.git/blob - zephyr/configure.in
check for the extant ares_getnameinfo rather than the nonexistant ares_getaddrinfo
[1ts-debian.git] / zephyr / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(server/server.c)
3
4 test -d h || mkdir h
5 test -d h/zephyr || mkdir h/zephyr
6
7 test -z "$lbindir" && lbindir='${bindir}'
8 test -z "$lsbindir" && lsbindir='${sbindir}'
9 AC_SUBST(lbindir)
10 AC_SUBST(lsbindir)
11
12 AC_CANONICAL_SYSTEM
13 AC_CANONICAL_TARGET
14 AC_DEFINE_UNQUOTED(MACHINE_TYPE, "$host")
15
16 dnl Checks for programs.
17 AC_PROG_CC
18 AC_PROG_YACC
19 AC_PROG_LEX
20 AC_PROG_INSTALL
21 AC_PROG_RANLIB
22 AC_PROG_LIBTOOL
23
24 AC_MSG_CHECKING(location of temporary directory)
25 if test -d /var/tmp; then
26         found_tmp=/var/tmp/
27 elif test -d /usr/tmp; then
28         found_tmp=/usr/tmp/
29 else
30         found_tmp=/tmp/
31 fi
32 AC_DEFINE_UNQUOTED(FOUND_TMP, "${found_tmp}")
33 AC_MSG_RESULT(${found_tmp})
34
35 dnl Checks for header files.
36 AC_PATH_XTRA
37 AC_HEADER_STDC
38 AC_HEADER_SYS_WAIT
39 AC_CHECK_HEADERS(fcntl.h paths.h sgtty.h unistd.h malloc.h term.h)
40 AC_CHECK_HEADERS(sys/filio.h sys/ioctl.h sys/time.h sys/file.h sys/utsname.h)
41 AC_CHECK_HEADERS(sys/select.h sys/msgbuf.h sys/cdefs.h krb5_err.h termcap.h)
42 AC_CHECK_HEADERS(arpa/nameser_compat.h)
43
44 if test "$no_x" != "yes"; then
45         ZWGC_LIBX11=-lX11
46 fi
47 AC_SUBST(XCLIENTS)
48 AC_SUBST(ZWGC_LIBX11)
49
50 dnl Checks for typedefs, structures, and compiler characteristics.
51 AC_TYPE_SIGNAL
52 AC_TYPE_UID_T
53 AC_CHECK_SIZEOF(short)
54 AC_CHECK_SIZEOF(int)
55 AC_CHECK_SIZEOF(long)
56 AC_MSG_CHECKING(for 32-bit integer type)
57 if test "$ac_cv_sizeof_long" = 4; then
58         int32=long
59 elif test "$ac_cv_sizeof_int" = 4; then
60         int32=int
61 elif test "$ac_cv_sizeof_short" = 4; then
62         int32=short
63 else
64         AC_WARN([Can't find 32-bit type, using long])
65         int32=long
66 fi
67 AC_DEFINE_UNQUOTED(ZEPHYR_INT32, ${int32})
68 AC_MSG_RESULT(${int32})
69
70 AC_CHECK_LIB(w, wslen)
71 # XXX? AC_CHECK_LIB(dl, dlopen)
72
73 AC_SEARCH_LIBS(gethostbyname, nsl)
74 AC_SEARCH_LIBS(socket, socket)
75
76 AC_CHECK_LIB(44bsd, strerror)
77
78
79 AC_CHECK_LIB(curses, tgetstr, [TLIB=-lcurses], [TLIB=-ltermcap])
80 AC_CHECK_LIB(src, srcsrpy, [SLIB=-lsrc; AC_DEFINE(HAVE_SRC)])
81 AC_SUBST(TLIB)
82 AC_SUBST(RLIB)
83 AC_SUBST(SLIB)
84
85 AC_ARG_WITH(krb4,
86         [  --with-krb4=PREFIX      Use Kerberos 4],
87         [krb4="$withval"], [krb4=no])
88 if test "$krb4" != no; then
89         AC_CHECK_FUNC(gethostbyname, :, AC_CHECK_LIB(nsl, gethostbyname))
90         AC_CHECK_FUNC(socket, :, AC_CHECK_LIB(socket, socket))
91         AC_CHECK_LIB(gen, compile)
92         if test "$krb4" != yes; then
93            CPPFLAGS="$CPPFLAGS -I$krb4/include"
94            if test -d "$krb4/include/kerberosIV"; then
95               CPPFLAGS="$CPPFLAGS -I$krb4/include/kerberosIV"
96            fi
97            LDFLAGS="$LDFLAGS -L$krb4/lib"
98         fi
99         AC_CHECK_LIB(krb4, krb_rd_req,
100              [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
101              [AC_CHECK_LIB(krb, krb_rd_req,
102                            [KRB4_LIBS="-lkrb -ldes"],
103                            [AC_MSG_ERROR(Kerberos 4 libraries not found)],
104                            -ldes)],
105              -ldes425 -lkrb5 -lk5crypto -lcom_err)
106         AC_DEFINE(HAVE_KRB4)
107         LIBZEPHYR_LIBS="$LIBZEPHYR_LIBS $KRB4_LIBS"
108 fi
109 AC_SUBST(KRB4_LIBS)
110
111 AC_ARG_WITH(krb5,
112             [  --with-krb5=PREFIX      Use Kerberos 5],
113             [krb5="$withval"], [krb5=no])
114 if test "$krb5" != no; then
115    AC_SEARCH_LIBS(gethostbyname, nsl)
116    AC_SEARCH_LIBS(socket, socket)
117    AC_CHECK_LIB(gen, compile)
118    if test "$krb5" != yes; then
119       PATH="$PATH:$krb5/bin"
120    fi
121    AC_CHECK_PROG(krb5config, krb5-config,yes)
122    if test "$krb5config" == yes; then
123       CPPFLAGS="$CPPFLAGS $(krb5-config --cflags krb5)"
124       KRB5_LIBS="$(krb5-config --libs krb5)"
125    else
126       if test "$krb5" != yes; then
127          CPPFLAGS="$CPPFLAGS -I$krb5/include"
128          LDFLAGS="$LDFLAGS -L$krb5/lib"
129       fi
130       AC_CHECK_LIB(krb5, krb5_init_context, :,
131                    [AC_MSG_ERROR(Kerberos 5 libraries not found)],
132                    -lk5crypto -lcom_err)
133       KRB5_LIBS="-lkrb5 -lk5crypto -lcom_err"
134    fi
135    AC_DEFINE(HAVE_KRB5)
136    LIBZEPHYR_LIBS="$LIBZEPHYR_LIBS $KRB5_LIBS"
137    # the zephyr library needs -lresolv if it's built with krb5
138    AC_CHECK_LIB(resolv, res_send, LIBZEPHYR_LIBS="-lresolv $LIBZEPHYR_LIBS",
139                 AC_CHECK_LIB(resolv, __res_send, LIBZEPHYR_LIBS="-lresolv $LIBZEPHYR_LIBS",
140                              AC_MSG_ERROR(Zephyr requires libresolv along with Kerberos V.)))
141    case "$target_os" in 
142       darwin*) KRB5_LIBS="$KRB5_LIBS -framework Kerberos" ;;
143    esac 
144 fi
145 AC_SUBST(KRB5_LIBS)
146
147 AC_SUBST(LIBZEPHYR_LIBS)
148
149 ATHENA_HESIOD
150 ATHENA_REGEXP
151 ATHENA_UTIL_COM_ERR
152
153 AC_ARG_WITH(ss,
154         [  --with-ss=PREFIX        Specify location of ss (requires com_err)],
155         [ss="$withval"], [ss=yes])
156 if test "$ss" != no; then
157         if test "$ss" != yes; then
158                 CPPFLAGS="$CPPFLAGS -I$ss/include"
159                 LDFLAGS="$LDFLAGS -L$ss/lib"
160         fi
161         #XXX
162         #AC_CHECK_LIB(curses, initscr)
163         #AC_CHECK_LIB(readline, readline)
164         AC_CHECK_LIB(ss, ss_perror, SS_LIBS=-lss,
165                      [AC_MSG_ERROR(ss library not found)], -lcom_err)
166         AC_SUBST(SS_LIBS)
167 else
168         AC_MSG_ERROR(This package requires ss.)
169 fi
170
171 LIBS="$KRB5_LIBS $KRB4_LIBS $LIBS"
172
173 dnl Checks for library functions.
174 #XXX more looking for res_send
175 #AC_CHECK_FUNC(res_send, :, AC_CHECK_LIB(resolv, res_send))
176 AC_CHECK_LIB(cares, ares_getnameinfo,
177                     [ARES_LIBS="-lcares"
178                     AC_DEFINE(HAVE_ARES)],
179                     :)
180 AC_SUBST(ARES_LIBS)
181                     
182 AC_PROG_GCC_TRADITIONAL
183 AC_FUNC_VPRINTF
184 AC_FUNC_GETPGRP
185 AC_FUNC_SETPGRP
186 AC_CHECK_FUNCS(putenv strchr memcpy memmove waitpid getlogin strerror random)
187 AC_CHECK_FUNCS(lrand48 gethostid getsid getpgid krb_get_err_text krb_log)
188 AC_CHECK_FUNCS(krb5_free_data krb5_c_make_checksum krb5_cc_set_default_name)
189 AC_CHECK_FUNCS(krb5_crypto_init krb5_c_decrypt)
190
191 AC_MSG_CHECKING(for krb5_auth_con_getauthenticator taking double pointer)
192 AC_CACHE_VAL(ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer, [
193 local_save_CPPFLAGS="$CPPFLAGS"
194 CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
195 AC_TRY_COMPILE(
196 [#define socklen_t int
197 #define ssize_t int
198 #include <krb5.h>
199 krb5_error_code
200 krb5_auth_con_getauthenticator(krb5_context context,
201                            krb5_auth_context auth_context,
202                            krb5_authenticator *authenticator);],
203 [krb5_error_code foo = krb5_auth_con_getauthenticator(0, 0, 0);],
204 ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer=no,
205 ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer=yes)
206 ])
207 CPPFLAGS="${local_save_CPPFLAGS}"
208 if test "$ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer" = yes; then
209         AC_DEFINE(KRB5_AUTH_CON_GETAUTHENTICATOR_TAKES_DOUBLE_POINTER)dnl
210 fi
211 AC_MSG_RESULT($ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer)
212
213 AC_MSG_CHECKING(for enc_part2 in struct krb5_ticket)
214 AC_CACHE_VAL(ac_cv_have_krb5_ticket_enc_part2, [
215 local_save_CPPFLAGS="$CPPFLAGS"
216 CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
217 AC_TRY_COMPILE(
218 [#include <krb5.h>], [krb5_ticket _tkt; _tkt.enc_part2;],
219 ac_cv_have_krb5_ticket_enc_part2=yes,
220 ac_cv_have_krb5_ticket_enc_part2=no)
221 ])
222 CPPFLAGS="${local_save_CPPFLAGS}"
223 if test "$ac_cv_have_krb5_ticket_enc_part2" = yes; then
224         AC_DEFINE(HAVE_KRB5_TICKET_ENC_PART2)dnl
225 fi
226 AC_MSG_RESULT($ac_cv_have_krb5_ticket_enc_part2)
227
228 AC_MSG_CHECKING(for enctype in struct krb5_keyblock)
229 AC_CACHE_VAL(ac_cv_have_krb5_creds_keyblock_enctype, [
230 local_save_CPPFLAGS="$CPPFLAGS"
231 CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
232 AC_TRY_COMPILE(
233 [#include <krb5.h>], [krb5_creds _creds; _creds.keyblock.enctype;],
234 ac_cv_have_krb5_creds_keyblock_enctype=yes,
235 ac_cv_have_krb5_creds_keyblock_enctype=no)
236 ])
237 CPPFLAGS="${local_save_CPPFLAGS}"
238 if test "$ac_cv_have_krb5_creds_keyblock_enctype" = yes; then
239         AC_DEFINE(HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE)dnl
240 fi
241 AC_MSG_RESULT($ac_cv_have_krb5_creds_keyblock_enctype)
242
243 AC_ARG_ENABLE(cmu-zwgcplus,
244 [  --enable-cmu-zwgcplus   enable CMU zwgcplus extensions],[
245 if test "$enableval" = "yes"; then
246         AC_DEFINE(CMU_ZWGCPLUS,1)
247 fi
248 ])
249
250 AC_ARG_ENABLE(cmu-zctl-punt,
251 [  --enable-cmu-zctl-punt  enable CMU zctl punt extensions],[
252 if test "$enableval" = "yes"; then
253         AC_DEFINE(CMU_ZCTL_PUNT,1)
254 fi
255 ])
256
257 AC_ARG_ENABLE(cmu-hm-flush-restrict,
258 [  --enable-cmu-hm-flush-restrict   enable CMU zctl hm flush restriction],[
259 if test "$enableval" = "yes"; then
260         AC_DEFINE(HM_FLUSH_RESTRICT,1)
261 fi
262 ])
263
264 AC_ARG_ENABLE(cmu-opstaff-locate-self,
265 [  --enable-cmu-opstaff-locate-self enable CMU opstaff locate-self ability],[
266 if test "$enableval" = "yes"; then
267         AC_DEFINE(OPSTAFF_LOCATE_SELF,1)
268 fi
269 ])
270
271 AC_CONFIG_HEADER(h/config.h)
272 AC_OUTPUT(Makefile clients/Makefile clients/zaway/Makefile
273           clients/zctl/Makefile clients/zleave/Makefile
274           clients/zlocate/Makefile clients/znol/Makefile
275           clients/zshutdown_notify/Makefile clients/zstat/Makefile
276           clients/zwrite/Makefile lib/Makefile libdyn/Makefile
277           server/Makefile zhm/Makefile zwgc/Makefile)