dnl Process this file with autoconf to produce a configure script.
-dnl $Id$
AC_PREREQ(2.52)
-AC_INIT([Citadel], [7.44], [http://www.citadel.org/])
+AC_INIT([Citadel], [8.10], [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 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,
fi
]
)
-AC_ARG_WITH(ncurses, [ --without-ncurses don't use ncurses])
-
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])
;;
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
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)
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 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
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
[AC_CHECK_LIB(citadel, libcitadel_version_string,
[
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_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
-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_libdspam" = xyes ; then
- SERVER_LIBS="-ldspam $SERVER_LIBS"
- AC_DEFINE(HAVE_LIBDSPAM, [], [(unfinished) define this if you have the libdspam mail spam scanning library 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 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(chkpwd_LIBS)
AC_SUBST(TARGETS)
AC_SUBST(SERVER_LDFLAGS)
AC_SUBST(SERVER_LIBS)
AC_SUBST(SETUP_LIBS)
-AC_CONFIG_HEADER(sysdep.h)
-./mk_module_init.sh
+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.])
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 '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.'