Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
# Evolution-Data-Server version */
m4_define([eds_major_version], [2])
m4_define([eds_minor_version], [23])
m4_define([eds_micro_version], [90])
m4_define([eds_version],
[eds_major_version.eds_minor_version.eds_micro_version])
AC_INIT(evolution-data-server, [eds_version])
AC_CONFIG_SRCDIR(README)
# Gross hack to enable 'make dist' on automake 1.9+tar 1.14.
# The extra brackets are to foil regex-based scans.
m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
AM_CONFIG_HEADER(config.h)
# Required Package Versions
m4_define([glib_minimum_version], [2.16.1])
m4_define([gtk_minimum_version], [2.10.0])
m4_define([ORBit_minimum_version], [2.9.8])
m4_define([libbonobo_minimum_version], [2.20.3])
m4_define([gconf_minimum_version], [2.0.0]) # XXX Just a Guess
m4_define([libglade_minimum_version], [2.0.0]) # XXX Just a Guess
m4_define([libgnome_minimum_version], [2.0.0]) # XXX Just a Guess
m4_define([libxml_minimum_version], [2.0.0]) # XXX Just a Guess
m4_define([libsoup_minimum_version], [2.3.0])
m4_define([gnome_keyring_minimum_version], [2.20.1])
m4_define([sqlite_minimum_version], [3.5])
dnl *************************************************************************************************
dnl Base Version
dnl
dnl This is for api/versioning tracking for things like bonobo .server files
dnl
dnl This should always be the major/minor of the stable version or stable version to be
dnl *************************************************************************************************
BASE_VERSION=2.24
API_VERSION=1.2
AC_SUBST(BASE_VERSION)
AC_SUBST(API_VERSION)
AC_DEFINE_UNQUOTED(BASE_VERSION, "$BASE_VERSION", [Base version (Major.Minor)])
AC_DEFINE_UNQUOTED(API_VERSION, "$API_VERSION", [Api version (Major.Minor)])
EDS_MAJOR_VERSION=eds_major_version
EDS_MINOR_VERSION=eds_minor_version
EDS_MICRO_VERSION=eds_micro_version
# Libtool versioning
LIBEDATASERVER_CURRENT=11
LIBEDATASERVER_REVISION=0
LIBEDATASERVER_AGE=0
LIBEDATASERVERUI_CURRENT=9
LIBEDATASERVERUI_REVISION=0
LIBEDATASERVERUI_AGE=1
LIBECAL_CURRENT=9
LIBECAL_REVISION=1
LIBECAL_AGE=2
LIBEDATACAL_CURRENT=6
LIBEDATACAL_REVISION=2
LIBEDATACAL_AGE=0
LIBEDATABOOK_CURRENT=6
LIBEDATABOOK_REVISION=1
LIBEDATABOOK_AGE=4
LIBEBOOK_CURRENT=10
LIBEBOOK_REVISION=2
LIBEBOOK_AGE=1
LIBEGROUPWISE_CURRENT=13
LIBEGROUPWISE_REVISION=1
LIBEGROUPWISE_AGE=0
LIBCAMEL_CURRENT=13
LIBCAMEL_REVISION=0
LIBCAMEL_AGE=0
LIBEXCHANGE_STORAGE_CURRENT=3
LIBEXCHANGE_STORAGE_REVISION=0
LIBEXCHANGE_STORAGE_AGE=0
LIBGDATA_CURRENT=1
LIBGDATA_REVISION=0
LIBGDATA_AGE=0
LIBGDATA_GOOGLE_CURRENT=1
LIBGDATA_GOOGLE_REVISION=0
LIBGDATA_GOOGLE_AGE=0
LIBEBACKEND_CURRENT=0
LIBEBACKEND_REVISION=0
LIBEBACKEND_AGE=0
AC_SUBST(EDS_MAJOR_VERSION)
AC_SUBST(EDS_MINOR_VERSION)
AC_SUBST(EDS_MICRO_VERSION)
AC_SUBST(LIBEDATASERVER_CURRENT)
AC_SUBST(LIBEDATASERVER_REVISION)
AC_SUBST(LIBEDATASERVER_AGE)
AC_SUBST(LIBEDATASERVERUI_CURRENT)
AC_SUBST(LIBEDATASERVERUI_REVISION)
AC_SUBST(LIBEDATASERVERUI_AGE)
AC_SUBST(LIBECAL_CURRENT)
AC_SUBST(LIBECAL_REVISION)
AC_SUBST(LIBECAL_AGE)
AC_SUBST(LIBEDATACAL_CURRENT)
AC_SUBST(LIBEDATACAL_REVISION)
AC_SUBST(LIBEDATACAL_AGE)
AC_SUBST(LIBEBOOK_CURRENT)
AC_SUBST(LIBEBOOK_REVISION)
AC_SUBST(LIBEBOOK_AGE)
AC_SUBST(LIBEDATABOOK_CURRENT)
AC_SUBST(LIBEDATABOOK_REVISION)
AC_SUBST(LIBEDATABOOK_AGE)
AC_SUBST(LIBEGROUPWISE_CURRENT)
AC_SUBST(LIBEGROUPWISE_REVISION)
AC_SUBST(LIBEGROUPWISE_AGE)
AC_SUBST(LIBCAMEL_CURRENT)
AC_SUBST(LIBCAMEL_REVISION)
AC_SUBST(LIBCAMEL_AGE)
AC_SUBST(LIBEXCHANGE_STORAGE_CURRENT)
AC_SUBST(LIBEXCHANGE_STORAGE_REVISION)
AC_SUBST(LIBEXCHANGE_STORAGE_AGE)
AC_SUBST(LIBGDATA_CURRENT)
AC_SUBST(LIBGDATA_REVISION)
AC_SUBST(LIBGDATA_AGE)
AC_SUBST(LIBGDATA_GOOGLE_CURRENT)
AC_SUBST(LIBGDATA_GOOGLE_REVISION)
AC_SUBST(LIBGDATA_GOOGLE_AGE)
AC_SUBST(LIBEBACKEND_CURRENT)
AC_SUBST(LIBEBACKEND_REVISION)
AC_SUBST(LIBEBACKEND_AGE)
dnl Put the ACLOCAL flags in the Makefile
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
dnl Initialize maintainer mode
AM_MAINTAINER_MODE
AC_ISC_POSIX
AC_PROG_CC
AC_PROG_CPP
AC_C_INLINE
AM_PROG_LEX
AC_PROG_YACC
case $YACC in
*yacc*)
AC_MSG_ERROR(You need bison to build evolution-data-server)
;;
esac
AC_STDC_HEADERS
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
dnl Test whether jw is installed
AC_PATH_PROG(JW,jw,no)
if test x$JW = xno; then
HAVE_JW="no"
else
HAVE_JW="yes"
fi
AM_CONDITIONAL(HAVE_JW, test "x$HAVE_JW" = "xyes")
AC_SUBST(HAVE_JW)
dnl I18N stuff
IT_PROG_INTLTOOL([0.35.5])
AM_GLIB_GNU_GETTEXT
GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
localedir='$(prefix)/$(DATADIRNAME)/locale'
AC_SUBST(localedir)
dnl Initialize libtool
AM_DISABLE_STATIC
AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
DOLT
PKG_PROG_PKG_CONFIG
dnl ******************************
dnl Check for Win32
dnl ******************************
AC_MSG_CHECKING([for Win32])
case "$host" in
*-mingw*)
os_win32=yes
NO_UNDEFINED='-no-undefined'
SOCKET_LIBS='-lws2_32 -ldnsapi'
DL_LIB=''
SOFTOKN3_LIB=''
LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
AC_CACHE_VAL(have_addrinfo, [have_addrinfo=yes])
AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
;;
*) os_win32=no
NO_UNDEFINED=''
SOCKET_LIBS=''
DL_LIB='-ldl'
SOFTOKN3_LIB='-lsoftokn3'
LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
;;
esac
AC_MSG_RESULT([$os_win32])
AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
AC_SUBST(NO_UNDEFINED)
AC_SUBST(SOCKET_LIBS)
AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
AC_CHECK_HEADERS(pthread.h semaphore.h sys/wait.h)
AC_CHECK_FUNCS(fsync strptime strtok_r)
dnl alloca()
AC_CHECK_HEADERS(alloca.h)
# Check for base dependencies early.
PKG_CHECK_MODULES(GNOME_PLATFORM,
[glib-2.0 >= glib_minimum_version
gtk+-2.0 >= gtk_minimum_version
ORBit-2.0 >= ORBit_minimum_version
libbonobo-2.0 >= libbonobo_minimum_version
gconf-2.0 >= gconf_minimum_version
libglade-2.0 >= libglade_minimum_version
libgnome-2.0 >= libgnome_minimum_version
libxml-2.0 >= libxml_minimum_version
libsoup-2.4 >= libsoup_minimum_version
sqlite3 >= sqlite_minimum_version])
dnl **************************************************
dnl * regex checking
dnl **************************************************
AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
[REGEX_LIBS=-lregex
AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
[AC_MSG_ERROR([No regex library found])])])
AC_SUBST(REGEX_LIBS)
dnl **************************************************
dnl * libdb checking
dnl **************************************************
AC_ARG_WITH(libdb,
AC_HELP_STRING( [--with-libdb],
[Prefix where libdb is installed]),
dynamic_libdb=yes, dynamic_libdb=no)
if test "x${dynamic_libdb}" = "xyes"; then
DB_CFLAGS="-I$withval/include"
DB_LIBS="-L$withval/lib -ldb"
AC_MSG_CHECKING([Berkeley DB])
save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
save_libs=$LIBS; LIBS="$DB_LIBS"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[#include <db.h>]],
[db_create(NULL, NULL, 0)])],
AC_MSG_RESULT(yes),
AC_MSG_ERROR(cannot find libdb))
CFLAGS=$save_cflags
LIBS=$save_libs
msg_libdb="dynamically linked"
else
DB_CFLAGS="-I\$(top_builddir)/libdb/dist"
DB_LIBS="\$(top_builddir)/libdb/dist/libdb-4.1.la"
if test $os_win32 = yes; then
# Don't pointlessly auto-export the global symbols
# from the static libdb
DB_LIBS="$DB_LIBS -Wl,--exclude-libs=libdb-4.1.a"
fi
AC_MSG_NOTICE(Using local libdb)
msg_libdb="statically linked to local copy"
fi
AM_CONDITIONAL(WITH_LIBDB, test "x$dynamic_libdb" != "xno")
AC_SUBST(DB_CFLAGS)
AC_SUBST(DB_LIBS)
dnl ******************************
dnl iconv checking
dnl ******************************
have_iconv=no
AC_ARG_WITH(libiconv,
AC_HELP_STRING( [--with-libiconv],
[Prefix where libiconv is installed]))
case $withval in
/*)
ICONV_CFLAGS="-I$withval/include"
ICONV_LIBS="-L$withval/lib"
;;
esac
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CFLAGS="$CFLAGS $ICONV_CFLAGS"
LIBS="$LIBS $ICONV_LIBS -liconv"
AC_CACHE_CHECK(for iconv in -liconv, ac_cv_libiconv, AC_TRY_RUN([
#include <iconv.h>
#include <stdlib.h>
int main (int argc, char **argv)
{
iconv_t cd;
cd = iconv_open ("UTF-8", "ISO-8859-1");
exit (0);
}
], ac_cv_libiconv=yes, ac_cv_libiconv=no, ac_cv_libiconv=no))
if test $ac_cv_libiconv = yes; then
ICONV_LIBS="$ICONV_LIBS -liconv"
if test $os_win32 = yes; then
# Don't pointlessly auto-export the global symbols
# from a potentially static libiconv.a
ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
fi
have_iconv=yes
else
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
AC_CHECK_FUNC(iconv, have_iconv=yes, have_iconv=no)
fi
if test $have_iconv = yes; then
if test $ac_cv_libiconv = no; then
AC_CHECK_FUNCS(gnu_get_libc_version)
fi
AC_CACHE_CHECK([if iconv() handles UTF-8], ac_cv_libiconv_utf8, AC_TRY_RUN([
#include <iconv.h>
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_GNU_GET_LIBC_VERSION
#include <gnu/libc-version.h>
#endif
int main (int argc, char **argv)
{
const char *from = "Some Text \xA4";
const char *utf8 = "Some Text \xC2\xA4";
char *transbuf = malloc (20), *trans = transbuf;
iconv_t cd;
size_t from_len = strlen (from), utf8_len = 20;
size_t utf8_real_len = strlen (utf8);
#ifdef HAVE_GNU_GET_LIBC_VERSION
/* glibc 2.1.2's iconv is broken in hard to test ways. */
if (!strcmp (gnu_get_libc_version (), "2.1.2"))
exit (1);
#endif
cd = iconv_open ("UTF-8", "ISO-8859-1");
if (cd == (iconv_t) -1)
exit (1);
if (iconv (cd, &from, &from_len, &trans, &utf8_len) == -1 || from_len != 0)
exit (1);
if (memcmp (utf8, transbuf, utf8_real_len) != 0)
exit (1);
exit (0);
}], ac_cv_libiconv_utf8=yes, [ac_cv_libiconv_utf8=no; have_iconv=no], [ac_cv_libiconv_utf8=no; have_iconv=no]))
fi
if test "$have_iconv" = no; then
AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
fi
AC_SUBST(ICONV_CFLAGS)
AC_SUBST(ICONV_LIBS)
CFLAGS="$CFLAGS -I$srcdir"
AC_MSG_CHECKING(preferred charset formats for system iconv)
AC_TRY_RUN([
#define CONFIGURE_IN
#include "iconv-detect.c"
],[
AC_MSG_RESULT(found)
],[
AC_MSG_RESULT(not found)
AC_WARN([
*** The iconv-detect program was unable to determine the
*** preferred charset formats recognized by your system
*** iconv library. It is suggested that you install a
*** working iconv library such as the one found at
*** ftp://ftp.gnu.org/pub/gnu/libiconv
])
])
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
dnl Check for nl_langinfo and CODESET
AC_MSG_CHECKING([for nl_langinfo (CODESET)])
AC_TRY_COMPILE([#include <langinfo.h>],
[char *codeset = nl_langinfo (CODESET);],
[ac_cv_langinfo_codeset=yes],
[ac_cv_langinfo_codeset=no])
if test x$ac_cv_langinfo_codeset = xyes; then
AC_DEFINE(HAVE_CODESET, 1, [Have nl_langinfo (CODESET)])
fi
AC_MSG_RESULT($ac_cv_langinfo_codeset)
dnl Check to see if strftime supports the use of %l and %k
AC_MSG_CHECKING(for %l and %k support in strftime)
AC_TRY_RUN([
#include <string.h>
#include <time.h>
int main(int argc, char **argv)
{
char buf[10];
time_t rawtime;
struct tm *timeinfo;
time(&rawtime);
timeinfo=localtime(&rawtime);
buf[0] = '\0';
strftime(buf, 10, "%lx%k", timeinfo);
if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
exit(1);
else
exit(0);
}],[
AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k])
ac_cv_lkstrftime=yes
],ac_cv_lkstrftime=no,ac_cv_lkstrftime=no,[
AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k])
ac_cv_lkstrftime=yes
])
AC_MSG_RESULT($ac_cv_lkstrftime)
dnl ********************************************************************************
dnl security extension support (SSL and S/MIME)
dnl
dnl The following voodoo does detection of mozilla libraries (nspr and nss)
dnl needed by Camel (SSL and S/MIME).
dnl
dnl The Evolution security extensions are only built if these libraries are found
dnl ********************************************************************************
msg_ssl="no"
msg_smime="no"
dnl these 2 enable's are inverses of each other
AC_ARG_ENABLE(nss,
AC_HELP_STRING( [--enable-nss=@<:@yes/no/static@:>@],
[Attempt to use Mozilla libnss for SSL support.]),
enable_nss="$enableval", enable_nss="yes")
AC_ARG_ENABLE(smime,
AC_HELP_STRING( [--enable-smime=@<:@yes/no@:>@],
[Attempt to use Mozilla libnss for SMIME support (this requires --enable-nss)]),
enable_smime="$enableval", enable_smime="yes")
AC_ARG_ENABLE(gnome-keyring,
AC_HELP_STRING( [--enable-gnome-keyring=@<:@yes/no@:>@],
[Attempt to use Gnome Keyring for storing passwords]),
enable_gnome_keyring="$enableval", enable_gnome_keyring="no")
AC_ARG_WITH(nspr-includes,
AC_HELP_STRING( [--with-nspr-includes=PREFIX],
[Location of Mozilla nspr4 includes.]),
with_nspr_includes="$withval")
AC_ARG_WITH(nspr-libs,
AC_HELP_STRING( [--with-nspr-libs=PREFIX],
[Location of Mozilla nspr4 libs.]),
with_nspr_libs="$withval")
AC_ARG_WITH(nss-includes,
AC_HELP_STRING( [--with-nss-includes=PREFIX],
[Location of Mozilla nss3 includes.]),
with_nss_includes="$withval")
AC_ARG_WITH(nss-libs,
AC_HELP_STRING( [--with-nss-libs=PREFIX],
[Location of Mozilla nss3 libs.]),
with_nss_libs="$withval")
if test "x${enable_gnome_keyring}" = "xyes"; then
PKG_CHECK_MODULES(GNOME_KEYRING, gnome-keyring-1 >= gnome_keyring_minimum_version, with_gnome_keyring="yes", with_gnome_keyring="no");
if test "x$with_gnome_keyring" = "xyes"; then
AC_DEFINE(WITH_GNOME_KEYRING, 1, [Gnome Keyring available])
GNOME_KEYRING_REQUIREMENT="gnome-keyring-1"
else
GNOME_KEYRING_REQUIREMENT=""
fi
fi
if test "x${enable_nss}" = "xyes" || test "x${enable_nss}" = "xstatic"; then
if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}" || test "x${enable_nss}" = "xstatic"; then
check_manually="yes"
else
check_manually="no"
fi
if test "x${check_manually}" = "xno"; then
AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
for pc in $mozilla_nspr_pcs; do
if $PKG_CONFIG --exists $pc; then
AC_MSG_RESULT($pc)
mozilla_nspr=$pc
break;
fi
done
AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
for pc in $mozilla_nss_pcs; do
if $PKG_CONFIG --exists $pc; then
AC_MSG_RESULT($pc)
mozilla_nss=$pc
break;
fi
done
if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
msg_ssl="yes (Mozilla NSS)"
if test "x$enable_smime" = "xyes"; then
AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
msg_smime="yes (Mozilla NSS)"
fi
AC_DEFINE(HAVE_NSS,1,[Define if you have NSS])
AC_DEFINE(HAVE_SSL,1,[Define if you have a supported SSL library])
MANUAL_NSPR_CFLAGS=""
MANUAL_NSPR_LIBS=""
MANUAL_NSS_CFLAGS=""
MANUAL_NSS_LIBS=""
else
check_manually="yes"
mozilla_nspr=""
mozilla_nss=""
fi
fi
if test "x${check_manually}" = "xyes"; then
have_nspr_includes="no"
if test "x${with_nspr_includes}" != "xno"; then
CPPFLAGS_save="$CPPFLAGS"
AC_MSG_CHECKING(for Mozilla nspr4 includes in $with_nspr_includes)
AC_MSG_RESULT("")
CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
AC_CHECK_HEADERS(nspr.h prio.h, [ moz_nspr_includes="yes" ])
CPPFLAGS="$CPPFLAGS_save"
if test "x{$moz_nspr_includes}" != "xno" -a "x{$moz_nspr_includes}" != "x" ; then
have_nspr_includes="yes"
MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
fi
else
AC_MSG_CHECKING(for Mozilla nspr4 includes)
AC_MSG_RESULT(no)
fi
have_nspr_libs="no"
if test "x${with_nspr_libs}" != "xno" -a "x${have_nspr_includes}" != "xno"; then
CFLAGS_save="$CFLAGS"
LDFLAGS_save="$LDFLAGS"
if test "$enable_nss" = "static"; then
if test -z "${with_nspr_libs}"; then
AC_MSG_ERROR([Static linkage requested, but path to nspr libraries not set.]
[Please specify the path to libnspr4.a]
[Example: --with-nspr-libs=/usr/lib])
else
nsprlibs="$DL_LIB $with_nspr_libs/libplc4.a $with_nspr_libs/libplds4.a $with_nspr_libs/libnspr4.a $PTHREAD_LIB"
fi
else
nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4 $PTHREAD_LIB"
fi
AC_CACHE_CHECK([for Mozilla nspr libraries], moz_nspr_libs,
[
LIBS_save="$LIBS"
CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
if test "x${with_nspr_libs}" != "x"; then
LIBS="$nsprlibs"
LDFLAGS="$LDFLAGS -L$with_nspr_libs"
else
LIBS="$nsprlibs"
LDFLAGS="$LDFLAGS"
fi
AC_TRY_LINK_FUNC(PR_Init, moz_nspr_libs="yes", moz_nspr_libs="no")
CFLAGS="$CFLAGS_save"
LDFLAGS="$LDFLAGS_save"
LIBS="$LIBS_save"
])
if test "x$moz_nspr_libs" != "xno"; then
have_nspr_libs="yes"
MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
else
MANUAL_NSPR_CLFAGS=""
fi
else
AC_MSG_CHECKING(for Mozilla nspr4 libraries)
AC_MSG_RESULT(no)
fi
if test "x${with_nss_includes}" != "xno" -a "x${have_nspr_libs}" != "xno"; then
CPPFLAGS_save="$CPPFLAGS"
AC_MSG_CHECKING(for Mozilla nss3 includes in $with_nss_includes)
AC_MSG_RESULT("")
if test "x${with_nspr_includes}" != "x"; then
CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
else
CPPFLAGS="$CPPFLAGS -I$with_nss_includes"
fi
AC_CHECK_HEADERS(nss.h ssl.h smime.h,
[ have_nss_includes="yes" ],
[ have_nss_includes="no" ])
CPPFLAGS="$CPPFLAGS_save"
if test "x${have_nss_includes}" = "xyes"; then
have_nss_includes="yes"
MANUAL_NSS_CFLAGS="-I$with_nss_includes"
else
MANUAL_NSPR_CFLAGS=""
MANUAL_NSPR_LIBS=""
fi
else
AC_MSG_CHECKING(for Mozilla nss3 includes)
AC_MSG_RESULT(no)
fi
if test "x${with_nss_libs}" != "xno" -a "x${have_nss_includes}" != "xno"; then
LDFLAGS_save="$LDFLAGS"
if test "$enable_nss" = "static"; then
if test -z "${with_nss_libs}"; then
AC_MSG_ERROR([Static linkage requested, but path to nss libraries not set.]
[Please specify the path to libnss3.a]
[Example: --with-nspr-libs=/usr/lib/mozilla])
else
nsslibs="-ldb1 $with_nss_libs/libnssckfw.a $with_nss_libs/libasn1.a $with_nss_libs/libcrmf.a $with_nss_libs/libswfci.a $with_nss_libs/libjar.a $with_nss_libs/libpkcs12.a $with_nss_libs/libpkcs7.a $with_nss_libs/libpki1.a $with_nss_libs/libsmime.a $with_nss_libs/libssl.a $with_nss_libs/libnss.a $with_nss_libs/libpk11wrap.a $with_nss_libs/libsoftokn.a $with_nss_libs/libfreebl.a $with_nss_libs/libnsspki.a $with_nss_libs/libnssdev.a $with_nss_libs/libcryptohi.a $with_nss_libs/libcerthi.a $with_nss_libs/libcertdb.a $with_nss_libs/libsecutil.a $with_nss_libs/libnssb.a"
case "$host" in
*solaris*)
nsslibs="$nsslibs $with_nss_libs/libfreebl.a"
;;
esac
fi
else
nsslibs="-lssl3 -lsmime3 -lnss3 $SOFTOKN3_LIB"
fi
AC_CACHE_CHECK([for Mozilla nss libraries], moz_nss_libs,
[
LIBS_save="$LIBS"
LDFLAGS="$LDFLAGS -L$with_nspr_libs $nsprlibs -L$with_nss_libs $nsslibs"
LIBS="$nsslibs $nsprlibs"
AC_TRY_LINK_FUNC(NSS_Init, moz_nss_libs="yes", moz_nss_libs="no")
if test "$moz_nss_libs" = no; then
nsslibs="-lssl3 -lsmime3 -lnss3 $SOFTOKN3_LIB"
LDFLAGS="$LDFLAGS -L$with_nspr_libs $nsprlibs -L$with_nss_libs $nsslibs"
AC_TRY_LINK_FUNC(NSS_Init, moz_nss_libs="yes", moz_nss_libs="no")
fi
LDFLAGS="$LDFLAGS_save"
LIBS="$LIBS_save"
])
if test "$moz_nss_libs" != no; then
AC_DEFINE(HAVE_NSS)
AC_DEFINE(HAVE_SSL)
if test "$enable_nss" = "static"; then
msg_ssl="yes (Mozilla NSS:static)"
else
msg_ssl="yes (Mozilla NSS)"
fi # static_nss
if test "$enable_smime" = "yes"; then
AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
msg_smime="yes (Mozilla NSS)"
fi
MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
else
MANUAL_NSS_CFLAGS=""
MANUAL_NSPR_CFLAGS=""
MANUAL_NSPR_LIBS=""
fi
else
AC_MSG_CHECKING(for Mozilla nss libraries)
AC_MSG_RESULT(no)
fi
MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
fi
fi
AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
AC_SUBST(MANUAL_NSPR_CFLAGS)
AC_SUBST(MANUAL_NSPR_LIBS)
AC_SUBST(MANUAL_NSS_CFLAGS)
AC_SUBST(MANUAL_NSS_LIBS)
dnl check for socklen_t (in Unix98)
AC_MSG_CHECKING(for socklen_t)
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>
socklen_t x;
],[],[AC_MSG_RESULT(yes)],[
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>
int accept (int, struct sockaddr *, size_t *);
],[],[
AC_MSG_RESULT(size_t)
AC_DEFINE(socklen_t,size_t,[Define to appropriate type if socklen_t is not defined])], [
AC_MSG_RESULT(int)
AC_DEFINE(socklen_t,int)])])
dnl
dnl system mail stuff
dnl
AC_PATH_PROG(SENDMAIL, sendmail, /usr/sbin/sendmail, /usr/sbin:/usr/lib)
AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
AC_MSG_CHECKING(system mail directory)
if test -d /var/mail -a '!' -h /var/mail ; then
system_mail_dir=/var/mail
else
system_mail_dir=/var/spool/mail
fi
AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
d??????rw?)
CAMEL_LOCK_HELPER_USER=""
CAMEL_LOCK_HELPER_GROUP=""
system_mail_perm="world writable"
;;
d???rw????)
CAMEL_LOCK_HELPER_USER=""
CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
;;
drw???????)
CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
CAMEL_LOCK_HELPER_GROUP=""
system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
;;
*)
CAMEL_LOCK_HELPER_USER=""
CAMEL_LOCK_HELPER_GROUP=""
system_mail_perm="???"
;;
esac
AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
AC_SUBST(CAMEL_LOCK_HELPER_USER)
AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
dnl ***************
dnl Timezone checks
dnl ***************
AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff,
AC_TRY_COMPILE([
#include <time.h>
], [
struct tm tm;
tm.tm_gmtoff = 1;
], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no))
if test $ac_cv_struct_tm_gmtoff = yes; then
AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
else
AC_CACHE_CHECK(for timezone variable, ac_cv_var_timezone,
AC_TRY_COMPILE([
#include <time.h>
], [
timezone = 1;
], ac_cv_var_timezone=yes, ac_cv_var_timezone=no))
if test $ac_cv_var_timezone = yes; then
AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
AC_CACHE_CHECK(for altzone variable, ac_cv_var_altzone,
AC_TRY_COMPILE([
#include <time.h>
], [
altzone = 1;
], ac_cv_var_altzone=yes, ac_cv_var_altzone=no))
if test $ac_cv_var_altzone = yes; then
AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
fi
else
AC_ERROR(unable to find a way to determine timezone)
fi
fi
dnl **************************************************
dnl ctime_r prototype
dnl **************************************************
AC_CACHE_CHECK([if ctime_r wants three arguments], ac_cv_ctime_r_three_args,
[
AC_TRY_COMPILE([
#include <time.h>
],[
char *buf;
time_t date;
ctime_r (&date, buf, 100);
],[
ac_cv_ctime_r_three_args=yes
],[
ac_cv_ctime_r_three_args=no
])
])
if test x"$ac_cv_ctime_r_three_args" = xyes ; then
AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
fi
dnl **************************************************
dnl gethostbyname_r prototype
dnl **************************************************
AC_CHECK_FUNCS(gethostbyname_r,[
AC_CACHE_CHECK([if gethostbyname_r wants five arguments], ac_cv_gethostbyname_r_five_args,
[
AC_TRY_COMPILE([
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define BUFSIZE (sizeof(struct hostent)+10)
],[
struct hostent hent;
char buffer[BUFSIZE];
int bufsize=BUFSIZE;
int h_errno;
(void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
],[
ac_cv_gethostbyname_r_five_args=yes
],[
ac_cv_gethostbyname_r_five_args=no
])
])])
if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
fi
dnl **************************************************
dnl gethostbyaddr_r prototype
dnl **************************************************
AC_CHECK_FUNCS(gethostbyaddr_r,[
AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], ac_cv_gethostbyaddr_r_seven_args,
[
AC_TRY_COMPILE([
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define BUFSIZE (sizeof(struct hostent)+10)
],[
struct hostent hent;
char buffer[BUFSIZE];
int bufsize=BUFSIZE;
int h_errno;
(void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno);
],[
ac_cv_gethostbyaddr_r_seven_args=yes
],[
ac_cv_gethostbyaddr_r_seven_args=no
])
])])
if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
fi
dnl **************************************************
dnl stat(v)fs location/type
dnl **************************************************
AC_CHECK_HEADERS(sys/statvfs.h)
AC_CHECK_FUNCS(statvfs)
AC_CHECK_HEADERS(sys/param.h)
AC_CHECK_HEADERS(sys/mount.h)
AC_CHECK_FUNCS(statfs)
dnl **************************************************
dnl * IPv6 support and getaddrinfo calls
dnl **************************************************
AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], have_addrinfo,
[
AC_TRY_COMPILE([
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stddef.h>
],[
#ifndef NI_MAXHOST
#define NI_MAXHOST 1025
#endif
#ifndef NI_MAXSERV
#define NI_MAXSERV 32
#endif
struct addrinfo hints, *res;
struct sockaddr_in6 sin6;
int af = AF_INET6;
char host[NI_MAXHOST];
char serv[NI_MAXSERV];
getaddrinfo ("www.ximian.com", NULL, &hints, &res);
freeaddrinfo (res);
getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0);
],[
have_addrinfo=yes
],[
have_addrinfo=no
])
])
if test x"$have_addrinfo" = "xno" ; then
AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
if test x"$enable_ipv6" = "xyes" ; then
AC_ERROR(system doesn't support necessary interfaces for ipv6 support)
fi
msg_ipv6=no
else
AC_ARG_ENABLE(ipv6,
AC_HELP_STRING( [--enable-ipv6=@<:@no/yes@:>@],
[Enable support for resolving IPv6 addresses.]),
,enable_ipv6=yes)
if test x"$enable_ipv6" = "xyes"; then
msg_ipv6=yes
AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
AC_TRY_COMPILE([
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
],[
struct addrinfo hints;
hints.ai_flags = AI_ADDRCONFIG;
],[
AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])
])
else
msg_ipv6=no
fi
fi
AM_CONDITIONAL(ENABLE_IPv6, test "x$enable_ipv6" = "xyes")
dnl **************************************************
dnl Calendar support
dnl **************************************************
AC_MSG_CHECKING(if we should build the calendar)
AC_ARG_ENABLE(calendar,
AC_HELP_STRING( [--enable-calendar=@<:@yes/no@:>@],
[Enable the calendar components (default yes)]),
enable_calendar="$enableval", enable_calendar="yes")
if test "x${enable_calendar}" != "xno"; then
AC_DEFINE(ENABLE_CALENDAR, 1, [Define if Calendar should be built])
AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
fi
AM_CONDITIONAL(ENABLE_CALENDAR, test x$enable_calendar = xyes)
AC_MSG_RESULT($enable_calendar)
msg_calendar=$enable_calendar
dnl **************************************************
dnl NNTP support.
dnl **************************************************
AC_ARG_ENABLE(nntp,
AC_HELP_STRING( [--enable-nntp=@<:@no/yes@:>@],
[Build Usenet news (NNTP) backend]),
,enable_nntp=yes)
if test "x$enable_nntp" = "xyes"; then
AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
msg_nntp=yes
else
msg_nntp=no
fi
AM_CONDITIONAL(ENABLE_NNTP, test x$enable_nntp = xyes)
dnl **************************************************
dnl New IMAP code support.
dnl **************************************************
AC_ARG_ENABLE(imapp,
AC_HELP_STRING( [--enable-imapp=@<:@no/yes@:>@],
[Attempt to compile alternative, incomplete, very unsupported IMAPv4r1 code]),
,enable_imapp=no)
if test "x$enable_imapp" = "xyes"; then
AC_DEFINE(ENABLE_IMAPP,1,[Really don't try this at home])
msg_imapp=yes
else
msg_imapp=no
fi
AM_CONDITIONAL(ENABLE_IMAPP, test x$enable_imapp = xyes)
dnl **************************************************
dnl IMAP4rev1 code support.
dnl **************************************************
AC_ARG_ENABLE(imap4,
AC_HELP_STRING( [--enable-imap4=@<:@no/yes@:>@],
[Attempt to compile yet another, incomplete, very unsupported IMAPv4r1 implementation]),
,enable_imap4=no)
if test "x$enable_imap4" = "xyes"; then
AC_DEFINE(ENABLE_IMAP4,1,[Really don't try this at home])
msg_imap4=yes
else
msg_imap4=no
fi
AM_CONDITIONAL(ENABLE_IMAP4, test x$enable_imap4 = xyes)
dnl **************************************************
dnl Hula support
dnl **************************************************
AC_ARG_ENABLE(hula,
AC_HELP_STRING( [--enable-hula=@<:@no/yes@:>@],
[Enable support for the now-defunct Hula project]),
,enable_hula=no)
if test "x$enable_hula" = "xyes"; then
AC_DEFINE(ENABLE_HULA,1,[Build Hula backend])
msg_hula=yes
else
msg_hula=no
fi
AM_CONDITIONAL(ENABLE_HULA, test x$enable_hula = xyes)
dnl **************************************************
dnl * File locking
dnl **************************************************
AC_ARG_ENABLE(dot-locking,
AC_HELP_STRING( [--enable-dot-locking=@<:@yes/no@:>@],
[Enable support for locking mail files with dot locking]),
,enable_dot_locking=yes)
if test $os_win32 != yes -a "x$enable_dot_locking" = "xyes"; then
AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
msg_dot=yes
else
msg_dot=no
fi
AC_ARG_ENABLE(file-locking,
AC_HELP_STRING( [--enable-file-locking=@<:@fcntl/flock/no@:>@],
[Enable support for locking mail files with file locking]),
,enable_file_locking=fcntl)
if test $os_win32 != yes -a "x$enable_file_locking" = "xfcntl"; then
AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
msg_file=fcntl
else
if test $os_win32 != yes -a "x$enable_file_locking" = "xflock"; then
AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
msg_file=flock
else
msg_file=no
fi
fi
dnl **************************************************
dnl * sendmail operation
dnl **************************************************
AC_MSG_CHECKING(for SunOS broken spool format)
if test "x$host_os" = "xsunos" ; then
with_broken_spool="yes"
fi
AC_ARG_WITH(broken-spool,
AC_HELP_STRING( [--with-broken-spool=@<:@yes/no@:>@],
[Using SunOS/Solaris sendmail which has a broken spool format]),
,with_broken_spool=${with_broken_spool:=no})
if test "x$with_broken_spool" = "xyes"; then
AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
fi
AC_MSG_RESULT($with_broken_spool)
dnl ********
dnl Kerberos
dnl ********
AC_ARG_WITH(krb5,
AC_HELP_STRING( [--with-krb5=DIR],
[Location of Kerberos 5 install dir]),
with_krb5="$withval", with_krb5="no")
AC_ARG_WITH(krb5-libs,
AC_HELP_STRING( [--with-krb5-libs=DIR],
[Location of Kerberos 5 libraries]),
with_krb5_libs="$withval", with_krb5_libs="$with_krb5/lib")
AC_ARG_WITH(krb5-includes,
AC_HELP_STRING( [--with-krb5-includes=DIR],
[Location of Kerberos 5 headers]),
with_krb5_includes="$withval", with_krb5_includes="")
AC_ARG_WITH(krb4,
AC_HELP_STRING( [--with-krb4=DIR],
[Location of Kerberos 4 install dir]),
with_krb4="$withval", with_krb4="no")
AC_ARG_WITH(krb4-libs,
AC_HELP_STRING( [--with-krb4-libs=DIR],
[Location of Kerberos 4 libraries]),
with_krb4_libs="$withval", with_krb4_libs="$with_krb4/lib")
AC_ARG_WITH(krb4-includes,
AC_HELP_STRING( [--with-krb4-includes=DIR],
[Location of Kerberos 4 headers]),
with_krb4_includes="$withval", with_krb4_includes="")
msg_krb5="no"
if test "x${with_krb5}" != "xno"; then
LDFLAGS_save="$LDFLAGS"
mitlibs="-lkrb5 -lk5crypto -lcom_err -lgssapi_krb5"
heimlibs="-lkrb5 -lcrypto -lasn1 -lcom_err -lroken -lgssapi"
sunlibs="-lkrb5 -lgss"
AC_CACHE_CHECK([for Kerberos 5], ac_cv_lib_kerberos5,
[
LDFLAGS="$LDFLAGS -L$with_krb5_libs $mitlibs"
AC_TRY_LINK([#include <krb5.h>],krb5_init_context, ac_cv_lib_kerberos5="$mitlibs",
[
LDFLAGS="$LDFLAGS_save -L$with_krb5_libs $heimlibs"
AC_TRY_LINK_FUNC(krb5_init_context, ac_cv_lib_kerberos5="$heimlibs",
[
LDFLAGS="$LDFLAGS_save -L$with_krb5_libs $sunlibs"
AC_TRY_LINK_FUNC(krb5_init_context, ac_cv_lib_kerberos5="$sunlibs", ac_cv_lib_kerberos5="no")
])
])
LDFLAGS="$LDFLAGS_save"
])
if test "$ac_cv_lib_kerberos5" != "no"; then
AC_DEFINE(HAVE_KRB5,1,[Define if you have Krb5])
if test "$ac_cv_lib_kerberos5" = "$mitlibs"; then
AC_DEFINE(HAVE_MIT_KRB5,1,[Define if you have MIT Krb5])
if test -z "$with_krb5_includes"; then
KRB5_CFLAGS="-I$with_krb5/include"
else
KRB5_CFLAGS="-I$with_krb5_includes"
fi
msg_krb5="yes (MIT)"
else
if test "$ac_cv_lib_kerberos5" = "$heimlibs"; then
AC_DEFINE(HAVE_HEIMDAL_KRB5,1,[Define if you have Heimdal])
if test -z "$with_krb5_includes"; then
KRB5_CFLAGS="-I$with_krb5/include/heimdal"
else
KRB5_CFLAGS="-I$with_krb5_includes"
fi
msg_krb5="yes (Heimdal)"
else
AC_DEFINE(HAVE_SUN_KRB5,1,[Define if you have Sun Kerberosv5])
if test -z "$with_krb5_includes"; then
KRB5_CFLAGS="-I$with_krb5/include/kerberosv5"
else
KRB5_CFLAGS="-I$with_krb5_includes"
fi
msg_krb5="yes (Sun)"
fi
fi
KRB5_LDFLAGS="-L$with_krb5_libs $ac_cv_lib_kerberos5"
AC_MSG_RESULT(msg_krb5)
else
dnl AC_MSG_CHECKING([for Kerberos 5])
AC_MSG_RESULT([no])
AC_MSG_ERROR([You specified with krb5, but it was not found.])
fi
else
AC_MSG_WARN([krb5 support disabled])
fi
AM_CONDITIONAL(ENABLE_KRB5, test x$with_krb5 != xno)
AC_CHECK_HEADER([et/com_err.h],[AC_DEFINE([HAVE_ET_COM_ERR_H], 1, [Have et/comm_err.h])])
AC_CHECK_HEADER([com_err.h],[AC_DEFINE([HAVE_COM_ERR_H], 1, [Have comm_err.h])])
msg_krb4="no"
if test "x${with_krb4}" != "xno"; then
LDFLAGS_save="$LDFLAGS"
AC_CACHE_CHECK(for Kerberos 4, ac_cv_lib_kerberos4,
[
ac_cv_lib_kerberos4="no"
mitcompatlibs="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
# Look for MIT krb5 compat krb4
LDFLAGS="$LDFLAGS -L$with_krb4_libs $mitcompatlibs"
AC_TRY_LINK_FUNC(krb_mk_req, ac_cv_lib_kerberos4="$mitcompatlibs")
if test "$ac_cv_lib_kerberos4" = "no"; then
# Look for KTH krb4
LDFLAGS="$LDFLAGS_save -L$with_krb4_libs -lkrb -lcrypto -lcom_err -lroken"
AC_TRY_LINK_FUNC(krb_mk_req, ac_cv_lib_kerberos4="-lkrb -lcrypto -lcom_err -lroken")
fi
if test "$ac_cv_lib_kerberos4" = "no"; then
# Look for old MIT krb4
LDFLAGS="$LDFLAGS_save -L$with_krb4_libs -lkrb"
AC_TRY_LINK_FUNC(krb_mk_req, ac_cv_lib_kerberos4="-lkrb",
[
LDFLAGS="$LDFLAGS -ldes"
AC_TRY_LINK_FUNC(krb_mk_req, ac_cv_lib_kerberos4="-lkrb -ldes")
])
fi
])
LDFLAGS="$LDFLAGS_save"
if test "$ac_cv_lib_kerberos4" != "no"; then
AC_DEFINE(HAVE_KRB4,1,[Define if you have Krb4])
msg_krb4="yes"
if test -z "$with_krb4_includes"; then
if test -f "$with_krb4/include/krb.h" -o -f "$with_krb4/include/port-sockets.h"; then
KRB4_CFLAGS="-I$with_krb4/include"
fi
if test -d "$with_krb4/include/kerberosIV"; then
KRB4_CFLAGS="$KRB4_CFLAGS -I$with_krb4/include/kerberosIV"
fi
else
KRB4_CFLAGS="-I$with_krb4_includes"
fi
KRB4_LDFLAGS="-L$with_krb4_libs $ac_cv_lib_kerberos4"
CFLAGS_save="$CFLAGS"
CFLAGS="$CFLAGS $KRB4_CFLAGS"
AC_TRY_COMPILE([#include "krb.h"
int krb_sendauth;
],[return 0],[AC_DEFINE(NEED_KRB_SENDAUTH_PROTO,1,[Need krb_sendauth proto])],)
CFLAGS="$CFLAGS_save"
fi
else
AC_MSG_CHECKING(for Kerberos 4)
AC_MSG_RESULT(${with_krb4})
fi
AC_SUBST(KRB5_CFLAGS)
AC_SUBST(KRB5_LDFLAGS)
AC_SUBST(KRB4_CFLAGS)
AC_SUBST(KRB4_LDFLAGS)
dnl
dnl Purify support
dnl
EVO_PURIFY_SUPPORT
dnl **************************************************
dnl Exchange debug
dnl **************************************************
AC_ARG_WITH(e2k-debug,
AC_HELP_STRING( [--with-e2k-debug],
[Allow debugging]))
case $withval in
no)
;;
*)
AC_DEFINE(E2K_DEBUG, 1, [Define if you want E2K_DEBUG to be available])
;;
esac
dnl **************************************************
dnl LDAP support.
dnl **************************************************
if test "$os_win32" != yes; then
EVO_LDAP_CHECK(no)
case $with_openldap in
no)
msg_ldap=no
;;
*)
case $with_static_ldap in
yes)
msg_ldap="$with_openldap (static)"
;;
*)
msg_ldap="$with_openldap (dynamic)"
;;
esac
esac
dnl **************************************************
dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
dnl **************************************************
if test "$with_openldap" = no ; then
EVO_SUNLDAP_CHECK(no)
case $with_sunldap in
no)
msg_ldap=no
;;
*)
case $with_static_sunldap in
yes)
msg_ldap="$with_sunldap (static)"
;;
*)
msg_ldap="$with_sunldap (dynamic)"
;;
esac
esac
else
with_sunldap=no
fi
AM_CONDITIONAL(SUNLDAP, test "$with_sunldap" != no)
SAVE_CFLAGS="$CFLAGS"
SAVE_LIBS="$LIBS"
LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
CFLAGS="$CFLAGS $LDAP_CFLAGS"
LIBS="$LIBS $LDAP_LIBS"
AC_CHECK_FUNCS(ldap_ntlm_bind)
CFLAGS="$SAVE_CFLAGS"
LIBS="$SAVE_LIBS"
dnl You need to enable LDAP and Kerberos to enable Exchange support in e-d-s
msg_no_ntlm="no"
msg_exchange="no"
if test "$msg_ldap" != "no" ; then
if test "$ac_cv_func_ldap_ntlm_bind" != no ; then
msg_exchange="yes"
else
dnl The user wanted to build with openldap, but his openldap did not have NTLM
dnl support. Make him aware of this with a warning message at the end.
msg_no_ntlm="yes"
fi
fi
else # Win32
LDAP_CFLAGS="-DLDAP_DEPRECATED"
LDAP_LIBS="-lwldap32"
AC_SUBST(LDAP_CFLAGS)
AC_SUBST(LDAP_LIBS)
AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
AM_CONDITIONAL(ENABLE_LDAP, true)
AM_CONDITIONAL(SUNLDAP, false)
msg_ldap="yes"
msg_no_ntlm="no"
msg_exchange="yes"
fi # Win32
LIBBONOBO_REQUIRED=libbonobo_minimum_version
AC_SUBST(LIBBONOBO_REQUIRED)
ORBIT_REQUIRED=ORBit_minimum_version
AC_SUBST(ORBIT_REQUIRED)
dnl *******************
dnl GObject marshalling
dnl *******************
AM_PATH_GLIB_2_0
dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
EVO_MARSHAL_RULE=$srcdir/marshal.mk
AC_SUBST_FILE(EVO_MARSHAL_RULE)
dnl **************************************************
dnl * Posix thread support
dnl **************************************************
dnl GLIB_CONFIG=${GLIB_CONFIG-glib-config}
dnl GNOME_PTHREAD_CHECK
dnl if test "x$PTHREAD_LIB" = "x" ; then
dnl AC_MSG_ERROR([POSIX threads are currently required for Evolution])
dnl fi
dnl
dnl Notice that this is a hack, and we wont be able to use this forever, but
dnl at least for some time
dnl
EVO_PTHREAD_CHECK
THREADS_LIBS="$PTHREAD_LIB"
THREADS_CFLAGS="$PTHREAD_CFLAGS"
AC_SUBST(THREADS_LIBS)
AC_SUBST(THREADS_CFLAGS)
AC_DEFINE(ENABLE_THREADS,1,[Required])
dnl *************************
dnl CFLAGS and LIBS and stuff
dnl *************************
GNOME_COMPILE_WARNINGS(yes)
CFLAGS="$CFLAGS $WARN_CFLAGS"
case $CFLAGS in
*-Wall*)
# Turn off the annoying "comparison between signed and unsigned"
# warning in gcc 3.3
if $CC --help -v 2>&1 | grep Wsign-compare >/dev/null; then
CFLAGS="$CFLAGS -Wno-sign-compare"
fi
if $CC --help -v 2>&1 | grep Wpointer-sign >/dev/null; then
CFLAGS="$CFLAGS -Wno-pointer-sign"
fi
;;
esac
PKG_CHECK_MODULES(ORBIT, ORBit-2.0 >= ORBit_minimum_version)
ORBIT_IDL=`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`
AC_SUBST(ORBIT_CFLAGS)
AC_SUBST(ORBIT_LIBS)
AC_SUBST(ORBIT_IDL)
AC_MSG_CHECKING(for CORBA include paths)
IDL_INCLUDES="-I"`pkg-config --variable=idldir libbonobo-2.0`" -I"`pkg-config --variable=idldir bonobo-activation-2.0`
AC_MSG_RESULT($IDL_INCLUDES)
AC_SUBST(IDL_INCLUDES)
AC_MSG_CHECKING(for libgnomeui server directory)
GNOMEUI_SERVERDIR="`$PKG_CONFIG --variable=libgnomeui_serverdir libgnomeui-2.0`"
AC_MSG_RESULT($GNOMEUI_SERVERDIR)
AC_DEFINE_UNQUOTED(GNOMEUI_SERVERDIR, "$GNOMEUI_SERVERDIR", [Path where we can find gnome_segv2])
dnl Utility macro to set compiler flags for a specific lib.
dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
PKG_CHECK_MODULES([$1], [$2])
$1_CFLAGS="[$]$1_CFLAGS \$(WERROR) $3"
$1_LIBS="[$]$1_LIBS $4"
])
dnl ****************************************
dnl Flags for the various libraries we build
dnl ****************************************
dnl --- libedataserver, libedataserverui, libebackend flags
E_DATA_SERVER_DEPS="libxml-2.0 libbonobo-2.0 libsoup-2.4 gconf-2.0 $mozilla_nspr sqlite3"
EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $THREADS_CFLAGS $MANUAL_NSPR_CFLAGS, $THREADS_LIBS $MANUAL_NSPR_LIBS)
AC_SUBST(E_DATA_SERVER_CFLAGS)
AC_SUBST(E_DATA_SERVER_LIBS)
E_DATA_SERVER_UI_DEPS="gtk+-2.0 libglade-2.0 libgnome-2.0 gobject-2.0 gthread-2.0 gconf-2.0 $GNOME_KEYRING_REQUIREMENT"
EVO_SET_COMPILE_FLAGS(E_DATA_SERVER_UI, $E_DATA_SERVER_UI_DEPS, $THREADS_CFLAGS, $THREADS_LIBS)
AC_SUBST(E_DATA_SERVER_UI_CFLAGS)
AC_SUBST(E_DATA_SERVER_UI_LIBS)
E_BACKEND_DEPS="gobject-2.0 libxml-2.0 gmodule-2.0"
EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
AC_SUBST(E_BACKEND_CFLAGS)
AC_SUBST(E_BACKEND_LIBS)
dnl --- evolution-addressbook flags
EVOLUTION_ADDRESSBOOK_DEPS="libxml-2.0 libgnome-2.0 gobject-2.0 gthread-2.0 gconf-2.0"
EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
dnl --- evolution-calendar flags
if test "x${enable_calendar}" = "xyes"; then
EVOLUTION_CALENDAR_DEPS="libxml-2.0 libgnome-2.0 gio-2.0 gobject-2.0 gthread-2.0 gconf-2.0"
EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS)
AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
AC_SUBST(EVOLUTION_CALENDAR_LIBS)
fi
dnl --- factory flags
E_FACTORY_DEPS="libgnome-2.0 $mozilla_nspr"
EVO_SET_COMPILE_FLAGS(E_FACTORY, $E_FACTORY_DEPS, $THREADS_CFLAGS $MANUAL_NSPR_CFLAGS, $THREADS_LIBS $MANUAL_NSPR_LIBS)
AC_SUBST(E_FACTORY_CFLAGS)
AC_SUBST(E_FACTORY_LIBS)
dnl --- Groupwise flags
LIBSOUP_REQUIRED=libsoup_minimum_version
AC_SUBST(LIBSOUP_REQUIRED)
EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
AC_SUBST(SOUP_CFLAGS)
AC_SUBST(SOUP_LIBS)
dnl --- Camel flags
SQLITE_REQUIRED=sqlite_minimum_version
AC_SUBST(SQLITE_REQUIRED)
zlib_found=false
dnl deflateInit is a #define, use deflateEnd instead
AC_CHECK_LIB(z, deflateEnd,
[ AC_CHECK_HEADER(zlib.h, zlib_found=true) ])
if test "x$zlib_found" = "xfalse"; then
AC_MSG_ERROR([*** zlib is required])
fi
dnl *************************************
dnl *** Checks for large file support ***
dnl *************************************
AC_ARG_ENABLE(largefile,
AC_HELP_STRING([--enable-largefile],
[enable support for large files [[default=no]]]),,
enable_largefile="no")
if test "x$enable_largefile" != "xno"; then
AC_SYS_LARGEFILE
AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], largefile64_source,
[
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
],[
int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644);
],[
largefile64_source="no"
],[
AC_TRY_COMPILE([
#define _LARGEFILE64_SOURCE
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
],[
int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644);
],[
largefile64_source="yes"
],[
largefile64_source="unknown"
])
])
])
enable_largefile="no"
if test "x$largefile64_source" = "xyes"; then
LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
enable_largefile="yes"
elif test "x$largefile64_source" = "xunknown"; then
AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
fi
if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
enable_largefile="yes"
fi
if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
enable_largefile="yes"
fi
else
AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
LARGEFILE_CFLAGS=""
fi
AM_CONDITIONAL(ENABLE_LARGEFILE, test "x$enable_largefile" = "xyes")
EVO_SET_COMPILE_FLAGS(CAMEL, $mozilla_nss gio-2.0 sqlite3 gthread-2.0,
$THREADS_CFLAGS $KRB4_CFLAGS $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $LARGEFILE_CFLAGS,
-lz $THREADS_LIBS $KRB4_LDFLAGS $KRB5_LDFLAGS $MANUAL_NSS_LIBS)
AC_SUBST(CAMEL_CFLAGS)
AC_SUBST(CAMEL_LIBS)
AC_SUBST(CAMEL_GROUPWISE_CFLAGS)
AC_SUBST(CAMEL_GROUPWISE_LIBS)
dnl *******************
dnl Special directories
dnl *******************
dnl --- If you add something here, consider whether or not you also
dnl --- need to add it to one or more .pc.in files (for Connector,
dnl --- etc)
privdatadir='${datadir}'/evolution-data-server-$BASE_VERSION
AC_SUBST(privdatadir)
privincludedir='${includedir}'/evolution-data-server-$BASE_VERSION
AC_SUBST(privincludedir)
privlibdir='${libdir}'/evolution-data-server-$BASE_VERSION
AC_SUBST(privlibdir)
idldir='${datadir}'/idl/evolution-data-server-$API_VERSION
AC_SUBST(idldir)
imagesdir='${datadir}'/pixmaps/evolution-data-server
AC_SUBST(imagesdir)
serverdir="$libdir/bonobo/servers"
AC_SUBST(serverdir)
extensiondir='${libdir}'/evolution-data-server-$API_VERSION/extensions
AC_SUBST(extensiondir)
gladedir="$privdatadir/glade"
AC_SUBST(gladedir)
weatherdatadir="$privdatadir/weather"
AC_SUBST(weatherdatadir)
dnl separate camel from e-d-s? or should it be under the same spot? same for now.
camel_providerdir='${libdir}'/evolution-data-server-$API_VERSION/camel-providers
AC_SUBST(camel_providerdir)
dnl ************************
dnl IDL/Component Versioning
dnl ************************
INTERFACE_VERSION="$BASE_VERSION"
AC_SUBST(INTERFACE_VERSION)
AC_DEFINE_UNQUOTED(INTERFACE_VERSION, "$INTERFACE_VERSION", [IDL interface version (Major.Minor)])
EVO_SUBST_SERVER_RULE='%.server.in: %.server.in.in ; sed -e "s|\@BINDIR\@|$(bindir)|" -e "s|\@LIBEXECDIR_IN_SERVER_FILE\@|$(LIBEXECDIR_IN_SERVER_FILE)|" -e "s|\@COMPONENTDIR\@|$(componentdir)|" -e "s|\@IMPORTERSDIR\@|$(importersdir)|" -e "s|\@EXEEXT\@|$(EXEEXT)|" -e "s|\@VERSION\@|$(BASE_VERSION)|" -e "s|\@API_VERSION\@|$(API_VERSION)|" -e "s|\@INTERFACE_VERSION\@|$(INTERFACE_VERSION)|" $< > $@'
EVO_NAME_SERVER_RULE='%_$(API_VERSION).server: %.server ; mv $< $@'
AC_SUBST(EVO_SUBST_SERVER_RULE)
AC_SUBST(EVO_NAME_SERVER_RULE)
dnl ***********
dnl GConf stuff
dnl ***********
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
AM_GCONF_SOURCE_2
dnl *************
dnl Gtk Doc stuff
dnl *************
GTK_DOC_CHECK(1.9)
dnl ******************************
dnl Makefiles
dnl ******************************
export privlibdir
export privincludedir
export privdatadir
if test $enable_calendar = yes; then
AC_CONFIG_SUBDIRS(calendar/libical)
fi
if test $dynamic_libdb = no; then
AC_CONFIG_SUBDIRS(libdb/dist)
fi
AC_OUTPUT([
Makefile
evolution-data-server-zip
evolution-data-server.pc
addressbook/Makefile
addressbook/idl/Makefile
addressbook/libebook/Makefile
addressbook/libebook/libebook.pc
addressbook/libedata-book/Makefile
addressbook/libedata-book/libedata-book.pc
addressbook/backends/Makefile
addressbook/backends/file/Makefile
addressbook/backends/vcf/Makefile
addressbook/backends/ldap/Makefile
addressbook/backends/google/Makefile
addressbook/backends/groupwise/Makefile
addressbook/backends/webdav/Makefile
addressbook/tests/Makefile
addressbook/tests/ebook/Makefile
addressbook/tests/vcard/Makefile
art/Makefile
calendar/Makefile
calendar/idl/Makefile
calendar/libecal/Makefile
calendar/libecal/libecal.pc
calendar/libedata-cal/Makefile
calendar/libedata-cal/libedata-cal.pc
calendar/backends/Makefile
calendar/backends/caldav/Makefile
calendar/backends/file/Makefile
calendar/backends/groupwise/Makefile
calendar/backends/http/Makefile
calendar/backends/contacts/Makefile
calendar/backends/weather/Makefile
calendar/backends/google/Makefile
calendar/tests/Makefile
calendar/tests/ecal/Makefile
camel/Makefile
camel/providers/Makefile
camel/providers/groupwise/Makefile
camel/providers/hula/Makefile
camel/providers/imap/Makefile
camel/providers/imapp/Makefile
camel/providers/imap4/Makefile
camel/providers/local/Makefile
camel/providers/nntp/Makefile
camel/providers/pop3/Makefile
camel/providers/sendmail/Makefile
camel/providers/smtp/Makefile
camel/tests/Makefile
camel/tests/folder/Makefile
camel/tests/lib/Makefile
camel/tests/message/Makefile
camel/tests/mime-filter/Makefile
camel/tests/misc/Makefile
camel/tests/smime/Makefile
camel/tests/stream/Makefile
camel/camel.pc
camel/camel-provider.pc
libdb/Makefile
libebackend/Makefile
libebackend/libebackend.pc
libedataserver/Makefile
libedataserver/eds-version.h
libedataserver/libedataserver.pc
libedataserverui/Makefile
libedataserverui/libedataserverui.pc
servers/Makefile
servers/groupwise/Makefile
servers/groupwise/libegroupwise.pc
servers/exchange/Makefile
servers/exchange/xntlm/Makefile
servers/exchange/lib/Makefile
servers/exchange/storage/Makefile
servers/exchange/storage/libexchange-storage.pc
servers/google/Makefile
servers/google/libgdata/Makefile
servers/google/libgdata/libgdata.pc
servers/google/libgdata-google/Makefile
servers/google/libgdata-google/libgdata-google.pc
src/Makefile
win32/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/addressbook/Makefile
docs/reference/addressbook/libebook/Makefile
docs/reference/addressbook/libedata-book/Makefile
docs/reference/calendar/Makefile
docs/reference/calendar/libecal/Makefile
docs/reference/calendar/libedata-cal/Makefile
docs/reference/camel/Makefile
docs/reference/libedataserver/Makefile
docs/reference/libedataserverui/Makefile
docs/reference/libebackend/Makefile
po/Makefile.in
])
case $host in
*-mingw*)
# Override the old libtool in libdb/dist with the one from here
cp libtool libdb/dist
;;
esac
echo "
evolution-data-server has been configured as follows:
Calendar: $msg_calendar
Mail Directory: $system_mail_dir, $system_mail_perm
LDAP support: $msg_ldap"
if test "$msg_nntp" = "yes"; then
echo "\
NNTP support: $msg_nntp"
fi
if test "$msg_hula" = "yes"; then
echo "\
Hula support: $msg_hula"
fi
echo "\
Kerberos 4/5: $msg_krb4/$msg_krb5
Gnome Keyring: $enable_gnome_keyring/$with_gnome_keyring
SSL support: $msg_ssl
SMIME support: $msg_smime
IPv6 support: $msg_ipv6
Berkeley DB: $msg_libdb
Exchange support: $msg_exchange
Dot Locking: $msg_dot
File Locking: $msg_file
Large files: $largefile_support
Gtk Doc: $enable_gtk_doc
"
if test "$msg_no_ntlm" != "no" ; then
echo ""
AC_MSG_WARN([
No NTLM support in OpenLDAP; Plaintext password authentication will be
used when connecting to the Exchange Global Catalog server. Consider
installing the evo-openldap package, or building OpenLDAP with the
patch in servers/exchange/docs/openldap-ntlm.diff
])
fi