dnl Process this file with autoconf to produce a configure script.
dnl $Id$
AC_PREREQ(2.52)
-AC_INIT([Citadel], [7.24], [http://www.citadel.org/])
+AC_INIT([Citadel], [7.41], [http://www.citadel.org/])
AC_REVISION([$Revision: 5108 $])
AC_CONFIG_SRCDIR([citserver.c])
AC_PREFIX_DEFAULT(/usr/local/citadel)
ssl_dir="$prefix/keys"
fi
-
dnl Make sure we see all GNU and Solaris extensions.
AC_GNU_SOURCE
]
)
-dnl Checks for the Datadir
+
+dnl Checks for the helpDatadir
+AC_ARG_WITH(helpdir,
+ [ --with-helpdir directory to store the helpfiles under],
+ [ if test "x$withval" != "xno" ; then
+ AC_DEFINE(HAVE_HELP_DIR,[],[use alternate database location?])
+ AC_DEFINE_UNQUOTED(HELP_DIR, "$withval",[define, if the user suplied a helpfile-directory to use.])
+ MAKE_HELP_DIR=$withval
+ AC_SUBST(MAKE_HELP_DIR)
+ fi
+ ]
+)
+
+dnl Checks for the Static Datadir
AC_ARG_WITH(staticdatadir,
[ --with-staticdatadir directory to store citadels system messages under],
[ if test "x$withval" != "xno" ; then
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],
+ [ --with-ssldir directory to store the ssl certificates under],
[ if test "x$withval" != "xno" ; then
ssl_dir="$withval"
dnl Checks for where to put our utilities
AC_ARG_WITH(utility-bindir,
- [ --with-utility-bindir directory where to find helper binaries],
+ [ --with-utility-bindir directory where to find helper binaries],
[ if test "x$withval" != "xno" ; then
AC_DEFINE(HAVE_UTILBIN_DIR,[],[should we put our helper binaries to another location?])
AC_DEFINE_UNQUOTED(UTILBIN_DIR, "$withval", [were to put our helper programs])
)
+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 Here is the check for a libc integrated iconv
+AC_ARG_ENABLE(iconv,
+ [ --disable-iconv do not use iconv charset conversion],
+ ok_iconv=no, ok_iconv=yes)
+
+AC_MSG_CHECKING(Checking to see if your system supports iconv)
+AC_TRY_RUN([
+ #include <iconv.h>
+ main() {
+ iconv_t ic = (iconv_t)(-1) ;
+ ic = iconv_open("UTF-8", "us-ascii");
+ iconv_close(ic);
+ exit(0);
+ }
+ ],
+ [
+ ok_iconv=yes
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ ok_iconv=no
+ AC_MSG_RESULT([no])
+ ]
+)
+
+dnl Check for iconv in external libiconv
+if test "$ok_iconv" = no; then
+ AC_MSG_CHECKING(Checking for an external libiconv)
+ OLD_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -liconv"
+ AC_TRY_RUN([
+ #include <iconv.h>
+ main() {
+ iconv_t ic = (iconv_t)(-1) ;
+ ic = iconv_open("UTF-8", "us-ascii");
+ iconv_close(ic);
+ }
+ ],
+ [
+ ok_iconv=yes
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ ok_iconv=no
+ LDFLAGS="$OLD_LDFLAGS"
+ AC_MSG_RESULT([no])
+ ]
+ )
+fi
+if test "$ok_iconv" != "no"; then
+ AC_MSG_RESULT(Citadel will be built with character set conversion.)
+ AC_DEFINE(HAVE_ICONV,[],[whether we have iconv for charset conversion])
+else
+ AC_MSG_RESULT(Citadel will be built without character set conversion.)
+fi
+
+AC_CHECK_LIB(intl, libintl_bindtextdomain, [LDFLAGS="$LDFLAGS -lintl"])
+
+
AC_ARG_ENABLE(threaded-client, [ --disable-threaded-client
disable multithreaded 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(db, [ --with-db@<:@=DIR@:>@ use Sleepycat DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
+AC_ARG_WITH(db, [ --with-db@<:@=DIR@:>@ use Berkeley DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
AC_ARG_WITH(ssl,
[ --with-ssl=PATH Specify path to OpenSSL installation ],
[
)
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_libsieve, [ --with-libsieve use libsieve mail sorting library])
AC_ARG_WITH(with_libdspam, [ --with-libdspam use libdspam mail spam scanning library])
-AC_ARG_WITH(with_expat, [ --with-expat use Expat XML parser])
if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
db_dir="$with_db"
AC_PROG_INSTALL
AC_PROG_YACC
-dnl missing_dir=`cd $ac_aux_dir && pwd`
-dnl AC_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-dnl AC_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+missing_dir=`cd $ac_aux_dir && pwd`
+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
dnl Checks for system services.
dnl disable backtrace if we don't want it.
AC_ARG_WITH(backtrace,
- [ --with-backtrace enable backtrace dumps in the syslog],
+ [ --with-backtrace enable backtrace dumps in the syslog],
[ if test "x$withval" != "xno" ; then
CFLAGS="$CFLAGS -rdynamic "
LDFLAGS="$LDFLAGS -rdynamic "
dnl disable backtrace if we don't want it.
AC_ARG_WITH(gprof,
- [ --with-gprof enable profiling],
+ [ --with-gprof enable profiling],
[ if test "x$withval" != "xno" ; then
CFLAGS="$CFLAGS -pg "
LDFLAGS="$LDFLAGS -pg "
dnl disable thread table reporting
AC_ARG_WITH(threadlog,
- [ --with-threadlog enable logging of thread table],
+ [ --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
test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
+dnl Checks for the libical iCalendar library.
+AC_CHECK_HEADER(libical/ical.h,
+ [AC_CHECK_LIB(ical, icaltimezone_set_tzid_prefix,
+ [
+ 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(libical/ical.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+)
+
+dnl Checks for the libsieve mailbox sorting library.
+AC_CHECK_HEADER(sieve2.h,
+ [AC_CHECK_LIB(sieve, sieve2_license,
+ [
+ SERVER_LIBS="-lsieve $SERVER_LIBS"
+ ],
+ [
+ AC_MSG_ERROR(libsieve was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+ ,
+ )],
+ [
+ AC_MSG_ERROR(sieve2.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+)
+
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $SERVER_LIBS"
dnl Check for libcitadel
AC_CHECK_HEADER(libcitadel.h,
[AC_CHECK_LIB(citadel, libcitadel_version_string,
[
- AC_MSG_RESULT(OK)
- LIBS="-lcitadel $LIBS"
+ LIBS="-lcitadel $LIBS $SERVER_LIBS"
],
[
AC_MSG_ERROR(libcitadel was not found or is not usable. Please install libcitadel.)
]
)
+CFLAGS="$saved_CFLAGS"
+
# The big search for OpenSSL
AC_CHECK_DB([db db-4.1 db-4 db4],
[
- DATABASE=database_sleepycat.c
+ DATABASE=database.c
],
AC_MSG_ERROR([[Can not locate a suitable Berkeley DB
library. Use --with-db=PATH to specify
fi
-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
- SERVER_LIBS="-lz $SERVER_LIBS"
- AC_DEFINE(HAVE_ZLIB, [], [define this if you have zlib compression available])
-fi
-
-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_libsieve" = xyes ; then
- SERVER_LIBS="-lsieve $SERVER_LIBS"
- AC_DEFINE(HAVE_LIBSIEVE, [], [define this if you have the libsieve mailbox filtering library available])
-fi
-
-
dnl Checks for the libdspam mail spam scanning library.
if test "x$with_libdspam" != xno ; then
AC_CHECK_HEADERS(dspam/libdspam.h,
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])
+ AC_DEFINE(HAVE_LIBDSPAM, [], [(unfinished) define this if you have the libdspam mail spam scanning library available])
fi
-
dnl Checks for the Expat XML parser.
-if test "x$with_expat" != xno ; then
- AC_CHECK_HEADERS(expat.h,
- [AC_CHECK_LIB(expat, XML_ParserCreateNS,
- [ok_expat=yes],,
- )])
-fi
+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)
+ ]
+)
-if test "x$ok_expat" = xyes ; then
- SERVER_LIBS="-lexpat $SERVER_LIBS"
- AC_DEFINE(HAVE_EXPAT, [], [define this if you have the Expat XML parser available])
-fi
-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
- AC_TRY_RUN(
+dnl Checks for libcurl.
+AC_CHECK_HEADER(curl/curl.h,
+ [AC_CHECK_LIB(curl, curl_version,
[
-#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="-lcurl $SERVER_LIBS"
+ ],
[
- SERVER_LIBS="-lical $SERVER_LIBS"
- AC_DEFINE(HAVE_LIBICAL, [], [define this if you have the libical calendaring library available])
+ AC_MSG_ERROR(libcurl was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
]
- )
-fi
+ ,
+ )],
+ [
+ AC_MSG_ERROR(curl/curl.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
+ ]
+)
+
+
+
+
+
+
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,
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 'Character set conversion support:' $ok_iconv
echo 'DSpam Scanning support: ' $ok_libdspam
-echo 'Expat XML parser present: ' $ok_expat
echo
echo 'Note: if you are not using Linux, make sure you are using GNU make'
echo '(gmake) to compile Citadel.'