2 dnl Evolution-Data-Server version
3 m4_define([eds_major_version], [3])
4 m4_define([eds_minor_version], [7])
5 m4_define([eds_micro_version], [5])
7 m4_define([eds_version],
8 [eds_major_version.eds_minor_version.eds_micro_version])
10 dnl Base Version: This is for API/version tracking for things like
11 dnl Bonobo server files. This should always be the major/minor of
12 dnl the stable version or stable version to be. Note, this is set
13 dnl the way it is so that GETTEXT_PACKAGE will be parsed correctly.
15 m4_define([base_version], [3.8])
17 dnl This number is meaningless, but we're now stuck with it in our
18 dnl library names for backward compatibility.
19 m4_define([api_version], [1.2])
21 dnl Autoconf / Automake Initialization
23 AC_INIT([evolution-data-server],[eds_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution-Data-Server])
24 AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar dist-xz no-dist-gzip -Wall -Wno-portability foreign])
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_CONFIG_SRCDIR(README)
27 AC_CONFIG_HEADERS(config.h)
29 dnl This is for the autoconf tests only - it set's the language we use
32 dnl Automake 1.11 - Silent Build Rules
33 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
35 dnl Required Package Versions
37 dnl Keep these two definitions in agreement.
38 m4_define([glib_minimum_version], [2.34])
39 m4_define([glib_encoded_version], [GLIB_VERSION_2_34])
41 dnl Keep these two definitions in agreement.
42 m4_define([gdk_minimum_version], [3.2])
43 m4_define([gdk_encoded_version], [GDK_VERSION_3_2])
45 dnl Keep these two definitions in agreement.
46 m4_define([soup_minimum_version], [2.38.1])
47 m4_define([soup_encoded_version], [SOUP_VERSION_2_38])
49 m4_define([gcr_minimum_version], [3.4])
50 m4_define([libsecret_minimum_version], [0.5])
51 m4_define([libxml_minimum_version], [2.0.0]) dnl XXX Just a Guess
52 m4_define([libgdata_minimum_version], [0.10])
53 m4_define([sqlite_minimum_version], [3.5])
54 m4_define([libical_minimum_version], [0.43])
57 m4_define([goa_minimum_version], [3.2])
58 m4_define([gweather_minimum_version], [3.5.0])
60 AC_SUBST([BASE_VERSION],[base_version])
61 AC_SUBST([API_VERSION],[api_version])
62 AC_DEFINE_UNQUOTED(BASE_VERSION, ["$BASE_VERSION"], [Base version (Major.Minor)])
63 AC_DEFINE_UNQUOTED(API_VERSION, ["$API_VERSION"], [API version (Major.Minor)])
65 EDS_MAJOR_VERSION=eds_major_version
66 EDS_MINOR_VERSION=eds_minor_version
67 EDS_MICRO_VERSION=eds_micro_version
71 dnl ******************************
73 dnl ******************************
74 ADDRESS_BOOK_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.AddressBook4"
75 CALENDAR_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Calendar3"
76 SOURCES_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Sources1"
77 USER_PROMPTER_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.UserPrompter0"
80 ADDRESS_BOOK_DBUS_SERVICE_NAME,
81 ["$ADDRESS_BOOK_DBUS_SERVICE_NAME"],
82 [D-Bus service name for the address book factory])
85 CALENDAR_DBUS_SERVICE_NAME,
86 ["$CALENDAR_DBUS_SERVICE_NAME"],
87 [D-Bus service name for the calendar factory])
90 SOURCES_DBUS_SERVICE_NAME,
91 ["$SOURCES_DBUS_SERVICE_NAME"],
92 [D-Bus service name for the source registry])
95 USER_PROMPTER_DBUS_SERVICE_NAME,
96 ["$USER_PROMPTER_DBUS_SERVICE_NAME"],
97 [D-Bus service name for the user prompter])
99 AC_SUBST(ADDRESS_BOOK_DBUS_SERVICE_NAME)
100 AC_SUBST(CALENDAR_DBUS_SERVICE_NAME)
101 AC_SUBST(SOURCES_DBUS_SERVICE_NAME)
102 AC_SUBST(USER_PROMPTER_DBUS_SERVICE_NAME)
104 dnl ******************************
105 dnl Libtool versioning
106 dnl ******************************
107 LIBEDATASERVER_CURRENT=17
108 LIBEDATASERVER_REVISION=0
115 LIBEDATACAL_CURRENT=20
116 LIBEDATACAL_REVISION=0
119 LIBEDATABOOK_CURRENT=16
120 LIBEDATABOOK_REVISION=0
131 LIBEBACKEND_CURRENT=6
132 LIBEBACKEND_REVISION=0
135 AC_SUBST(EDS_MAJOR_VERSION)
136 AC_SUBST(EDS_MINOR_VERSION)
137 AC_SUBST(EDS_MICRO_VERSION)
138 AC_SUBST(LIBEDATASERVER_CURRENT)
139 AC_SUBST(LIBEDATASERVER_REVISION)
140 AC_SUBST(LIBEDATASERVER_AGE)
141 AC_SUBST(LIBECAL_CURRENT)
142 AC_SUBST(LIBECAL_REVISION)
143 AC_SUBST(LIBECAL_AGE)
144 AC_SUBST(LIBEDATACAL_CURRENT)
145 AC_SUBST(LIBEDATACAL_REVISION)
146 AC_SUBST(LIBEDATACAL_AGE)
147 AC_SUBST(LIBEBOOK_CURRENT)
148 AC_SUBST(LIBEBOOK_REVISION)
149 AC_SUBST(LIBEBOOK_AGE)
150 AC_SUBST(LIBEDATABOOK_CURRENT)
151 AC_SUBST(LIBEDATABOOK_REVISION)
152 AC_SUBST(LIBEDATABOOK_AGE)
153 AC_SUBST(LIBCAMEL_CURRENT)
154 AC_SUBST(LIBCAMEL_REVISION)
155 AC_SUBST(LIBCAMEL_AGE)
156 AC_SUBST(LIBEBACKEND_CURRENT)
157 AC_SUBST(LIBEBACKEND_REVISION)
158 AC_SUBST(LIBEBACKEND_AGE)
160 dnl **************************************
161 dnl Put the ACLOCAL flags in the Makefile
162 dnl **************************************
163 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
165 dnl ******************************
166 dnl Compiler Warning Flags
167 dnl ******************************
168 AS_COMPILER_FLAGS(WARNING_FLAGS,
170 -Wdeprecated-declarations
171 -Wno-missing-field-initializers
173 -Wno-unused-parameter
174 -Wdeclaration-after-statement
175 -Werror-implicit-function-declaration
176 -Wformat-security -Winit-self
177 -Wmissing-declarations -Wmissing-include-dirs
178 -Wmissing-noreturn -Wnested-externs -Wpointer-arith
179 -Wredundant-decls -Wundef -Wwrite-strings")
180 AC_SUBST(WARNING_FLAGS)
182 dnl Other useful compiler warnings for test builds only.
183 dnl These may produce warnings we have no control over,
184 dnl or false positives we don't always want to see.
186 dnl -Wformat-nonliteral
187 dnl -Wmissing-format-attribute
189 dnl -Wstrict-aliasing=2
191 AM_CPPFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
193 dnl *******************************
194 dnl Check for --enable-strict
195 dnl *******************************
196 AC_ARG_ENABLE([strict],
197 [AS_HELP_STRING([--enable-strict],
198 [enable strict building, like without deprecated symbols (default=auto); auto enables strict building only if .git subdirectory exists])],
199 [enable_strict=$enableval], [enable_strict=auto])
201 AC_MSG_CHECKING([if strict building is enabled])
202 if test "x$enable_strict" = xauto; then
203 dnl Be strict when compiling with .git subdirectory
204 if test -d .git ; then
210 AC_MSG_RESULT([$enable_strict])
212 if test "x$enable_strict" = xyes; then
213 AM_CPPFLAGS="$AM_CPPFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
216 dnl Warn about API usage that violates our minimum requirements.
217 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MAX_ALLOWED=glib_encoded_version"
218 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MAX_ALLOWED=gdk_encoded_version"
219 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MAX_ALLOWED=soup_encoded_version"
221 dnl These will suppress warnings about newly-deprecated symbols. Ideally
222 dnl these settings should match our minimum requirements and we will clean
223 dnl up any new deprecation warnings after bumping our minimum requirements.
224 dnl But if the warnings get to be overwhelming, use fixed versions instead.
225 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MIN_REQUIRED=glib_encoded_version"
226 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MIN_REQUIRED=gdk_encoded_version"
227 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MIN_REQUIRED=soup_encoded_version"
229 AC_SUBST(AM_CPPFLAGS)
231 dnl ******************************
232 dnl Initialize maintainer mode
233 dnl ******************************
234 AM_MAINTAINER_MODE([enable])
236 if test "x$enable_maintainer_mode" = "xyes" ; then
237 AC_DEFINE(ENABLE_MAINTAINER_MODE, 1, [Configured with enabled maintainer mode])
248 dnl For gen-western-table.py
251 dnl GCC 4.4 got more aggressive in its aliasing optimizations, changing
252 dnl behavior that -- according to the C99 standard -- is supposed to be
253 dnl undefined. We may still have aliasing abuses lying around that rely
254 dnl on GCC's previous "undefined" behavior, so disable strict-aliasing
255 dnl optimization until we can find and fix all the abuses.
256 dnl (AC_PROG_CC must run first to set the GCC variable.)
257 dnl XXX This really belongs in AM_CFLAGS.
258 if test "x${GCC}" = "xyes"; then
259 CFLAGS="$CFLAGS -fno-strict-aliasing"
262 dnl ******************************
264 dnl ******************************
265 IT_PROG_INTLTOOL([0.35.5])
267 GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
268 AC_SUBST(GETTEXT_PACKAGE)
269 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
271 localedir='$(prefix)/$(DATADIRNAME)/locale'
274 dnl ******************************
275 dnl Initialize libtool
276 dnl ******************************
278 LT_INIT(disable-static win32-dll)
282 dnl This relies on $SED, which is defined in ltmain.sh, which
283 dnl is invoked by LT_INIT (at least I think that's how it works).
286 dnl ******************************
288 dnl ******************************
289 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
291 dnl The private D-Bus documentation is for developers only.
292 AC_ARG_WITH([private-docs],
293 AS_HELP_STRING([--with-private-docs],
294 [Build documentation for private libraries ]
295 [(requires --enable-gtk-doc) [default=no]],),
296 [with_private_docs="$withval"],[with_private_docs="no"])
297 AM_CONDITIONAL(WITH_PRIVATE_DOCS, [test x$with_private_docs = xyes])
299 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
302 dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
305 LDFLAGS="$LDFLAGS -Wl,--no-undefined"
309 dnl ******************************
311 dnl ******************************
312 AC_MSG_CHECKING([for Win32])
316 NO_UNDEFINED='-no-undefined'
317 SOCKET_LIBS='-lws2_32 -ldnsapi'
319 LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
320 AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes])
321 AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
328 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
335 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
338 AC_MSG_RESULT([$os_win32])
339 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
340 AC_SUBST(NO_UNDEFINED)
341 AC_SUBST(SOCKET_LIBS)
342 AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
344 dnl **************************************
345 dnl Check for posix compatible sys/wait.h
346 dnl **************************************
349 dnl ************************************
350 dnl Check for posix compatible alloca()
351 dnl ************************************
354 dnl ******************************
355 dnl Checks for functions
356 dnl ******************************
357 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
359 dnl ***********************************
360 dnl Check for base dependencies early.
361 dnl ***********************************
362 PKG_CHECK_MODULES(GNOME_PLATFORM,
363 [gio-2.0 >= glib_minimum_version
364 gmodule-2.0 >= glib_minimum_version
365 gtk+-3.0 >= gdk_minimum_version
366 libxml-2.0 >= libxml_minimum_version
367 libsoup-2.4 >= soup_minimum_version
368 libgdata >= libgdata_minimum_version])
370 if test x$os_win32 = xno; then
371 PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
374 dnl *******************************
375 dnl Check for GNOME Online Accounts
376 dnl *******************************
378 [AS_HELP_STRING([--enable-goa],
379 [enable GNOME Online Accounts support (default=yes)])],
380 [enable_goa=$enableval], [enable_goa=yes])
381 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
382 AC_MSG_RESULT([$enable_goa])
383 if test "x$enable_goa" = xyes; then
384 PKG_CHECK_MODULES([GOA], [goa-1.0 >= goa_minimum_version],,
387 goa-1.0 not found (or version < goa_minimum_version)
389 If you want to disable GNOME Online Accounts support,
390 please append --disable-goa to configure.
393 AC_DEFINE(HAVE_GOA, 1, [Define to 1 if you have the goa-1.0 package.])
395 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
397 dnl GoaPasswordBased was introduced in version 3.5.
398 if `$PKG_CONFIG --atleast-version=3.5 goa-1.0`; then
399 AC_DEFINE(HAVE_GOA_PASSWORD_BASED,1,[Have GoaPasswordBased in goa-1.0])
402 dnl ***********************************
403 dnl Check for GNOME Keyring.
404 dnl ***********************************
405 if test x$os_win32 = xno; then
406 PKG_CHECK_MODULES(LIBSECRET,
407 [libsecret-unstable >= libsecret_minimum_version])
409 AC_SUBST(LIBSECRET_CFLAGS)
410 AC_SUBST(LIBSECRET_LIBS)
412 dnl **********************************************************
413 dnl gcr-base is needed for secure password exchange over D-Bus
414 dnl **********************************************************
415 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
416 AC_SUBST(GCR_BASE_CFLAGS)
417 AC_SUBST(GCR_BASE_LIBS)
419 LIBICAL_REQUIRED=libical_minimum_version
420 AC_SUBST(LIBICAL_REQUIRED)
422 dnl ******************************
424 dnl ******************************
425 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
427 AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
428 [AC_MSG_ERROR([No regex library found])])])
431 dnl ******************************
433 dnl ******************************
435 AS_HELP_STRING([--with-libdb=PREFIX],
436 [Prefix where libdb is installed]),
437 [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
439 DB_CFLAGS="-I$libdb_prefix/include"
440 DB_LIBS="-L$libdb_prefix/lib -ldb"
442 AC_MSG_CHECKING([Berkeley DB])
443 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
444 save_libs=$LIBS; LIBS="$DB_LIBS"
445 AC_LINK_IFELSE([AC_LANG_PROGRAM(
447 [[db_create(NULL, NULL, 0)]])],
448 [AC_MSG_RESULT([yes])],
449 [AC_MSG_ERROR([Cannot find libdb])])
455 dnl ******************************
457 dnl ******************************
461 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
462 AC_LINK_IFELSE([AC_LANG_PROGRAM(
469 cd = iconv_open ("UTF-8", "ISO-8859-1");
471 )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
473 if test "x$ac_cv_libiconv" = "xyes"; then
475 if test "x$os_win32" = "xyes"; then
476 dnl Don't pointlessly auto-export the global symbols
477 dnl from a potentially static libiconv.a
478 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
483 AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
486 if test "x$have_iconv" = "xyes"; then
487 if test "x$ac_cv_libiconv" = "xno"; then
488 AC_CHECK_FUNCS(gnu_get_libc_version)
490 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
491 AC_RUN_IFELSE([AC_LANG_SOURCE([[
495 #ifdef HAVE_GNU_GET_LIBC_VERSION
496 #include <gnu/libc-version.h>
499 char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
500 char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
501 char *transbuf = malloc (10), *trans = transbuf;
503 size_t jp_len = strlen (jp), utf8_len = 10;
504 size_t utf8_real_len = strlen (utf8);
506 #ifdef HAVE_GNU_GET_LIBC_VERSION
507 /* glibc 2.1.2's iconv is broken in hard to test ways. */
508 if (!strcmp (gnu_get_libc_version (), "2.1.2"))
512 cd = iconv_open ("UTF-8", "ISO-2022-JP");
513 if (cd == (iconv_t) -1)
515 if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
517 if (memcmp (utf8, transbuf, utf8_real_len) != 0)
521 ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
524 if test "x$have_iconv" = "xno"; then
525 AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
529 CFLAGS="$CFLAGS -I$srcdir"
531 AC_MSG_CHECKING([preferred charset name formats for system iconv])
532 AC_RUN_IFELSE([AC_LANG_SOURCE([[
534 #include "iconv-detect.c"
536 [AC_MSG_RESULT([found])],
537 [AC_MSG_RESULT([not found])
539 *** The iconv-detect program was unable to determine the
540 *** preferred charset name formats recognized by your
541 *** iconv library. It is suggested that you install a
542 *** working iconv library such as the one found at
543 *** ftp://ftp.gnu.org/pub/gnu/libiconv
545 [if test "x$os_win32" = xyes; then
546 AC_MSG_RESULT([using known win32 result])
547 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
548 echo >>iconv-detect.h
549 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
550 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
551 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
553 AC_MSG_RESULT([unknown])
555 *** We can't determine the preferred charset name formats
556 *** recognized by your iconv library. You are
557 *** cross-compiling and supposed to know what you are doing.
558 *** Please construct the iconv-detect.h file manually.
563 CFLAGS="$save_CFLAGS"
566 AC_ARG_ENABLE([backtraces],
567 [AS_HELP_STRING([--enable-backtraces],
568 [enable backtraces for camel_pointer_tracker (default=no)])],
569 [enable_backtraces=$enableval], [enable_backtraces=no])
571 if test "x$enable_backtraces" = xyes; then
572 dnl ****************************
573 dnl Check for backtrace_symbols function and dwfl from elfutils
574 dnl ****************************
575 AC_MSG_CHECKING([libc backtrace_symbols function])
576 AC_LINK_IFELSE([AC_LANG_PROGRAM(
577 [[#include <execinfo.h>]],
578 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
579 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
580 AC_MSG_RESULT([$ac_cv_have_bsf])
582 if test "x$ac_cv_have_bsf" = xyes; then
585 AC_MSG_CHECKING([elfutils/libdwfl])
586 AC_LINK_IFELSE([AC_LANG_PROGRAM(
587 [[#include <elfutils/libdwfl.h>]],
591 Dwarf_Addr module_low_addr;
594 dwfl_standard_find_debuginfo;
595 dwfl_linux_proc_find_elf;
597 dwfl_linux_proc_report (NULL, 1);
598 dwfl_report_end (NULL, NULL, NULL);
600 dwfl_module_addrname (NULL, NULL);
601 dwfl_module_getsrc (NULL, NULL);
602 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
603 DWARF_CB_ABORT; DWARF_CB_OK;
604 dwfl_getmodules (NULL, NULL, NULL, 0);
606 [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
607 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
611 if test "x$ac_cv_have_elfdwfl" = xyes; then
613 AC_SUBST(LIBDWFL_LIBS)
618 dnl **********************************
619 dnl Check for nl_langinfo and CODESET
620 dnl **********************************
621 AC_MSG_CHECKING([for nl_langinfo (CODESET)])
622 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
623 [[#include <langinfo.h>]],
624 [[char *codeset = nl_langinfo (CODESET);]]
625 )],[ac_cv_langinfo_codeset=yes],[ac_cv_langinfo_codeset=no])
626 if test "x$ac_cv_langinfo_codeset" = "xyes"; then
627 AC_DEFINE(HAVE_CODESET, 1, [Have nl_langinfo (CODESET)])
629 AC_MSG_RESULT([$ac_cv_langinfo_codeset])
631 dnl *******************************************************
632 dnl Check to see if strftime supports the use of %l and %k
633 dnl *******************************************************
634 AC_MSG_CHECKING([for %l and %k support in strftime])
635 AC_RUN_IFELSE([AC_LANG_SOURCE(
636 [[ #include <stdlib.h>
639 int main(int argc, char **argv) {
645 timeinfo=localtime(&rawtime);
647 strftime(buf, 10, "%lx%k", timeinfo);
649 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
656 )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
657 AC_MSG_RESULT([$ac_cv_lkstrftime])
659 dnl ********************************************************************************
660 dnl security extension support (SSL and S/MIME)
662 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
663 dnl needed by Camel (SSL and S/MIME).
665 dnl The Evolution security extensions are only built if these libraries are found
666 dnl ********************************************************************************
669 AC_ARG_ENABLE([smime],
670 AS_HELP_STRING([--enable-smime],
671 [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
672 [enable_smime="$enableval"],[enable_smime="yes"])
674 AC_ARG_WITH([nspr-includes],
675 AS_HELP_STRING([--with-nspr-includes],
676 [Prefix of Mozilla nspr4 includes.]),
677 [with_nspr_includes="$withval"])
679 AC_ARG_WITH([nspr-libs],
680 AS_HELP_STRING([--with-nspr-libs],
681 [Prefix of Mozilla nspr4 libs.]),
682 [with_nspr_libs="$withval"])
684 AC_ARG_WITH([nss-includes],
685 AS_HELP_STRING([--with-nss-includes],
686 [Prefix of Mozilla nss3 includes.]),
687 [with_nss_includes="$withval"])
689 AC_ARG_WITH([nss-libs],
690 AS_HELP_STRING([--with-nss-libs],
691 [Prefix of Mozilla nss3 libs.]),
692 [with_nss_libs="$withval"])
694 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
700 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
701 if test "x${check_manually}" = "xno"; then
702 AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
703 mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
704 for pc in $mozilla_nspr_pcs; do
705 if $PKG_CONFIG --exists $pc; then
712 AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
713 mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
714 for pc in $mozilla_nss_pcs; do
715 if $PKG_CONFIG --exists $pc; then
722 if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
723 if test "x$enable_smime" = "xyes"; then
724 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
727 MANUAL_NSPR_CFLAGS=""
738 if test "x${check_manually}" = "xyes"; then
739 dnl ******************
741 dnl ******************
742 AC_MSG_CHECKING([for Mozilla nspr4 includes])
743 CPPFLAGS_save="$CPPFLAGS"
744 if test -n "$with_nspr_includes"; then
745 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
748 AC_CHECK_HEADERS(nspr.h prio.h,
749 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
750 CPPFLAGS="$CPPFLAGS_save"
752 if test "x${moz_nspr_includes}" = "xyes"; then
753 MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
755 AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
757 AC_MSG_RESULT([$moz_nspr_includes])
759 AC_MSG_CHECKING([for Mozilla nspr libraries])
760 CFLAGS_save="$CFLAGS"
761 LDFLAGS_save="$LDFLAGS"
763 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
765 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
767 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
768 if test -n "${with_nspr_libs}"; then
769 LDFLAGS="$LDFLAGS -L$with_nspr_libs"
774 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
775 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
777 CFLAGS="$CFLAGS_save"
778 LDFLAGS="$LDFLAGS_save"
781 if test "x${moz_nspr_libs}" = "xyes"; then
782 if test -n "${with_nspr_libs}"; then
783 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
785 MANUAL_NSPR_LIBS="$nsprlibs"
788 AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
790 AC_MSG_RESULT([$moz_nspr_libs])
792 dnl *****************
794 dnl *****************
795 AC_MSG_CHECKING([for Mozilla nss3 includes])
796 CPPFLAGS_save="$CPPFLAGS"
797 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
799 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
800 [moz_nss_includes="yes"],[moz_nss_includes="no"])
801 CPPFLAGS="$CPPFLAGS_save"
803 if test "x${moz_nss_includes}" = "xyes"; then
804 MANUAL_NSS_CFLAGS="-I$with_nss_includes"
806 AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
808 AC_MSG_RESULT($moz_nss_includes)
810 AC_MSG_CHECKING([for Mozilla nss libraries])
811 LDFLAGS_save="$LDFLAGS"
813 nsslibs="-lssl3 -lsmime3 -lnss3"
815 LIBS="$nsslibs $nsprlibs"
816 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
817 if test -n "${with_nss_libs}"; then
818 LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
820 LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
823 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
824 [moz_nss_libs="yes"],[moz_nss_libs="no"])
825 LDFLAGS="$LDFLAGS_save"
828 if test "x${moz_nss_libs}" = "xyes"; then
829 if test "x${enable_smime}" = "xyes"; then
830 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
833 if test -n "${with_nss_libs}"; then
834 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
836 MANUAL_NSS_LIBS="$nsslibs"
839 AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
841 AC_MSG_RESULT([$moz_nss_libs])
843 MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
844 MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
847 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
849 dnl For pkgconfig files.
850 AC_SUBST(mozilla_nss)
851 AC_SUBST(mozilla_nspr)
853 AC_SUBST(MANUAL_NSPR_CFLAGS)
854 AC_SUBST(MANUAL_NSPR_LIBS)
855 AC_SUBST(MANUAL_NSS_CFLAGS)
856 AC_SUBST(MANUAL_NSS_LIBS)
858 dnl ******************************
859 dnl system mail stuff
860 dnl ******************************
861 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
862 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
864 AC_MSG_CHECKING([system mail directory])
865 if test -d /var/mail -a '!' -h /var/mail ; then
866 system_mail_dir="/var/mail"
868 system_mail_dir="/var/spool/mail"
870 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
872 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
874 CAMEL_LOCK_HELPER_USER=""
875 CAMEL_LOCK_HELPER_GROUP=""
876 system_mail_perm="world writable"
879 CAMEL_LOCK_HELPER_USER=""
880 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
881 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
884 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
885 CAMEL_LOCK_HELPER_GROUP=""
886 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
889 CAMEL_LOCK_HELPER_USER=""
890 CAMEL_LOCK_HELPER_GROUP=""
891 system_mail_perm="???"
895 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
896 AC_SUBST(CAMEL_LOCK_HELPER_USER)
897 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
899 dnl ******************************
901 dnl ******************************
902 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
903 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
904 [[ #include <time.h> ]],
909 )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
910 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
911 AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
913 AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
914 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
915 [[ #include <time.h> ]],
917 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
918 if test "x$ac_cv_var_timezone" = "xyes"; then
919 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
920 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
921 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
922 [[ #include <time.h> ]],
924 )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
925 if test "x$ac_cv_var_altzone" = "xyes"; then
926 AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
929 AC_MSG_ERROR([unable to find a way to determine timezone])
933 dnl ******************************
934 dnl ctime_r prototype
935 dnl ******************************
936 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
938 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
939 [[ #include <time.h> ]],
942 ctime_r (&date, buf, 100); ]]
943 )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
946 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
947 AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
950 dnl ******************************
951 dnl gethostbyname_r prototype
952 dnl ******************************
953 AC_CHECK_FUNCS(gethostbyname_r,[
954 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
956 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
958 #include "confdefs.h"
959 #include <sys/types.h>
960 #include <sys/socket.h>
961 #include <netinet/in.h>
963 #define BUFSIZE (sizeof(struct hostent)+10)
967 char buffer[BUFSIZE];
970 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
972 )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
975 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
976 AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
979 dnl ******************************
980 dnl gethostbyaddr_r prototype
981 dnl ******************************
982 AC_CHECK_FUNCS(gethostbyaddr_r,[
983 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_args],
985 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
987 #include "confdefs.h"
988 #include <sys/types.h>
989 #include <sys/socket.h>
990 #include <netinet/in.h>
992 #define BUFSIZE (sizeof(struct hostent)+10)
996 char buffer[BUFSIZE];
999 (void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
1000 )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
1003 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
1004 AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
1007 dnl ******************************
1008 dnl stat(v)fs location/type
1009 dnl ******************************
1010 AC_CHECK_HEADER([sys/statvfs.h],
1011 [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
1012 [[ #if HAVE_SYS_STATVFS_H
1013 #include <sys/statvfs.h>
1016 AC_CHECK_FUNCS(statvfs)
1018 AC_CHECK_HEADER([sys/param.h],
1019 [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
1020 [[ #if HAVE_SYS_PARAM_H
1021 #include <sys/param.h>
1024 AC_CHECK_HEADER([sys/mount.h],
1025 [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1026 [[ #if HAVE_SYS_MOUNT_H
1027 #include <sys/mount.h>
1030 AC_CHECK_FUNCS(statfs)
1032 dnl ******************************
1033 dnl IPv6 support and getaddrinfo calls
1034 dnl ******************************
1035 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1037 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1038 [[ #include "confdefs.h"
1039 #include <sys/types.h>
1040 #include <sys/socket.h>
1041 #include <netinet/in.h>
1045 [[ #ifndef NI_MAXHOST
1046 #define NI_MAXHOST 1025
1050 #define NI_MAXSERV 32
1053 struct addrinfo hints, *res;
1054 struct sockaddr_in6 sin6;
1056 char host[NI_MAXHOST];
1057 char serv[NI_MAXSERV];
1059 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1061 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1062 )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1065 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1066 AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1067 if test "x$enable_ipv6" = "xyes" ; then
1068 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1072 AC_ARG_ENABLE([ipv6],
1073 AS_HELP_STRING([--enable-ipv6=no/yes],
1074 [Enable support for resolving IPv6 addresses.]),
1075 [enable_ipv6=$enableval],[enable_ipv6=yes])
1076 if test "x$enable_ipv6" = "xyes"; then
1078 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1079 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1080 [[ #include "confdefs.h"
1081 #include <sys/types.h>
1082 #include <sys/socket.h>
1083 #include <netinet/in.h>
1086 [[ struct addrinfo hints;
1087 hints.ai_flags = AI_ADDRCONFIG;
1089 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1095 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1097 AC_CHECK_HEADER([wspiapi.h],
1098 [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1100 dnl **********************************
1101 dnl Weather calendar backend support
1102 dnl **********************************
1103 AC_MSG_CHECKING([if we should build the weather calendar backend])
1104 AC_ARG_ENABLE([weather],
1105 [AS_HELP_STRING([--enable-weather],
1106 [Build the weather calendar backend (default=yes)])],
1107 [use_gweather=$enableval], [use_gweather=yes])
1109 AC_MSG_RESULT([$use_gweather])
1110 if test "x$use_gweather" = "xyes"; then
1111 PKG_CHECK_MODULES([LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1112 [AC_MSG_ERROR([The weather calendar backend requires GWeather >= gweather_minimum_version. Alternatively, you may specify --disable-weather as a configure option to avoid building the backend.])])
1114 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1116 dnl ******************************
1118 dnl ******************************
1119 AC_ARG_ENABLE([nntp],
1120 AS_HELP_STRING([--enable-nntp],
1121 [Build Usenet news (NNTP) backend]),
1122 [enable_nntp=$enableval],[enable_nntp=yes])
1123 if test "x$enable_nntp" = "xyes"; then
1124 AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
1129 AM_CONDITIONAL(ENABLE_NNTP, [test x$enable_nntp = xyes])
1131 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1133 dnl ******************************
1135 dnl ******************************
1136 AC_ARG_ENABLE([dot-locking],
1137 AS_HELP_STRING([--enable-dot-locking=yes/no],
1138 [Enable support for locking mail files with dot locking]),
1139 [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1141 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1142 AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1148 AC_ARG_ENABLE([file-locking],
1149 AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1150 [Enable support for locking mail files with file locking]),
1151 [],[enable_file_locking=fcntl])
1153 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1154 AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1157 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1158 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1165 dnl ******************************
1166 dnl sendmail operation
1167 dnl ******************************
1168 AC_MSG_CHECKING([for SunOS broken spool format])
1169 if test "x$host_os" = "xsunos" ; then
1170 with_broken_spool="yes"
1173 AC_ARG_WITH([broken-spool],
1174 AS_HELP_STRING([--with-broken-spool=yes/no],
1175 [Using SunOS/Solaris sendmail which has a broken spool format]),
1176 [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1178 if test "x$with_broken_spool" = "xyes"; then
1179 AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1182 AC_MSG_RESULT([$with_broken_spool])
1184 dnl ******************************
1185 dnl DBus call timeout
1186 dnl ******************************
1188 AC_ARG_WITH([dbus-call-timeout],
1189 AS_HELP_STRING([--with-dbus-call-timeout=miliseconds],
1190 [Default timeout used when invoking g_dbus_proxy_call() family functions in EBook and ECal library (default=-1)]),
1191 [ac_cv_dbus_call_timeout=$withval],[ac_cv_dbus_call_timeout=-1])
1193 DEFAULT_EDS_DBUS_TIMEOUT=$ac_cv_dbus_call_timeout
1194 AC_SUBST(DEFAULT_EDS_DBUS_TIMEOUT)
1199 EVO_KRB5_SUPPORT(no)
1201 dnl ******************************
1203 dnl ******************************
1206 dnl ******************************
1208 dnl ******************************
1209 if test "x$os_win32" != "xyes"; then
1211 case $with_openldap in
1216 case $with_static_ldap in
1218 msg_ldap="$with_openldap (static)"
1221 msg_ldap="$with_openldap (dynamic)"
1226 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1227 if test "x$with_openldap" = "xno" ; then
1228 EVO_SUNLDAP_CHECK(no)
1229 case $with_sunldap in
1234 case $with_static_sunldap in
1236 msg_ldap="$with_sunldap (static)"
1239 msg_ldap="$with_sunldap (dynamic)"
1246 AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1248 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1250 dnl Win32 LDAP support
1251 LDAP_CFLAGS="-DLDAP_DEPRECATED"
1252 LDAP_LIBS="-lwldap32"
1253 AC_SUBST(LDAP_CFLAGS)
1255 AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1256 AM_CONDITIONAL(ENABLE_LDAP, true)
1257 AM_CONDITIONAL(SUNLDAP, false)
1261 dnl ******************************
1262 dnl GObject marshalling
1263 dnl ******************************
1266 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1267 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1268 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1270 dnl ******************************
1271 dnl Utility macro to set compiler flags for a specific lib.
1272 dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
1273 dnl ******************************
1274 AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
1275 PKG_CHECK_MODULES([$1], [$2])
1276 $1_CFLAGS="[$]$1_CFLAGS $3 "
1277 $1_LIBS="[$]$1_LIBS $4 "
1280 dnl ******************************
1282 dnl ******************************
1283 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1285 if test "x$enable_maintainer_mode" = "xyes" ; then
1286 EVO_SET_COMPILE_FLAGS(FACTORY_GTK, "gtk+-3.0")
1287 AC_SUBST(FACTORY_GTK_CFLAGS)
1288 AC_SUBST(FACTORY_GTK_LIBS)
1291 dnl ******************************
1292 dnl libedataserver flags
1293 dnl ******************************
1294 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1296 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1297 AC_SUBST(E_DATA_SERVER_CFLAGS)
1298 AC_SUBST(E_DATA_SERVER_LIBS)
1300 dnl ******************************
1301 dnl libebackend flags
1302 dnl ******************************
1303 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libsoup-2.4 libxml-2.0"
1305 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1306 AC_SUBST(E_BACKEND_CFLAGS)
1307 AC_SUBST(E_BACKEND_LIBS)
1309 dnl ******************************
1310 dnl evolution-addressbook flags
1311 dnl ******************************
1312 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 libsecret-1"
1314 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1315 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1316 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1318 dnl ******************************
1319 dnl evolution-calendar flags
1320 dnl ******************************
1321 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 libsecret-1"
1324 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1325 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1326 dnl to differentiate between <libical/ical.h> and <ical.h>
1327 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1328 dnl libical is fixed, we have to work-around the buggy CFlags.
1330 LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1331 LIBICAL_EXTRA_LIBS=""
1332 AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1333 AC_SUBST(LIBICAL_EXTRA_LIBS)
1335 EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1336 AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1337 AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1339 dnl ****************************
1340 dnl Check for ical_set_unknown_token_handling_setting function
1341 dnl ****************************
1342 AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1343 save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1344 save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1345 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1346 [[#include <libical/ical.h>]],
1347 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1348 [AC_DEFINE(HAVE_ICAL_UNKNOWN_TOKEN_HANDLING, 1, [libical provides ical_set_unknown_token_handling_setting function]) ac_cv_have_iuth=yes],[ac_cv_have_iuth=no])
1351 AC_MSG_RESULT([$ac_cv_have_iuth])
1353 dnl ******************************
1355 dnl ******************************
1356 LIBGDATA_REQUIRED=libgdata_minimum_version
1357 AC_SUBST(LIBGDATA_REQUIRED)
1359 EVO_SET_COMPILE_FLAGS(GDATA, libgdata)
1360 AC_SUBST(GDATA_CFLAGS)
1361 AC_SUBST(GDATA_LIBS)
1363 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1364 AC_SUBST(SOUP_CFLAGS)
1367 dnl ******************************
1369 dnl ******************************
1370 SQLITE_REQUIRED=sqlite_minimum_version
1371 AC_SUBST(SQLITE_REQUIRED)
1374 dnl deflateInit is a #define, use deflateEnd instead
1375 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1377 if test "x$zlib_found" = "xfalse"; then
1378 AC_MSG_ERROR([*** zlib is required])
1381 dnl ******************************
1382 dnl Checks for large file support
1383 dnl ******************************
1384 AC_ARG_ENABLE([largefile],
1385 AS_HELP_STRING([--enable-largefile],
1386 [enable support for large files [[default=no]]]),
1387 [],[enable_largefile="yes"])
1389 if test "x$enable_largefile" != "xno"; then
1391 AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1392 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1393 [[ #include <sys/types.h>
1394 #include <sys/stat.h>
1397 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]]
1398 )],[ac_cv_largefile64_source="no"],
1399 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1400 [[ #define _LARGEFILE64_SOURCE
1401 #include <sys/types.h>
1402 #include <sys/stat.h>
1405 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1406 [ac_cv_largefile64_source="unknown"])])
1409 enable_largefile="no"
1411 if test "x$ac_cv_largefile64_source" = "xyes"; then
1412 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1413 enable_largefile="yes"
1414 elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1415 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1418 if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1419 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1420 enable_largefile="yes"
1423 if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1424 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1425 enable_largefile="yes"
1428 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1432 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1434 EVO_SET_COMPILE_FLAGS(CAMEL, gio-2.0 gmodule-2.0 $mozilla_nss sqlite3 >= sqlite_minimum_version, $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $LARGEFILE_CFLAGS, -lz $KRB5_LIBS $MANUAL_NSS_LIBS)
1435 AC_SUBST(CAMEL_CFLAGS)
1436 AC_SUBST(CAMEL_LIBS)
1438 dnl ******************************
1439 dnl Special directories
1440 dnl ******************************
1442 dnl If you add something here, consider whether or not you also
1443 dnl need to add it to one or more .pc.in files (for Connector,
1446 privdatadir='${datadir}'/evolution-data-server
1447 AC_SUBST(privdatadir)
1449 privincludedir='${includedir}'/evolution-data-server
1450 AC_SUBST(privincludedir)
1452 privlibdir='${libdir}'/evolution-data-server
1453 AC_SUBST(privlibdir)
1455 imagesdir='${datadir}'/pixmaps/evolution-data-server
1458 moduledir='${privlibdir}'/registry-modules
1461 ebook_backenddir='${privlibdir}'/addressbook-backends
1462 AC_SUBST(ebook_backenddir)
1464 ecal_backenddir='${privlibdir}'/calendar-backends
1465 AC_SUBST(ecal_backenddir)
1467 ro_sourcesdir='${privdatadir}'/ro-sources
1468 AC_SUBST(ro_sourcesdir)
1470 rw_sourcesdir='${privdatadir}'/rw-sources
1471 AC_SUBST(rw_sourcesdir)
1473 if test "x$use_gweather" = "xyes"; then
1474 weatherdatadir="$privdatadir/weather"
1475 AC_SUBST(weatherdatadir)
1478 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1479 camel_providerdir='${privlibdir}'/camel-providers
1480 AC_SUBST(camel_providerdir)
1482 dnl *******************
1483 dnl D-BUS service stuff
1484 dnl *******************
1485 m4_pattern_allow([AM_V_GEN])
1486 EVO_SUBST_SERVICE_RULE='%.service: %.service.in Makefile ; $(AM_V_GEN) sed -e "s|\@libexecdir\@|$(libexecdir)|" -e s"|\@ADDRESS_BOOK_DBUS_SERVICE_NAME\@|$(ADDRESS_BOOK_DBUS_SERVICE_NAME)|" -e "s|\@CALENDAR_DBUS_SERVICE_NAME\@|$(CALENDAR_DBUS_SERVICE_NAME)|" -e "s|\@SOURCES_DBUS_SERVICE_NAME\@|$(SOURCES_DBUS_SERVICE_NAME)|" -e "s|\@USER_PROMPTER_DBUS_SERVICE_NAME\@|$(USER_PROMPTER_DBUS_SERVICE_NAME)|" $< > $@'
1487 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1489 dnl ******************************
1491 dnl ******************************
1495 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1496 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1497 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1499 dnl ******************************
1501 dnl ******************************
1502 AC_PATH_PROG(GPERF, gperf, [no])
1503 if test "x$GPERF" = "xno"; then
1504 AC_MSG_ERROR([You need gperf to build evolution-data-server])
1507 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1509 dnl ******************************
1511 dnl ******************************
1512 AC_ARG_ENABLE(vala-bindings,
1513 AC_HELP_STRING([--enable-vala-bindings],
1514 [build the EXPERIMENTAL Vala bindings]),
1515 enable_vala_bindings=$enableval,
1516 enable_vala_bindings=no)
1518 if test x$enable_vala_bindings = xyes; then
1519 if test "x$INTROSPECTION_SCANNER" = x; then
1520 AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1523 AM_PROG_VALAC([0.13.0])
1526 AC_PATH_PROG(VALAC, valac, valac)
1530 AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1532 if test "x$VAPIGEN" = "xfalse"; then
1533 AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1539 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1542 dnl ******************************
1544 dnl ******************************
1546 export privincludedir
1551 evolution-data-server-zip
1552 evolution-data-server.pc
1553 addressbook/Makefile
1554 addressbook/libebook/Makefile
1555 addressbook/libebook/libebook.pc
1556 addressbook/libedata-book/Makefile
1557 addressbook/libedata-book/libedata-book.pc
1558 addressbook/libegdbus/Makefile
1559 addressbook/backends/Makefile
1560 addressbook/backends/file/Makefile
1561 addressbook/backends/ldap/Makefile
1562 addressbook/backends/google/Makefile
1563 addressbook/backends/google/tests/Makefile
1564 addressbook/backends/webdav/Makefile
1567 calendar/libecal/Makefile
1568 calendar/libecal/libecal.pc
1569 calendar/libedata-cal/Makefile
1570 calendar/libedata-cal/libedata-cal.pc
1571 calendar/libegdbus/Makefile
1572 calendar/backends/Makefile
1573 calendar/backends/caldav/Makefile
1574 calendar/backends/file/Makefile
1575 calendar/backends/http/Makefile
1576 calendar/backends/contacts/Makefile
1577 calendar/backends/weather/Makefile
1579 camel/providers/Makefile
1580 camel/providers/imapx/Makefile
1581 camel/providers/local/Makefile
1582 camel/providers/nntp/Makefile
1583 camel/providers/pop3/Makefile
1584 camel/providers/sendmail/Makefile
1585 camel/providers/smtp/Makefile
1586 camel/tests/Makefile
1587 camel/tests/folder/Makefile
1588 camel/tests/lib/Makefile
1589 camel/tests/message/Makefile
1590 camel/tests/mime-filter/Makefile
1591 camel/tests/misc/Makefile
1592 camel/tests/smime/Makefile
1595 data/sources/Makefile
1596 libebackend/Makefile
1597 libebackend/libebackend.pc
1598 libedataserver/Makefile
1599 libedataserver/eds-version.h
1600 libedataserver/libedataserver.pc
1602 modules/cache-reaper/Makefile
1603 modules/gnome-online-accounts/Makefile
1604 modules/google-backend/Makefile
1605 modules/trust-prompt/Makefile
1606 modules/yahoo-backend/Makefile
1609 services/evolution-addressbook-factory/Makefile
1610 services/evolution-calendar-factory/Makefile
1611 services/evolution-source-registry/Makefile
1612 services/evolution-user-prompter/Makefile
1614 tests/libebook/Makefile
1615 tests/libebook/client/Makefile
1616 tests/libebook/vcard/Makefile
1617 tests/libecal/Makefile
1618 tests/libecal/client/Makefile
1619 tests/libedata-cal/Makefile
1620 tests/libedataserver/Makefile
1621 tests/test-server-utils/Makefile
1622 tests/test-server-utils/services/Makefile
1623 tests/test-server-utils/services/org.gnome.evolution.dataserver.AddressBook.service
1624 tests/test-server-utils/services/org.gnome.evolution.dataserver.Calendar.service
1625 tests/test-server-utils/services/org.gnome.evolution.dataserver.Sources.service
1627 docs/reference/Makefile
1628 docs/reference/addressbook/Makefile
1629 docs/reference/addressbook/libebook/Makefile
1630 docs/reference/addressbook/libedata-book/Makefile
1631 docs/reference/calendar/Makefile
1632 docs/reference/calendar/libecal/Makefile
1633 docs/reference/calendar/libedata-cal/Makefile
1634 docs/reference/camel/Makefile
1635 docs/reference/libedataserver/Makefile
1636 docs/reference/libebackend/Makefile
1637 docs/reference/private/Makefile
1644 evolution-data-server has been configured as follows:
1645 Weather calendar: $use_gweather
1646 Mail Directory: $system_mail_dir, $system_mail_perm
1647 LDAP support: $msg_ldap
1648 NNTP support: $msg_nntp
1649 Kerberos 5: $msg_krb5
1650 SMIME support: $msg_smime
1651 IPv6 support: $msg_ipv6
1652 Dot Locking: $msg_dot
1653 File Locking: $msg_file
1654 Large files: $enable_largefile
1655 Gtk Doc: $enable_gtk_doc
1656 Introspection: $enable_introspection
1657 Vala bindings: $enable_vala_bindings
1658 GNOME Online Accounts $enable_goa
1659 Code coverage (gcov): $enable_code_coverage
1660 Strict building: $enable_strict