* Hillary Clinton is obviously sick right now. I hope she dies.
[citadel.git] / citadel / configure.ac
index 11097275c4a9fb6ef103a62d0e7c73653ab92f86..f6b7515f572e4df2ce876d46c169ed6d847d583f 100644 (file)
@@ -1,7 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Id$
 AC_PREREQ(2.52)
-AC_INIT([Citadel], [7.66], [http://www.citadel.org/])
+AC_INIT([Citadel], [902], [http://www.citadel.org/])
 AC_REVISION([$Revision: 5108 $])
 AC_CONFIG_SRCDIR([citserver.c])
 AC_CONFIG_HEADER(sysdep.h)
@@ -10,9 +9,11 @@ AC_PREFIX_DEFAULT(/usr/local/citadel)
 if test "$prefix" = NONE; then
        AC_DEFINE_UNQUOTED(CTDLDIR, "$ac_default_prefix", [define this to the Citadel home directory])
        ssl_dir="$ac_default_prefix/keys"
+       localedir=$ac_default_prefix
 else
        AC_DEFINE_UNQUOTED(CTDLDIR, "$prefix", [define this to the Citadel home directory])
        ssl_dir="$prefix/keys"
+       localedir=$prefix
 fi
 
 dnl Make sure we see all GNU and Solaris extensions.
@@ -155,22 +156,38 @@ AC_ARG_WITH(docdir,
                        ]
 )
 
-
-dnl Checks for the zlib compression library.
-if test "x$with_zlib" != xno ; then
-       AC_CHECK_HEADERS(zlib.h,
-               [AC_CHECK_LIB(z, zlibVersion,
-                       [ok_zlib=yes],,
-       )])
-fi
-
-if test "x$ok_zlib" = xyes ; then
-dnl  libcitadel will bring libz, so we don't need it here.     LDFLAGS="-lz $LDFLAGS" 
-       AC_DEFINE(HAVE_ZLIB, [], [define this if you have zlib compression available])
-fi
+dnl where to put the locale files
+AC_ARG_WITH(localedir, 
+                   [  --with-localedir          directory to put the locale files to],
+                       [ if test "x$withval" != "xno" ; then
+                           localedir=$withval
+                         fi
+                       ]
+)
+AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir",[where to find our pot files])
+LOCALEDIR=$localedir
+AC_SUBST(LOCALEDIR)
 
 
 
+dnl Checks for the zlib compression library.
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $SERVER_LIBS"
+AC_CHECK_HEADER(zlib.h,
+       [AC_CHECK_LIB(z, zlibVersion,
+               [
+                       LIBS="-lz $LIBS $SERVER_LIBS"
+               ],
+               [
+                       AC_MSG_ERROR(zlib was not found or is not usable.  Please install zlib.)
+               ]
+       ,
+       )],
+       [
+               AC_MSG_ERROR(zlib.h was not found or is not usable.  Please install zlib.)
+       ]
+)
+CFLAGS="$saved_CFLAGS"
 
 dnl Here is the check for a libc integrated iconv
 AC_ARG_ENABLE(iconv,
@@ -230,11 +247,6 @@ fi
 
 AC_CHECK_LIB(intl, libintl_bindtextdomain, [LDFLAGS="$LDFLAGS -lintl"])
 
-
-
-AC_ARG_ENABLE(threaded-client, [  --disable-threaded-client
-                         disable multithreaded client])
-
 AC_ARG_ENABLE(pie, [  --enable-pie            build position-independent executables])
 
 AC_ARG_WITH(pam, [  --with-pam              use PAM if present (see PAM.txt before you try this)])
@@ -248,10 +260,9 @@ AC_ARG_WITH(ssl,
                fi
        ]
 )
-AC_ARG_WITH(ncurses, [  --without-ncurses       don't use ncurses])
-
 AC_ARG_WITH(with_ldap, [  --with-ldap             use OpenLDAP client library])
 dnl AC_ARG_WITH(with_libdspam, [  --with-libdspam         use libdspam mail spam scanning library])
+AC_ARG_WITH(with_gc, [  --with-gc             use the Boehm-Demers-Weiser garbage collection library])
 
 if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
        db_dir="$with_db"
@@ -268,10 +279,6 @@ else
        test -d /usr/local/BerkeleyDB.4.5 && db_dir=/usr/local/BerkeleyDB.4.5
 fi
 
-dnl By default, we only build the client (citadel and whobbs) unless we can
-dnl figure out how to build with POSIX threads.
-TARGETS=client
-
 AC_CANONICAL_HOST
 PTHREAD_DEFS=-D_REENTRANT
 AC_MSG_CHECKING([how to compile with POSIX threads])
@@ -292,7 +299,6 @@ case "$host" in
        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,[],[define this to disable use of curses])
                AC_DEFINE(HAVE_DARWIN, [], [define if using OS X/Darwin])
                AC_MSG_RESULT([Mac OS X])
        ;;
@@ -355,7 +361,7 @@ if test "$GCC" = yes; then
                                CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wno-char-subscripts $PTHREAD_DEFS"
                        ;;
                        *)
-                       CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes $PTHREAD_DEFS"
+                       CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes -Wno-strict-aliasing $PTHREAD_DEFS"
                        ;;
                esac
        fi
@@ -386,6 +392,8 @@ AC_SUBST(DEPEND_FLAG)
 
 AC_PROG_INSTALL
 AC_PROG_YACC
+AC_PATH_PROG(DIFF,diff)
+AC_PATH_PROG(PATCH,patch)
 missing_dir=`cd $ac_aux_dir && pwd`
 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
@@ -398,6 +406,7 @@ AC_CHECK_SIZEOF(short, 0)
 AC_CHECK_SIZEOF(int, 0)
 AC_CHECK_SIZEOF(long, 0)
 AC_CHECK_SIZEOF(size_t, 0)
+AC_CHECK_SIZEOF(loff_t, 0)
 dnl AC_CHECK_SIZEOF(long long, 0)
 
 dnl Checks for libraries.
@@ -405,8 +414,32 @@ 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 gethostbyname connect flock getpwnam_r getpwuid_r)
+AC_CHECK_FUNCS(crypt gethostbyname connect getpwnam_r getpwuid_r getloadavg)
+
+AC_CHECK_FUNCS(strftime_l uselocale gettext)
+
+if test "$ok_nls" != "no"; then
+       AC_CHECK_PROG(ok_xgettext, xgettext, yes, no)
+       ok_nls=$ok_xgettext
+fi
+
+if test "$ok_nls" != "no"; then
+       AC_CHECK_PROG(ok_msgmerge, msgmerge, yes, no)
+       ok_nls=$ok_msgmerge
+fi
+
+if test "$ok_nls" != "no"; then
+       AC_CHECK_PROG(ok_msgfmt, msgfmt, yes, no)
+       ok_nls=$ok_msgfmt
+fi
 
+if test "$ok_nls" != "no"; then
+       AC_MSG_RESULT(citadel will be built with national language support.)
+       AC_DEFINE(ENABLE_NLS, [], [whether we have NLS support])
+       PROG_SUBDIRS="$PROG_SUBDIRS po/citadel-setup"
+else
+       AC_MSG_RESULT(citadel will be built without national language support.)
+fi
 
 dnl disable backtrace if we don't want it.
 AC_ARG_WITH(backtrace, 
@@ -431,16 +464,6 @@ AC_ARG_WITH(gprof,
                        ]
 )
 
-dnl disable thread table reporting
-AC_ARG_WITH(threadlog,
-               [  --with-threadlog        enable logging of thread table],
-                       [ if test "x$withval" != "xno" ; then
-                               AC_DEFINE(WITH_THREADLOG, [], [Define if you want logging of the thread tables.])
-                         fi
-                       ]
-)
-
-
 if test "$ac_cv_func_gethostbyname" = no; then
        AC_CHECK_LIB(nsl, gethostbyname)
 fi
@@ -476,14 +499,6 @@ test "$enable_chkpwd" != no && LIBS=$save_LIBS
                fi
        fi
 
-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])
-       AC_SEARCH_LIBS(initscr, [curses])
-fi
 AC_CHECK_FUNCS(vw_printw wcolor_set resizeterm wresize)
 
 dnl Check for libpthread(s) if we're not using Digital UNIX or FreeBSD. (On
@@ -550,6 +565,58 @@ AC_CHECK_HEADER(libcitadel.h,
 CFLAGS="$saved_CFLAGS"
 
 
+AC_CHECK_LIB(cares, ares_parse_mx_reply,
+            [
+                    C_ARES_LIBS=-lcares
+                   AC_DEFINE(HAVE_C_ARES, 1, [Define to use c-ares library])
+                    have_good_c_ares=yes
+            ],, $SOCKET_LIBS $NSL_LIBS
+)
+
+
+
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $SERVER_LIBS"
+dnl Check for c-ares
+AC_CHECK_HEADER(ares.h,
+       [AC_CHECK_LIB(cares, ares_parse_mx_reply,
+               [
+                       LIBS="-lcares $LIBS $SERVER_LIBS"
+               ],
+               [
+                       AC_MSG_ERROR(libc-ares was not found or is not usable.  Please install libc-ares.)
+               ]
+       )],
+       [
+               AC_MSG_ERROR(ares.h was not found or is not usable.  Please install libc-ares.)
+       ]
+)
+CFLAGS="$saved_CFLAGS"
+
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $SERVER_LIBS"
+dnl Check for libev
+AC_CHECK_HEADER(ev.h,
+       [AC_TRY_COMPILE([#include <math.h>
+#include <ev.h>], 
+                         [
+                        ev_cleanup abort_by_shutdown;
+                        struct ev_loop *event_base;
+                        ev_cleanup_start(event_base, &abort_by_shutdown);
+                       ],
+                       [
+                       LIBS="-lev -lm $LIBS $SERVER_LIBS"
+                       ],
+               [
+                       AC_MSG_ERROR(libev was not found or is not usable.  Please install libev.)
+               ])
+       ],
+       [
+               AC_MSG_ERROR(ev.h was not found or is not usable.  Please install libev.)
+       ]
+)
+CFLAGS="$saved_CFLAGS"
+
 
 # The big search for OpenSSL
 if test "$with_ssl" != "no"; then
@@ -693,7 +760,7 @@ fi
 dnl Checks for the OpenLDAP client library.
 if test "x$with_ldap" != xno ; then
        AC_CHECK_HEADERS(ldap.h,
-               [AC_CHECK_LIB(ldap, ldap_init,
+               [AC_CHECK_LIB(ldap, ldap_initialize,
                        [ok_ldap=yes],,
        )])
 fi
@@ -707,6 +774,7 @@ fi
 
 
 
+
 dnl Checks for the libdspam mail spam scanning library.
 dnl if test "x$with_libdspam" != xno ; then
 dnl    AC_CHECK_HEADERS(dspam/libdspam.h,
@@ -778,15 +846,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 malloc.h termios.h sys/ioctl.h sys/select.h sys/stat.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
-dnl conflicts with the system's headers (eg solaris xpg4 style headers)
-dnl
-if test "x$with_ncurses" != xno; then
-       AC_CHECK_HEADERS(ncurses.h,,,[ ])
-fi
+AC_CHECK_HEADERS(dl.h fcntl.h limits.h malloc.h termios.h sys/ioctl.h sys/select.h sys/stat.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 syscall.h sys/syscall.h)
 
 AC_CHECK_HEADER(resolv.h,AC_DEFINE(HAVE_RESOLV_H, [], [define this if you have the resolv.h header file.]),,
 [#ifdef HAVE_SYS_TYPES_H
@@ -928,14 +988,9 @@ 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"
-       if test "x$enable_threaded_client" != xno; then
-               AC_DEFINE(THREADED_CLIENT, [], [define this if you want to enable the multithreaded client])
-       fi
+       test "$DATABASE" && TARGETS="server utils"
 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
@@ -978,10 +1033,7 @@ AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
 
 STRUCT_UCRED
 
-
-
 dnl Done! Now write the Makefile and sysdep.h
-AC_SUBST(AUTH)
 AC_SUBST(RESOLV)
 AC_SUBST(chkpwd_LIBS)
 AC_SUBST(TARGETS)
@@ -989,8 +1041,10 @@ AC_SUBST(DATABASE)
 AC_SUBST(SERVER_LDFLAGS)
 AC_SUBST(SERVER_LIBS)
 AC_SUBST(SETUP_LIBS)
+AC_SUBST(DIFF)
+AC_SUBST(PATCH)
 AC_CONFIG_FILES([Makefile])
-AC_OUTPUT(database_cleanup.sh)
+AC_OUTPUT(database_cleanup.sh po/citadel-setup/Makefile)
 
 if test -z "$DATABASE"; then
        AC_MSG_WARN([No database driver was found. Please install Berkeley DB.])
@@ -999,10 +1053,14 @@ fi
 abs_srcdir="`cd $srcdir && pwd`"
 abs_builddir="`pwd`"
 if test "$abs_srcdir" != "$abs_builddir"; then
-   ln -s $abs_srcdir/include $abs_builddir
-   ln -s $abs_srcdir/Make_sources $abs_builddir
-   ln -s $abs_srcdir/Make_modules $abs_builddir
-   ln -s $abs_srcdir/*.h $abs_builddir
+   ln -sf $abs_srcdir/include $abs_builddir
+   ln -sf $abs_srcdir/Make_sources $abs_builddir
+   ln -sf $abs_srcdir/Make_modules $abs_builddir
+   for i in $abs_srcdir/*.h ; do
+      if test "$abs_srcdir/sysdep.h" != "$i"; then
+         ln -sf $i $abs_builddir
+      fi
+   done
    for d in `/bin/ls $abs_srcdir/modules/`; do 
        (mkdir -p $abs_builddir/modules/$d) 
    done
@@ -1013,7 +1071,6 @@ if test "$abs_srcdir" != "$abs_builddir"; then
    fi
    mkdir -p $abs_builddir/utils
    mkdir -p $abs_builddir/utillib
-   mkdir -p $abs_builddir/textclient
 fi
 
 if test -n "$srcdir"; then 
@@ -1024,6 +1081,7 @@ fi
 echo ------------------------------------------------------------------------
 echo 'LDAP support:                    ' $ok_ldap
 echo 'Character set conversion support:' $ok_iconv
+echo 'Boehm-Demers-Weiser support:     ' $ok_gc
 dnl echo 'DSpam Scanning support:          ' $ok_libdspam
 echo 
 echo 'Note: if you are not using Linux, make sure you are using GNU make'