source: trunk/athena/lib/zephyr/configure.in @ 22814

Revision 22814, 4.9 KB checked in by ghudson, 16 years ago (diff)
From Karl Ramm (incorporating work from Jeff Hutzelman and others): Add krb5 support to Zephyr.
Line 
1dnl Process this file with autoconf to produce a configure script.
2AC_INIT(server/server.c)
3
4test -d h || mkdir h
5test -d h/zephyr || mkdir h/zephyr
6
7test -z "$lbindir" && lbindir='${bindir}'
8test -z "$lsbindir" && lsbindir='${sbindir}'
9AC_SUBST(lbindir)
10AC_SUBST(lsbindir)
11
12AC_CANONICAL_SYSTEM
13AC_DEFINE_UNQUOTED(MACHINE_TYPE, "$host")
14
15dnl Checks for programs.
16AC_PROG_CC
17AC_PROG_YACC
18AC_PROG_LEX
19AC_PROG_INSTALL
20AC_PROG_RANLIB
21AC_PROG_LIBTOOL
22
23AC_MSG_CHECKING(location of temporary directory)
24if test -d /var/tmp; then
25        found_tmp=/var/tmp/
26elif test -d /usr/tmp; then
27        found_tmp=/usr/tmp/
28else
29        found_tmp=/tmp/
30fi
31AC_DEFINE_UNQUOTED(FOUND_TMP, "${found_tmp}")
32AC_MSG_RESULT(${found_tmp})
33
34dnl Checks for header files.
35AC_PATH_XTRA
36AC_HEADER_STDC
37AC_HEADER_SYS_WAIT
38AC_CHECK_HEADERS(fcntl.h paths.h termios.h sgtty.h unistd.h malloc.h)
39AC_CHECK_HEADERS(sys/filio.h sys/ioctl.h sys/time.h sys/file.h sys/utsname.h)
40AC_CHECK_HEADERS(sys/select.h sys/msgbuf.h sys/cdefs.h krb5_err.h)
41
42if test "$no_x" != "yes"; then
43        XCLIENTS=xzwrite
44        ZWGC_LIBX11=-lX11
45fi
46AC_SUBST(XCLIENTS)
47AC_SUBST(ZWGC_LIBX11)
48
49dnl Checks for typedefs, structures, and compiler characteristics.
50AC_TYPE_SIGNAL
51AC_TYPE_UID_T
52AC_CHECK_SIZEOF(short)
53AC_CHECK_SIZEOF(int)
54AC_CHECK_SIZEOF(long)
55AC_MSG_CHECKING(for 32-bit integer type)
56if test "$ac_cv_sizeof_long" = 4; then
57        int32=long
58elif test "$ac_cv_sizeof_int" = 4; then
59        int32=int
60elif test "$ac_cv_sizeof_short" = 4; then
61        int32=short
62else
63        AC_WARN([Can't find 32-bit type, using long])
64        int32=long
65fi
66AC_DEFINE_UNQUOTED(ZEPHYR_INT32, ${int32})
67AC_MSG_RESULT(${int32})
68
69AC_CHECK_LIB(w, wslen)
70AC_CHECK_LIB(dl, dlopen)
71
72AC_SEARCH_LIBS(gethostbyname, nsl)
73AC_SEARCH_LIBS(socket, socket)
74
75# Hesiod needs -lresolv on Sun systems for res_send.
76if test "$hesiod" != "no"; then
77        AC_CHECK_LIB(44bsd, strerror)
78        AC_CHECK_LIB(resolv, res_send)
79        AC_CHECK_LIB(resolv, __res_send)
80fi
81
82AC_CHECK_LIB(curses, tgetstr, [TLIB=-lcurses], [TLIB=-ltermcap])
83AC_CHECK_LIB(src, srcsrpy, [SLIB=-lsrc; AC_DEFINE(HAVE_SRC)])
84AC_SUBST(TLIB)
85AC_SUBST(RLIB)
86AC_SUBST(SLIB)
87
88ATHENA_KRB4
89ATHENA_KRB5
90ATHENA_HESIOD
91ATHENA_REGEXP
92ATHENA_ARES
93ATHENA_UTIL_COM_ERR
94ATHENA_UTIL_SS
95LIBS="$KRB5_LIBS $KRB4_LIBS $HESIOD_LIBS $LIBS"
96
97dnl Checks for library functions.
98AC_PROG_GCC_TRADITIONAL
99AC_FUNC_VPRINTF
100AC_FUNC_GETPGRP
101AC_FUNC_SETPGRP
102AC_CHECK_FUNCS(putenv strchr memcpy memmove waitpid getlogin strerror random)
103AC_CHECK_FUNCS(lrand48 gethostid getsid getpgid krb_get_err_text krb_log)
104AC_CHECK_FUNCS(krb5_free_data krb5_c_make_checksum krb5_cc_set_default_name)
105
106AC_MSG_CHECKING(for krb5_auth_con_getauthenticator taking double pointer)
107AC_CACHE_VAL(ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer, [
108local_save_CPPFLAGS="$CPPFLAGS"
109CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
110AC_TRY_COMPILE(
111[#define socklen_t int
112#define ssize_t int
113#include <krb5.h>
114krb5_error_code
115krb5_auth_con_getauthenticator(krb5_context context,
116                           krb5_auth_context auth_context,
117                           krb5_authenticator *authenticator);],
118[krb5_error_code foo = krb5_auth_con_getauthenticator(0, 0, 0);],
119ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer=no,
120ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer=yes)
121])
122CPPFLAGS="${local_save_CPPFLAGS}"
123if test "$ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer" = yes; then
124        AC_DEFINE(KRB5_AUTH_CON_GETAUTHENTICATOR_TAKES_DOUBLE_POINTER)dnl
125fi
126AC_MSG_RESULT($ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer)
127
128AC_MSG_CHECKING(for enc_part2 in struct krb5_ticket)
129AC_CACHE_VAL(ac_cv_have_krb5_ticket_enc_part2, [
130local_save_CPPFLAGS="$CPPFLAGS"
131CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
132AC_TRY_COMPILE(
133[#include <krb5.h>], [krb5_ticket _tkt; _tkt.enc_part2;],
134ac_cv_have_krb5_ticket_enc_part2=yes,
135ac_cv_have_krb5_ticket_enc_part2=no)
136])
137CPPFLAGS="${local_save_CPPFLAGS}"
138if test "$ac_cv_have_krb5_ticket_enc_part2" = yes; then
139        AC_DEFINE(HAVE_KRB5_TICKET_ENC_PART2)dnl
140fi
141AC_MSG_RESULT($ac_cv_have_krb5_ticket_enc_part2)
142
143AC_MSG_CHECKING(for enctype in struct krb5_keyblock)
144AC_CACHE_VAL(ac_cv_have_krb5_creds_keyblock_enctype, [
145local_save_CPPFLAGS="$CPPFLAGS"
146CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
147AC_TRY_COMPILE(
148[#include <krb5.h>], [krb5_creds _creds; _creds.keyblock.enctype;],
149ac_cv_have_krb5_creds_keyblock_enctype=yes,
150ac_cv_have_krb5_creds_keyblock_enctype=no)
151])
152CPPFLAGS="${local_save_CPPFLAGS}"
153if test "$ac_cv_have_krb5_creds_keyblock_enctype" = yes; then
154        AC_DEFINE(HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE)dnl
155fi
156AC_MSG_RESULT($ac_cv_have_krb5_creds_keyblock_enctype)
157
158AC_CONFIG_HEADER(h/config.h)
159AC_OUTPUT(Makefile clients/Makefile clients/xzwrite/Makefile
160          clients/zaway/Makefile clients/zctl/Makefile
161          clients/zleave/Makefile clients/zlocate/Makefile
162          clients/zmailnotify/Makefile clients/znol/Makefile
163          clients/zpopnotify/Makefile clients/zshutdown_notify/Makefile
164          clients/zstat/Makefile clients/zwrite/Makefile lib/Makefile
165          libdyn/Makefile server/Makefile zhm/Makefile zwgc/Makefile)
Note: See TracBrowser for help on using the repository browser.