dnl Process this file with autoconf to produce a configure script.
dnl $Id$
AC_PREREQ(2.52)
-AC_INIT([Citadel], [7.11], [http://www.citadel.org/])
+AC_INIT([Citadel], [7.33], [http://www.citadel.org/])
AC_REVISION([$Revision: 5108 $])
AC_CONFIG_SRCDIR([citserver.c])
AC_PREFIX_DEFAULT(/usr/local/citadel)
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_libsieve, [ --with-libsieve use libsieve mail sorting library])
+AC_ARG_WITH(with_libdspam, [ --with-libdspam use libdspam mail spam scanning library])
if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
db_dir="$with_db"
fi
fi
-echo $CC snaothus---------------------
-AC_MSG_CHECKING([how to compile with POSIX threads])
+AC_MSG_CHECKING([how to create dependancy checks])
if test -n "`$CC -V 2>&1 |grep Sun`"; then
DEPEND_FLAG=-xM;
else
fi
AC_SUBST(DEPEND_FLAG)
+
AC_PROG_INSTALL
AC_PROG_YACC
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+dnl missing_dir=`cd $ac_aux_dir && pwd`
+dnl AC_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+dnl AC_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
dnl Checks for system services.
AC_CHECK_SIZEOF(short, 0)
AC_CHECK_SIZEOF(int, 0)
AC_CHECK_SIZEOF(long, 0)
+AC_CHECK_SIZEOF(size_t, 0)
dnl AC_CHECK_SIZEOF(long long, 0)
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)
+AC_CHECK_FUNCS(crypt gethostbyname connect flock getpwnam_r getpwuid_r)
dnl disable backtrace if we don't want it.
]
)
+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
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
AC_SEARCH_LIBS(tgetent, [ncurses curses termcap])
AC_SEARCH_LIBS(scrollok, [ncurses curses])
test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
+
+dnl Check for libcitadel
+AC_CHECK_HEADER(libcitadel.h,
+ [AC_CHECK_LIB(citadel, libcitadel_version_string,
+ [
+ LIBS="-lcitadel $LIBS"
+ ],
+ [
+ AC_MSG_ERROR(libcitadel was not found or is not usable. Please install libcitadel.)
+ ]
+ ,
+ )],
+ [
+ AC_MSG_ERROR(libcitadel.h was not found or is not usable. Please install libcitadel.)
+ ]
+)
+
+
+
+
# The big search for OpenSSL
if test "$with_ssl" != "no"; then
saved_LIBS="$LIBS"
-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],,
+dnl Checks for the libdspam mail spam scanning library.
+if test "x$with_libdspam" != xno ; then
+ AC_CHECK_HEADERS(dspam/libdspam.h,
+ [AC_CHECK_LIB(dspam, dspam_init,
+ [ok_libdspam=yes],,
)])
fi
-if test "x$ok_libsieve" = xyes ; then
- SERVER_LIBS="-lsieve $SERVER_LIBS"
- AC_DEFINE(HAVE_LIBSIEVE, [], [define this if you have the libsieve mailbox filtering library available])
+if test "x$ok_libdspam" = xyes ; then
+ SERVER_LIBS="-ldspam $SERVER_LIBS"
+ AC_DEFINE(HAVE_LIBDSPAM, [], [define this if you have the libdspam mail spam scanning library available])
fi
+dnl Checks for the Expat XML parser.
+AC_CHECK_HEADER(expat.h,
+ [AC_CHECK_LIB(expat, XML_ParserCreateNS,
+ [
+ SERVER_LIBS="-lexpat $SERVER_LIBS"
+ ],
+ [
+ AC_MSG_ERROR(The Expat XML parser was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+ ,
+ )],
+ [
+ AC_MSG_ERROR(expat.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+)
-dnl Checks for the libical calendaring library.
-if test "x$with_libical" != xno ; then
- AC_CHECK_HEADERS(ical.h,
- [AC_CHECK_LIB(ical, icalcomponent_new,
- [ok_libical=yes],,
- )])
-fi
-if test "x$ok_libical" = xyes ; then
+dnl Checks for the libical iCalendar library.
+AC_CHECK_HEADER(ical.h,
+ [AC_CHECK_LIB(ical, icalcomponent_new,
+ [
+ SERVER_LIBS="-lical $SERVER_LIBS"
+ ],
+ [
+ AC_MSG_ERROR(libical was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+ ,
+ )],
+ [
+ AC_MSG_ERROR(ical.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+)
+
- AC_TRY_RUN(
+dnl Checks for the libsieve mailbox sorting library.
+AC_CHECK_HEADER(sieve2.h,
+ [AC_CHECK_LIB(sieve, sieve2_license,
[
-#include <ical.h>
-main() {
- 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");
- printf("Citadel will be built without calendar support.\n");
- return(1);
-}
- ],
+ SERVER_LIBS="-lsieve $SERVER_LIBS"
+ ],
[
- SERVER_LIBS="-lical $SERVER_LIBS"
- AC_DEFINE(HAVE_LIBICAL, [], [define this if you have the libical calendaring library available])
+ AC_MSG_ERROR(libsieve was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
]
- )
-fi
+ ,
+ )],
+ [
+ AC_MSG_ERROR(sieve2.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+)
AC_DEFINE(F_XPID_T, "%x", [whats the matching format string for xpid_t?])
fi
-dnl AC_CHECK_FUNCS(res_query)
-AC_CACHE_CHECK([for the resolver calls],
- ac_cv_resquery_ok,
-[AC_TRY_COMPILE([#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>],
- [
- char *domain="www.google.com";
- u_char *answer;
- int len;
- len = res_query( domain, C_IN, T_A, answer, PACKETSZ );
- ],
- ac_cv_resquery_ok=yes,
- ac_cv_resquery_ok=no)
-])
-echo "resquery: $ac_cv_resquery_ok"
-dnl if test "$ac_cv_resquery_ok" = "no" ; then
-dnl AC_DEFINE(RES_QUERY_GONE, "#error resquery not here. can't continue.")
-dnl fi
+dnl Our own happy little check for the resolver library.
+
+case "`uname -a`" in
+ OpenBSD*)
+ echo "we don't need to check for resolv on openbsd"
+ ;;
+ FreeBSD*)
+ echo "we don't need to check for resolv on freeBSD"
+ ;;
+ *)
+ test -f /usr/local/lib/libresolv.a && LDFLAGS="$LDFLAGS -L/usr/local/lib"
+ AC_CHECK_LIB(resolv, res_query,
+ RESOLV="$RESOLV -lresolv",
+ [dnl Have to include resolv.h as res_query is sometimes defined as a macro
+ AC_MSG_CHECKING([for res_query in -lresolv (with resolv.h if present)])
+ saved_libs="$LIBS"
+ LIBS="-lresolv $LIBS"
+ AC_TRY_LINK([
+ #ifdef HAVE_RESOLV_H
+ #include <resolv.h>
+ #endif],
+ [res_query(0,0,0,0,0)],
+ [AC_MSG_RESULT(yes)
+ have_res_query=yes],
+ [AC_MSG_RESULT(no)
+ AC_MSG_ERROR(libresolv was not found. Citadel requires the resolver library.)
+ ])
+ ]
+ )
+ ;;
+esac
AC_SUBST(SERVER_LIBS)
AC_SUBST(SETUP_LIBS)
AC_CONFIG_HEADER(sysdep.h)
+./mk_module_init.sh
AC_CONFIG_FILES([Makefile])
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 'zlib compression: ' $ok_zlib
-echo 'Calendar support: ' $ok_libical
echo 'LDAP support: ' $ok_ldap
-echo 'Sieve mailbox filtering support: ' $ok_libsieve
+echo 'DSpam Scanning support: ' $ok_libdspam
echo
echo 'Note: if you are not using Linux, make sure you are using GNU make'
echo '(gmake) to compile Citadel.'