2 dnl Evolution-Data-Server version
3 m4_define([eds_major_version], [3])
4 m4_define([eds_minor_version], [5])
5 m4_define([eds_micro_version], [90])
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.6])
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
36 m4_define([glib_minimum_version], [2.32])
37 m4_define([gtk_minimum_version], [3.2])
38 m4_define([gcr_minimum_version], [3.4])
39 m4_define([gnome_keyring_minimum_version], [2.20.1])
40 m4_define([libxml_minimum_version], [2.0.0]) dnl XXX Just a Guess
41 m4_define([libsoup_minimum_version], [2.38.1])
42 m4_define([libgdata_minimum_version], [0.10])
43 m4_define([oauth_minimum_version], [0.9.4])
44 m4_define([sqlite_minimum_version], [3.5])
45 m4_define([libical_minimum_version], [0.43])
48 m4_define([goa_minimum_version], [3.2])
49 m4_define([gweather_minimum_version], [3.5.0])
51 AC_SUBST([BASE_VERSION],[base_version])
52 AC_SUBST([API_VERSION],[api_version])
53 AC_DEFINE_UNQUOTED(BASE_VERSION, ["$BASE_VERSION"], [Base version (Major.Minor)])
54 AC_DEFINE_UNQUOTED(API_VERSION, ["$API_VERSION"], [API version (Major.Minor)])
56 EDS_MAJOR_VERSION=eds_major_version
57 EDS_MINOR_VERSION=eds_minor_version
58 EDS_MICRO_VERSION=eds_micro_version
62 dnl ******************************
64 dnl ******************************
65 ADDRESS_BOOK_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.AddressBook4"
66 CALENDAR_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Calendar3"
67 SOURCES_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Sources0"
70 ADDRESS_BOOK_DBUS_SERVICE_NAME,
71 ["$ADDRESS_BOOK_DBUS_SERVICE_NAME"],
72 [D-Bus service name for the address book factory])
75 CALENDAR_DBUS_SERVICE_NAME,
76 ["$CALENDAR_DBUS_SERVICE_NAME"],
77 [D-Bus service name for the calendar factory])
80 SOURCES_DBUS_SERVICE_NAME,
81 ["$SOURCES_DBUS_SERVICE_NAME"],
82 [D-Bus service name for the source registry])
84 AC_SUBST(ADDRESS_BOOK_DBUS_SERVICE_NAME)
85 AC_SUBST(CALENDAR_DBUS_SERVICE_NAME)
86 AC_SUBST(SOURCES_DBUS_SERVICE_NAME)
88 dnl ******************************
89 dnl Libtool versioning
90 dnl ******************************
91 LIBEDATASERVER_CURRENT=17
92 LIBEDATASERVER_REVISION=0
95 LIBEDATASERVERUI_CURRENT=4
96 LIBEDATASERVERUI_REVISION=0
97 LIBEDATASERVERUI_AGE=0
103 LIBEDATACAL_CURRENT=18
104 LIBEDATACAL_REVISION=0
107 LIBEDATABOOK_CURRENT=15
108 LIBEDATABOOK_REVISION=0
119 LIBEBACKEND_CURRENT=5
120 LIBEBACKEND_REVISION=0
123 AC_SUBST(EDS_MAJOR_VERSION)
124 AC_SUBST(EDS_MINOR_VERSION)
125 AC_SUBST(EDS_MICRO_VERSION)
126 AC_SUBST(LIBEDATASERVER_CURRENT)
127 AC_SUBST(LIBEDATASERVER_REVISION)
128 AC_SUBST(LIBEDATASERVER_AGE)
129 AC_SUBST(LIBEDATASERVERUI_CURRENT)
130 AC_SUBST(LIBEDATASERVERUI_REVISION)
131 AC_SUBST(LIBEDATASERVERUI_AGE)
132 AC_SUBST(LIBECAL_CURRENT)
133 AC_SUBST(LIBECAL_REVISION)
134 AC_SUBST(LIBECAL_AGE)
135 AC_SUBST(LIBEDATACAL_CURRENT)
136 AC_SUBST(LIBEDATACAL_REVISION)
137 AC_SUBST(LIBEDATACAL_AGE)
138 AC_SUBST(LIBEBOOK_CURRENT)
139 AC_SUBST(LIBEBOOK_REVISION)
140 AC_SUBST(LIBEBOOK_AGE)
141 AC_SUBST(LIBEDATABOOK_CURRENT)
142 AC_SUBST(LIBEDATABOOK_REVISION)
143 AC_SUBST(LIBEDATABOOK_AGE)
144 AC_SUBST(LIBCAMEL_CURRENT)
145 AC_SUBST(LIBCAMEL_REVISION)
146 AC_SUBST(LIBCAMEL_AGE)
147 AC_SUBST(LIBEBACKEND_CURRENT)
148 AC_SUBST(LIBEBACKEND_REVISION)
149 AC_SUBST(LIBEBACKEND_AGE)
151 dnl **************************************
152 dnl Put the ACLOCAL flags in the Makefile
153 dnl **************************************
154 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
156 dnl ******************************
157 dnl Compiler Warning Flags
158 dnl ******************************
159 AS_COMPILER_FLAGS(WARNING_FLAGS,
161 -Wno-missing-field-initializers
163 -Wno-unused-parameter
164 -Wno-deprecated-declarations
165 -Wdeclaration-after-statement
166 -Werror-implicit-function-declaration
167 -Wformat-security -Winit-self
168 -Wmissing-declarations -Wmissing-include-dirs
169 -Wmissing-noreturn -Wnested-externs -Wpointer-arith
170 -Wredundant-decls -Wundef -Wwrite-strings")
171 AC_SUBST(WARNING_FLAGS)
173 dnl More depracation from EBook/ECal:
174 dnl -DE_BOOK_DISABLE_DEPRECATED
175 dnl -DE_CAL_DISABLE_DEPRECATED
177 dnl Other useful compiler warnings for test builds only.
178 dnl These may produce warnings we have no control over,
179 dnl or false positives we don't always want to see.
181 dnl -Wformat-nonliteral
182 dnl -Wmissing-format-attribute
184 dnl -Wstrict-aliasing=2
186 AM_CPPFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
187 AC_SUBST(AM_CPPFLAGS)
190 dnl define disable deprecated for EBook and ECal .am files
191 case "$WARNING_FLAGS" in
192 *E_BOOK_DISABLE_DEPRECATED*)
193 AM_CONDITIONAL(HAVE_E_BOOK_DISABLE_DEPRECATED, [ test 1 == 1 ])
196 AM_CONDITIONAL(HAVE_E_BOOK_DISABLE_DEPRECATED, [ test 0 == 1 ])
200 case "$WARNING_FLAGS" in
201 *E_CAL_DISABLE_DEPRECATED*)
202 AM_CONDITIONAL(HAVE_E_CAL_DISABLE_DEPRECATED, [ test 1 == 1 ])
205 AM_CONDITIONAL(HAVE_E_CAL_DISABLE_DEPRECATED, [ test 0 == 1 ])
209 dnl ******************************
210 dnl Initialize maintainer mode
211 dnl ******************************
212 AM_MAINTAINER_MODE([enable])
214 if test "x$enable_maintainer_mode" = "xyes" ; then
215 AC_DEFINE(ENABLE_MAINTAINER_MODE, 1, [Configured with enabled maintainer mode])
226 dnl GCC 4.4 got more aggressive in its aliasing optimizations, changing
227 dnl behavior that -- according to the C99 standard -- is supposed to be
228 dnl undefined. We may still have aliasing abuses lying around that rely
229 dnl on GCC's previous "undefined" behavior, so disable strict-aliasing
230 dnl optimization until we can find and fix all the abuses.
231 dnl (AC_PROG_CC must run first to set the GCC variable.)
232 dnl XXX This really belongs in AM_CFLAGS.
233 if test "x${GCC}" = "xyes"; then
234 CFLAGS="$CFLAGS -fno-strict-aliasing"
237 dnl ******************************
239 dnl ******************************
240 IT_PROG_INTLTOOL([0.35.5])
242 AM_GNU_GETTEXT_VERSION([0.17])
243 AM_GNU_GETTEXT([external])
245 GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
246 AC_SUBST(GETTEXT_PACKAGE)
247 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
249 localedir='$(prefix)/$(DATADIRNAME)/locale'
252 dnl ******************************
253 dnl Initialize libtool
254 dnl ******************************
256 LT_INIT(disable-static win32-dll)
260 dnl ******************************
262 dnl ******************************
263 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
265 dnl The private D-Bus documentation is for developers only.
266 AC_ARG_WITH([private-docs],
267 AS_HELP_STRING([--with-private-docs],
268 [Build documentation for private libraries ]
269 [(requires --enable-gtk-doc) [default=no]],),
270 [with_private_docs="$withval"],[with_private_docs="no"])
271 AM_CONDITIONAL(WITH_PRIVATE_DOCS, [test x$with_private_docs = xyes])
273 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
276 dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
279 LDFLAGS="$LDFLAGS -Wl,--no-undefined"
283 dnl ******************************
285 dnl ******************************
286 AC_MSG_CHECKING([for Win32])
290 NO_UNDEFINED='-no-undefined'
291 SOCKET_LIBS='-lws2_32 -ldnsapi'
293 LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
294 AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes])
295 AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
302 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
309 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
312 AC_MSG_RESULT([$os_win32])
313 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
314 AC_SUBST(NO_UNDEFINED)
315 AC_SUBST(SOCKET_LIBS)
316 AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
318 dnl **************************************
319 dnl Check for posix compatible sys/wait.h
320 dnl **************************************
323 dnl ************************************
324 dnl Check for posix compatible alloca()
325 dnl ************************************
328 dnl ******************************
329 dnl Checks for functions
330 dnl ******************************
331 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
333 dnl ***********************************
334 dnl Check for base dependencies early.
335 dnl ***********************************
336 PKG_CHECK_MODULES(GNOME_PLATFORM,
337 [gio-2.0 >= glib_minimum_version
338 gmodule-2.0 >= glib_minimum_version
339 gtk+-3.0 >= gtk_minimum_version
340 libxml-2.0 >= libxml_minimum_version
341 libsoup-2.4 >= libsoup_minimum_version
342 libgdata >= libgdata_minimum_version])
344 if test x$os_win32 = xno; then
345 PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
348 dnl *******************************
349 dnl Check for GNOME Online Accounts
350 dnl *******************************
352 [AS_HELP_STRING([--enable-goa],
353 [enable GNOME Online Accounts support (default=yes)])],
354 [enable_goa=$enableval], [enable_goa=yes])
355 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
356 AC_MSG_RESULT([$enable_goa])
357 if test "x$enable_goa" = xyes; then
358 PKG_CHECK_MODULES([GOA], [goa-1.0 >= goa_minimum_version],,
359 [AC_MSG_ERROR([goa-1.0 not found (or version < goa_minimum_version),
360 If you want to disable GNOME Online Accounts support,
361 please append --disable-goa to configure.])])
363 PKG_CHECK_MODULES([OAUTH], [oauth >= oauth_minimum_version],,
364 [AC_MSG_ERROR([oauth not found (or version < oauth_minimum_version),
365 If you want to disable GNOME Online Accounts support,
366 please append --disable-goa to configure.])])
368 if `$PKG_CONFIG --atleast-version=0.9.1 libgdata`; then
369 AC_DEFINE(HAVE_GOA,1,[Have goa-1.0 and libgdata >= 0.9.1])
372 libgdata >= 0.9.1 is required for GNOME Online Accounts support.
373 If you want to disable GNOME Online Accounts support, please
374 append --disable-goa to configure.])
377 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
379 dnl GoaPasswordBased was introduced in version 3.5.
380 if `$PKG_CONFIG --atleast-version=3.5 goa-1.0`; then
381 AC_DEFINE(HAVE_GOA_PASSWORD_BASED,1,[Have GoaPasswordBased in goa-1.0])
384 dnl ***********************************
385 dnl Check for GNOME Keyring.
386 dnl ***********************************
387 if test x$os_win32 = xno; then
388 PKG_CHECK_MODULES(GNOME_KEYRING,
389 [gnome-keyring-1 >= gnome_keyring_minimum_version])
391 AC_SUBST(GNOME_KEYRING_CFLAGS)
392 AC_SUBST(GNOME_KEYRING_LIBS)
394 dnl **********************************************************
395 dnl gcr-base is needed for secure password exchange over D-Bus
396 dnl **********************************************************
397 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
398 AC_SUBST(GCR_BASE_CFLAGS)
399 AC_SUBST(GCR_BASE_LIBS)
401 LIBICAL_REQUIRED=libical_minimum_version
402 AC_SUBST(LIBICAL_REQUIRED)
404 dnl ******************************
406 dnl ******************************
407 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
409 AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
410 [AC_MSG_ERROR([No regex library found])])])
413 dnl ******************************
415 dnl ******************************
417 AS_HELP_STRING([--with-libdb=PREFIX],
418 [Prefix where libdb is installed]),
419 [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
421 DB_CFLAGS="-I$libdb_prefix/include"
422 DB_LIBS="-L$libdb_prefix/lib -ldb"
424 AC_MSG_CHECKING([Berkeley DB])
425 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
426 save_libs=$LIBS; LIBS="$DB_LIBS"
427 AC_LINK_IFELSE([AC_LANG_PROGRAM(
429 [[db_create(NULL, NULL, 0)]])],
430 [AC_MSG_RESULT([yes])],
431 [AC_MSG_ERROR([Cannot find libdb])])
437 dnl ******************************
439 dnl ******************************
443 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
444 AC_LINK_IFELSE([AC_LANG_PROGRAM(
451 cd = iconv_open ("UTF-8", "ISO-8859-1");
453 )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
455 if test "x$ac_cv_libiconv" = "xyes"; then
457 if test "x$os_win32" = "xyes"; then
458 dnl Don't pointlessly auto-export the global symbols
459 dnl from a potentially static libiconv.a
460 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
465 AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
468 if test "x$have_iconv" = "xyes"; then
469 if test "x$ac_cv_libiconv" = "xno"; then
470 AC_CHECK_FUNCS(gnu_get_libc_version)
472 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
473 AC_RUN_IFELSE([AC_LANG_SOURCE([[
477 #ifdef HAVE_GNU_GET_LIBC_VERSION
478 #include <gnu/libc-version.h>
481 char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
482 char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
483 char *transbuf = malloc (10), *trans = transbuf;
485 size_t jp_len = strlen (jp), utf8_len = 10;
486 size_t utf8_real_len = strlen (utf8);
488 #ifdef HAVE_GNU_GET_LIBC_VERSION
489 /* glibc 2.1.2's iconv is broken in hard to test ways. */
490 if (!strcmp (gnu_get_libc_version (), "2.1.2"))
494 cd = iconv_open ("UTF-8", "ISO-2022-JP");
495 if (cd == (iconv_t) -1)
497 if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
499 if (memcmp (utf8, transbuf, utf8_real_len) != 0)
503 ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
506 if test "x$have_iconv" = "xno"; then
507 AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
511 CFLAGS="$CFLAGS -I$srcdir"
513 AC_MSG_CHECKING([preferred charset name formats for system iconv])
514 AC_RUN_IFELSE([AC_LANG_SOURCE([[
516 #include "iconv-detect.c"
518 [AC_MSG_RESULT([found])],
519 [AC_MSG_RESULT([not found])
521 *** The iconv-detect program was unable to determine the
522 *** preferred charset name formats recognized by your
523 *** iconv library. It is suggested that you install a
524 *** working iconv library such as the one found at
525 *** ftp://ftp.gnu.org/pub/gnu/libiconv
527 [if test "x$os_win32" = xyes; then
528 AC_MSG_RESULT([using known win32 result])
529 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
530 echo >>iconv-detect.h
531 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
532 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
533 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
535 AC_MSG_RESULT([unknown])
537 *** We can't determine the preferred charset name formats
538 *** recognized by your iconv library. You are
539 *** cross-compiling and supposed to know what you are doing.
540 *** Please construct the iconv-detect.h file manually.
545 CFLAGS="$save_CFLAGS"
548 AC_ARG_ENABLE([backtraces],
549 [AS_HELP_STRING([--enable-backtraces],
550 [enable backtraces for camel_pointer_tracker (default=no)])],
551 [enable_backtraces=$enableval], [enable_backtraces=no])
553 if test "x$enable_backtraces" = xyes; then
554 dnl ****************************
555 dnl Check for backtrace_symbols function and dwfl from elfutils
556 dnl ****************************
557 AC_MSG_CHECKING([libc backtrace_symbols function])
558 AC_LINK_IFELSE([AC_LANG_PROGRAM(
559 [[#include <execinfo.h>]],
560 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
561 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
562 AC_MSG_RESULT([$ac_cv_have_bsf])
564 if test "x$ac_cv_have_bsf" = xyes; then
567 AC_MSG_CHECKING([elfutils/libdwfl])
568 AC_LINK_IFELSE([AC_LANG_PROGRAM(
569 [[#include <elfutils/libdwfl.h>]],
573 Dwarf_Addr module_low_addr;
576 dwfl_standard_find_debuginfo;
577 dwfl_linux_proc_find_elf;
579 dwfl_linux_proc_report (NULL, 1);
580 dwfl_report_end (NULL, NULL, NULL);
582 dwfl_module_addrname (NULL, NULL);
583 dwfl_module_getsrc (NULL, NULL);
584 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
585 DWARF_CB_ABORT; DWARF_CB_OK;
586 dwfl_getmodules (NULL, NULL, NULL, 0);
588 [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
589 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
593 if test "x$ac_cv_have_elfdwfl" = xyes; then
595 AC_SUBST(LIBDWFL_LIBS)
600 dnl **********************************
601 dnl Check for nl_langinfo and CODESET
602 dnl **********************************
603 AC_MSG_CHECKING([for nl_langinfo (CODESET)])
604 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
605 [[#include <langinfo.h>]],
606 [[char *codeset = nl_langinfo (CODESET);]]
607 )],[ac_cv_langinfo_codeset=yes],[ac_cv_langinfo_codeset=no])
608 if test "x$ac_cv_langinfo_codeset" = "xyes"; then
609 AC_DEFINE(HAVE_CODESET, 1, [Have nl_langinfo (CODESET)])
611 AC_MSG_RESULT([$ac_cv_langinfo_codeset])
613 dnl *******************************************************
614 dnl Check to see if strftime supports the use of %l and %k
615 dnl *******************************************************
616 AC_MSG_CHECKING([for %l and %k support in strftime])
617 AC_RUN_IFELSE([AC_LANG_SOURCE(
618 [[ #include <stdlib.h>
621 int main(int argc, char **argv) {
627 timeinfo=localtime(&rawtime);
629 strftime(buf, 10, "%lx%k", timeinfo);
631 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
638 )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
639 AC_MSG_RESULT([$ac_cv_lkstrftime])
641 dnl ********************************************************************************
642 dnl security extension support (SSL and S/MIME)
644 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
645 dnl needed by Camel (SSL and S/MIME).
647 dnl The Evolution security extensions are only built if these libraries are found
648 dnl ********************************************************************************
651 AC_ARG_ENABLE([smime],
652 AS_HELP_STRING([--enable-smime],
653 [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
654 [enable_smime="$enableval"],[enable_smime="yes"])
656 AC_ARG_WITH([nspr-includes],
657 AS_HELP_STRING([--with-nspr-includes],
658 [Prefix of Mozilla nspr4 includes.]),
659 [with_nspr_includes="$withval"])
661 AC_ARG_WITH([nspr-libs],
662 AS_HELP_STRING([--with-nspr-libs],
663 [Prefix of Mozilla nspr4 libs.]),
664 [with_nspr_libs="$withval"])
666 AC_ARG_WITH([nss-includes],
667 AS_HELP_STRING([--with-nss-includes],
668 [Prefix of Mozilla nss3 includes.]),
669 [with_nss_includes="$withval"])
671 AC_ARG_WITH([nss-libs],
672 AS_HELP_STRING([--with-nss-libs],
673 [Prefix of Mozilla nss3 libs.]),
674 [with_nss_libs="$withval"])
676 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
682 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
683 if test "x${check_manually}" = "xno"; then
684 AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
685 mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
686 for pc in $mozilla_nspr_pcs; do
687 if $PKG_CONFIG --exists $pc; then
694 AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
695 mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
696 for pc in $mozilla_nss_pcs; do
697 if $PKG_CONFIG --exists $pc; then
704 if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
705 if test "x$enable_smime" = "xyes"; then
706 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
709 MANUAL_NSPR_CFLAGS=""
720 if test "x${check_manually}" = "xyes"; then
721 dnl ******************
723 dnl ******************
724 AC_MSG_CHECKING([for Mozilla nspr4 includes])
725 CPPFLAGS_save="$CPPFLAGS"
726 if test -n "$with_nspr_includes"; then
727 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
730 AC_CHECK_HEADERS(nspr.h prio.h,
731 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
732 CPPFLAGS="$CPPFLAGS_save"
734 if test "x${moz_nspr_includes}" = "xyes"; then
735 MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
737 AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
739 AC_MSG_RESULT([$moz_nspr_includes])
741 AC_MSG_CHECKING([for Mozilla nspr libraries])
742 CFLAGS_save="$CFLAGS"
743 LDFLAGS_save="$LDFLAGS"
745 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
747 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
749 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
750 if test -n "${with_nspr_libs}"; then
751 LDFLAGS="$LDFLAGS -L$with_nspr_libs"
756 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
757 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
759 CFLAGS="$CFLAGS_save"
760 LDFLAGS="$LDFLAGS_save"
763 if test "x${moz_nspr_libs}" = "xyes"; then
764 if test -n "${with_nspr_libs}"; then
765 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
767 MANUAL_NSPR_LIBS="$nsprlibs"
770 AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
772 AC_MSG_RESULT([$moz_nspr_libs])
774 dnl *****************
776 dnl *****************
777 AC_MSG_CHECKING([for Mozilla nss3 includes])
778 CPPFLAGS_save="$CPPFLAGS"
779 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
781 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
782 [moz_nss_includes="yes"],[moz_nss_includes="no"])
783 CPPFLAGS="$CPPFLAGS_save"
785 if test "x${moz_nss_includes}" = "xyes"; then
786 MANUAL_NSS_CFLAGS="-I$with_nss_includes"
788 AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
790 AC_MSG_RESULT($moz_nss_includes)
792 AC_MSG_CHECKING([for Mozilla nss libraries])
793 LDFLAGS_save="$LDFLAGS"
795 nsslibs="-lssl3 -lsmime3 -lnss3"
797 LIBS="$nsslibs $nsprlibs"
798 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
799 if test -n "${with_nss_libs}"; then
800 LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
802 LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
805 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
806 [moz_nss_libs="yes"],[moz_nss_libs="no"])
807 LDFLAGS="$LDFLAGS_save"
810 if test "x${moz_nss_libs}" = "xyes"; then
811 if test "x${enable_smime}" = "xyes"; then
812 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
815 if test -n "${with_nss_libs}"; then
816 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
818 MANUAL_NSS_LIBS="$nsslibs"
821 AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
823 AC_MSG_RESULT([$moz_nss_libs])
825 MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
826 MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
829 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
831 dnl For pkgconfig files.
832 AC_SUBST(mozilla_nss)
833 AC_SUBST(mozilla_nspr)
835 AC_SUBST(MANUAL_NSPR_CFLAGS)
836 AC_SUBST(MANUAL_NSPR_LIBS)
837 AC_SUBST(MANUAL_NSS_CFLAGS)
838 AC_SUBST(MANUAL_NSS_LIBS)
840 dnl ******************************
841 dnl system mail stuff
842 dnl ******************************
843 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
844 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
846 AC_MSG_CHECKING([system mail directory])
847 if test -d /var/mail -a '!' -h /var/mail ; then
848 system_mail_dir="/var/mail"
850 system_mail_dir="/var/spool/mail"
852 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
854 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
856 CAMEL_LOCK_HELPER_USER=""
857 CAMEL_LOCK_HELPER_GROUP=""
858 system_mail_perm="world writable"
861 CAMEL_LOCK_HELPER_USER=""
862 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
863 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
866 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
867 CAMEL_LOCK_HELPER_GROUP=""
868 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
871 CAMEL_LOCK_HELPER_USER=""
872 CAMEL_LOCK_HELPER_GROUP=""
873 system_mail_perm="???"
877 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
878 AC_SUBST(CAMEL_LOCK_HELPER_USER)
879 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
881 dnl ******************************
883 dnl ******************************
884 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
885 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
886 [[ #include <time.h> ]],
891 )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
892 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
893 AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
895 AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
896 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
897 [[ #include <time.h> ]],
899 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
900 if test "x$ac_cv_var_timezone" = "xyes"; then
901 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
902 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
903 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
904 [[ #include <time.h> ]],
906 )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
907 if test "x$ac_cv_var_altzone" = "xyes"; then
908 AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
911 AC_MSG_ERROR([unable to find a way to determine timezone])
915 dnl ******************************
916 dnl ctime_r prototype
917 dnl ******************************
918 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
920 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
921 [[ #include <time.h> ]],
924 ctime_r (&date, buf, 100); ]]
925 )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
928 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
929 AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
932 dnl ******************************
933 dnl gethostbyname_r prototype
934 dnl ******************************
935 AC_CHECK_FUNCS(gethostbyname_r,[
936 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
938 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
940 #include "confdefs.h"
941 #include <sys/types.h>
942 #include <sys/socket.h>
943 #include <netinet/in.h>
945 #define BUFSIZE (sizeof(struct hostent)+10)
949 char buffer[BUFSIZE];
952 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
954 )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
957 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
958 AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
961 dnl ******************************
962 dnl gethostbyaddr_r prototype
963 dnl ******************************
964 AC_CHECK_FUNCS(gethostbyaddr_r,[
965 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_args],
967 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
969 #include "confdefs.h"
970 #include <sys/types.h>
971 #include <sys/socket.h>
972 #include <netinet/in.h>
974 #define BUFSIZE (sizeof(struct hostent)+10)
978 char buffer[BUFSIZE];
981 (void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
982 )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
985 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
986 AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
989 dnl ******************************
990 dnl stat(v)fs location/type
991 dnl ******************************
992 AC_CHECK_HEADER([sys/statvfs.h],
993 [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
994 [[ #if HAVE_SYS_STATVFS_H
995 #include <sys/statvfs.h>
998 AC_CHECK_FUNCS(statvfs)
1000 AC_CHECK_HEADER([sys/param.h],
1001 [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
1002 [[ #if HAVE_SYS_PARAM_H
1003 #include <sys/param.h>
1006 AC_CHECK_HEADER([sys/mount.h],
1007 [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1008 [[ #if HAVE_SYS_MOUNT_H
1009 #include <sys/mount.h>
1012 AC_CHECK_FUNCS(statfs)
1014 dnl ******************************
1015 dnl IPv6 support and getaddrinfo calls
1016 dnl ******************************
1017 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1019 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1020 [[ #include "confdefs.h"
1021 #include <sys/types.h>
1022 #include <sys/socket.h>
1023 #include <netinet/in.h>
1027 [[ #ifndef NI_MAXHOST
1028 #define NI_MAXHOST 1025
1032 #define NI_MAXSERV 32
1035 struct addrinfo hints, *res;
1036 struct sockaddr_in6 sin6;
1038 char host[NI_MAXHOST];
1039 char serv[NI_MAXSERV];
1041 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1043 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1044 )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1047 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1048 AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1049 if test "x$enable_ipv6" = "xyes" ; then
1050 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1054 AC_ARG_ENABLE([ipv6],
1055 AS_HELP_STRING([--enable-ipv6=no/yes],
1056 [Enable support for resolving IPv6 addresses.]),
1057 [enable_ipv6=$enableval],[enable_ipv6=yes])
1058 if test "x$enable_ipv6" = "xyes"; then
1060 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1061 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1062 [[ #include "confdefs.h"
1063 #include <sys/types.h>
1064 #include <sys/socket.h>
1065 #include <netinet/in.h>
1068 [[ struct addrinfo hints;
1069 hints.ai_flags = AI_ADDRCONFIG;
1071 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1077 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1079 AC_CHECK_HEADER([wspiapi.h],
1080 [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1082 dnl **********************************
1083 dnl Weather calendar backend support
1084 dnl **********************************
1085 AC_MSG_CHECKING([if we should build the weather calendar backend])
1086 AC_ARG_ENABLE([weather],
1087 [AS_HELP_STRING([--enable-weather],
1088 [Build the weather calendar backend (default=yes)])],
1089 [use_gweather=$enableval], [use_gweather=yes])
1091 AC_MSG_RESULT([$use_gweather])
1092 if test "x$use_gweather" = "xyes"; then
1093 PKG_CHECK_MODULES([LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1094 [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.])])
1096 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1098 dnl ******************************
1100 dnl ******************************
1101 AC_ARG_ENABLE([nntp],
1102 AS_HELP_STRING([--enable-nntp],
1103 [Build Usenet news (NNTP) backend]),
1104 [enable_nntp=$enableval],[enable_nntp=yes])
1105 if test "x$enable_nntp" = "xyes"; then
1106 AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
1111 AM_CONDITIONAL(ENABLE_NNTP, [test x$enable_nntp = xyes])
1113 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1115 dnl ******************************
1117 dnl ******************************
1118 AC_ARG_ENABLE([dot-locking],
1119 AS_HELP_STRING([--enable-dot-locking=yes/no],
1120 [Enable support for locking mail files with dot locking]),
1121 [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1123 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1124 AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1130 AC_ARG_ENABLE([file-locking],
1131 AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1132 [Enable support for locking mail files with file locking]),
1133 [],[enable_file_locking=fcntl])
1135 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1136 AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1139 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1140 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1147 dnl ******************************
1148 dnl sendmail operation
1149 dnl ******************************
1150 AC_MSG_CHECKING([for SunOS broken spool format])
1151 if test "x$host_os" = "xsunos" ; then
1152 with_broken_spool="yes"
1155 AC_ARG_WITH([broken-spool],
1156 AS_HELP_STRING([--with-broken-spool=yes/no],
1157 [Using SunOS/Solaris sendmail which has a broken spool format]),
1158 [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1160 if test "x$with_broken_spool" = "xyes"; then
1161 AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1164 AC_MSG_RESULT([$with_broken_spool])
1166 dnl ******************************
1167 dnl DBus call timeout
1168 dnl ******************************
1170 AC_ARG_WITH([dbus-call-timeout],
1171 AS_HELP_STRING([--with-dbus-call-timeout=miliseconds],
1172 [Default timeout used when invoking g_dbus_proxy_call() family functions in EBook and ECal library (default=-1)]),
1173 [ac_cv_dbus_call_timeout=$withval],[ac_cv_dbus_call_timeout=-1])
1175 DEFAULT_EDS_DBUS_TIMEOUT=$ac_cv_dbus_call_timeout
1176 AC_SUBST(DEFAULT_EDS_DBUS_TIMEOUT)
1181 EVO_KRB5_SUPPORT(no)
1183 dnl ******************************
1185 dnl ******************************
1188 dnl ******************************
1190 dnl ******************************
1191 if test "x$os_win32" != "xyes"; then
1193 case $with_openldap in
1198 case $with_static_ldap in
1200 msg_ldap="$with_openldap (static)"
1203 msg_ldap="$with_openldap (dynamic)"
1208 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1209 if test "x$with_openldap" = "xno" ; then
1210 EVO_SUNLDAP_CHECK(no)
1211 case $with_sunldap in
1216 case $with_static_sunldap in
1218 msg_ldap="$with_sunldap (static)"
1221 msg_ldap="$with_sunldap (dynamic)"
1228 AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1230 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1232 dnl Win32 LDAP support
1233 LDAP_CFLAGS="-DLDAP_DEPRECATED"
1234 LDAP_LIBS="-lwldap32"
1235 AC_SUBST(LDAP_CFLAGS)
1237 AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1238 AM_CONDITIONAL(ENABLE_LDAP, true)
1239 AM_CONDITIONAL(SUNLDAP, false)
1243 dnl ******************************
1244 dnl GObject marshalling
1245 dnl ******************************
1248 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1249 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1250 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1252 dnl ******************************
1253 dnl Code coverage flags
1254 dnl ******************************
1256 AC_ARG_ENABLE([code-coverage],
1257 AS_HELP_STRING([--enable-code-coverage], [compile with code coverage code]),
1258 [enable_code_coverage=$enableval], [enable_code_coverage=no])
1260 if test "x$GCC" = "xyes"; then
1261 if test "x$enable_code_coverage" = "xyes"; then
1262 CODE_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage -O0 -ggdb"
1263 CODE_COVERAGE_LDFLAGS="-lgcov"
1267 AC_SUBST([CODE_COVERAGE_CFLAGS])
1268 AC_SUBST([CODE_COVERAGE_LDFLAGS])
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 dnl ******************************
1286 dnl libedataserver flags
1287 dnl ******************************
1288 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 gnome-keyring-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1290 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1291 AC_SUBST(E_DATA_SERVER_CFLAGS)
1292 AC_SUBST(E_DATA_SERVER_LIBS)
1294 dnl ******************************
1295 dnl libedataserverui
1296 dnl ******************************
1297 E_DATA_SERVER_UI_DEPS="gtk+-3.0 libxml-2.0 libsoup-2.4"
1299 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER_UI, $E_DATA_SERVER_UI_DEPS, , )
1300 AC_SUBST(E_DATA_SERVER_UI_CFLAGS)
1301 AC_SUBST(E_DATA_SERVER_UI_LIBS)
1303 if test "x$enable_maintainer_mode" = "xyes" ; then
1304 FACTORY_GTK_CFLAGS=$E_DATA_SERVER_UI_CFLAGS
1305 FACTORY_GTK_LIBS=$E_DATA_SERVER_UI_LIBS
1306 AC_SUBST(FACTORY_GTK_CFLAGS)
1307 AC_SUBST(FACTORY_GTK_LIBS)
1310 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 gnome-keyring-1 libsoup-2.4 libxml-2.0"
1312 dnl ******************************
1313 dnl libebackend flags
1314 dnl ******************************
1315 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1316 AC_SUBST(E_BACKEND_CFLAGS)
1317 AC_SUBST(E_BACKEND_LIBS)
1319 dnl ******************************
1320 dnl evolution-addressbook flags
1321 dnl ******************************
1322 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 gnome-keyring-1"
1324 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1325 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1326 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1328 dnl ******************************
1329 dnl evolution-calendar flags
1330 dnl ******************************
1331 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 gnome-keyring-1"
1334 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1335 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1336 dnl to differentiate between <libical/ical.h> and <ical.h>
1337 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1338 dnl libical is fixed, we have to work-around the buggy CFlags.
1340 LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1341 LIBICAL_EXTRA_LIBS=""
1342 AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1343 AC_SUBST(LIBICAL_EXTRA_LIBS)
1345 EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1346 AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1347 AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1349 dnl ****************************
1350 dnl Check for ical_set_unknown_token_handling_setting function
1351 dnl ****************************
1352 AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1353 save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1354 save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1355 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1356 [[#include <libical/ical.h>]],
1357 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1358 [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])
1361 AC_MSG_RESULT([$ac_cv_have_iuth])
1363 dnl ******************************
1365 dnl ******************************
1366 LIBGDATA_REQUIRED=libgdata_minimum_version
1367 AC_SUBST(LIBGDATA_REQUIRED)
1369 EVO_SET_COMPILE_FLAGS(GDATA, libgdata)
1370 AC_SUBST(GDATA_CFLAGS)
1371 AC_SUBST(GDATA_LIBS)
1373 dnl ******************************
1375 dnl ******************************
1376 LIBSOUP_REQUIRED=libsoup_minimum_version
1377 AC_SUBST(LIBSOUP_REQUIRED)
1379 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1380 AC_SUBST(SOUP_CFLAGS)
1383 dnl ******************************
1385 dnl ******************************
1386 SQLITE_REQUIRED=sqlite_minimum_version
1387 AC_SUBST(SQLITE_REQUIRED)
1390 dnl deflateInit is a #define, use deflateEnd instead
1391 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1393 if test "x$zlib_found" = "xfalse"; then
1394 AC_MSG_ERROR([*** zlib is required])
1397 dnl ******************************
1398 dnl Checks for large file support
1399 dnl ******************************
1400 AC_ARG_ENABLE([largefile],
1401 AS_HELP_STRING([--enable-largefile],
1402 [enable support for large files [[default=no]]]),
1403 [],[enable_largefile="yes"])
1405 if test "x$enable_largefile" != "xno"; then
1407 AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1408 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1409 [[ #include <sys/types.h>
1410 #include <sys/stat.h>
1413 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]]
1414 )],[ac_cv_largefile64_source="no"],
1415 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1416 [[ #define _LARGEFILE64_SOURCE
1417 #include <sys/types.h>
1418 #include <sys/stat.h>
1421 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1422 [ac_cv_largefile64_source="unknown"])])
1425 enable_largefile="no"
1427 if test "x$ac_cv_largefile64_source" = "xyes"; then
1428 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1429 enable_largefile="yes"
1430 elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1431 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1434 if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1435 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1436 enable_largefile="yes"
1439 if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1440 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1441 enable_largefile="yes"
1444 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1448 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1450 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)
1451 AC_SUBST(CAMEL_CFLAGS)
1452 AC_SUBST(CAMEL_LIBS)
1454 dnl ******************************
1455 dnl Special directories
1456 dnl ******************************
1458 dnl If you add something here, consider whether or not you also
1459 dnl need to add it to one or more .pc.in files (for Connector,
1462 privdatadir='${datadir}'/evolution-data-server-$BASE_VERSION
1463 AC_SUBST(privdatadir)
1465 privincludedir='${includedir}'/evolution-data-server-$BASE_VERSION
1466 AC_SUBST(privincludedir)
1468 privlibdir='${libdir}'/evolution-data-server-$BASE_VERSION
1469 AC_SUBST(privlibdir)
1471 imagesdir='${datadir}'/pixmaps/evolution-data-server
1474 moduledir='${libdir}'/evolution-data-server/registry-modules
1477 ebook_backenddir='${libdir}'/evolution-data-server/addressbook-backends
1478 AC_SUBST(ebook_backenddir)
1480 ecal_backenddir='${libdir}'/evolution-data-server/calendar-backends
1481 AC_SUBST(ecal_backenddir)
1483 ro_sourcesdir='${datadir}'/evolution-data-server-$BASE_VERSION/ro-sources
1484 AC_SUBST(ro_sourcesdir)
1486 rw_sourcesdir='${datadir}'/evolution-data-server-$BASE_VERSION/rw-sources
1487 AC_SUBST(rw_sourcesdir)
1489 if test "x$use_gweather" = "xyes"; then
1490 weatherdatadir="$privdatadir/weather"
1491 AC_SUBST(weatherdatadir)
1494 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1495 camel_providerdir='${libdir}'/evolution-data-server/camel-providers
1496 AC_SUBST(camel_providerdir)
1498 dnl *******************
1499 dnl D-BUS service stuff
1500 dnl *******************
1501 m4_pattern_allow([AM_V_GEN])
1502 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)|" $< > $@'
1503 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1505 dnl ******************************
1507 dnl ******************************
1511 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1512 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1513 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1515 dnl ******************************
1517 dnl ******************************
1518 AC_PATH_PROG(GPERF, gperf, [no])
1519 if test "x$GPERF" = "xno"; then
1520 AC_MSG_ERROR([You need gperf to build evolution-data-server])
1523 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1525 dnl ******************************
1527 dnl ******************************
1528 AC_ARG_ENABLE(vala-bindings,
1529 AC_HELP_STRING([--enable-vala-bindings],
1530 [build the EXPERIMENTAL Vala bindings]),
1531 enable_vala_bindings=$enableval,
1532 enable_vala_bindings=no)
1534 if test x$enable_vala_bindings = xyes; then
1535 if test "x$INTROSPECTION_SCANNER" = x; then
1536 AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1539 AM_PROG_VALAC([0.13.0])
1542 AC_PATH_PROG(VALAC, valac, valac)
1546 AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1548 if test "x$VAPIGEN" = "xfalse"; then
1549 AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1555 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1558 dnl ******************************
1560 dnl ******************************
1562 export privincludedir
1567 evolution-data-server-zip
1568 evolution-data-server.pc
1569 addressbook/Makefile
1570 addressbook/libebook/Makefile
1571 addressbook/libebook/libebook.pc
1572 addressbook/libedata-book/Makefile
1573 addressbook/libedata-book/libedata-book.pc
1574 addressbook/libegdbus/Makefile
1575 addressbook/backends/Makefile
1576 addressbook/backends/file/Makefile
1577 addressbook/backends/vcf/Makefile
1578 addressbook/backends/ldap/Makefile
1579 addressbook/backends/google/Makefile
1580 addressbook/backends/google/tests/Makefile
1581 addressbook/backends/webdav/Makefile
1584 calendar/libecal/Makefile
1585 calendar/libecal/libecal.pc
1586 calendar/libedata-cal/Makefile
1587 calendar/libedata-cal/libedata-cal.pc
1588 calendar/libegdbus/Makefile
1589 calendar/backends/Makefile
1590 calendar/backends/caldav/Makefile
1591 calendar/backends/file/Makefile
1592 calendar/backends/http/Makefile
1593 calendar/backends/contacts/Makefile
1594 calendar/backends/weather/Makefile
1596 camel/providers/Makefile
1597 camel/providers/imap/Makefile
1598 camel/providers/imapx/Makefile
1599 camel/providers/local/Makefile
1600 camel/providers/nntp/Makefile
1601 camel/providers/pop3/Makefile
1602 camel/providers/sendmail/Makefile
1603 camel/providers/smtp/Makefile
1604 camel/tests/Makefile
1605 camel/tests/folder/Makefile
1606 camel/tests/lib/Makefile
1607 camel/tests/message/Makefile
1608 camel/tests/mime-filter/Makefile
1609 camel/tests/misc/Makefile
1610 camel/tests/smime/Makefile
1613 data/sources/Makefile
1614 libebackend/Makefile
1615 libebackend/libebackend.pc
1616 libedataserver/Makefile
1617 libedataserver/eds-version.h
1618 libedataserver/libedataserver.pc
1619 libedataserverui/Makefile
1620 libedataserverui/libedataserverui.pc
1622 modules/cache-reaper/Makefile
1623 modules/google-backend/Makefile
1624 modules/online-accounts/Makefile
1625 modules/yahoo-backend/Makefile
1628 services/evolution-addressbook-factory/Makefile
1629 services/evolution-calendar-factory/Makefile
1630 services/evolution-source-registry/Makefile
1632 tests/libebook/Makefile
1633 tests/libebook/client/Makefile
1634 tests/libebook/vcard/Makefile
1635 tests/libecal/Makefile
1636 tests/libecal/client/Makefile
1637 tests/libedata-cal/Makefile
1638 tests/libedataserver/Makefile
1639 tests/libedataserverui/Makefile
1641 docs/reference/Makefile
1642 docs/reference/addressbook/Makefile
1643 docs/reference/addressbook/libebook/Makefile
1644 docs/reference/addressbook/libedata-book/Makefile
1645 docs/reference/calendar/Makefile
1646 docs/reference/calendar/libecal/Makefile
1647 docs/reference/calendar/libedata-cal/Makefile
1648 docs/reference/camel/Makefile
1649 docs/reference/libedataserver/Makefile
1650 docs/reference/libedataserverui/Makefile
1651 docs/reference/libebackend/Makefile
1652 docs/reference/private/Makefile
1659 evolution-data-server has been configured as follows:
1660 Weather calendar: $use_gweather
1661 Mail Directory: $system_mail_dir, $system_mail_perm
1662 LDAP support: $msg_ldap
1663 NNTP support: $msg_nntp
1664 Kerberos 5: $msg_krb5
1665 SMIME support: $msg_smime
1666 IPv6 support: $msg_ipv6
1667 Dot Locking: $msg_dot
1668 File Locking: $msg_file
1669 Large files: $enable_largefile
1670 Gtk Doc: $enable_gtk_doc
1671 Introspection: $enable_introspection
1672 Vala bindings: $enable_vala_bindings
1673 GNOME Online Accounts $enable_goa
1674 Code coverage (gcov): $enable_code_coverage