diff options
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..9b12934 --- /dev/null +++ b/configure.in @@ -0,0 +1,182 @@ +dnl Process this file with autoconf to produce a configure script. +AC_INIT(server/server.c) + +if test ! -d h; then mkdir h; fi +if test ! -d h/zephyr; then mkdir h/zephyr; fi + +dnl Command-line option to enable Athena paths. +AC_ARG_ENABLE(athena, + [ --enable-athena Use Athena defaults], + [hesiod=yes + kerberos=yes + if test "${prefix}" = "NONE"; then prefix=/usr/athena; fi + datadir=${datadir-'$(prefix)/lib/zephyr'} + confdir=${confdir-'/etc/athena/zephyr'} + sbindir=${sbindir-'$(exec_prefix)/etc'} + lsbindir=${lsbindir-'/etc/athena'} + COMPILE_ET=compile_et + MK_CMDS=mk_cmds + CPPFLAGS="${CPPFLAGS} -I/usr/athena/include" + LDFLAGS="${LDFLAGS} -L/usr/athena/lib" + INITPROGS=${lsbindir}/zinit], + [datadir=${datadir-'$(prefix)/share/zephyr'} + confdir=${confdir-'$(prefix)/etc/zephyr'} + sbindir=${sbindir-'$(exec_prefix)/sbin'} + lsbindir=${lsbindir-'$(exec_prefix)/sbin'} + SUPPORT_LIBS="et ss" + ET_LDFLAGS='-L$(BUILDTOP)/lib/et' + ETDEP='$(BUILDTOP)/lib/et/libcom_err.a' + SS_LDFLAGS='-L$(BUILDTOP)/lib/ss' + SSDEP='$(BUILDTOP)/lib/ss/libss.a' + COMPILE_ET='$(BUILDTOP)/lib/et/compile_et' + MK_CMDS='$(BUILDTOP)/lib/ss/mk_cmds' + INITPROGS=true + if test ! -d h/ss; then mkdir h/ss; fi + cp ${srcdir}/lib/et/com_err.h h + cp ${srcdir}/lib/ss/*.h h/ss]) + +AC_SUBST(confdir) +AC_SUBST(datadir) +AC_SUBST(sbindir) +AC_SUBST(lsbindir) +AC_SUBST(SUPPORT_LIBS) +AC_SUBST(ET_LDFLAGS) +AC_SUBST(ETDEP) +AC_SUBST(SS_LDFLAGS) +AC_SUBST(SSDEP) +AC_SUBST(COMPILE_ET) +AC_SUBST(MK_CMDS) +AC_SUBST(INITPROGS) + +AC_CANONICAL_SYSTEM +AC_DEFINE_UNQUOTED(MACHINE_TYPE, "$host") + +dnl Command-line option to enable Hesiod support +AC_ARG_WITH(hesiod, + [ --with-hesiod=PREFIX Compile with Hesiod support], + [hesiod="$withval"], [hesiod=${hesiod-no}]) + +dnl Command-line option to enable Kerberos support +AC_ARG_WITH(krb4, + [ --with-krb4=PREFIX Compile with Kerberos 4 support], + [kerberos="$withval"], [kerberos=${kerberos-no}]) + +dnl Checks for programs. +AC_PROG_CC +AC_PROG_YACC +AC_PROG_LEX +AC_PROG_INSTALL +AC_PROG_RANLIB + +AC_MSG_CHECKING(location of temporary directory) +if test -d /var/tmp; then + found_tmp=/var/tmp/ +elif test -d /usr/tmp; then + found_tmp=/usr/tmp/ +else + found_tmp=/tmp/ +fi +AC_DEFINE_UNQUOTED(FOUND_TMP, "${found_tmp}") +AC_MSG_RESULT(${found_tmp}) + +dnl Checks for header files. +AC_PATH_XTRA +AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS(fcntl.h paths.h termios.h sgtty.h unistd.h libgen.h malloc.h) +AC_CHECK_HEADERS(sys/filio.h sys/ioctl.h sys/time.h sys/file.h sys/utsname.h) +AC_CHECK_HEADERS(sys/select.h sys/msgbuf.h sys/cdefs.h) + +if test "$no_x" != "yes"; then + XCLIENTS=xzwrite + ZWGC_LIBX11=-lX11 +fi +AC_SUBST(XCLIENTS) +AC_SUBST(ZWGC_LIBX11) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_SIGNAL +AC_TYPE_UID_T +AC_CHECK_SIZEOF(short) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long) +AC_MSG_CHECKING(for 32-bit integer type) +if test "$ac_cv_sizeof_long" = 4; then + int32=long +elif test "$ac_cv_sizeof_int" = 4; then + int32=int +elif test "$ac_cv_sizeof_short" = 4; then + int32=short +else + AC_WARN([Can't find 32-bit type, using long]) + int32=long +fi +AC_DEFINE_UNQUOTED(ZEPHYR_INT32, ${int32}) +AC_MSG_RESULT(${int32}) + +AC_CHECK_LIB(w, wslen) +AC_CHECK_LIB(dl, dlopen) + +# If we can't find connect, try looking in -lsocket and -lnsl. The +# Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has +# libsocket.so which has a bad implementation of gethostbyname (it +# only looks in /etc/hosts), so we only look for -lsocket if we need +# it. +AC_CHECK_FUNC(connect, :, [AC_CHECK_LIB(socket, socket) + AC_CHECK_LIB(nsl, gethostbyname)]) + +# Hesiod needs -lresolv on Sun systems for res_send. +if test "$hesiod" != "no"; then + AC_CHECK_LIB(44bsd, strerror) + AC_CHECK_LIB(resolv, res_send) +fi + +AC_CHECK_LIB(curses, tgetstr, [TLIB=-lcurses], [TLIB=-ltermcap]) +AC_CHECK_LIB(gen, regcmp, [RLIB=-lgen]) +AC_CHECK_LIB(src, srcsrpy, [SLIB=-lsrc; AC_DEFINE(HAVE_SRC)]) +AC_SUBST(TLIB) +AC_SUBST(RLIB) +AC_SUBST(SLIB) + +if test "$hesiod" != "no"; then + if test "$hesiod" != "yes"; then + CPPFLAGS="${CPPFLAGS} -I${hesiod}/include" + LDFLAGS="${LDFLAGS} -L${hesiod}/lib" + fi + AC_DEFINE(ZEPHYR_USES_HESIOD) + AC_CHECK_LIB(hesiod, hes_resolve, LIBS="-lhesiod ${LIBS}", + [AC_CHECK_FUNC(hes_resolve),, + AC_ERROR(Hesiod library not found)]) +fi + +if test "$kerberos" != "no"; then + if test "$kerberos" != "yes"; then + CPPFLAGS="${CPPFLAGS} -I${kerberos}/include" + LDFLAGS="${LDFLAGS} -L${kerberos}/lib" + fi + AC_DEFINE(ZEPHYR_USES_KERBEROS) + AC_CHECK_LIB(krb, krb_mk_req,, + [AC_ERROR(Kerberos library not found)], -ldes) + LIBS="-lkrb -ldes ${LIBS}" +else + AC_WARN(compiling without Kerberos support; Zephyr will be insecure.) +fi + +dnl Checks for library functions. +AC_PROG_GCC_TRADITIONAL +AC_FUNC_VPRINTF +ZEPHYR_FUNC_REGCOMP +AC_CHECK_FUNCS(putenv re_comp strchr memcpy memmove waitpid getlogin) +AC_CHECK_FUNCS(strerror random lrand48 gethostid krb_get_err_text krb_log) + +AC_CONFIG_HEADER(h/config.h h/zephyr/zephyr.h) +AC_OUTPUT(Makefile clients/Makefile clients/syslogd/Makefile + clients/xzwrite/Makefile clients/zaway/Makefile clients/zctl/Makefile + clients/zleave/Makefile clients/zlocate/Makefile + clients/zmailnotify/Makefile clients/znol/Makefile + clients/zpopnotify/Makefile clients/zshutdown_notify/Makefile + clients/zstat/Makefile clients/zwgc/Makefile clients/zwrite/Makefile + lib/Makefile lib/dyn/Makefile lib/et/Makefile lib/ss/Makefile + lib/zephyr/Makefile server/Makefile zhm/Makefile + clients/xzwrite/XZwrite clients/zwgc/zephyr.vars) + |