# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)

AC_INIT(evolution, 2.0.4, http://bugzilla.ximian.com/enter_bug.cgi?product=Evolution)
AC_CONFIG_SRCDIR(README)
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)

AM_CONFIG_HEADER(config.h)

AC_CHECK_LIB(resolv, res_query, RESOLV_LIBS="-lresolv")
AC_SUBST(RESOLV_LIBS)

AC_CANONICAL_HOST
AC_DEFINE_UNQUOTED(VERSION_COMMENT, "", [Define if you want a comment appended to the version number])

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)
	;;
esac
AC_STDC_HEADERS
AC_ARG_PROGRAM
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
AC_PROG_INTLTOOL([0.30])

ALL_LINGUAS="am ar az be bg bn bs ca cs cy da de el en_AU en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id is it ja ko lt lv mk ml mn ms nb nl nn no pa pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi wa zh_CN zh_TW"
AM_GLIB_GNU_GETTEXT

dnl The base version for OAFIIDs, install dirs, binary names
BASE_VERSION=2.0
AC_SUBST(BASE_VERSION)
AC_DEFINE_UNQUOTED(BASE_VERSION, "$BASE_VERSION", [Base version (Major.Minor)])

dnl Update/migration version
UPGRADE_REVISION=0
AC_SUBST(UPGRADE_REVISION)
AC_DEFINE_UNQUOTED(UPGRADE_REVISION, "$UPGRADE_REVISION", [The number of times we've upgraded since the BASE_VERSION release])

GETTEXT_PACKAGE=evolution-$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
AM_PROG_LIBTOOL

dnl alloca()
AC_CHECK_HEADERS(alloca.h)

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 Purify support
dnl
EVO_PURIFY_SUPPORT

dnl **************
dnl Test Component
dnl **************
AC_ARG_ENABLE(test-component, [  --enable-test-component=[no/yes]      Enable test component.],enable_test_comp="$enableval",enable_test_comp=no)
AM_CONDITIONAL(ENABLE_TEST_COMPONENT, test "x$enable_test_comp" = "xyes")

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


AC_CHECK_FUNCS(mkstemp mkdtemp isblank)

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 * Gnome Icon Theme
dnl **************************************************
PKG_CHECK_MODULES(GIT, gnome-icon-theme >= 1.2.0)

dnl **************************************************
dnl * Accessibility support
dnl **************************************************
PKG_CHECK_MODULES(A11Y, atk)
AC_SUBST(A11Y_CFLAGS)
AC_SUBST(A11Y_LIBS)

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>

	],[
		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, [  --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 LDAP support.
dnl **************************************************
EVO_LDAP_CHECK(no)
case $with_openldap in
no)
	msg_ldap=no
	;;
*)
	case $with_static_ldap in
	yes)
		msg_ldap="yes (static)"
		;;
	*)
		msg_ldap="yes (dynamic)"
		;;
	esac
esac

dnl **************************************************
dnl NNTP support.
dnl **************************************************
AC_ARG_ENABLE(nntp, 
[  --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, 
[  --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 New IMAP code support.
dnl **************************************************
AC_ARG_ENABLE(imap4, 
[  --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 * 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 * File locking
dnl **************************************************

AC_ARG_ENABLE(dot-locking, 
[  --enable-dot-locking=[yes/no] Enable support for locking mail files with dot locking],,enable_dot_locking=yes)
if test "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, 
[  --enable-file-locking=[fcntl/flock/no] Enable support for locking mail files with file locking],,enable_file_locking=fcntl)
if test "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 "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, 
[  --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 Libraries
dnl *********

PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.1)
AC_SUBST(GTKHTML_CFLAGS)
AC_SUBST(GTKHTML_LIBS)
GTKHTML_DATADIR=`$PKG_CONFIG --variable gtkhtml_datadir libgtkhtml-3.1`
AC_SUBST(GTKHTML_DATADIR)


dnl ******************************
dnl Pilot checking
dnl ******************************
AC_ARG_ENABLE(pilot-conduits, 
[  --enable-pilot-conduits=[no/yes] Enable support for building pilot conduits.],,enable_pilot_conduits=no)
if test "x$enable_pilot_conduits" = "xyes"; then
	PKG_CHECK_MODULES(GNOME_PILOT, gnome-pilot-2.0)

	CFLAGS_save="$CFLAGS"
	CFLAGS="$CFLAGS $GNOME_PILOT_CFLAGS"
	LDFLAGS_save="$LDFLAGS"
	LDFLAGS="$LDFLAGS $GNOME_PILOT_LIBS"

	AC_CACHE_CHECK([if pilot-link handles UTF-8 conversions], ac_cv_pilot_link_utf8, AC_TRY_RUN([

#include <stdlib.h>
#include <string.h>
#include <pi-util.h>

int main (int argc, char **argv)
{
	const char *utf8 = "\x66\x66\x66\x66\x66\x66\x66\xC2\xA9";
	size_t utf8_real_len = strlen (utf8);
	char *pstring;	

	if (convert_ToPilotChar ("UTF-8", utf8, utf8_real_len, &pstring) == -1)
		exit (1);

	exit (0);
}
], ac_cv_pilot_link_utf8=yes, ac_cv_pilot_link_utf8=no, ac_cv_pilot_link_utf8=no))

	CFLAGS="$CFLAGS_save"
	LDFLAGS="$LDFLAGS_save"

	if test "$ac_cv_pilot_link_utf8" = no; then
		AC_MSG_ERROR(evolution requires pilot-link to have working UTF-8 conversion routines)
	fi
fi
AM_CONDITIONAL(ENABLE_PILOT_CONDUITS, test "x$enable_pilot_conduits" = "xyes")
if test x$enable_pilot_conduits = xyes; then
   msg_pilot=yes
else
   msg_pilot=no
fi
AC_SUBST(GNOME_PILOT_CFLAGS)
AC_SUBST(GNOME_PILOT_LIBS)

dnl ********
dnl Kerberos
dnl ********
AC_SEARCH_LIBS(gethostbyname, nsl)
AC_SEARCH_LIBS(socket, socket)

AC_ARG_WITH(krb5, [  --with-krb5=DIR      Location of Kerberos 5 install dir], with_krb5="$withval", with_krb5="no")
AC_ARG_WITH(krb5-libs, [  --with-krb5-libs=DIR Location of Kerberos 5 libraries], with_krb5_libs="$withval", with_krb5_libs="$with_krb5/lib")
AC_ARG_WITH(krb5-includes, [  --with-krb5-includes=DIR Location of Kerberos 5 headers], with_krb5_includes="$withval", with_krb5_includes="")
AC_ARG_WITH(krb4, [  --with-krb4=DIR      Location of Kerberos 4 install dir], with_krb4="$withval", with_krb4="no")
AC_ARG_WITH(krb4-libs, [  --with-krb4-libs=DIR Location of Kerberos 4 libraries], with_krb4_libs="$withval", with_krb4_libs="$with_krb4/lib")
AC_ARG_WITH(krb4-includes, [  --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"
	AC_CACHE_CHECK([for Kerberos 5], ac_cv_lib_kerberos5,
	[
		LDFLAGS="$LDFLAGS -L$with_krb5_libs $mitlibs"
		AC_TRY_LINK_FUNC(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", 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
			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)"
		fi
		KRB5_LDFLAGS="-L$with_krb5_libs $ac_cv_lib_kerberos5"
	fi
else
	AC_MSG_CHECKING(for Kerberos 5)
	AC_MSG_RESULT($with_krb5)
fi

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 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, [  --enable-nss=[yes,no,static]        Attempt to use Mozilla libnss for SSL support.],
	enable_nss="$enableval", enable_nss="yes")

AC_ARG_ENABLE(smime, [ --enable-smime=[yes,no]            Attempt to use Mozilla libnss for SMIME support (this requires --enable-nss)],
	enable_smime="$enableval", enable_smime="yes")

dnl ***********************************************************************************************************
dnl OpenSSL is no longer available. DO NOT USE IT!!! The OpenSSL camel code is known to have security problems, 
dnl it doesn't work, it doesn't build, it is never tested, and to top it all off, it is not GPL compatable.
dnl ***********************************************************************************************************
dnl
dnl AC_ARG_ENABLE(openssl, [  --enable-openssl=[no,yes]        Attempt to use OpenSSL for SSL support.],
dnl 	enable_openssl="$enableval", enable_openssl="no")
dnl 
dnl if test "x${enable_openssl}" = "xyes"; then
dnl User wants to override nss with OpenSSL
dnl 	enable_nss="no"
dnl 	AC_MSG_WARN([OpenSSL enabled, disabling NSS.])
dnl fi

AC_ARG_WITH(nspr-includes, [  --with-nspr-includes=PREFIX	Location of Mozilla nspr4 includes.],
	with_nspr_includes="$withval")

AC_ARG_WITH(nspr-libs, [  --with-nspr-libs=PREFIX       	Location of Mozilla nspr4 libs.],
	with_nspr_libs="$withval")

AC_ARG_WITH(nss-includes, [  --with-nss-includes=PREFIX 	Location of Mozilla nss3 includes.],
	with_nss_includes="$withval")

AC_ARG_WITH(nss-libs, [  --with-nss-libs=PREFIX         	Location of Mozilla nss3 libs.],
	with_nss_libs="$withval")

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
dnl If the user specifies --with-foo or --enable-nss=static, then we have to do this manually
		check_manually="yes"
	else
		check_manually="no"
	fi
	
	if test "x${check_manually}" = "xno" && `$PKG_CONFIG --exists mozilla-nss`; then
		PKG_CHECK_MODULES(NSS, mozilla-nss, have_nss="yes")
		if test "x${have_nss}" = "xyes"; 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				    
			mozilla_nspr="mozilla-nspr"
			mozilla_nss="mozilla-nss"
			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"
		fi
	fi
	
	if test "x${check_manually}" = "xyes"; then
		mozilla_nss=""
		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="-ldl $with_nspr_libs/libplc4.a $with_nspr_libs/libplds4.a $with_nspr_libs/libnspr4.a $PTHREAD_LIB"
				fi
			else
				nsprlibs="-ldl -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 -lsoftokn3"
	 		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 -lsoftokn3"
					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 ******************
dnl CDE dtappintegrate
dnl ******************

AC_ARG_WITH(cde-path, [  --with-cde-path=PATH   Location of CDE installation],
	    [with_cde_path="$withval"])
if test -z "$with_cde_path"; then
	with_cde_path="/usr/dt"
fi

AC_MSG_CHECKING(for dtappintegrate)
if test -x "$with_cde_path/bin/dtappintegrate" ; then
	DTAPPINTEGRATE="$with_cde_path/bin/dtappintegrate"
else
	DTAPPINTEGRATE="no"
fi
AC_MSG_RESULT([$DTAPPINTEGRATE])

AC_SUBST(DTAPPINTEGRATE)
AM_CONDITIONAL(HAVE_DTAPPINTEGRATE, test "x$DTAPPINTEGRATE" != "xno")

dnl *****************
dnl killall or pkill?
dnl *****************

AC_MSG_CHECKING(for command to kill processes)

if test `uname -s` = "SunOS" ; then
	KILL_PROCESS_CMD="pkill";
else
	KILL_PROCESS_CMD="killall";
fi

KILL_PROCESS_CMD=`which $KILL_PROCESS_CMD`
if test -z "$KILL_PROCESS_CMD" ; then
	AC_MSG_RESULT(none)
else
	AC_MSG_RESULT($KILL_PROCESS_CMD)
	AC_DEFINE_UNQUOTED([KILL_PROCESS_CMD], "$KILL_PROCESS_CMD", [Command to kill processes by name])
fi

dnl ******************************
dnl OpenSSL
dnl ******************************

dnl only continue detecting OpenSSL if we haven't already found all of the
dnl Mozilla libnss includes/libraries and if user actually wants ssl support
dnl if test "$msg_ssl" = "no" -a "x${enable_openssl}" != "xno"; then
dnl 	AC_ARG_WITH(openssl-includes, [  --with-openssl-includes=PREFIX     Location of OpenSSL includes.],
dnl 		with_openssl_includes="$withval", with_openssl_includes="/usr/include")
dnl 	have_openssl_includes="no"
dnl 	if test "x${with_openssl_includes}" != "xno"; then
dnl 		CPPFLAGS_save="$CPPFLAGS"
dnl 		
dnl 		AC_MSG_CHECKING(for OpenSSL includes)
dnl 		AC_MSG_RESULT("")
dnl 		
dnl 		CPPFLAGS="$CPPFLAGS -I$with_openssl_includes"
dnl 		AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h, [ openssl_includes="yes" ])
dnl 		CPPFLAGS="$CPPFLAGS_save"
dnl 		
dnl 		if test "x{$openssl_includes}" != "xno" -a "x{$openssl_includes}" != "x"; then
dnl 			have_openssl_includes="yes"
dnl 			OPENSSL_CFLAGS="-I$with_openssl_includes"
dnl 		else
dnl 			OPENSSL_CFLAGS=""
dnl 		fi
dnl 	else
dnl 		AC_MSG_CHECKING(for OpenSSL includes)
dnl 		AC_MSG_RESULT(no)
dnl 	fi
dnl 	
dnl 	AC_ARG_WITH(openssl-libs, [  --with-openssl-libs=PREFIX     	Location of OpenSSL libs.],
dnl 		with_openssl_libs="$withval")
dnl 	if test "x${with_openssl_libs}" != "xno" -a "x${have_openssl_includes}" != "xno"; then
dnl 		LDFLAGS_save="$LDFLAGS"
dnl 	
dnl 		case $with_openssl_libs in
dnl 		""|-L*) ;;
dnl 		*) with_openssl_libs="-L$with_openssl_libs" ;;
dnl 		esac
dnl 	
dnl 		AC_CHECK_LIB(dl, dlopen, DL_LDFLAGS="-ldl", DL_LDFLAGS="")
dnl 		AC_CACHE_CHECK([for OpenSSL libraries], openssl_libs,
dnl 		[
dnl 			LDFLAGS="$LDFLAGS $with_openssl_libs -lssl -lcrypto $DL_LDFLAGS"
dnl 			AC_TRY_LINK_FUNC(SSL_read, openssl_libs="yes", openssl_libs="no")
dnl 			LDFLAGS="$LDFLAGS_save"
dnl 		])
dnl 		if test "x${openssl_libs}" != "xno"; then
dnl 			AC_DEFINE(HAVE_OPENSSL,1,[Define if you have OpenSSL])
dnl 			AC_DEFINE(HAVE_SSL)
dnl 			msg_ssl="yes (OpenSSL)"
dnl 			OPENSSL_LDFLAGS="$with_openssl_libs -lssl -lcrypto $DL_LDFLAGS"
dnl 		else
dnl 			OPENSSL_CFLAGS=""
dnl 			OPENSSL_LDFLAGS=""
dnl 		fi
dnl 	else
dnl 		AC_MSG_CHECKING(for OpenSSL libraries)
dnl 		AC_MSG_RESULT(no)
dnl 	fi
dnl else
dnl 	OPENSSL_CFLAGS=""
dnl 	OPENSSL_LDFLAGS=""
dnl 
dnl 
dnl AC_SUBST(OPENSSL_CFLAGS)
dnl AC_SUBST(OPENSSL_LDFLAGS)

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 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
	CFLAGS="$CFLAGS -Wno-sign-compare"
	;;
esac

AM_PATH_ORBIT2(2.9.8)

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`" -I "`pkg-config --variable=idldir evolution-data-server-1.0`
AC_MSG_RESULT($IDL_INCLUDES)
AC_SUBST(IDL_INCLUDES)

dnl Utility macro to set compiler flags for a specific lib.
AC_DEFUN(EVO_SET_COMPILE_FLAGS, [
	deps="$2"
	extra_cflags="$3"
	extra_libs="$4"
	PKG_CHECK_MODULES(EVOLUTION, $deps)
	$1_CFLAGS="$EVOLUTION_CFLAGS \$(WERROR) $extra_cflags"
	$1_LIBS="$EVOLUTION_LIBS $extra_libs"
])

dnl enable USE_GTKFILECHOOSER if gtk version is > 2.4.0
AC_ARG_ENABLE(file-chooser, [  --enable-file-chooser    Enable the usage of the GtkFileChooser in place of the GtkFileSelection dialog], enable_file_chooser="$enableval", enable_file_chooser="yes")
if test "x$enable_file_chooser" = "xyes"; then
  if pkg-config --atleast-version=2.4.0 gtk+-2.0; then
    AC_DEFINE(USE_GTKFILECHOOSER,1,[Use new GtkFileChooser])
  fi
fi

dnl --- Required version numbers

GAL_REQUIRED=2.2.5
GTKHTML_REQUIRED=3.2.5
EDS_REQUIRED=1.0.4
BONOBOUI_REQUIRED=2.4.2

AC_SUBST(GAL_REQUIRED)
AC_SUBST(GTKHTML_REQUIRED)
AC_SUBST(EDS_REQUIRED)
AC_SUBST(BONOBOUI_REQUIRED)

dnl --- Flags to get all the GNOME stuff

FULL_GNOME_DEPS="glib-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED gnome-vfs-2.0 libgnomeui-2.0 libglade-2.0 libgnomecanvas-2.0 libxml-2.0 gconf-2.0 gal-2.2 >= $GAL_REQUIRED"

EVO_SET_COMPILE_FLAGS(GNOME_FULL, $FULL_GNOME_DEPS)
AC_SUBST(GNOME_FULL_CFLAGS)
AC_SUBST(GNOME_FULL_LIBS)

CPPFLAGS_save="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags-only-I libgnomeui-2.0`"
AC_CHECK_HEADERS(libgnomeui/gnome-icon-lookup.h)
AC_CHECK_HEADERS(libgnomeui/gnome-thumbnail.h)
CPPFLAGS="$CPPFLAGS_save"

dnl --- Flags for the various libraries we build

EVO_SET_COMPILE_FLAGS(CAMEL, glib-2.0 gthread-2.0 gal-2.2 >= $GAL_REQUIRED $mozilla_nss,
		      $THREADS_CFLAGS $KRB4_CFLAGS $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $OPENSSL_CFLAGS,
	              $THREADS_LIBS $KRB4_LDFLAGS $KRB5_LDFLAGS $MANUAL_NSS_LIBS $OPENSSL_LDFLAGS)
AC_SUBST(CAMEL_CFLAGS)
AC_SUBST(CAMEL_LIBS)

EVO_SET_COMPILE_FLAGS(CAMEL_GROUPWISE, libegroupwise-1.0 >= $EDS_REQUIRED,
		      $CAMEL_CFLAGS,
	              $CAMEL_LIBS)
AC_SUBST(CAMEL_GROUPWISE_CFLAGS)
AC_SUBST(CAMEL_GROUPWISE_LIBS)

if test "x$mozilla_nss" != "x"; then
   EVO_SET_COMPILE_FLAGS(MOZILLA_NSS, $mozilla_nss)
   MOZILLA_L_DIR=`pkg-config --libs-only-L $mozilla_nss`
else
	if test "x$MOZILLA_MANUAL_LIBS" != "x"; then
	   MOZILLA_L_DIR="-L$with_nss_lib"
	fi
fi

EVO_SET_COMPILE_FLAGS(CERT_UI, glib-2.0 gobject-2.0 gthread-2.0,
                      $MANUAL_NSS_CFLAGS $MOZILLA_NSS_CFLAGS,
	              $MOZILLA_L_DIR $MANUAL_NSS_LIBS $MOZILLA_NSS_LIBS)
AC_SUBST(CERT_UI_CFLAGS)
AC_SUBST(CERT_UI_LIBS)

EVO_SET_COMPILE_FLAGS(E_NAME, libgnomeui-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED gal-2.2 >= $GAL_REQUIRED)
AC_SUBST(E_NAME_CFLAGS)
AC_SUBST(E_NAME_LIBS)

EVO_SET_COMPILE_FLAGS(E_UTIL, gthread-2.0 gconf-2.0 libxml-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED libglade-2.0 gal-2.2 >= $GAL_REQUIRED libgnomeui-2.0 libgnome-2.0 libgnomecanvas-2.0 libedataserver-1.0 >= $EDS_REQUIRED $mozilla_nspr, $THREADS_CFLAGS $MANUAL_NSPR_CFLAGS, $THREADS_LIBS $MANUAL_NSPR_LIBS)
AC_SUBST(E_UTIL_CFLAGS)
AC_SUBST(E_UTIL_LIBS)

EVO_SET_COMPILE_FLAGS(TZDIALOG, libecal-1.0 >= $EDS_REQUIRED, $GNOME_FULL_CFLAGS, $GNOME_FULL_LIBS)
AC_SUBST(TZDIALOG_CFLAGS)
AC_SUBST(TZDIALOG_LIBS)

EVO_SET_COMPILE_FLAGS(SOURCE_SEL, libedataserver-1.0 >= $EDS_REQUIRED, $GNOME_FULL_CFLAGS, $GNOME_FULL_LIBS)
AC_SUBST(SOURCE_SEL_CFLAGS)
AC_SUBST(SOURCE_SEL_LIBS)


dnl 
dnl EVO_SET_COMPILE_FLAGS(E_WIDGETS, bonobo_conf bonobox_print gdk_pixbuf gnomecanvaspixbuf gnomeui libglade oaf vfs)
dnl AC_SUBST(E_WIDGETS_CFLAGS)
dnl AC_SUBST(E_WIDGETS_LIBS)
dnl 
EVO_SET_COMPILE_FLAGS(IMPORTERS, gconf-2.0 libglade-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED libgnomeui-2.0 libebook-1.0 >= $EDS_REQUIRED)
AC_SUBST(IMPORTERS_CFLAGS)
AC_SUBST(IMPORTERS_LIBS)

EVO_SET_COMPILE_FLAGS(LIBFILTER, libgnome-2.0 libgnomeui-2.0 libglade-2.0 libxml-2.0 gconf-2.0 gal-2.2 >= $GAL_REQUIRED)
AC_SUBST(LIBFILTER_CFLAGS)
AC_SUBST(LIBFILTER_LIBS)

dnl --- evolution (shell) flags

EVO_SET_COMPILE_FLAGS(SHELL, libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED gal-2.2 >= $GAL_REQUIRED libglade-2.0 gnome-vfs-2.0 libgtkhtml-3.1 >= $GTKHTML_REQUIRED)
AC_SUBST(SHELL_CFLAGS)
AC_SUBST(SHELL_LIBS)

dnl --- evolution-addressbook flags

EVOLUTION_ADDRESSBOOK_DEPS="gconf-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED libglade-2.0 gal-2.2 >= $GAL_REQUIRED libgnomeui-2.0 libgnome-2.0 libgnomecanvas-2.0 gnome-vfs-2.0 libgnomeprintui-2.2 libgtkhtml-3.1 >= $GTKHTML_REQUIRED libebook-1.0 >= $EDS_REQUIRED"

EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)

if test x$enable_pilot_conduits = xyes; then
EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK_CONDUIT, gnome-pilot-2.0 $EVOLUTION_ADDRESSBOOK_DEPS)
AC_SUBST(EVOLUTION_ADDRESSBOOK_CONDUIT_CFLAGS)
AC_SUBST(EVOLUTION_ADDRESSBOOK_CONDUIT_LIBS)
fi

dnl --- evolution-calendar flags
EVO_SET_COMPILE_FLAGS(LIBSOUP, libsoup-2.2 >= 2.2.1)
AC_SUBST(LIBSOUP_CFLAGS)
AC_SUBST(LIBSOUP_LIBS)

EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 gal-2.2 >= $GAL_REQUIRED libglade-2.0 gnome-vfs-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.1 >= $GTKHTML_REQUIRED libebook-1.0 >= $EDS_REQUIRED libecal-1.0 >= $EDS_REQUIRED)
AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
AC_SUBST(EVOLUTION_CALENDAR_LIBS)

if test x$enable_pilot_conduits = xyes; then
EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR_CONDUIT, gnome-pilot-2.0, $EVOLUTION_CALENDAR_CFLAGS, $EVOLUTION_CALENDAR_LIBS)
AC_SUBST(EVOLUTION_CALENDAR_CONDUIT_CFLAGS)
AC_SUBST(EVOLUTION_CALENDAR_CONDUIT_LIBS)
fi

dnl --- evolution-mail flags

EVO_SET_COMPILE_FLAGS(EVOLUTION_MAIL, libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED gal-2.2 >= $GAL_REQUIRED libglade-2.0 gnome-vfs-module-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.1 >= $GTKHTML_REQUIRED libxml-2.0 bonobo-activation-2.0 gthread-2.0 gconf-2.0 $mozilla_nss libebook-1.0 >= $EDS_REQUIRED)
AC_SUBST(EVOLUTION_MAIL_CFLAGS)
AC_SUBST(EVOLUTION_MAIL_LIBS)

dnl -- evolution-data-server IDL and version

AC_DEFINE(DATASERVER_API_VERSION, "1.0", evolution-data-server API version)
AC_DEFINE_UNQUOTED(DATASERVER_VERSION, "`pkg-config --modversion evolution-data-server-1.0`", evolution-data-server version)

AC_MSG_CHECKING(for evolution-data-server IDL)
DATASERVER_IDL=`pkg-config --variable=idldir evolution-data-server-1.0`/Evolution-DataServer.idl
if test -f "$DATASERVER_IDL"; then
	AC_MSG_RESULT($DATASERVER_IDL)
	 AC_SUBST(DATASERVER_IDL)
else
	AC_MSG_ERROR(no)
fi

dnl --- evolution-test flags

EVO_SET_COMPILE_FLAGS(EVOLUTION_TEST, libgnome-2.0 libgnomeui-2.0 libbonobo-2.0 libbonoboui-2.0 >= $BONOBOUI_REQUIRED)
AC_SUBST(EVOLUTION_TEST_CFLAGS)
AC_SUBST(EVOLUTION_TEST_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)

privlibdir='${libdir}'/evolution/$BASE_VERSION
AC_SUBST(privlibdir)

privlibexecdir='${libexecdir}'/evolution/$BASE_VERSION
AC_SUBST(privlibexecdir)

privdatadir='${datadir}'/evolution/$BASE_VERSION
AC_SUBST(privdatadir)

privincludedir='${includedir}'/evolution-$BASE_VERSION
AC_SUBST(privincludedir)

camel_providerdir="$privlibdir/camel-providers"
AC_SUBST(camel_providerdir)

componentdir="$privlibdir/components"
AC_SUBST(componentdir)

idldir="$datadir/idl/evolution-$BASE_VERSION"
AC_SUBST(idldir)

serverdir="$libdir/bonobo/servers"
AC_SUBST(serverdir)

evolutionuidir="$privdatadir/ui"
AC_SUBST(evolutionuidir)

evolutionhelpdir="$privdatadir/help"
AC_SUBST(evolutionhelpdir)

imagesdir="$privdatadir/images"
AC_SUBST(imagesdir)

images16dir="$privdatadir/images/16x16"
AC_SUBST(images16dir)

dnl images18dir="$privdatadir/images/18x18"
dnl AC_SUBST(images18dir)

dnl images20dir="$privdatadir/images/20x20"
dnl AC_SUBST(images20dir)

dnl images24dir="$privdatadir/images/24x24"
dnl AC_SUBST(images24dir)

dnl images32dir="$privdatadir/images/32x32"
dnl AC_SUBST(images32dir)

images48dir="$privdatadir/images/48x48"
AC_SUBST(images48dir)

soundsdir="$privdatadir/sounds"
AC_SUBST(soundsdir)

gladedir="$privdatadir/glade"
AC_SUBST(gladedir)

etspecdir="$privdatadir/etspec"
AC_SUBST(etspecdir)

viewsdir="$privdatadir/views"
AC_SUBST(viewsdir)

privconduitdir='${libdir}'/evolution/$BASE_VERSION/conduits
AC_SUBST(privconduitdir)

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_SERVER_RULE=$srcdir/server.mk
AC_SUBST_FILE(EVO_SERVER_RULE)

##################################################
# Check for gtk-doc.
##################################################

AC_ARG_WITH(html-dir, [  --with-html-dir=PATH path to installed docs ])

if test "x$with_html_dir" = "x" ; then
  HTML_DIR='${datadir}/gnome/html'
else
  HTML_DIR=$with_html_dir
fi

AC_SUBST(HTML_DIR)

AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)

gtk_doc_min_version=0.6
if $GTKDOC ; then 
    gtk_doc_version=`gtkdoc-mkdb --version`
    AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
    if perl <<EOF ; then
      exit (("$gtk_doc_version" =~ /^[[0-9]]+\.[[0-9]]+$/) &&
            ("$gtk_doc_version" >= "$gtk_doc_min_version") ? 0 : 1);
EOF
      AC_MSG_RESULT(yes)
   else
      AC_MSG_RESULT(no)
      GTKDOC=false
   fi
fi

dnl Let people disable the gtk-doc stuff.
AC_ARG_ENABLE(gtk-doc, [  --enable-gtk-doc  Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)

if test x$enable_gtk_doc = xauto ; then
  if test x$GTKDOC = xtrue ; then
    enable_gtk_doc=yes
  else
    enable_gtk_doc=no 
  fi
fi

AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)

dnl ***********
dnl GConf stuff
dnl ***********
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
AM_GCONF_SOURCE_2

dnl ******************
dnl Sub-version number
dnl ******************
AC_ARG_WITH(sub-version, [  --with-sub-version=VERSION Specify a sub-version string])
AC_DEFINE_UNQUOTED(SUB_VERSION, "$with_sub_version", [Version substring, for packagers])

AC_ARG_ENABLE(default-binary, [  --disable-default-binary Do not install as the default "evolution" binary  ], , enable_default_binary=no)
AM_CONDITIONAL(DEFAULT_BINARY, test x$enable_default_binary = xyes)


dnl ********************
dnl KDE applnk directory
dnl ********************
AC_ARG_WITH(kde-applnk-path, [  --with-kde-applnk-path=PATH    Location of KDE applnk files],
            [with_kde_applnk_path="$withval"],
	    [with_kde_applnk_path="no"])
if test x"$with_kde_applnk_path" != x"no"; then
	if test -z "$with_kde_applnk_path"; then
		with_kde_applnk_path="$datadir/applnk"
	fi
	KDE_APPLNK_DIR="$with_kde_applnk_path"
else
	KDE_APPLNK_DIR=""
fi
AM_CONDITIONAL(HAVE_KDE_APPLNK, test x"$KDE_APPLNK_DIR" != x)
AC_SUBST(KDE_APPLNK_DIR)

dnl ******************************
dnl Makefiles
dnl ******************************

export privlibdir
export privincludedir
export privdatadir

EVOLUTION_DIR=`(cd $srcdir; pwd)`
AC_SUBST(EVOLUTION_DIR)

AC_OUTPUT([ po/Makefile.in
Makefile
a11y/Makefile
a11y/addressbook/Makefile
a11y/calendar/Makefile
a11y/widgets/Makefile
addressbook/Makefile
addressbook/conduit/Makefile
addressbook/gui/Makefile
addressbook/gui/component/Makefile
addressbook/gui/component/select-names/Makefile
addressbook/gui/contact-editor/Makefile
addressbook/gui/contact-list-editor/Makefile
addressbook/gui/merging/Makefile
addressbook/gui/search/Makefile
addressbook/gui/widgets/Makefile
addressbook/importers/Makefile
addressbook/printing/Makefile
addressbook/tools/Makefile
addressbook/util/Makefile
art/Makefile
camel/Makefile
camel/providers/Makefile
camel/providers/groupwise/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
data/Makefile
data/cde_app_root/Makefile
data/cde_app_root/dt/Makefile
data/cde_app_root/dt/appconfig/Makefile
data/cde_app_root/dt/appconfig/appmanager/Makefile
data/cde_app_root/dt/appconfig/appmanager/C/Makefile
data/cde_app_root/dt/appconfig/appmanager/C/Ximian/Makefile
data/cde_app_root/dt/appconfig/icons/Makefile
data/cde_app_root/dt/appconfig/icons/C/Makefile
data/cde_app_root/dt/appconfig/types/Makefile
data/cde_app_root/dt/appconfig/types/C/Makefile
data/cde_app_root/dt/appconfig/types/C/Ximian.dt
e-util/Makefile
filter/Makefile
help/Makefile
help/C/Makefile
help/quickref/Makefile
help/quickref/C/Makefile
shell/Makefile
shell/evolution-nognome
shell/importer/Makefile
ui/Makefile
views/Makefile
views/addressbook/Makefile
views/calendar/Makefile
views/mail/Makefile
views/tasks/Makefile
widgets/Makefile
widgets/e-timezone-dialog/Makefile
widgets/menus/Makefile
widgets/misc/Makefile
calendar/Makefile
calendar/importers/Makefile
calendar/common/Makefile
calendar/idl/Makefile
calendar/conduits/Makefile
calendar/conduits/todo/Makefile
calendar/conduits/calendar/Makefile
calendar/gui/Makefile
calendar/gui/alarm-notify/Makefile
calendar/gui/dialogs/Makefile
composer/Makefile
mail/Makefile
mail/default/Makefile
mail/default/C/Makefile
mail/importers/Makefile
smime/Makefile
smime/lib/Makefile
smime/gui/Makefile
tools/Makefile
evolution-shell.pc
camel.pc
])

if test "x$with_sub_version" != "x"; then
echo "
	Evolution ($with_sub_version) has been configured as follows: "
else
echo "
	Evolution has been configured as follows: "
fi

echo "
	Mail Directory:   $system_mail_dir, $system_mail_perm
	LDAP support:     $msg_ldap"
if test "$msg_nntp" = "yes"; then
echo "\
	NNTP support:     $msg_nntp"
fi
echo "\
	Pilot conduits:   $msg_pilot
	Kerberos 4/5:     $msg_krb4/$msg_krb5
	SSL support:      $msg_ssl
	SMIME support:    $msg_smime
	IPv6 support:     $msg_ipv6
	Dot Locking:	  $msg_dot
	File Locking:	  $msg_file
	Gtk-doc:	  $enable_gtk_doc"

if test x$enable_gtk_doc = xyes; then
echo "
	Programming documentation files will be built automatically.
"
else
echo "
	Programming documentation files will not be built.
	You may want to install the gtk-doc package
	so that you will get the Evolution Developer's Guide.
"
fi
