dnl Process this file with autoconf to produce a configure script.
dnl $Id$
AC_PREREQ(2.52)
-AC_INIT([Citadel], [7.35], [http://www.citadel.org/])
+AC_INIT([Citadel], [7.84], [http://www.citadel.org/])
AC_REVISION([$Revision: 5108 $])
AC_CONFIG_SRCDIR([citserver.c])
+AC_CONFIG_HEADER(sysdep.h)
+AC_CONFIG_MACRO_DIR([m4])
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])
]
)
-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 the Configdir
+AC_ARG_WITH(autosysconfdir,
+ [ --with-autosysconfdir directory to store the automaticaly maintained configs under],
+ [ if test "x$withval" != "xno" ; then
+ AC_DEFINE(HAVE_AUTO_ETC_DIR, [], [should we search our automatic config in an alternate place?])
+ AC_DEFINE_UNQUOTED(AUTO_ETC_DIR, "$withval", [where to search our automatic config files])
+ MAKE_AUTO_ETC_DIR=$withval
+ AC_SUBST(MAKE_AUTO_ETC_DIR)
+ fi
+ ]
+)
+
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
+ 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],
)
fi
if test "$ok_iconv" != "no"; then
- AC_MSG_RESULT(WebCit will be built with character set conversion.)
+ 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(WebCit will be built without character set conversion.)
+ AC_MSG_RESULT(Citadel will be built without character set conversion.)
fi
AC_CHECK_LIB(intl, libintl_bindtextdomain, [LDFLAGS="$LDFLAGS -lintl"])
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_libdspam, [ --with-libdspam use libdspam mail spam scanning 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"
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 flock getpwnam_r getpwuid_r getloadavg)
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
dnl We currently support PAM, standard getpwnam(), and getspnam()
dnl (Linux shadow passwords)
- if test "$with_pam" = yes; then
- save_LIBS=$LIBS
- AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
- LIBS="-lpam $LIBS"])
- AC_CHECK_FUNCS(pam_start)
- test "$enable_chkpwd" != no && LIBS=$save_LIBS
- fi
+save_LIBS=$LIBS
+AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
+ LIBS="-lpam $LIBS"])
+AC_CHECK_FUNCS(pam_start)
+test "$enable_chkpwd" != no && LIBS=$save_LIBS
if test "$ac_cv_func_pam_start" = no -o "$with_pam" != yes; then
save_LIBS=$LIBS
AC_SEARCH_LIBS(getspnam, shadow, [
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,
[
- LIBS="-lcitadel $LIBS"
+ LIBS="-lcitadel $LIBS $SERVER_LIBS"
+ chkpwd_LIBS="-lcitadel $chkpwd_LIBS"
],
[
AC_MSG_ERROR(libcitadel was not found or is not usable. Please install libcitadel.)
]
)
+CFLAGS="$saved_CFLAGS"
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 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],,
+dnl Checks for the Boehm-Demers-Weiser garbage collection library.
+if test "x$with_gc" != xno ; then
+ AC_CHECK_HEADERS(gc/gc_local_alloc.h,
+ [AC_CHECK_LIB(gc, GC_init,
+ [ok_gc=yes],,
)])
fi
-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])
+if test "x$ok_gc" = xyes ; then
+ SERVER_LIBS="-lgc $SERVER_LIBS"
+ AC_DEFINE(HAVE_GC, [], [define this if you have Boehm-Demers-Weiser available])
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,
+dnl [AC_CHECK_LIB(dspam, dspam_init,
+dnl [ok_libdspam=yes],,
+dnl )])
+dnl fi
+dnl
+dnl if test "x$ok_libdspam" = xyes ; then
+dnl SERVER_LIBS="-ldspam $SERVER_LIBS"
+dnl AC_DEFINE(HAVE_LIBDSPAM, [], [(unfinished) define this if you have the libdspam mail spam scanning library available])
+dnl fi
+
+
+
dnl Checks for the Expat XML parser.
AC_CHECK_HEADER(expat.h,
[AC_CHECK_LIB(expat, XML_ParserCreateNS,
-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)
- ]
-)
-
-
-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)
- ]
-)
-
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)
+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 syscall.h sys/syscall.h)
dnl
dnl need to check if this is actually compilable, sometimes there are
esac
])
+
+STRUCT_UCRED
+
+
+
dnl Done! Now write the Makefile and sysdep.h
AC_SUBST(AUTH)
AC_SUBST(RESOLV)
AC_SUBST(SERVER_LDFLAGS)
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
+abs_srcdir="`cd $srcdir && pwd`"
+abs_builddir="`pwd`"
+if test "$abs_srcdir" != "$abs_builddir"; then
+ 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
+ if test -d "$abs_srcdir/user_modules/"; then
+ for d in `/bin/ls $abs_srcdir/user_modules/`; do
+ (mkdir -p $abs_builddir/user_modules/$d)
+ done
+ fi
+ mkdir -p $abs_builddir/utils
+ mkdir -p $abs_builddir/utillib
+ mkdir -p $abs_builddir/textclient
+fi
+
+if test -n "$srcdir"; then
+ export srcdir=.
+fi
+
+
echo ------------------------------------------------------------------------
-echo 'zlib compression: ' $ok_zlib
echo 'LDAP support: ' $ok_ldap
echo 'Character set conversion support:' $ok_iconv
-echo 'DSpam Scanning support: ' $ok_libdspam
+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'
echo '(gmake) to compile Citadel.'