dnl -*-fundamental-*-
dnl
-dnl $Id: configure.in,v 1.4 1997/08/20 16:10:56 mdw Exp $
+dnl $Id: configure.in,v 1.19 2003/10/12 00:14:44 mdw Exp $
dnl
dnl Source for auto configuration for `become'
dnl
-dnl (c) 1997 Mark Wooding
+dnl (c) 1998 Mark Wooding
dnl
dnl----- Licensing notice ---------------------------------------------------
dnl----- Revision history ---------------------------------------------------
dnl
dnl $Log: configure.in,v $
-dnl Revision 1.4 1997/08/20 16:10:56 mdw
+dnl Revision 1.19 2003/10/12 00:14:44 mdw
+dnl Major overhaul. Now uses DSA signatures rather than the bogus symmetric
+dnl encrypt-and-hope thing. Integrated with mLib and Catacomb.
+dnl
+dnl Revision 1.18 1999/07/28 09:30:12 mdw
+dnl Use new-fangled mdw_TYPE_SSIZE_T macro.
+dnl
+dnl Revision 1.17 1999/05/04 16:25:19 mdw
+dnl Fixes for new version of automake.
+dnl
+dnl Revision 1.16 1998/06/18 15:15:45 mdw
+dnl Set version number properly. D'oh.
+dnl
+dnl Revision 1.15 1998/06/18 15:11:36 mdw
+dnl Change patchlevel. Check for @sigprocmask@, for improved @noise__shell@
+dnl function.
+dnl
+dnl Revision 1.14 1998/06/08 11:22:16 mdw
+dnl Step version number and date.
+dnl
+dnl Revision 1.13 1998/04/23 13:34:10 mdw
+dnl Release version.
+dnl
+dnl Revision 1.12 1998/04/23 13:09:24 mdw
+dnl Add new option to disable networking.
+dnl
+dnl Revision 1.11 1998/02/20 17:55:56 mdw
+dnl Fix default HTML directory.
+dnl
+dnl Revision 1.10 1998/01/12 16:45:21 mdw
+dnl Fix copyright date.
+dnl
+dnl Revision 1.9 1997/09/18 11:24:27 mdw
+dnl Add `conf' directory. Add an `htmldir' installation directory too.
+dnl
+dnl Revision 1.8 1997/09/17 10:36:30 mdw
+dnl Remove `set.c'. No longer necessary.
+dnl
+dnl Revision 1.7 1997/09/09 18:18:41 mdw
+dnl Check for setgroups(2), to see whether subsidiary group lists need to be
+dnl fiddled with.
+dnl
+dnl Revision 1.6 1997/09/08 13:41:14 mdw
+dnl Check for `setreuid' for changing permissions.
+dnl
+dnl Revision 1.5 1997/09/05 11:45:18 mdw
+dnl Add support for different login styles, and environment variable
+dnl manipulation in a safe and useful way.
+dnl
+dnl Revision 1.4 1997/08/20 16:10:56 mdw
dnl Lowercase `mdw_' prefixes to macros. Add a `--with-etcdir=PATH'
dnl option. Update `stamp-h' as required by the Automake docs (silly
dnl me).
dnl Initial revision
dnl
-AC_INIT(src/icrypt.c)
-AC_CONFIG_HEADER(config.h)
-PACKAGE=become VERSION=1.2-pre
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
-AC_DEFINE(VERSION, "1.2-pre (24 July 1997)")
+AC_INIT(src/become.c)
+AM_INIT_AUTOMAKE(become, 1.4.0)
+AM_CONFIG_HEADER(config.h)
dnl --- Check for compilers and things ---
AC_PROG_CC
-AC_PROG_INSTALL
-AC_PROG_LEX
+mdw_GCC_FLAGS
+AM_PROG_LEX
AC_CHECK_PROG(AR, ar, ar)
AC_PROG_RANLIB
-AC_PROG_MAKE_SET
AC_PROG_YACC
-AC_ARG_PROGRAM
-if test "$ac_cv_prog_gcc" = "yes"; then
- CFLAGS="$CFLAGS -pedantic -Wall"
-fi
+
+dnl --- Set default become style ---
+
+AC_ARG_ENABLE([style],
+[ --enable-style=STYLE set default style to preserve, setuser, or login],
+[case "$enableval" in
+ preserve) style="l_preserve" ;;
+ su|setuser) style="l_setuser" ;;
+ login) style="l_login" ;;
+ *) AC_MSG_ERROR([unknown login style: choose preserve, setuser, or login])
+ ;;
+esac],
+[style="l_preserve"])
+AC_DEFINE_UNQUOTED(DEFAULT_LOGIN_STYLE, $style)
+
+dnl --- Choose networking options ---
+
+AC_ARG_ENABLE([network],
+[ --disable-network disable the client-server bits of the program],
+ [if test "$enableval" = "no"; then
+ AC_DEFINE(NONETWORK)
+ fi])
+
+dnl --- Set configuration directory ---
+
+AC_ARG_WITH([etcdir],
+[ --with-etcdir=PATH set directory for configuration and key files
+ [default is /etc/become]],
+[etcdir="$withval"], [etcdir="/etc/become"])
+AC_SUBST(etcdir)
+AC_DEFINE_UNQUOTED(ETCDIR, "$etcdir")
+
+AC_ARG_WITH([htmldir],
+[ --with-htmldir=PATH set directory for HTML documentation
+ [default is PREFIX/html/become]],
+[htmldir="$withval"], [htmldir='${prefix}/html/become'])
+AC_SUBST(htmldir)
+
+dnl --- Debugging stuff ---
+
+mdw_OPT_EFENCE
+mdw_OPT_NDEBUG
+mdw_OPT_TRACE
dnl --- Libraries ---
+mdw_MLIB(2.0.1)
+mdw_CATACOMB(2.0.1)
+
mdw_CHECK_MANYLIBS(socket, socket,,
- AC_MSG_ERROR([Socket library not found]))
+ [AC_MSG_ERROR([Socket library not found])])
mdw_CHECK_MANYLIBS(gethostbyname, resolv nsl,,
- AC_MSG_ERROR([Resolver library not found]))
+ [AC_MSG_ERROR([Resolver library not found])])
mdw_CHECK_MANYLIBS(yp_all, nsl, AC_DEFINE(HAVE_YP))
+dnl --- Other functions ---
+
+AC_CHECK_FUNCS(sigprocmask)
+
dnl --- Types ---
AC_TYPE_PID_T
AC_TYPE_UID_T
-AC_CHECK_TYPE(ssize_t, int)
-
-dnl --- Check on type sizes ---
-
-AC_CHECK_SIZEOF(int, 2)
+mdw_TYPE_SSIZE_T
dnl --- Set the path separator ---
dnl --- Check for some useful functions ---
+AC_CHECK_FUNCS(setreuid setgroups)
AC_CHECK_FUNCS(getrusage vtimes)
-dnl --- Set configuration directory ---
-
-AC_ARG_WITH([etcdir],
-[ --with-etcdir=PATH set directory for configuration and key files
- [default is /etc/become]],
-[etcdir="$withval"], [etcdir="/etc/become"])
-AC_SUBST(etcdir)
-AC_DEFINE_UNQUOTED(ETCDIR, "$etcdir")
-
-dnl --- Debugging stuff ---
-
-AC_ARG_WITH(electric-fence,
-[ --with-electric-fence link programs with Electric Fence],
- [if test "$withval" = "yes"; then
- AC_CHECK_LIB(efence, malloc)
- fi])
-
-AC_ARG_ENABLE(debugging,
-[ --enable-debugging spews vast swathes of useless information],
- [if test "$enableval" = "no"; then
- AC_DEFINE(NDEBUG, 1)
- fi],
- AC_DEFINE(NDEBUG, 1))
-
-AC_ARG_ENABLE(tracing,
-[ --enable-tracing enable output of tracing information],
- [if test "$enableval" = "yes"; then
- AC_DEFINE(TRACING)
- fi],
- AC_DEFINE(TRACING))
-
dnl --- Done ---
-AC_OUTPUT(Makefile src/Makefile manual/Makefile,
- [test -z "$CONFIG_HEADERS" || echo timestamp >stamp-h])
+AC_OUTPUT(Makefile conf/Makefile src/Makefile manual/Makefile)
dnl----- That's all, folks --------------------------------------------------