dnl Process this file with autoconf to produce a configure script.
-dnl $Id$
AC_PREREQ(2.52)
-AC_INIT([Citadel], [7.37], [http://www.citadel.org/])
+AC_INIT([Citadel], [7.89], [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])
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.
]
)
-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 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],
]
)
+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.
+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,
)
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"])
fi
]
)
-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 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])
;;
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)
+
+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,
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, [
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
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"
+
+
+dnl experimental libevent smtp client remove this to...
+AC_ARG_WITH(experimental_eventsmtp,
+ [ --with-experimental_eventsmtp enable experimental event smtp clients],
+ [ if test "x$withval" != "xno" ; then
+ CFLAGS="$CFLAGS -rdynamic "
+ LDFLAGS="$LDFLAGS -rdynamic "
+ SERVER_LDFLAGS="$SERVER_LDFLAGS -rdynamic "
+AC_DEFINE(EXPERIMENTAL_SMTP_EVENT_CLIENT, [], [should we use the experimental libevent smtp client?])
+dnl here...
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $SERVER_LIBS"
+dnl Check for libevent
+AC_CHECK_HEADER(event.h,
+ [AC_CHECK_LIB(event, libcitadel_version_string,
+ [
+ LIBS="-levent $LIBS $SERVER_LIBS"
+ ],
+ [
+ AC_MSG_ERROR(libevent was not found or is not usable. Please install libevent.)
+ ]
+ ,
+ )],
+ [
+ AC_MSG_ERROR(event.h was not found or is not usable. Please install libevent.)
+ ]
+)
+CFLAGS="$saved_CFLAGS"
+dnl and from here to...
+ fi
+ ]
+)
+dnl here to make it final.
# The big search for OpenSSL
if test "$with_ssl" != "no"; then
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(libical/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(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)
- ]
-)
-
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
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)
-
+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.])
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.'