1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(server/server.c)
5 test -d h/zephyr || mkdir h/zephyr
7 test -z "$lbindir" && lbindir='${bindir}'
8 test -z "$lsbindir" && lsbindir='${sbindir}'
14 AC_DEFINE_UNQUOTED(MACHINE_TYPE, "$host")
16 dnl Checks for programs.
24 AC_MSG_CHECKING(location of temporary directory)
25 if test -d /var/tmp; then
27 elif test -d /usr/tmp; then
32 AC_DEFINE_UNQUOTED(FOUND_TMP, "${found_tmp}")
33 AC_MSG_RESULT(${found_tmp})
35 dnl Checks for header files.
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)
44 if test "$no_x" != "yes"; then
50 dnl Checks for typedefs, structures, and compiler characteristics.
53 AC_CHECK_SIZEOF(short)
56 AC_MSG_CHECKING(for 32-bit integer type)
57 if test "$ac_cv_sizeof_long" = 4; then
59 elif test "$ac_cv_sizeof_int" = 4; then
61 elif test "$ac_cv_sizeof_short" = 4; then
64 AC_WARN([Can't find 32-bit type, using long])
67 AC_DEFINE_UNQUOTED(ZEPHYR_INT32, ${int32})
68 AC_MSG_RESULT(${int32})
70 AC_CHECK_LIB(w, wslen)
71 # XXX? AC_CHECK_LIB(dl, dlopen)
73 AC_SEARCH_LIBS(gethostbyname, nsl)
74 AC_SEARCH_LIBS(socket, socket)
76 AC_CHECK_LIB(44bsd, strerror)
79 AC_CHECK_LIB(curses, tgetstr, [TLIB=-lcurses], [TLIB=-ltermcap])
80 AC_CHECK_LIB(src, srcsrpy, [SLIB=-lsrc; AC_DEFINE(HAVE_SRC)])
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"
97 LDFLAGS="$LDFLAGS -L$krb4/lib"
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)],
105 -ldes425 -lkrb5 -lk5crypto -lcom_err)
107 LIBZEPHYR_LIBS="$LIBZEPHYR_LIBS $KRB4_LIBS"
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"
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)"
126 if test "$krb5" != yes; then
127 CPPFLAGS="$CPPFLAGS -I$krb5/include"
128 LDFLAGS="$LDFLAGS -L$krb5/lib"
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"
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.)))
142 darwin*) KRB5_LIBS="$KRB5_LIBS -framework Kerberos" ;;
147 AC_SUBST(LIBZEPHYR_LIBS)
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"
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)
168 AC_MSG_ERROR(This package requires ss.)
171 LIBS="$KRB5_LIBS $KRB4_LIBS $LIBS"
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,
178 AC_DEFINE(HAVE_ARES)],
182 AC_PROG_GCC_TRADITIONAL
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)
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}"
196 [#define socklen_t int
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)
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
211 AC_MSG_RESULT($ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer)
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}"
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)
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
226 AC_MSG_RESULT($ac_cv_have_krb5_ticket_enc_part2)
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}"
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)
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
241 AC_MSG_RESULT($ac_cv_have_krb5_creds_keyblock_enctype)
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)
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)
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)
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)
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)