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.40.3])
47 m4_define([soup_encoded_version], [SOUP_VERSION_2_40])
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 libxml-2.0 >= libxml_minimum_version
366 libsoup-2.4 >= soup_minimum_version])
368 if test x$os_win32 = xno; then
369 PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
372 dnl *************************
374 dnl *************************
376 [AS_HELP_STRING([--enable-gtk],
377 [enable GTK+ (default=yes)])],
378 [enable_gtk=$enableval], [enable_gtk=yes])
379 AC_MSG_CHECKING([if GTK+ support is enabled])
380 AC_MSG_RESULT([$enable_gtk])
381 if test "x$enable_gtk" = xyes; then
382 PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= gdk_minimum_version],,
385 gtk+-3.0 not found (or version < gdk_minimum_version)
387 If you want to disable GTK+ support,
388 please append --disable-gtk to configure.
391 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if you have the gtk+-3.0 package.])
393 AM_CONDITIONAL(HAVE_GTK, [test x$enable_gtk = xyes])
395 dnl *******************************
396 dnl Check for GNOME Online Accounts
397 dnl *******************************
399 [AS_HELP_STRING([--enable-goa],
400 [enable GNOME Online Accounts support (default=yes)])],
401 [enable_goa=$enableval], [enable_goa=yes])
402 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
403 AC_MSG_RESULT([$enable_goa])
404 if test "x$enable_goa" = xyes; then
405 PKG_CHECK_MODULES([GOA], [goa-1.0 >= goa_minimum_version],,
408 goa-1.0 not found (or version < goa_minimum_version)
410 If you want to disable GNOME Online Accounts support,
411 please append --disable-goa to configure.
414 AC_DEFINE(HAVE_GOA, 1, [Define to 1 if you have the goa-1.0 package.])
416 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
418 dnl GoaPasswordBased was introduced in version 3.5.
419 if `$PKG_CONFIG --atleast-version=3.5 goa-1.0`; then
420 AC_DEFINE(HAVE_GOA_PASSWORD_BASED,1,[Have GoaPasswordBased in goa-1.0])
423 dnl ***********************************
424 dnl Check for GNOME Keyring.
425 dnl ***********************************
426 if test x$os_win32 = xno; then
427 PKG_CHECK_MODULES(LIBSECRET,
428 [libsecret-unstable >= libsecret_minimum_version])
430 AC_SUBST(LIBSECRET_CFLAGS)
431 AC_SUBST(LIBSECRET_LIBS)
433 dnl **********************************************************
434 dnl gcr-base is needed for secure password exchange over D-Bus
435 dnl **********************************************************
436 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
437 AC_SUBST(GCR_BASE_CFLAGS)
438 AC_SUBST(GCR_BASE_LIBS)
440 LIBICAL_REQUIRED=libical_minimum_version
441 AC_SUBST(LIBICAL_REQUIRED)
443 dnl ******************************
445 dnl ******************************
446 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
448 AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
449 [AC_MSG_ERROR([No regex library found])])])
452 dnl ******************************
454 dnl ******************************
456 AS_HELP_STRING([--with-libdb=PREFIX],
457 [Prefix where libdb is installed]),
458 [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
460 DB_CFLAGS="-I$libdb_prefix/include"
461 DB_LIBS="-L$libdb_prefix/lib -ldb"
463 AC_MSG_CHECKING([Berkeley DB])
464 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
465 save_libs=$LIBS; LIBS="$DB_LIBS"
466 AC_LINK_IFELSE([AC_LANG_PROGRAM(
468 [[db_create(NULL, NULL, 0)]])],
469 [AC_MSG_RESULT([yes])],
470 [AC_MSG_ERROR([Cannot find libdb])])
476 dnl ******************************
478 dnl ******************************
482 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
483 AC_LINK_IFELSE([AC_LANG_PROGRAM(
490 cd = iconv_open ("UTF-8", "ISO-8859-1");
492 )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
494 if test "x$ac_cv_libiconv" = "xyes"; then
496 if test "x$os_win32" = "xyes"; then
497 dnl Don't pointlessly auto-export the global symbols
498 dnl from a potentially static libiconv.a
499 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
504 AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
507 if test "x$have_iconv" = "xyes"; then
508 if test "x$ac_cv_libiconv" = "xno"; then
509 AC_CHECK_FUNCS(gnu_get_libc_version)
511 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
512 AC_RUN_IFELSE([AC_LANG_SOURCE([[
516 #ifdef HAVE_GNU_GET_LIBC_VERSION
517 #include <gnu/libc-version.h>
520 char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
521 char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
522 char *transbuf = malloc (10), *trans = transbuf;
524 size_t jp_len = strlen (jp), utf8_len = 10;
525 size_t utf8_real_len = strlen (utf8);
527 #ifdef HAVE_GNU_GET_LIBC_VERSION
528 /* glibc 2.1.2's iconv is broken in hard to test ways. */
529 if (!strcmp (gnu_get_libc_version (), "2.1.2"))
533 cd = iconv_open ("UTF-8", "ISO-2022-JP");
534 if (cd == (iconv_t) -1)
536 if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
538 if (memcmp (utf8, transbuf, utf8_real_len) != 0)
542 ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
545 if test "x$have_iconv" = "xno"; then
546 AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
550 CFLAGS="$CFLAGS -I$srcdir"
552 AC_MSG_CHECKING([preferred charset name formats for system iconv])
553 AC_RUN_IFELSE([AC_LANG_SOURCE([[
555 #include "iconv-detect.c"
557 [AC_MSG_RESULT([found])],
558 [AC_MSG_RESULT([not found])
560 *** The iconv-detect program was unable to determine the
561 *** preferred charset name formats recognized by your
562 *** iconv library. It is suggested that you install a
563 *** working iconv library such as the one found at
564 *** ftp://ftp.gnu.org/pub/gnu/libiconv
566 [if test "x$os_win32" = xyes; then
567 AC_MSG_RESULT([using known win32 result])
568 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
569 echo >>iconv-detect.h
570 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
571 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
572 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
574 AC_MSG_RESULT([unknown])
576 *** We can't determine the preferred charset name formats
577 *** recognized by your iconv library. You are
578 *** cross-compiling and supposed to know what you are doing.
579 *** Please construct the iconv-detect.h file manually.
584 CFLAGS="$save_CFLAGS"
587 AC_ARG_ENABLE([backtraces],
588 [AS_HELP_STRING([--enable-backtraces],
589 [enable backtraces for camel_pointer_tracker (default=no)])],
590 [enable_backtraces=$enableval], [enable_backtraces=no])
592 if test "x$enable_backtraces" = xyes; then
593 dnl ****************************
594 dnl Check for backtrace_symbols function and dwfl from elfutils
595 dnl ****************************
596 AC_MSG_CHECKING([libc backtrace_symbols function])
597 AC_LINK_IFELSE([AC_LANG_PROGRAM(
598 [[#include <execinfo.h>]],
599 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
600 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
601 AC_MSG_RESULT([$ac_cv_have_bsf])
603 if test "x$ac_cv_have_bsf" = xyes; then
606 AC_MSG_CHECKING([elfutils/libdwfl])
607 AC_LINK_IFELSE([AC_LANG_PROGRAM(
608 [[#include <elfutils/libdwfl.h>]],
612 Dwarf_Addr module_low_addr;
615 dwfl_standard_find_debuginfo;
616 dwfl_linux_proc_find_elf;
618 dwfl_linux_proc_report (NULL, 1);
619 dwfl_report_end (NULL, NULL, NULL);
621 dwfl_module_addrname (NULL, NULL);
622 dwfl_module_getsrc (NULL, NULL);
623 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
624 DWARF_CB_ABORT; DWARF_CB_OK;
625 dwfl_getmodules (NULL, NULL, NULL, 0);
627 [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
628 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
632 if test "x$ac_cv_have_elfdwfl" = xyes; then
634 AC_SUBST(LIBDWFL_LIBS)
639 dnl ******************************
640 dnl Check for nl_langinfo features
641 dnl ******************************
642 EVO_CHECK_LANGINFO([CODESET])
643 EVO_CHECK_LANGINFO([_NL_ADDRESS_COUNTRY_AB2])
645 dnl *******************************************************
646 dnl Check to see if strftime supports the use of %l and %k
647 dnl *******************************************************
648 AC_MSG_CHECKING([for %l and %k support in strftime])
649 AC_RUN_IFELSE([AC_LANG_SOURCE(
650 [[ #include <stdlib.h>
653 int main(int argc, char **argv) {
659 timeinfo=localtime(&rawtime);
661 strftime(buf, 10, "%lx%k", timeinfo);
663 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
670 )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
671 AC_MSG_RESULT([$ac_cv_lkstrftime])
673 dnl ********************************************************************************
674 dnl security extension support (SSL and S/MIME)
676 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
677 dnl needed by Camel (SSL and S/MIME).
679 dnl The Evolution security extensions are only built if these libraries are found
680 dnl ********************************************************************************
683 AC_ARG_ENABLE([smime],
684 AS_HELP_STRING([--enable-smime],
685 [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
686 [enable_smime="$enableval"],[enable_smime="yes"])
688 AC_ARG_WITH([nspr-includes],
689 AS_HELP_STRING([--with-nspr-includes],
690 [Prefix of Mozilla nspr4 includes.]),
691 [with_nspr_includes="$withval"])
693 AC_ARG_WITH([nspr-libs],
694 AS_HELP_STRING([--with-nspr-libs],
695 [Prefix of Mozilla nspr4 libs.]),
696 [with_nspr_libs="$withval"])
698 AC_ARG_WITH([nss-includes],
699 AS_HELP_STRING([--with-nss-includes],
700 [Prefix of Mozilla nss3 includes.]),
701 [with_nss_includes="$withval"])
703 AC_ARG_WITH([nss-libs],
704 AS_HELP_STRING([--with-nss-libs],
705 [Prefix of Mozilla nss3 libs.]),
706 [with_nss_libs="$withval"])
708 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
714 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
715 if test "x${check_manually}" = "xno"; then
716 AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
717 mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
718 for pc in $mozilla_nspr_pcs; do
719 if $PKG_CONFIG --exists $pc; then
726 AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
727 mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
728 for pc in $mozilla_nss_pcs; do
729 if $PKG_CONFIG --exists $pc; then
736 if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
737 if test "x$enable_smime" = "xyes"; then
738 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
741 MANUAL_NSPR_CFLAGS=""
752 if test "x${check_manually}" = "xyes"; then
753 dnl ******************
755 dnl ******************
756 AC_MSG_CHECKING([for Mozilla nspr4 includes])
757 CPPFLAGS_save="$CPPFLAGS"
758 if test -n "$with_nspr_includes"; then
759 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
762 AC_CHECK_HEADERS(nspr.h prio.h,
763 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
764 CPPFLAGS="$CPPFLAGS_save"
766 if test "x${moz_nspr_includes}" = "xyes"; then
767 MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
769 AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
771 AC_MSG_RESULT([$moz_nspr_includes])
773 AC_MSG_CHECKING([for Mozilla nspr libraries])
774 CFLAGS_save="$CFLAGS"
775 LDFLAGS_save="$LDFLAGS"
777 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
779 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
781 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
782 if test -n "${with_nspr_libs}"; then
783 LDFLAGS="$LDFLAGS -L$with_nspr_libs"
788 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
789 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
791 CFLAGS="$CFLAGS_save"
792 LDFLAGS="$LDFLAGS_save"
795 if test "x${moz_nspr_libs}" = "xyes"; then
796 if test -n "${with_nspr_libs}"; then
797 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
799 MANUAL_NSPR_LIBS="$nsprlibs"
802 AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
804 AC_MSG_RESULT([$moz_nspr_libs])
806 dnl *****************
808 dnl *****************
809 AC_MSG_CHECKING([for Mozilla nss3 includes])
810 CPPFLAGS_save="$CPPFLAGS"
811 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
813 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
814 [moz_nss_includes="yes"],[moz_nss_includes="no"])
815 CPPFLAGS="$CPPFLAGS_save"
817 if test "x${moz_nss_includes}" = "xyes"; then
818 MANUAL_NSS_CFLAGS="-I$with_nss_includes"
820 AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
822 AC_MSG_RESULT($moz_nss_includes)
824 AC_MSG_CHECKING([for Mozilla nss libraries])
825 LDFLAGS_save="$LDFLAGS"
827 nsslibs="-lssl3 -lsmime3 -lnss3"
829 LIBS="$nsslibs $nsprlibs"
830 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
831 if test -n "${with_nss_libs}"; then
832 LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
834 LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
837 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
838 [moz_nss_libs="yes"],[moz_nss_libs="no"])
839 LDFLAGS="$LDFLAGS_save"
842 if test "x${moz_nss_libs}" = "xyes"; then
843 if test "x${enable_smime}" = "xyes"; then
844 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
847 if test -n "${with_nss_libs}"; then
848 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
850 MANUAL_NSS_LIBS="$nsslibs"
853 AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
855 AC_MSG_RESULT([$moz_nss_libs])
857 MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
858 MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
861 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
863 dnl For pkgconfig files.
864 AC_SUBST(mozilla_nss)
865 AC_SUBST(mozilla_nspr)
867 AC_SUBST(MANUAL_NSPR_CFLAGS)
868 AC_SUBST(MANUAL_NSPR_LIBS)
869 AC_SUBST(MANUAL_NSS_CFLAGS)
870 AC_SUBST(MANUAL_NSS_LIBS)
872 dnl ******************************
873 dnl system mail stuff
874 dnl ******************************
875 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
876 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
878 AC_MSG_CHECKING([system mail directory])
879 if test -d /var/mail -a '!' -h /var/mail ; then
880 system_mail_dir="/var/mail"
882 system_mail_dir="/var/spool/mail"
884 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
886 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
888 CAMEL_LOCK_HELPER_USER=""
889 CAMEL_LOCK_HELPER_GROUP=""
890 system_mail_perm="world writable"
893 CAMEL_LOCK_HELPER_USER=""
894 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
895 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
898 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
899 CAMEL_LOCK_HELPER_GROUP=""
900 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
903 CAMEL_LOCK_HELPER_USER=""
904 CAMEL_LOCK_HELPER_GROUP=""
905 system_mail_perm="???"
909 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
910 AC_SUBST(CAMEL_LOCK_HELPER_USER)
911 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
913 dnl ******************************
915 dnl ******************************
916 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
917 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
918 [[ #include <time.h> ]],
923 )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
924 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
925 AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
927 AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
928 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
929 [[ #include <time.h> ]],
931 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
932 if test "x$ac_cv_var_timezone" = "xyes"; then
933 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
934 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
935 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
936 [[ #include <time.h> ]],
938 )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
939 if test "x$ac_cv_var_altzone" = "xyes"; then
940 AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
943 AC_MSG_ERROR([unable to find a way to determine timezone])
947 dnl ******************************
948 dnl ctime_r prototype
949 dnl ******************************
950 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
952 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
953 [[ #include <time.h> ]],
956 ctime_r (&date, buf, 100); ]]
957 )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
960 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
961 AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
964 dnl ******************************
965 dnl gethostbyname_r prototype
966 dnl ******************************
967 AC_CHECK_FUNCS(gethostbyname_r,[
968 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
970 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
972 #include "confdefs.h"
973 #include <sys/types.h>
974 #include <sys/socket.h>
975 #include <netinet/in.h>
977 #define BUFSIZE (sizeof(struct hostent)+10)
981 char buffer[BUFSIZE];
984 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
986 )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
989 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
990 AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
993 dnl ******************************
994 dnl gethostbyaddr_r prototype
995 dnl ******************************
996 AC_CHECK_FUNCS(gethostbyaddr_r,[
997 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_args],
999 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1001 #include "confdefs.h"
1002 #include <sys/types.h>
1003 #include <sys/socket.h>
1004 #include <netinet/in.h>
1006 #define BUFSIZE (sizeof(struct hostent)+10)
1009 struct hostent hent;
1010 char buffer[BUFSIZE];
1011 int bufsize=BUFSIZE;
1013 (void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
1014 )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
1017 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
1018 AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
1021 dnl ******************************
1022 dnl stat(v)fs location/type
1023 dnl ******************************
1024 AC_CHECK_HEADER([sys/statvfs.h],
1025 [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
1026 [[ #if HAVE_SYS_STATVFS_H
1027 #include <sys/statvfs.h>
1030 AC_CHECK_FUNCS(statvfs)
1032 AC_CHECK_HEADER([sys/param.h],
1033 [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
1034 [[ #if HAVE_SYS_PARAM_H
1035 #include <sys/param.h>
1038 AC_CHECK_HEADER([sys/mount.h],
1039 [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1040 [[ #if HAVE_SYS_MOUNT_H
1041 #include <sys/mount.h>
1044 AC_CHECK_FUNCS(statfs)
1046 dnl ******************************
1047 dnl IPv6 support and getaddrinfo calls
1048 dnl ******************************
1049 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1051 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1052 [[ #include "confdefs.h"
1053 #include <sys/types.h>
1054 #include <sys/socket.h>
1055 #include <netinet/in.h>
1059 [[ #ifndef NI_MAXHOST
1060 #define NI_MAXHOST 1025
1064 #define NI_MAXSERV 32
1067 struct addrinfo hints, *res;
1068 struct sockaddr_in6 sin6;
1070 char host[NI_MAXHOST];
1071 char serv[NI_MAXSERV];
1073 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1075 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1076 )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1079 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1080 AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1081 if test "x$enable_ipv6" = "xyes" ; then
1082 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1086 AC_ARG_ENABLE([ipv6],
1087 AS_HELP_STRING([--enable-ipv6=no/yes],
1088 [Enable support for resolving IPv6 addresses.]),
1089 [enable_ipv6=$enableval],[enable_ipv6=yes])
1090 if test "x$enable_ipv6" = "xyes"; then
1092 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1093 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1094 [[ #include "confdefs.h"
1095 #include <sys/types.h>
1096 #include <sys/socket.h>
1097 #include <netinet/in.h>
1100 [[ struct addrinfo hints;
1101 hints.ai_flags = AI_ADDRCONFIG;
1103 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1109 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1111 AC_CHECK_HEADER([wspiapi.h],
1112 [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1114 dnl **********************************
1115 dnl Weather calendar backend support
1116 dnl **********************************
1117 AC_MSG_CHECKING([if we should build the weather calendar backend])
1118 AC_ARG_ENABLE([weather],
1119 [AS_HELP_STRING([--enable-weather],
1120 [Build the weather calendar backend (default=yes)])],
1121 [use_gweather=$enableval], [use_gweather=yes])
1123 AC_MSG_RESULT([$use_gweather])
1124 if test "x$use_gweather" = "xyes"; then
1125 PKG_CHECK_MODULES([LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1126 [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.])])
1128 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1130 dnl ******************************
1132 dnl ******************************
1133 AC_ARG_ENABLE([nntp],
1134 AS_HELP_STRING([--enable-nntp],
1135 [Build Usenet news (NNTP) backend]),
1136 [enable_nntp=$enableval],[enable_nntp=yes])
1137 if test "x$enable_nntp" = "xyes"; then
1138 AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
1143 AM_CONDITIONAL(ENABLE_NNTP, [test x$enable_nntp = xyes])
1145 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1147 dnl ******************************
1149 dnl ******************************
1150 AC_ARG_ENABLE([dot-locking],
1151 AS_HELP_STRING([--enable-dot-locking=yes/no],
1152 [Enable support for locking mail files with dot locking]),
1153 [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1155 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1156 AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1162 AC_ARG_ENABLE([file-locking],
1163 AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1164 [Enable support for locking mail files with file locking]),
1165 [],[enable_file_locking=fcntl])
1167 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1168 AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1171 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1172 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1179 dnl ******************************
1180 dnl sendmail operation
1181 dnl ******************************
1182 AC_MSG_CHECKING([for SunOS broken spool format])
1183 if test "x$host_os" = "xsunos" ; then
1184 with_broken_spool="yes"
1187 AC_ARG_WITH([broken-spool],
1188 AS_HELP_STRING([--with-broken-spool=yes/no],
1189 [Using SunOS/Solaris sendmail which has a broken spool format]),
1190 [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1192 if test "x$with_broken_spool" = "xyes"; then
1193 AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1196 AC_MSG_RESULT([$with_broken_spool])
1198 dnl ******************************
1199 dnl DBus call timeout
1200 dnl ******************************
1202 AC_ARG_WITH([dbus-call-timeout],
1203 AS_HELP_STRING([--with-dbus-call-timeout=miliseconds],
1204 [Default timeout used when invoking g_dbus_proxy_call() family functions in EBook and ECal library (default=-1)]),
1205 [ac_cv_dbus_call_timeout=$withval],[ac_cv_dbus_call_timeout=-1])
1207 DEFAULT_EDS_DBUS_TIMEOUT=$ac_cv_dbus_call_timeout
1208 AC_SUBST(DEFAULT_EDS_DBUS_TIMEOUT)
1213 EVO_KRB5_SUPPORT(no)
1215 dnl ******************************
1217 dnl ******************************
1220 dnl ******************************
1222 dnl ******************************
1223 if test "x$os_win32" != "xyes"; then
1225 case $with_openldap in
1230 case $with_static_ldap in
1232 msg_ldap="$with_openldap (static)"
1235 msg_ldap="$with_openldap (dynamic)"
1240 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1241 if test "x$with_openldap" = "xno" ; then
1242 EVO_SUNLDAP_CHECK(no)
1243 case $with_sunldap in
1248 case $with_static_sunldap in
1250 msg_ldap="$with_sunldap (static)"
1253 msg_ldap="$with_sunldap (dynamic)"
1260 AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1262 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1264 dnl Win32 LDAP support
1265 LDAP_CFLAGS="-DLDAP_DEPRECATED"
1266 LDAP_LIBS="-lwldap32"
1267 AC_SUBST(LDAP_CFLAGS)
1269 AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1270 AM_CONDITIONAL(ENABLE_LDAP, true)
1271 AM_CONDITIONAL(SUNLDAP, false)
1275 dnl ******************************
1276 dnl GObject marshalling
1277 dnl ******************************
1280 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1281 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1282 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1284 dnl ******************************
1285 dnl Utility macro to set compiler flags for a specific lib.
1286 dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
1287 dnl ******************************
1288 AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
1289 PKG_CHECK_MODULES([$1], [$2])
1290 $1_CFLAGS="[$]$1_CFLAGS $3 "
1291 $1_LIBS="[$]$1_LIBS $4 "
1294 dnl ******************************
1296 dnl ******************************
1297 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1299 if test "x$enable_maintainer_mode" = "xyes" ; then
1300 EVO_SET_COMPILE_FLAGS(FACTORY_GTK, "gtk+-3.0")
1301 AC_SUBST(FACTORY_GTK_CFLAGS)
1302 AC_SUBST(FACTORY_GTK_LIBS)
1305 dnl ******************************
1306 dnl libedataserver flags
1307 dnl ******************************
1308 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1310 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1311 AC_SUBST(E_DATA_SERVER_CFLAGS)
1312 AC_SUBST(E_DATA_SERVER_LIBS)
1314 dnl ******************************
1315 dnl libebackend flags
1316 dnl ******************************
1317 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libsoup-2.4 libxml-2.0"
1319 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1320 AC_SUBST(E_BACKEND_CFLAGS)
1321 AC_SUBST(E_BACKEND_LIBS)
1323 dnl ******************************
1324 dnl evolution-addressbook flags
1325 dnl ******************************
1326 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 libsecret-1"
1328 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1329 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1330 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1332 dnl ******************************
1333 dnl evolution-calendar flags
1334 dnl ******************************
1335 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 libsecret-1"
1338 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1339 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1340 dnl to differentiate between <libical/ical.h> and <ical.h>
1341 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1342 dnl libical is fixed, we have to work-around the buggy CFlags.
1344 LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1345 LIBICAL_EXTRA_LIBS=""
1346 AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1347 AC_SUBST(LIBICAL_EXTRA_LIBS)
1349 EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1350 AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1351 AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1353 dnl ****************************
1354 dnl Check for ical_set_unknown_token_handling_setting function
1355 dnl ****************************
1356 AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1357 save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1358 save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1359 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1360 [[#include <libical/ical.h>]],
1361 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1362 [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])
1365 AC_MSG_RESULT([$ac_cv_have_iuth])
1367 dnl ******************************
1369 dnl ******************************
1370 LIBGDATA_REQUIRED=libgdata_minimum_version
1371 AC_SUBST(LIBGDATA_REQUIRED)
1372 AC_ARG_ENABLE([google],
1373 [AS_HELP_STRING([--enable-google],
1374 [enable Google Contacts support (default=yes)])],
1375 [enable_google=$enableval], [enable_google=yes])
1376 AC_MSG_CHECKING([if Google Contacts support is enabled])
1377 AC_MSG_RESULT([$enable_google])
1378 if test "x$enable_google" = xyes; then
1379 EVO_SET_COMPILE_FLAGS(GDATA, libgdata >= libgdata_minimum_version)
1380 AC_SUBST(GDATA_CFLAGS)
1381 AC_SUBST(GDATA_LIBS)
1383 AC_DEFINE(HAVE_GOOGLE, 1, [Define to 1 if you have the google-1.0 package.])
1385 AM_CONDITIONAL(HAVE_GOOGLE, [test x$enable_google = xyes])
1387 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1388 AC_SUBST(SOUP_CFLAGS)
1391 dnl ******************************
1393 dnl ******************************
1394 SQLITE_REQUIRED=sqlite_minimum_version
1395 AC_SUBST(SQLITE_REQUIRED)
1398 dnl deflateInit is a #define, use deflateEnd instead
1399 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1401 if test "x$zlib_found" = "xfalse"; then
1402 AC_MSG_ERROR([*** zlib is required])
1405 dnl ******************************
1406 dnl Checks for large file support
1407 dnl ******************************
1408 AC_ARG_ENABLE([largefile],
1409 AS_HELP_STRING([--enable-largefile],
1410 [enable support for large files [[default=no]]]),
1411 [],[enable_largefile="yes"])
1413 if test "x$enable_largefile" != "xno"; then
1415 AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1416 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1417 [[ #include <sys/types.h>
1418 #include <sys/stat.h>
1421 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]]
1422 )],[ac_cv_largefile64_source="no"],
1423 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1424 [[ #define _LARGEFILE64_SOURCE
1425 #include <sys/types.h>
1426 #include <sys/stat.h>
1429 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1430 [ac_cv_largefile64_source="unknown"])])
1433 enable_largefile="no"
1435 if test "x$ac_cv_largefile64_source" = "xyes"; then
1436 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1437 enable_largefile="yes"
1438 elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1439 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1442 if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1443 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1444 enable_largefile="yes"
1447 if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1448 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1449 enable_largefile="yes"
1452 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1456 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1458 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)
1459 AC_SUBST(CAMEL_CFLAGS)
1460 AC_SUBST(CAMEL_LIBS)
1462 dnl ******************************
1463 dnl Special directories
1464 dnl ******************************
1466 dnl If you add something here, consider whether or not you also
1467 dnl need to add it to one or more .pc.in files (for Connector,
1470 privdatadir='${datadir}'/evolution-data-server
1471 AC_SUBST(privdatadir)
1473 privincludedir='${includedir}'/evolution-data-server
1474 AC_SUBST(privincludedir)
1476 privlibdir='${libdir}'/evolution-data-server
1477 AC_SUBST(privlibdir)
1479 imagesdir='${datadir}'/pixmaps/evolution-data-server
1482 moduledir='${privlibdir}'/registry-modules
1485 ebook_backenddir='${privlibdir}'/addressbook-backends
1486 AC_SUBST(ebook_backenddir)
1488 ecal_backenddir='${privlibdir}'/calendar-backends
1489 AC_SUBST(ecal_backenddir)
1491 ro_sourcesdir='${privdatadir}'/ro-sources
1492 AC_SUBST(ro_sourcesdir)
1494 rw_sourcesdir='${privdatadir}'/rw-sources
1495 AC_SUBST(rw_sourcesdir)
1497 if test "x$use_gweather" = "xyes"; then
1498 weatherdatadir="$privdatadir/weather"
1499 AC_SUBST(weatherdatadir)
1502 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1503 camel_providerdir='${privlibdir}'/camel-providers
1504 AC_SUBST(camel_providerdir)
1506 dnl *******************
1507 dnl D-BUS service stuff
1508 dnl *******************
1509 m4_pattern_allow([AM_V_GEN])
1510 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)|" $< > $@'
1511 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1513 dnl ******************************
1515 dnl ******************************
1519 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1520 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1521 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1523 dnl ******************************
1525 dnl ******************************
1526 AC_PATH_PROG(GPERF, gperf, [no])
1527 if test "x$GPERF" = "xno"; then
1528 AC_MSG_ERROR([You need gperf to build evolution-data-server])
1531 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1533 dnl ******************************
1535 dnl ******************************
1536 AC_ARG_ENABLE(vala-bindings,
1537 AC_HELP_STRING([--enable-vala-bindings],
1538 [build the EXPERIMENTAL Vala bindings]),
1539 enable_vala_bindings=$enableval,
1540 enable_vala_bindings=no)
1542 if test x$enable_vala_bindings = xyes; then
1543 if test "x$INTROSPECTION_SCANNER" = x; then
1544 AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1547 AM_PROG_VALAC([0.13.0])
1550 AC_PATH_PROG(VALAC, valac, valac)
1554 AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1556 if test "x$VAPIGEN" = "xfalse"; then
1557 AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1563 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1566 dnl ******************************
1568 dnl ******************************
1570 export privincludedir
1575 evolution-data-server-zip
1576 evolution-data-server.pc
1577 addressbook/Makefile
1578 addressbook/libebook/Makefile
1579 addressbook/libebook/libebook.pc
1580 addressbook/libedata-book/Makefile
1581 addressbook/libedata-book/libedata-book.pc
1582 addressbook/libegdbus/Makefile
1583 addressbook/backends/Makefile
1584 addressbook/backends/file/Makefile
1585 addressbook/backends/ldap/Makefile
1586 addressbook/backends/google/Makefile
1587 addressbook/backends/google/tests/Makefile
1588 addressbook/backends/webdav/Makefile
1591 calendar/libecal/Makefile
1592 calendar/libecal/libecal.pc
1593 calendar/libedata-cal/Makefile
1594 calendar/libedata-cal/libedata-cal.pc
1595 calendar/libegdbus/Makefile
1596 calendar/backends/Makefile
1597 calendar/backends/caldav/Makefile
1598 calendar/backends/file/Makefile
1599 calendar/backends/http/Makefile
1600 calendar/backends/contacts/Makefile
1601 calendar/backends/weather/Makefile
1603 camel/providers/Makefile
1604 camel/providers/imapx/Makefile
1605 camel/providers/local/Makefile
1606 camel/providers/nntp/Makefile
1607 camel/providers/pop3/Makefile
1608 camel/providers/sendmail/Makefile
1609 camel/providers/smtp/Makefile
1610 camel/tests/Makefile
1611 camel/tests/folder/Makefile
1612 camel/tests/lib/Makefile
1613 camel/tests/message/Makefile
1614 camel/tests/mime-filter/Makefile
1615 camel/tests/misc/Makefile
1616 camel/tests/smime/Makefile
1619 data/sources/Makefile
1620 libebackend/Makefile
1621 libebackend/libebackend.pc
1622 libedataserver/Makefile
1623 libedataserver/eds-version.h
1624 libedataserver/libedataserver.pc
1626 modules/cache-reaper/Makefile
1627 modules/gnome-online-accounts/Makefile
1628 modules/google-backend/Makefile
1629 modules/trust-prompt/Makefile
1630 modules/yahoo-backend/Makefile
1633 services/evolution-addressbook-factory/Makefile
1634 services/evolution-calendar-factory/Makefile
1635 services/evolution-source-registry/Makefile
1636 services/evolution-user-prompter/Makefile
1638 tests/libebook/Makefile
1639 tests/libebook/client/Makefile
1640 tests/libebook/vcard/Makefile
1641 tests/libecal/Makefile
1642 tests/libecal/client/Makefile
1643 tests/libedata-cal/Makefile
1644 tests/libedataserver/Makefile
1645 tests/test-server-utils/Makefile
1646 tests/test-server-utils/services/Makefile
1647 tests/test-server-utils/services/org.gnome.evolution.dataserver.AddressBook.service
1648 tests/test-server-utils/services/org.gnome.evolution.dataserver.Calendar.service
1649 tests/test-server-utils/services/org.gnome.evolution.dataserver.Sources.service
1651 docs/reference/Makefile
1652 docs/reference/addressbook/Makefile
1653 docs/reference/addressbook/libebook/Makefile
1654 docs/reference/addressbook/libedata-book/Makefile
1655 docs/reference/calendar/Makefile
1656 docs/reference/calendar/libecal/Makefile
1657 docs/reference/calendar/libedata-cal/Makefile
1658 docs/reference/camel/Makefile
1659 docs/reference/libedataserver/Makefile
1660 docs/reference/libebackend/Makefile
1661 docs/reference/private/Makefile
1668 evolution-data-server has been configured as follows:
1669 Weather calendar: $use_gweather
1670 Mail Directory: $system_mail_dir, $system_mail_perm
1671 LDAP support: $msg_ldap
1672 NNTP support: $msg_nntp
1673 Kerberos 5: $msg_krb5
1674 SMIME support: $msg_smime
1675 IPv6 support: $msg_ipv6
1676 Dot Locking: $msg_dot
1677 File Locking: $msg_file
1678 Large files: $enable_largefile
1679 Gtk Doc: $enable_gtk_doc
1680 Introspection: $enable_introspection
1681 Vala bindings: $enable_vala_bindings
1682 GNOME Online Accounts $enable_goa
1683 Google Contacts $enable_google
1685 Code coverage (gcov): $enable_code_coverage
1686 Strict building: $enable_strict