X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fconfigure.ac;h=5d1a2390027aa5320d8478a38fedefe2d2e905f1;hb=e20db6b41132b52fdc82bcbcd5a5ec7ef8bdff79;hp=31c333bb5c43d89f8b24b98b156d3d37de0eda91;hpb=fa9e0c74acf34bd8b9792e9fb953109ccfc35512;p=citadel.git diff --git a/citadel/configure.ac b/citadel/configure.ac index 31c333bb5..5d1a23900 100644 --- a/citadel/configure.ac +++ b/citadel/configure.ac @@ -1,7 +1,7 @@ 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.38], [http://www.citadel.org/]) AC_REVISION([$Revision: 5108 $]) AC_CONFIG_SRCDIR([citserver.c]) AC_PREFIX_DEFAULT(/usr/local/citadel) @@ -13,7 +13,6 @@ else ssl_dir="$prefix/keys" fi - dnl Make sure we see all GNU and Solaris extensions. AC_GNU_SOURCE @@ -30,7 +29,20 @@ AC_ARG_WITH(datadir, ] ) -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 @@ -47,7 +59,7 @@ dnl Checks for the SSLdir 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" @@ -85,7 +97,7 @@ AC_ARG_WITH(sysconfdir, 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]) @@ -130,6 +142,65 @@ AC_ARG_WITH(docdir, ) +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 + 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 + 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]) @@ -138,7 +209,7 @@ AC_ARG_ENABLE(pie, [ --enable-pie build position-independent executa 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 ], [ @@ -151,10 +222,7 @@ 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" @@ -289,9 +357,9 @@ AC_SUBST(DEPEND_FLAG) 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. @@ -313,7 +381,7 @@ AC_CHECK_FUNCS(crypt gethostbyname connect flock getpwnam_r getpwuid_r) 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 " @@ -325,7 +393,7 @@ AC_ARG_WITH(backtrace, 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 " @@ -336,7 +404,7 @@ AC_ARG_WITH(gprof, 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 @@ -400,12 +468,59 @@ fi test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include" +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 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" ], [ AC_MSG_ERROR(libcitadel was not found or is not usable. Please install libcitadel.) @@ -417,6 +532,7 @@ AC_CHECK_HEADER(libcitadel.h, ] ) +CFLAGS="$saved_CFLAGS" @@ -548,7 +664,7 @@ if test "x$with_db" != xno; then 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 @@ -556,19 +672,6 @@ if test "x$with_db" != xno; 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 - @@ -589,20 +692,6 @@ 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, @@ -613,61 +702,54 @@ 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]) + 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 -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) + ] +) + + + + + + @@ -754,6 +836,9 @@ 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, @@ -885,6 +970,7 @@ 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) @@ -895,11 +981,9 @@ 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.'