]> code.citadel.org Git - citadel.git/blobdiff - citadel/configure.ac
* Dropped support for GDBM and for versions of Berkeley DB prior to 4.1
[citadel.git] / citadel / configure.ac
index 2d54e4dedcb88700f219026c02c2e7c9aed52e72..49044a476dc16ab82ec7e6e1669c1ab9c44e43d1 100644 (file)
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl $Id$
 AC_PREREQ(2.52)
-AC_INIT([Citadel/UX], [5.91], [http://uncensored.citadel.org/])
+AC_INIT([Citadel/UX], [6.02], [http://uncensored.citadel.org/])
 AC_REVISION([$Revision$])
 AC_CONFIG_SRCDIR([citserver.c])
 AC_PREFIX_DEFAULT(/usr/local/citadel)
@@ -19,7 +19,6 @@ AC_ARG_ENABLE(threaded-client, [  --disable-threaded-client
 
 AC_ARG_WITH(pam, [  --with-pam              use PAM if present (see PAM.txt before you try this)])
 AC_ARG_WITH(kthread, [  --with-kthread          use kernel threads (on FreeBSD) (not recommended yet)])
-AC_ARG_WITH(gdbm, [  --with-gdbm@<:@=DIR@:>@       use GDBM @<:@DIR=/usr/local@:>@])
 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 ],
@@ -34,27 +33,15 @@ 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_libical, [  --with-libical          use libical calendaring library])
 
-if test "x$with_gdbm" != xno -a "x$with_gdbm" != xyes -a "$with_gdbm"; then
-       db_dir="$with_gdbm"
-       with_gdbm=yes
-fi
-
 if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
        db_dir="$with_db"
        with_db=yes
 else
        test -f /usr/local/lib/libdb.a -o -f /usr/local/lib/libdb.so \
          -o -f /usr/local/lib/libdb4.a -o -f /usr/local/lib/libdb4.so \
-         -o -f /usr/local/lib/libdb3.a -o -f /usr/local/lib/libdb3.so && db_dir=/usr/local
-
-       test -d /usr/local/BerkeleyDB.3.1 && db_dir=/usr/local/BerkeleyDB.3.1
-       test -d /usr/local/BerkeleyDB.3.2 && db_dir=/usr/local/BerkeleyDB.3.2
-       test -d /usr/local/BerkeleyDB.3.3 && db_dir=/usr/local/BerkeleyDB.3.3
-       test -d /usr/local/BerkeleyDB.4.0 && db_dir=/usr/local/BerkeleyDB.4.0
-fi
+         && db_dir=/usr/local
 
-if test "x$with_gdbm" = xyes -a "x$with_db" = xyes; then
-       AC_MSG_ERROR(can't enable both gdbm and db)
+       test -d /usr/local/BerkeleyDB.4.1 && db_dir=/usr/local/BerkeleyDB.4.1
 fi
 
 dnl By default, we only build the client (citadel and whobbs) unless we can
@@ -74,6 +61,10 @@ case "$host" in
        *-*-bsdi*)
                AC_DEFINE(HAVE_NONREENTRANT_NETDB)
        ;;
+       dnl Curses support on Mac OS X is kind of screwed at the moment.
+       *-*-darwin*)
+               AC_DEFINE(DISABLE_CURSES)
+       ;;
        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.
        alpha*-dec-osf*)
@@ -116,11 +107,7 @@ if test "$GCC" = yes; then
                ;;
        esac
 fi
-AC_LIBTOOL_DLOPEN
-AC_LIBTOOL_WIN32_DLL
 AC_DISABLE_STATIC
-AC_PROG_LIBTOOL
-AC_SUBST(LIBTOOL_DEPS)
 AC_PROG_INSTALL
 AC_PROG_YACC
 missing_dir=`cd $ac_aux_dir && pwd`
@@ -141,7 +128,7 @@ dnl Checks for libraries.
 dnl We want to test for the following in libc before checking for their
 dnl respective libraries, because some systems (like Irix) have both, and the
 dnl non-libc versions may be broken.
-AC_CHECK_FUNCS(crypt dlopen gethostbyname connect)
+AC_CHECK_FUNCS(crypt gethostbyname connect)
 
 if test "$ac_cv_func_gethostbyname" = no; then
        AC_CHECK_LIB(nsl, gethostbyname)
@@ -151,14 +138,6 @@ if test "$ac_cv_func_connect" = no; then
         AC_CHECK_LIB(socket, connect)
 fi
 
-if test "$ac_cv_func_dlopen" = no; then
-        AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl $LIBS"
-               test "$with_pam" = yes && chkpwd_LIBS="-ldl $chkpwd_LIBS"])
-fi
-
-dnl Check for HP/UX dynamic loader. This should only be in -ldld.
-AC_CHECK_LIB(dld, shl_load, LIBS="-ldld $LIBS")
-
 dnl Check for Solaris realtime support
 AC_CHECK_LIB(rt, sched_yield)
 
@@ -201,8 +180,9 @@ fi
 test -f /usr/local/lib/libresolv.a && LDFLAGS="$LDFLAGS -L/usr/local/lib"
 AC_CHECK_LIB(resolv, res_query, RESOLV="$RESOLV -lresolv")
 
-if test "x$with_ncurses" != xno; then
+if test "x$with_ncurses" != "xno"; then
        AC_SEARCH_LIBS(tgetent, [ncurses curses termcap])
+       AC_SEARCH_LIBS(scrollok, [ncurses curses])
        AC_SEARCH_LIBS(initscr, [ncurses curses])
 else
        AC_SEARCH_LIBS(tgetent, [curses termcap])
@@ -327,7 +307,7 @@ if test "$with_ssl" != "no"; then
        fi
 fi
 
-if test "x$with_db" != xno -a "x$with_gdbm" != xyes; then
+if test "x$with_db" != xno; then
        test "$db_dir" && LDFLAGS="$LDFLAGS -L$db_dir/lib"
 
        dblib=""
@@ -335,40 +315,25 @@ if test "x$with_db" != xno -a "x$with_gdbm" != xyes; then
        if test -d "$db_dir/include/db4"; then
                CPPFLAGS="$CPPFLAGS -I$db_dir/include/db4"
                dblib="db4"
-       elif test -d "$db_dir/include/db3"; then
-               CPPFLAGS="$CPPFLAGS -I$db_dir/include/db3"
-               dblib="db3"
        elif test "$db_dir"; then
                CPPFLAGS="$CPPFLAGS -I$db_dir/include"
        elif test -d /usr/include/db4; then
                CPPFLAGS="$CPPFLAGS -I/usr/include/db4"
                dblib="db4"
-       elif test -d /usr/include/db3; then
-               CPPFLAGS="$CPPFLAGS -I/usr/include/db3"
-               dblib="db3"
        fi
 
-       AC_SEARCH_LIBS(db_env_create, [$dblib db db4 db3], [
-               DATABASE=database_sleepycat.c
-               with_gdbm=no
-       ])
-
-fi
-
-if test "x$with_gdbm" != xno -a "x$with_db" != xyes; then
-       test -f /usr/local/lib/libgdbm.a -o -f /usr/local/lib/libgdbm.so && db_dir=/usr/local
-       test "$db_dir" && LDFLAGS="$LDFLAGS -L$db_dir/lib"
 
-       test "$db_dir" && CPPFLAGS="$CPPFLAGS -I$db_dir/include"
+       AC_CHECK_DB([db db-4.1 db-4 db4],
+                   [
+                    DATABASE=database_sleepycat.c
+                   ],
+                   AC_MSG_ERROR([[Can not locate a suitable Berkeley DB
+                                 library.  Use --with-db=PATH to specify
+                                 the path]]))
 
-        AC_CHECK_LIB(gdbm, gdbm_open,
-                [LIBS="-lgdbm $LIBS"
-                DATABASE=database.c
-                with_db=no])
 fi
 
 
-
 dnl Checks for the zlib compression library.
 if test "x$with_zlib" != xno ; then
        AC_CHECK_HEADERS(zlib.h,
@@ -377,7 +342,7 @@ if test "x$with_zlib" != xno ; then
        )])
 fi
 
-if test "x$ok_zlib" != xno ; then
+if test "x$ok_zlib" = xyes ; then
        LIBS="-lz $LIBS"
        AC_DEFINE(HAVE_ZLIB)
 fi
@@ -392,9 +357,32 @@ if test "x$with_libical" != xno ; then
        )])
 fi
 
-if test "x$ok_libical" != xno ; then
-       LIBS="-lical $LIBS"
-       AC_DEFINE(HAVE_LIBICAL)
+if test "x$ok_libical" = xyes ; then
+
+       AC_TRY_RUN(
+               [
+#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");
+               return(0);
+       }
+       printf("libical 0.24 or newer required.\n");
+       printf("Citadel will be built without calendar support.\n");
+       return(1);
+}
+               ], 
+               [
+                       LIBS="-lical $LIBS"
+                       AC_DEFINE(HAVE_LIBICAL)
+               ]
+       )
 fi
 
 
@@ -408,7 +396,7 @@ dnl
 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 termios.h sys/ioctl.h sys/select.h sys/time.h syslog.h unistd.h utmp.h utmpx.h paths.h db.h db3/db.h db4/db.h pthread.h netinet/in.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 syslog.h unistd.h utmp.h utmpx.h paths.h db.h db4/db.h pthread.h netinet/in.h arpa/nameser.h)
 
 dnl
 dnl need to check if this is actually compilable, sometimes there are
@@ -418,16 +406,17 @@ if test "x$with_ncurses" != xno; then
        AC_CHECK_HEADERS(ncurses.h,,,[ ])
 fi
 
-AC_CHECK_HEADER(resolv.h, [SMTP=modules/libsmtp.la; DOMAIN=domain.c],,
+AC_CHECK_HEADER(resolv.h,AC_DEFINE(HAVE_RESOLV_H),,
 [#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+#include <arpa/nameser.h>
 #endif])
 
-AC_SUBST(SMTP)
-AC_SUBST(DOMAIN)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -495,7 +484,7 @@ AC_CACHE_CHECK([for pthread_create], ac_cv_func_pthread_create,
 #endif],
 ac_cv_func_pthread_create=yes, ac_cv_func_pthread_create=no)])
 if test "$ac_cv_func_pthread_create" = yes; then
-       test "$DATABASE" && TARGETS="client server utils serv_modules"
+       test "$DATABASE" && TARGETS="client server utils"
        if test "x$enable_threaded_client" != xno; then
                AC_DEFINE(THREADED_CLIENT)
        fi
@@ -503,6 +492,42 @@ 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([under the bed], ac_cv_under_the_bed, [
+       number=`date | cut -c 19`
+       case $number in
+       7)
+               ac_cv_under_the_bed="lunatics and monsters found"
+               ;;
+       *)
+               ac_cv_under_the_bed="dust bunnies found"
+               ;;
+       esac
+       ])
+
 dnl Done! Now write the Makefile and sysdep.h
 AC_SUBST(AUTH)
 AC_SUBST(CHKPWD)