dnl Process this file with autoconf to produce a configure script.
dnl $Id$
AC_PREREQ(2.52)
-AC_INIT([Citadel/UX], [6.15], [http://uncensored.citadel.org/])
+AC_INIT([Citadel], [7.02], [http://www.citadel.org/])
AC_REVISION([$Revision$])
AC_CONFIG_SRCDIR([citserver.c])
AC_PREFIX_DEFAULT(/usr/local/citadel)
if test "$prefix" = NONE; then
- AC_DEFINE_UNQUOTED(BBSDIR, "$ac_default_prefix")
+ AC_DEFINE_UNQUOTED(CTDLDIR, "$ac_default_prefix")
else
- AC_DEFINE_UNQUOTED(BBSDIR, "$prefix")
+ AC_DEFINE_UNQUOTED(CTDLDIR, "$prefix")
fi
-AC_ARG_ENABLE(autologin, [ --disable-autologin disable autologin (default is enabled if possible)])
+
+dnl Make sure we see all GNU and Solaris extensions.
+AC_GNU_SOURCE
+
+
+dnl Checks for the Datadir
+AC_ARG_WITH(datadir,
+ [ --with-datadir directory to store the databases under],
+ [ if test "x$withval" != "xno" ; then
+ AC_DEFINE(HAVE_DATA_DIR)
+ AC_DEFINE_UNQUOTED(DATA_DIR, "$withval")
+ MAKE_DATA_DIR=$withval
+ AC_SUBST(MAKE_DATA_DIR)
+ fi
+ ]
+)
+
+dnl Checks for the spooldir
+AC_ARG_WITH(spooldir,
+ [ --with-spooldir directory to keep queues under],
+ [ if test "x$withval" != "xno" ; then
+ AC_DEFINE(HAVE_SPOOL_DIR)
+ AC_DEFINE_UNQUOTED(SPOOL_DIR,"$withval")
+ MAKE_SPOOL_DIR=$withval
+ AC_SUBST(MAKE_SPOOL_DIR)
+ fi
+ ]
+)
+
+
+dnl Checks for the Configdir
+AC_ARG_WITH(sysconfdir,
+ [ --with-sysconfdir directory to store the configs under],
+ [ if test "x$withval" != "xno" ; then
+ AC_DEFINE(HAVE_ETC_DIR)
+ AC_DEFINE_UNQUOTED(ETC_DIR, "$withval")
+ MAKE_ETC_DIR=$withval
+ AC_SUBST(MAKE_ETC_DIR)
+ fi
+ ]
+)
+
+
+dnl Checks for the run-dir for the sockets
+AC_ARG_WITH(rundir,
+ [ --with-rundir directory to store the configs under],
+ [ if test "x$withval" != "xno" ; then
+ AC_DEFINE(HAVE_RUN_DIR)
+ AC_DEFINE_UNQUOTED(RUN_DIR, "$withval")
+ MAKE_RUN_DIR=$withval
+ AC_SUBST(MAKE_RUN_DIR)
+ fi
+ ]
+)
+
+
+dnl Checks for the Pseudo Random Generator sockets TODO: this keeps being default.
+AC_DEFINE_UNQUOTED(EGD_POOL, "/var/run/egd-pool")
+AC_ARG_WITH(egdpool,
+ [ --with-egdpool the socket from Pseudo Random Generator, defaults to /var/run/egd-pool],
+ [ if test "x$withval" != "xno" ; then
+ AC_DEFINE_UNQUOTED(EGD_POOL, "$withval")
+ fi
+ ]
+)
+
+
+AC_ARG_WITH(docdir,
+ [ --with-docdir where to install the documentation. default: /usr/local/citadel/],
+ [ if test "x$withval" != "xno" ; then
+ MAKE_DOC_DIR=$withval
+ AC_SUBST(MAKE_DOC_DIR)
+ fi
+ ]
+)
+
+
+
AC_ARG_ENABLE(chkpwd, [ --disable-chkpwd don't build 'chkpwd'])
AC_ARG_ENABLE(threaded-client, [ --disable-threaded-client
AC_ARG_WITH(kthread, [ --with-kthread use kernel threads (on FreeBSD) (not recommended yet)])
AC_ARG_WITH(db, [ --with-db@<:@=DIR@:>@ use Sleepycat DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
AC_ARG_WITH(ssl,
- [ --with-ssl=PATH Specify path to OpenSSL installation ],
+ [ --with-ssl=PATH Specify path to OpenSSL installation ],
[
if test "x$withval" != "xno" ; then
tryssldir=$withval
AC_ARG_WITH(with_zlib, [ --with-zlib use zlib compression if present])
AC_ARG_WITH(with_ldap, [ --with-ldap use OpenLDAP client library])
AC_ARG_WITH(with_libical, [ --with-libical use libical calendaring library])
-AC_ARG_WITH(with_newt, [ --with-newt use newt window library])
+AC_ARG_WITH(with_libsieve, [ --with-libsieve use libsieve mail sorting library])
if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
db_dir="$with_db"
&& db_dir=/usr/local
test -d /usr/local/BerkeleyDB.4.1 && db_dir=/usr/local/BerkeleyDB.4.1
+ test -d /usr/local/BerkeleyDB.4.2 && db_dir=/usr/local/BerkeleyDB.4.2
+ test -d /usr/local/BerkeleyDB.4.3 && db_dir=/usr/local/BerkeleyDB.4.3
fi
dnl By default, we only build the client (citadel and whobbs) unless we can
AC_CANONICAL_HOST
PTHREAD_DEFS=-D_REENTRANT
+AC_MSG_CHECKING([how to compile with POSIX threads])
case "$host" in
dnl BSDI 3.0 wants relocatable object modules instead of shared libs
dnl for dlopen(), and has a wrapper script to link with shared libs.
*-*-bsdi[123]*)
test -z "$CC" -a -x /usr/bin/shlicc2 && CC=shlicc2
AC_DEFINE(HAVE_NONREENTRANT_NETDB)
+ AC_MSG_RESULT([Old BSDI])
;;
*-*-bsdi*)
AC_DEFINE(HAVE_NONREENTRANT_NETDB)
+ AC_MSG_RESULT([BSD/OS])
;;
dnl Curses support on Mac OS X is kind of screwed at the moment.
*-*-darwin*)
AC_DEFINE(DISABLE_CURSES)
+ AC_MSG_RESULT([Mac OS X])
;;
dnl Digital Unix has an odd way to build for pthreads, and we can't
dnl build pthreads programs with gcc due to header problems.
test -z "$CC" && CC=cc
LIBS="-lpthread -lexc $LIBS"
check_pthread=no
+ AC_MSG_RESULT([Tru64 or Digital UNIX])
;;
dnl FreeBSD is similar to Digital UNIX with DEC C, which has a -pthread flag:
*-*-freebsd*)
fi
check_pthread=no
PTHREAD_DEFS=-D_THREAD_SAFE
+ AC_MSG_RESULT([FreeBSD])
;;
*-*-openbsd*)
LIBS="-pthread $LIBS"
check_pthread=no
PTHREAD_DEFS=-pthread
+ AC_MSG_RESULT([OpenBSD])
+ ;;
+ *-*-linux*)
+ PTHREAD_DEFS="-D_REENTRANT -pthread"
+ AC_MSG_RESULT([Linux])
;;
*-*-solaris*)
PTHREAD_DEFS="-D_REENTRANT -D_PTHREADS"
+ AC_MSG_RESULT([Solaris])
;;
*-*-cygwin*)
SERVER_LDFLAGS="-Wl,-subsystem,windows"
+ AC_MSG_RESULT([Cygwin])
+ ;;
+ *)
+ AC_MSG_RESULT([default])
;;
esac
-DEFS="$DEFS $PTHREAD_DEFS"
+dnl DEFS="$DEFS $PTHREAD_DEFS"
+
dnl Checks for programs.
AC_PROG_CC
dnl Set up system-dependent compiler flags.
if test "$GCC" = yes; then
- case "$host" in
- *-*-solaris*|alpha*-dec-osf*)
- CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wno-char-subscripts"
- ;;
- *)
- CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes"
- ;;
- esac
+ if test "$CC" = icc; then
+ CFLAGS="$CFLAGS -w1"
+ else
+ case "$host" in
+ *-*-solaris*|alpha*-dec-osf*)
+ CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wno-char-subscripts $PTHREAD_DEFS"
+ ;;
+ *)
+ CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes $PTHREAD_DEFS"
+ ;;
+ esac
+ fi
fi
if test "x$enable_pie" = xyes; then
dnl Check for Solaris realtime support
AC_CHECK_LIB(rt, sched_yield)
-dnl Determine the system's authentication capabilities, if autologin is
-dnl requested. We currently support PAM, standard getpwnam(), and getspnam()
+dnl Determine the system's authentication capabilities.
+dnl We currently support PAM, standard getpwnam(), and getspnam()
dnl (Linux shadow passwords)
-if test "$enable_autologin" != no; then
+
if test "$with_pam" = yes; then
save_LIBS=$LIBS
AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
fi
fi
if test "$ac_cv_func_crypt" = yes -o "$ac_cv_lib_crypt_crypt" = yes -o "$ac_cv_func_pam_start" = yes; then
- AC_DEFINE(ENABLE_AUTOLOGIN)
if test "$enable_chkpwd" != no; then
AC_DEFINE(ENABLE_CHKPWD)
CHKPWD=chkpwd
AUTH=auth.lo
fi
fi
-fi
test -f /usr/local/lib/libresolv.a && LDFLAGS="$LDFLAGS -L/usr/local/lib"
AC_CHECK_LIB(resolv, res_query, RESOLV="$RESOLV -lresolv")
fi
-
dnl Checks for the zlib compression library.
if test "x$with_zlib" != xno ; then
AC_CHECK_HEADERS(zlib.h,
-dnl Checks for the newt window library.
-if test "x$with_newt" != xno ; then
- AC_CHECK_HEADERS(newt.h,
- [AC_CHECK_LIB(newt, newtInit,
- [ok_newt=yes],,
+
+dnl Checks for the libsieve mailbox sorting library.
+if test "x$with_libsieve" != xno ; then
+ AC_CHECK_HEADERS(sieve2.h,
+ [AC_CHECK_LIB(sieve, sieve2_license,
+ [ok_libsieve=yes],,
)])
fi
-if test "x$ok_newt" = xyes ; then
- SETUP_LIBS="-lnewt $SETUP_LIBS"
- AC_DEFINE(HAVE_NEWT)
+if test "x$ok_libsieve" = xyes ; then
+ SERVER_LIBS="-lsieve $SERVER_LIBS"
+ AC_DEFINE(HAVE_LIBSIEVE)
fi
-
-
dnl Checks for the libical calendaring library.
if test "x$with_libical" != xno ; then
AC_CHECK_HEADERS(ical.h,
[
#include <ical.h>
main() {
- float v;
- int i;
- sscanf(ICAL_VERSION, "%f", &v);
- printf("libical version: %0.2f\n", v);
- v = v * 100.0;
- i = (int) v;
- if (i >= 24) {
- printf("This version is ok.\n");
+ int major, minor, v;
+ sscanf(ICAL_VERSION, "%d.%d", &major, &minor);
+ v = 100*major + minor;
+ printf("libical version: %i\n", v);
+ if (v >= 24) {
+ printf("This version is ok.\n");
return(0);
}
printf("libical 0.24 or newer required.\n");
dnl TODO: for the DB header checks, we should check whether the headers
dnl define db_env_create, somehow
dnl
-AC_CHECK_HEADERS(curses.h dl.h fcntl.h limits.h malloc.h termios.h sys/ioctl.h sys/select.h sys/time.h syslog.h unistd.h utmp.h utmpx.h paths.h db.h db4/db.h pthread.h netinet/in.h arpa/nameser.h arpa/nameser_compat.h)
+AC_CHECK_HEADERS(curses.h dl.h fcntl.h limits.h malloc.h termios.h sys/ioctl.h sys/select.h sys/time.h sys/prctl.h syslog.h unistd.h utmp.h utmpx.h paths.h db.h db4/db.h pthread.h netinet/in.h arpa/nameser.h arpa/nameser_compat.h)
dnl
dnl need to check if this is actually compilable, sometimes there are
# esac
# ])
+
+
AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
number=`date | cut -c 19`
case $number in
AC_SUBST(SETUP_LIBS)
AC_CONFIG_HEADER(sysdep.h)
AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
+AC_OUTPUT(database_cleanup.sh)
if test -z "$DATABASE"; then
AC_MSG_WARN([No database driver was found. Please install Berkeley DB.])
fi
-echo ...
-echo ...
-echo "... On many operating systems, you must use GNU make (gmake) to compile"
-echo ... Citadel.
-echo ...
-echo ...
+echo ------------------------------------------------------------------------
+echo 'zlib compression: ' $ok_zlib
+echo 'Calendar support: ' $ok_libical
+echo 'LDAP support: ' $ok_ldap
+echo 'Sieve mailbox filtering support: ' $ok_libsieve
+echo
+echo 'Note: if you are not using Linux, make sure you are using GNU make'
+echo '(gmake) to compile Citadel.'
+echo