]> code.citadel.org Git - citadel.git/blobdiff - citadel/configure.ac
Completed DVCA (Dump VCard Addresses) function. This function
[citadel.git] / citadel / configure.ac
index 3efdfc1af2bc70df0f3906b000a01f56a526bd04..a3932c0f7f4450b10772c47c1e206a5aed759510 100644 (file)
 dnl Process this file with autoconf to produce a configure script.
 dnl $Id$
 AC_PREREQ(2.52)
-AC_INIT([Citadel], [6.15], [http://uncensored.citadel.org/])
+AC_INIT([Citadel], [7.10], [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(CTDLDIR, "$ac_default_prefix")
+       ssl_dir="$ac_default_prefix/keys"
 else
        AC_DEFINE_UNQUOTED(CTDLDIR, "$prefix")
+       ssl_dir="$prefix/keys"
 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 SSLdir
+dnl this is a bit different than the rest, 
+dnl because of the citadel used to have a keys/ subdir.
+AC_ARG_WITH(ssldir, 
+                   [  --with-ssldir          directory to store the ssl certificates under],
+                       [ if test "x$withval" != "xno" ; then
+                                             
+                                                 ssl_dir="$withval"
+                         fi
+                       AC_SUBST(MAKE_SSL_DIR)
+                       ]
+)
+AC_DEFINE_UNQUOTED(SSL_DIR, "$ssl_dir", [were should we put our keys?])
+
+
+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
@@ -23,7 +118,7 @@ AC_ARG_WITH(pam, [  --with-pam              use PAM if present (see PAM.txt befo
 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
@@ -35,7 +130,7 @@ AC_ARG_WITH(ncurses, [  --without-ncurses       don't use ncurses])
 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"
@@ -71,8 +166,11 @@ case "$host" in
                AC_MSG_RESULT([BSD/OS])
        ;;
        dnl Curses support on Mac OS X is kind of screwed at the moment.
+       dnl TCP buffering isn't ideal under OS X. This define should also be
+       dnl checked in other cases of OS X-Linux differences.
        *-*-darwin*)
                AC_DEFINE(DISABLE_CURSES)
+               AC_DEFINE(HAVE_DARWIN)
                AC_MSG_RESULT([Mac OS X])
        ;;
        dnl Digital Unix has an odd way to build for pthreads, and we can't
@@ -118,6 +216,7 @@ case "$host" in
 esac
 dnl DEFS="$DEFS $PTHREAD_DEFS"
 
+
 dnl Checks for programs.
 AC_PROG_CC
 
@@ -184,10 +283,10 @@ fi
 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"
@@ -210,7 +309,6 @@ if test "$enable_autologin" != no; then
                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
@@ -218,7 +316,6 @@ if test "$enable_autologin" != no; then
                        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")
@@ -378,7 +475,6 @@ if test "x$with_db" != xno; then
 
 fi
 
-
 dnl Checks for the zlib compression library.
 if test "x$with_zlib" != xno ; then
        AC_CHECK_HEADERS(zlib.h,
@@ -411,24 +507,23 @@ fi
 
 
 
-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,
@@ -514,6 +609,30 @@ if test $ac_cv_struct_ut_type = yes; then
        AC_DEFINE(HAVE_UT_TYPE)
 fi
 
+AC_CACHE_CHECK([for call semantics from getpwuid_r], ac_cv_call_getpwuid_r,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <pwd.h>], [
+  struct passwd pw, *pwp;
+  char pwbuf[64];
+  uid_t uid;
+
+  getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp);
+
+],
+ac_cv_call_getpwuid_r=yes, ac_cv_call_getpwuid_r=no)])
+if test $ac_cv_call_getpwuid_r = no; then
+       AC_DEFINE(SOLARIS_GETPWUID)
+       AC_DEFINE(F_UID_T, "%ld")
+       AC_DEFINE(F_PID_T, "%ld")
+       AC_DEFINE(F_XPID_T, "%lx")
+else
+       AC_DEFINE(F_UID_T, "%d")
+       AC_DEFINE(F_PID_T, "%d")
+       AC_DEFINE(F_XPID_T, "%x")
+fi
+
+
+
 AC_CACHE_CHECK([for ut_host in struct utmp], ac_cv_struct_ut_host,
 [AC_TRY_COMPILE([#include <sys/types.h>
 #include <utmp.h>], [struct utmp ut; ut.ut_host;],
@@ -571,29 +690,31 @@ fi
 
 AC_REPLACE_FUNCS(snprintf getutline)
 
-# AC_CACHE_CHECK([the weather], ac_cv_weather, [
-#      sleep 1
-#      echo $ECHO_N "opening your window... $ECHO_C" >&6
-#      sleep 2
-#      month=`date | cut -f 2 -d ' '`
-#      case $month in
-#      Dec | Jan | Feb)
-#              ac_cv_weather="it's cold!"
-#              ;;
-#      Mar | Apr)
-#              ac_cv_weather="it's wet!"
-#              ;;
-#      Jul | Aug)
-#              ac_cv_weather="it's hot!"
-#              ;;
-#      Oct | Nov)
-#              ac_cv_weather="it's cool"
-#              ;;
-#      May | Jun | Sep | *)
-#              ac_cv_weather="it's fine"
-#              ;;
-#      esac
-#      ])
+AC_CACHE_CHECK([the weather], ac_cv_weather, [
+       sleep 1
+       echo $ECHO_N "opening your window... $ECHO_C" >&6
+       sleep 2
+       month=`date | cut -f 2 -d ' '`
+       case $month in
+       Dec | Jan | Feb)
+               ac_cv_weather="it's cold!"
+               ;;
+       Mar | Apr)
+               ac_cv_weather="it's wet!"
+               ;;
+       Jul | Aug)
+               ac_cv_weather="it's hot!"
+               ;;
+       Oct | Nov)
+               ac_cv_weather="it's cool"
+               ;;
+       May | Jun | Sep | *)
+               ac_cv_weather="it's fine"
+               ;;
+       esac
+       ])
+
+
 
 AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
        number=`date | cut -c 19`
@@ -619,15 +740,18 @@ AC_SUBST(SERVER_LIBS)
 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