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 For gen-western-table.py
229 dnl GCC 4.4 got more aggressive in its aliasing optimizations, changing
230 dnl behavior that -- according to the C99 standard -- is supposed to be
231 dnl undefined. We may still have aliasing abuses lying around that rely
232 dnl on GCC's previous "undefined" behavior, so disable strict-aliasing
233 dnl optimization until we can find and fix all the abuses.
234 dnl (AC_PROG_CC must run first to set the GCC variable.)
235 dnl XXX This really belongs in AM_CFLAGS.
236 if test "x${GCC}" = "xyes"; then
237 CFLAGS="$CFLAGS -fno-strict-aliasing"
240 dnl ******************************
242 dnl ******************************
243 IT_PROG_INTLTOOL([0.35.5])
245 AM_GNU_GETTEXT_VERSION([0.17])
246 AM_GNU_GETTEXT([external])
248 GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
249 AC_SUBST(GETTEXT_PACKAGE)
250 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
252 localedir='$(prefix)/$(DATADIRNAME)/locale'
255 dnl ******************************
256 dnl Initialize libtool
257 dnl ******************************
259 LT_INIT(disable-static win32-dll)
263 dnl ******************************
265 dnl ******************************
266 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
268 dnl The private D-Bus documentation is for developers only.
269 AC_ARG_WITH([private-docs],
270 AS_HELP_STRING([--with-private-docs],
271 [Build documentation for private libraries ]
272 [(requires --enable-gtk-doc) [default=no]],),
273 [with_private_docs="$withval"],[with_private_docs="no"])
274 AM_CONDITIONAL(WITH_PRIVATE_DOCS, [test x$with_private_docs = xyes])
276 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
279 dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
282 LDFLAGS="$LDFLAGS -Wl,--no-undefined"
286 dnl ******************************
288 dnl ******************************
289 AC_MSG_CHECKING([for Win32])
293 NO_UNDEFINED='-no-undefined'
294 SOCKET_LIBS='-lws2_32 -ldnsapi'
296 LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
297 AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes])
298 AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
305 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
312 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
315 AC_MSG_RESULT([$os_win32])
316 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
317 AC_SUBST(NO_UNDEFINED)
318 AC_SUBST(SOCKET_LIBS)
319 AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
321 dnl **************************************
322 dnl Check for posix compatible sys/wait.h
323 dnl **************************************
326 dnl ************************************
327 dnl Check for posix compatible alloca()
328 dnl ************************************
331 dnl ******************************
332 dnl Checks for functions
333 dnl ******************************
334 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
336 dnl ***********************************
337 dnl Check for base dependencies early.
338 dnl ***********************************
339 PKG_CHECK_MODULES(GNOME_PLATFORM,
340 [gio-2.0 >= glib_minimum_version
341 gmodule-2.0 >= glib_minimum_version
342 gtk+-3.0 >= gtk_minimum_version
343 libxml-2.0 >= libxml_minimum_version
344 libsoup-2.4 >= libsoup_minimum_version
345 libgdata >= libgdata_minimum_version])
347 if test x$os_win32 = xno; then
348 PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
351 dnl *******************************
352 dnl Check for GNOME Online Accounts
353 dnl *******************************
355 [AS_HELP_STRING([--enable-goa],
356 [enable GNOME Online Accounts support (default=yes)])],
357 [enable_goa=$enableval], [enable_goa=yes])
358 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
359 AC_MSG_RESULT([$enable_goa])
360 if test "x$enable_goa" = xyes; then
361 PKG_CHECK_MODULES([GOA], [goa-1.0 >= goa_minimum_version],,
362 [AC_MSG_ERROR([goa-1.0 not found (or version < goa_minimum_version),
363 If you want to disable GNOME Online Accounts support,
364 please append --disable-goa to configure.])])
366 PKG_CHECK_MODULES([OAUTH], [oauth >= oauth_minimum_version],,
367 [AC_MSG_ERROR([oauth not found (or version < oauth_minimum_version),
368 If you want to disable GNOME Online Accounts support,
369 please append --disable-goa to configure.])])
371 if `$PKG_CONFIG --atleast-version=0.9.1 libgdata`; then
372 AC_DEFINE(HAVE_GOA,1,[Have goa-1.0 and libgdata >= 0.9.1])
375 libgdata >= 0.9.1 is required for GNOME Online Accounts support.
376 If you want to disable GNOME Online Accounts support, please
377 append --disable-goa to configure.])
380 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
382 dnl GoaPasswordBased was introduced in version 3.5.
383 if `$PKG_CONFIG --atleast-version=3.5 goa-1.0`; then
384 AC_DEFINE(HAVE_GOA_PASSWORD_BASED,1,[Have GoaPasswordBased in goa-1.0])
387 dnl ***********************************
388 dnl Check for GNOME Keyring.
389 dnl ***********************************
390 if test x$os_win32 = xno; then
391 PKG_CHECK_MODULES(GNOME_KEYRING,
392 [gnome-keyring-1 >= gnome_keyring_minimum_version])
394 AC_SUBST(GNOME_KEYRING_CFLAGS)
395 AC_SUBST(GNOME_KEYRING_LIBS)
397 dnl **********************************************************
398 dnl gcr-base is needed for secure password exchange over D-Bus
399 dnl **********************************************************
400 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
401 AC_SUBST(GCR_BASE_CFLAGS)
402 AC_SUBST(GCR_BASE_LIBS)
404 LIBICAL_REQUIRED=libical_minimum_version
405 AC_SUBST(LIBICAL_REQUIRED)
407 dnl ******************************
409 dnl ******************************
410 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
412 AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
413 [AC_MSG_ERROR([No regex library found])])])
416 dnl ******************************
418 dnl ******************************
420 AS_HELP_STRING([--with-libdb=PREFIX],
421 [Prefix where libdb is installed]),
422 [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
424 DB_CFLAGS="-I$libdb_prefix/include"
425 DB_LIBS="-L$libdb_prefix/lib -ldb"
427 AC_MSG_CHECKING([Berkeley DB])
428 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
429 save_libs=$LIBS; LIBS="$DB_LIBS"
430 AC_LINK_IFELSE([AC_LANG_PROGRAM(
432 [[db_create(NULL, NULL, 0)]])],
433 [AC_MSG_RESULT([yes])],
434 [AC_MSG_ERROR([Cannot find libdb])])
440 dnl ******************************
442 dnl ******************************
446 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
447 AC_LINK_IFELSE([AC_LANG_PROGRAM(
454 cd = iconv_open ("UTF-8", "ISO-8859-1");
456 )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
458 if test "x$ac_cv_libiconv" = "xyes"; then
460 if test "x$os_win32" = "xyes"; then
461 dnl Don't pointlessly auto-export the global symbols
462 dnl from a potentially static libiconv.a
463 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
468 AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
471 if test "x$have_iconv" = "xyes"; then
472 if test "x$ac_cv_libiconv" = "xno"; then
473 AC_CHECK_FUNCS(gnu_get_libc_version)
475 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
476 AC_RUN_IFELSE([AC_LANG_SOURCE([[
480 #ifdef HAVE_GNU_GET_LIBC_VERSION
481 #include <gnu/libc-version.h>
484 char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
485 char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
486 char *transbuf = malloc (10), *trans = transbuf;
488 size_t jp_len = strlen (jp), utf8_len = 10;
489 size_t utf8_real_len = strlen (utf8);
491 #ifdef HAVE_GNU_GET_LIBC_VERSION
492 /* glibc 2.1.2's iconv is broken in hard to test ways. */
493 if (!strcmp (gnu_get_libc_version (), "2.1.2"))
497 cd = iconv_open ("UTF-8", "ISO-2022-JP");
498 if (cd == (iconv_t) -1)
500 if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
502 if (memcmp (utf8, transbuf, utf8_real_len) != 0)
506 ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
509 if test "x$have_iconv" = "xno"; then
510 AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
514 CFLAGS="$CFLAGS -I$srcdir"
516 AC_MSG_CHECKING([preferred charset name formats for system iconv])
517 AC_RUN_IFELSE([AC_LANG_SOURCE([[
519 #include "iconv-detect.c"
521 [AC_MSG_RESULT([found])],
522 [AC_MSG_RESULT([not found])
524 *** The iconv-detect program was unable to determine the
525 *** preferred charset name formats recognized by your
526 *** iconv library. It is suggested that you install a
527 *** working iconv library such as the one found at
528 *** ftp://ftp.gnu.org/pub/gnu/libiconv
530 [if test "x$os_win32" = xyes; then
531 AC_MSG_RESULT([using known win32 result])
532 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
533 echo >>iconv-detect.h
534 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
535 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
536 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
538 AC_MSG_RESULT([unknown])
540 *** We can't determine the preferred charset name formats
541 *** recognized by your iconv library. You are
542 *** cross-compiling and supposed to know what you are doing.
543 *** Please construct the iconv-detect.h file manually.
548 CFLAGS="$save_CFLAGS"
551 AC_ARG_ENABLE([backtraces],
552 [AS_HELP_STRING([--enable-backtraces],
553 [enable backtraces for camel_pointer_tracker (default=no)])],
554 [enable_backtraces=$enableval], [enable_backtraces=no])
556 if test "x$enable_backtraces" = xyes; then
557 dnl ****************************
558 dnl Check for backtrace_symbols function and dwfl from elfutils
559 dnl ****************************
560 AC_MSG_CHECKING([libc backtrace_symbols function])
561 AC_LINK_IFELSE([AC_LANG_PROGRAM(
562 [[#include <execinfo.h>]],
563 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
564 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
565 AC_MSG_RESULT([$ac_cv_have_bsf])
567 if test "x$ac_cv_have_bsf" = xyes; then
570 AC_MSG_CHECKING([elfutils/libdwfl])
571 AC_LINK_IFELSE([AC_LANG_PROGRAM(
572 [[#include <elfutils/libdwfl.h>]],
576 Dwarf_Addr module_low_addr;
579 dwfl_standard_find_debuginfo;
580 dwfl_linux_proc_find_elf;
582 dwfl_linux_proc_report (NULL, 1);
583 dwfl_report_end (NULL, NULL, NULL);
585 dwfl_module_addrname (NULL, NULL);
586 dwfl_module_getsrc (NULL, NULL);
587 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
588 DWARF_CB_ABORT; DWARF_CB_OK;
589 dwfl_getmodules (NULL, NULL, NULL, 0);
591 [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
592 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
596 if test "x$ac_cv_have_elfdwfl" = xyes; then
598 AC_SUBST(LIBDWFL_LIBS)
603 dnl **********************************
604 dnl Check for nl_langinfo and CODESET
605 dnl **********************************
606 AC_MSG_CHECKING([for nl_langinfo (CODESET)])
607 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
608 [[#include <langinfo.h>]],
609 [[char *codeset = nl_langinfo (CODESET);]]
610 )],[ac_cv_langinfo_codeset=yes],[ac_cv_langinfo_codeset=no])
611 if test "x$ac_cv_langinfo_codeset" = "xyes"; then
612 AC_DEFINE(HAVE_CODESET, 1, [Have nl_langinfo (CODESET)])
614 AC_MSG_RESULT([$ac_cv_langinfo_codeset])
616 dnl *******************************************************
617 dnl Check to see if strftime supports the use of %l and %k
618 dnl *******************************************************
619 AC_MSG_CHECKING([for %l and %k support in strftime])
620 AC_RUN_IFELSE([AC_LANG_SOURCE(
621 [[ #include <stdlib.h>
624 int main(int argc, char **argv) {
630 timeinfo=localtime(&rawtime);
632 strftime(buf, 10, "%lx%k", timeinfo);
634 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
641 )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
642 AC_MSG_RESULT([$ac_cv_lkstrftime])
644 dnl ********************************************************************************
645 dnl security extension support (SSL and S/MIME)
647 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
648 dnl needed by Camel (SSL and S/MIME).
650 dnl The Evolution security extensions are only built if these libraries are found
651 dnl ********************************************************************************
654 AC_ARG_ENABLE([smime],
655 AS_HELP_STRING([--enable-smime],
656 [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
657 [enable_smime="$enableval"],[enable_smime="yes"])
659 AC_ARG_WITH([nspr-includes],
660 AS_HELP_STRING([--with-nspr-includes],
661 [Prefix of Mozilla nspr4 includes.]),
662 [with_nspr_includes="$withval"])
664 AC_ARG_WITH([nspr-libs],
665 AS_HELP_STRING([--with-nspr-libs],
666 [Prefix of Mozilla nspr4 libs.]),
667 [with_nspr_libs="$withval"])
669 AC_ARG_WITH([nss-includes],
670 AS_HELP_STRING([--with-nss-includes],
671 [Prefix of Mozilla nss3 includes.]),
672 [with_nss_includes="$withval"])
674 AC_ARG_WITH([nss-libs],
675 AS_HELP_STRING([--with-nss-libs],
676 [Prefix of Mozilla nss3 libs.]),
677 [with_nss_libs="$withval"])
679 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
685 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
686 if test "x${check_manually}" = "xno"; then
687 AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
688 mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
689 for pc in $mozilla_nspr_pcs; do
690 if $PKG_CONFIG --exists $pc; then
697 AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
698 mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
699 for pc in $mozilla_nss_pcs; do
700 if $PKG_CONFIG --exists $pc; then
707 if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
708 if test "x$enable_smime" = "xyes"; then
709 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
712 MANUAL_NSPR_CFLAGS=""
723 if test "x${check_manually}" = "xyes"; then
724 dnl ******************
726 dnl ******************
727 AC_MSG_CHECKING([for Mozilla nspr4 includes])
728 CPPFLAGS_save="$CPPFLAGS"
729 if test -n "$with_nspr_includes"; then
730 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
733 AC_CHECK_HEADERS(nspr.h prio.h,
734 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
735 CPPFLAGS="$CPPFLAGS_save"
737 if test "x${moz_nspr_includes}" = "xyes"; then
738 MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
740 AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
742 AC_MSG_RESULT([$moz_nspr_includes])
744 AC_MSG_CHECKING([for Mozilla nspr libraries])
745 CFLAGS_save="$CFLAGS"
746 LDFLAGS_save="$LDFLAGS"
748 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
750 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
752 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
753 if test -n "${with_nspr_libs}"; then
754 LDFLAGS="$LDFLAGS -L$with_nspr_libs"
759 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
760 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
762 CFLAGS="$CFLAGS_save"
763 LDFLAGS="$LDFLAGS_save"
766 if test "x${moz_nspr_libs}" = "xyes"; then
767 if test -n "${with_nspr_libs}"; then
768 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
770 MANUAL_NSPR_LIBS="$nsprlibs"
773 AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
775 AC_MSG_RESULT([$moz_nspr_libs])
777 dnl *****************
779 dnl *****************
780 AC_MSG_CHECKING([for Mozilla nss3 includes])
781 CPPFLAGS_save="$CPPFLAGS"
782 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
784 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
785 [moz_nss_includes="yes"],[moz_nss_includes="no"])
786 CPPFLAGS="$CPPFLAGS_save"
788 if test "x${moz_nss_includes}" = "xyes"; then
789 MANUAL_NSS_CFLAGS="-I$with_nss_includes"
791 AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
793 AC_MSG_RESULT($moz_nss_includes)
795 AC_MSG_CHECKING([for Mozilla nss libraries])
796 LDFLAGS_save="$LDFLAGS"
798 nsslibs="-lssl3 -lsmime3 -lnss3"
800 LIBS="$nsslibs $nsprlibs"
801 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
802 if test -n "${with_nss_libs}"; then
803 LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
805 LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
808 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
809 [moz_nss_libs="yes"],[moz_nss_libs="no"])
810 LDFLAGS="$LDFLAGS_save"
813 if test "x${moz_nss_libs}" = "xyes"; then
814 if test "x${enable_smime}" = "xyes"; then
815 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
818 if test -n "${with_nss_libs}"; then
819 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
821 MANUAL_NSS_LIBS="$nsslibs"
824 AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
826 AC_MSG_RESULT([$moz_nss_libs])
828 MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
829 MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
832 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
834 dnl For pkgconfig files.
835 AC_SUBST(mozilla_nss)
836 AC_SUBST(mozilla_nspr)
838 AC_SUBST(MANUAL_NSPR_CFLAGS)
839 AC_SUBST(MANUAL_NSPR_LIBS)
840 AC_SUBST(MANUAL_NSS_CFLAGS)
841 AC_SUBST(MANUAL_NSS_LIBS)
843 dnl ******************************
844 dnl system mail stuff
845 dnl ******************************
846 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
847 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
849 AC_MSG_CHECKING([system mail directory])
850 if test -d /var/mail -a '!' -h /var/mail ; then
851 system_mail_dir="/var/mail"
853 system_mail_dir="/var/spool/mail"
855 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
857 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
859 CAMEL_LOCK_HELPER_USER=""
860 CAMEL_LOCK_HELPER_GROUP=""
861 system_mail_perm="world writable"
864 CAMEL_LOCK_HELPER_USER=""
865 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
866 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
869 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
870 CAMEL_LOCK_HELPER_GROUP=""
871 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
874 CAMEL_LOCK_HELPER_USER=""
875 CAMEL_LOCK_HELPER_GROUP=""
876 system_mail_perm="???"
880 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
881 AC_SUBST(CAMEL_LOCK_HELPER_USER)
882 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
884 dnl ******************************
886 dnl ******************************
887 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
888 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
889 [[ #include <time.h> ]],
894 )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
895 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
896 AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
898 AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
899 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
900 [[ #include <time.h> ]],
902 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
903 if test "x$ac_cv_var_timezone" = "xyes"; then
904 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
905 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
906 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
907 [[ #include <time.h> ]],
909 )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
910 if test "x$ac_cv_var_altzone" = "xyes"; then
911 AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
914 AC_MSG_ERROR([unable to find a way to determine timezone])
918 dnl ******************************
919 dnl ctime_r prototype
920 dnl ******************************
921 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
923 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
924 [[ #include <time.h> ]],
927 ctime_r (&date, buf, 100); ]]
928 )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
931 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
932 AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
935 dnl ******************************
936 dnl gethostbyname_r prototype
937 dnl ******************************
938 AC_CHECK_FUNCS(gethostbyname_r,[
939 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
941 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
943 #include "confdefs.h"
944 #include <sys/types.h>
945 #include <sys/socket.h>
946 #include <netinet/in.h>
948 #define BUFSIZE (sizeof(struct hostent)+10)
952 char buffer[BUFSIZE];
955 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
957 )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
960 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
961 AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
964 dnl ******************************
965 dnl gethostbyaddr_r prototype
966 dnl ******************************
967 AC_CHECK_FUNCS(gethostbyaddr_r,[
968 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_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)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
985 )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
988 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
989 AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
992 dnl ******************************
993 dnl stat(v)fs location/type
994 dnl ******************************
995 AC_CHECK_HEADER([sys/statvfs.h],
996 [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
997 [[ #if HAVE_SYS_STATVFS_H
998 #include <sys/statvfs.h>
1001 AC_CHECK_FUNCS(statvfs)
1003 AC_CHECK_HEADER([sys/param.h],
1004 [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
1005 [[ #if HAVE_SYS_PARAM_H
1006 #include <sys/param.h>
1009 AC_CHECK_HEADER([sys/mount.h],
1010 [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1011 [[ #if HAVE_SYS_MOUNT_H
1012 #include <sys/mount.h>
1015 AC_CHECK_FUNCS(statfs)
1017 dnl ******************************
1018 dnl IPv6 support and getaddrinfo calls
1019 dnl ******************************
1020 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1022 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1023 [[ #include "confdefs.h"
1024 #include <sys/types.h>
1025 #include <sys/socket.h>
1026 #include <netinet/in.h>
1030 [[ #ifndef NI_MAXHOST
1031 #define NI_MAXHOST 1025
1035 #define NI_MAXSERV 32
1038 struct addrinfo hints, *res;
1039 struct sockaddr_in6 sin6;
1041 char host[NI_MAXHOST];
1042 char serv[NI_MAXSERV];
1044 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1046 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1047 )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1050 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1051 AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1052 if test "x$enable_ipv6" = "xyes" ; then
1053 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1057 AC_ARG_ENABLE([ipv6],
1058 AS_HELP_STRING([--enable-ipv6=no/yes],
1059 [Enable support for resolving IPv6 addresses.]),
1060 [enable_ipv6=$enableval],[enable_ipv6=yes])
1061 if test "x$enable_ipv6" = "xyes"; then
1063 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1064 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1065 [[ #include "confdefs.h"
1066 #include <sys/types.h>
1067 #include <sys/socket.h>
1068 #include <netinet/in.h>
1071 [[ struct addrinfo hints;
1072 hints.ai_flags = AI_ADDRCONFIG;
1074 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1080 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1082 AC_CHECK_HEADER([wspiapi.h],
1083 [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1085 dnl **********************************
1086 dnl Weather calendar backend support
1087 dnl **********************************
1088 AC_MSG_CHECKING([if we should build the weather calendar backend])
1089 AC_ARG_ENABLE([weather],
1090 [AS_HELP_STRING([--enable-weather],
1091 [Build the weather calendar backend (default=yes)])],
1092 [use_gweather=$enableval], [use_gweather=yes])
1094 AC_MSG_RESULT([$use_gweather])
1095 if test "x$use_gweather" = "xyes"; then
1096 PKG_CHECK_MODULES([LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1097 [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.])])
1099 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1101 dnl ******************************
1103 dnl ******************************
1104 AC_ARG_ENABLE([nntp],
1105 AS_HELP_STRING([--enable-nntp],
1106 [Build Usenet news (NNTP) backend]),
1107 [enable_nntp=$enableval],[enable_nntp=yes])
1108 if test "x$enable_nntp" = "xyes"; then
1109 AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
1114 AM_CONDITIONAL(ENABLE_NNTP, [test x$enable_nntp = xyes])
1116 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1118 dnl ******************************
1120 dnl ******************************
1121 AC_ARG_ENABLE([dot-locking],
1122 AS_HELP_STRING([--enable-dot-locking=yes/no],
1123 [Enable support for locking mail files with dot locking]),
1124 [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1126 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1127 AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1133 AC_ARG_ENABLE([file-locking],
1134 AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1135 [Enable support for locking mail files with file locking]),
1136 [],[enable_file_locking=fcntl])
1138 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1139 AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1142 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1143 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1150 dnl ******************************
1151 dnl sendmail operation
1152 dnl ******************************
1153 AC_MSG_CHECKING([for SunOS broken spool format])
1154 if test "x$host_os" = "xsunos" ; then
1155 with_broken_spool="yes"
1158 AC_ARG_WITH([broken-spool],
1159 AS_HELP_STRING([--with-broken-spool=yes/no],
1160 [Using SunOS/Solaris sendmail which has a broken spool format]),
1161 [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1163 if test "x$with_broken_spool" = "xyes"; then
1164 AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1167 AC_MSG_RESULT([$with_broken_spool])
1169 dnl ******************************
1170 dnl DBus call timeout
1171 dnl ******************************
1173 AC_ARG_WITH([dbus-call-timeout],
1174 AS_HELP_STRING([--with-dbus-call-timeout=miliseconds],
1175 [Default timeout used when invoking g_dbus_proxy_call() family functions in EBook and ECal library (default=-1)]),
1176 [ac_cv_dbus_call_timeout=$withval],[ac_cv_dbus_call_timeout=-1])
1178 DEFAULT_EDS_DBUS_TIMEOUT=$ac_cv_dbus_call_timeout
1179 AC_SUBST(DEFAULT_EDS_DBUS_TIMEOUT)
1184 EVO_KRB5_SUPPORT(no)
1186 dnl ******************************
1188 dnl ******************************
1191 dnl ******************************
1193 dnl ******************************
1194 if test "x$os_win32" != "xyes"; then
1196 case $with_openldap in
1201 case $with_static_ldap in
1203 msg_ldap="$with_openldap (static)"
1206 msg_ldap="$with_openldap (dynamic)"
1211 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1212 if test "x$with_openldap" = "xno" ; then
1213 EVO_SUNLDAP_CHECK(no)
1214 case $with_sunldap in
1219 case $with_static_sunldap in
1221 msg_ldap="$with_sunldap (static)"
1224 msg_ldap="$with_sunldap (dynamic)"
1231 AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1233 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1235 dnl Win32 LDAP support
1236 LDAP_CFLAGS="-DLDAP_DEPRECATED"
1237 LDAP_LIBS="-lwldap32"
1238 AC_SUBST(LDAP_CFLAGS)
1240 AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1241 AM_CONDITIONAL(ENABLE_LDAP, true)
1242 AM_CONDITIONAL(SUNLDAP, false)
1246 dnl ******************************
1247 dnl GObject marshalling
1248 dnl ******************************
1251 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1252 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1253 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1255 dnl ******************************
1256 dnl Code coverage flags
1257 dnl ******************************
1259 AC_ARG_ENABLE([code-coverage],
1260 AS_HELP_STRING([--enable-code-coverage], [compile with code coverage code]),
1261 [enable_code_coverage=$enableval], [enable_code_coverage=no])
1263 if test "x$GCC" = "xyes"; then
1264 if test "x$enable_code_coverage" = "xyes"; then
1265 CODE_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage -O0 -ggdb"
1266 CODE_COVERAGE_LDFLAGS="-lgcov"
1270 AC_SUBST([CODE_COVERAGE_CFLAGS])
1271 AC_SUBST([CODE_COVERAGE_LDFLAGS])
1273 dnl ******************************
1274 dnl Utility macro to set compiler flags for a specific lib.
1275 dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
1276 dnl ******************************
1277 AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
1278 PKG_CHECK_MODULES([$1], [$2])
1279 $1_CFLAGS="[$]$1_CFLAGS $3 "
1280 $1_LIBS="[$]$1_LIBS $4 "
1283 dnl ******************************
1285 dnl ******************************
1286 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1288 dnl ******************************
1289 dnl libedataserver flags
1290 dnl ******************************
1291 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 gnome-keyring-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1293 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1294 AC_SUBST(E_DATA_SERVER_CFLAGS)
1295 AC_SUBST(E_DATA_SERVER_LIBS)
1297 dnl ******************************
1298 dnl libedataserverui
1299 dnl ******************************
1300 E_DATA_SERVER_UI_DEPS="gtk+-3.0 libxml-2.0 libsoup-2.4"
1302 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER_UI, $E_DATA_SERVER_UI_DEPS, , )
1303 AC_SUBST(E_DATA_SERVER_UI_CFLAGS)
1304 AC_SUBST(E_DATA_SERVER_UI_LIBS)
1306 if test "x$enable_maintainer_mode" = "xyes" ; then
1307 FACTORY_GTK_CFLAGS=$E_DATA_SERVER_UI_CFLAGS
1308 FACTORY_GTK_LIBS=$E_DATA_SERVER_UI_LIBS
1309 AC_SUBST(FACTORY_GTK_CFLAGS)
1310 AC_SUBST(FACTORY_GTK_LIBS)
1313 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 gnome-keyring-1 libsoup-2.4 libxml-2.0"
1315 dnl ******************************
1316 dnl libebackend flags
1317 dnl ******************************
1318 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1319 AC_SUBST(E_BACKEND_CFLAGS)
1320 AC_SUBST(E_BACKEND_LIBS)
1322 dnl ******************************
1323 dnl evolution-addressbook flags
1324 dnl ******************************
1325 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 gnome-keyring-1"
1327 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1328 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1329 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1331 dnl ******************************
1332 dnl evolution-calendar flags
1333 dnl ******************************
1334 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 gnome-keyring-1"
1337 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1338 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1339 dnl to differentiate between <libical/ical.h> and <ical.h>
1340 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1341 dnl libical is fixed, we have to work-around the buggy CFlags.
1343 LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1344 LIBICAL_EXTRA_LIBS=""
1345 AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1346 AC_SUBST(LIBICAL_EXTRA_LIBS)
1348 EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1349 AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1350 AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1352 dnl ****************************
1353 dnl Check for ical_set_unknown_token_handling_setting function
1354 dnl ****************************
1355 AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1356 save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1357 save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1358 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1359 [[#include <libical/ical.h>]],
1360 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1361 [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])
1364 AC_MSG_RESULT([$ac_cv_have_iuth])
1366 dnl ******************************
1368 dnl ******************************
1369 LIBGDATA_REQUIRED=libgdata_minimum_version
1370 AC_SUBST(LIBGDATA_REQUIRED)
1372 EVO_SET_COMPILE_FLAGS(GDATA, libgdata)
1373 AC_SUBST(GDATA_CFLAGS)
1374 AC_SUBST(GDATA_LIBS)
1376 dnl ******************************
1378 dnl ******************************
1379 LIBSOUP_REQUIRED=libsoup_minimum_version
1380 AC_SUBST(LIBSOUP_REQUIRED)
1382 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1383 AC_SUBST(SOUP_CFLAGS)
1386 dnl ******************************
1388 dnl ******************************
1389 SQLITE_REQUIRED=sqlite_minimum_version
1390 AC_SUBST(SQLITE_REQUIRED)
1393 dnl deflateInit is a #define, use deflateEnd instead
1394 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1396 if test "x$zlib_found" = "xfalse"; then
1397 AC_MSG_ERROR([*** zlib is required])
1400 dnl ******************************
1401 dnl Checks for large file support
1402 dnl ******************************
1403 AC_ARG_ENABLE([largefile],
1404 AS_HELP_STRING([--enable-largefile],
1405 [enable support for large files [[default=no]]]),
1406 [],[enable_largefile="yes"])
1408 if test "x$enable_largefile" != "xno"; then
1410 AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1411 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1412 [[ #include <sys/types.h>
1413 #include <sys/stat.h>
1416 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]]
1417 )],[ac_cv_largefile64_source="no"],
1418 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1419 [[ #define _LARGEFILE64_SOURCE
1420 #include <sys/types.h>
1421 #include <sys/stat.h>
1424 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1425 [ac_cv_largefile64_source="unknown"])])
1428 enable_largefile="no"
1430 if test "x$ac_cv_largefile64_source" = "xyes"; then
1431 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1432 enable_largefile="yes"
1433 elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1434 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1437 if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1438 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1439 enable_largefile="yes"
1442 if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1443 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1444 enable_largefile="yes"
1447 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1451 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1453 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)
1454 AC_SUBST(CAMEL_CFLAGS)
1455 AC_SUBST(CAMEL_LIBS)
1457 dnl ******************************
1458 dnl Special directories
1459 dnl ******************************
1461 dnl If you add something here, consider whether or not you also
1462 dnl need to add it to one or more .pc.in files (for Connector,
1465 privdatadir='${datadir}'/evolution-data-server-$BASE_VERSION
1466 AC_SUBST(privdatadir)
1468 privincludedir='${includedir}'/evolution-data-server-$BASE_VERSION
1469 AC_SUBST(privincludedir)
1471 privlibdir='${libdir}'/evolution-data-server-$BASE_VERSION
1472 AC_SUBST(privlibdir)
1474 imagesdir='${datadir}'/pixmaps/evolution-data-server
1477 moduledir='${libdir}'/evolution-data-server/registry-modules
1480 ebook_backenddir='${libdir}'/evolution-data-server/addressbook-backends
1481 AC_SUBST(ebook_backenddir)
1483 ecal_backenddir='${libdir}'/evolution-data-server/calendar-backends
1484 AC_SUBST(ecal_backenddir)
1486 ro_sourcesdir='${datadir}'/evolution-data-server-$BASE_VERSION/ro-sources
1487 AC_SUBST(ro_sourcesdir)
1489 rw_sourcesdir='${datadir}'/evolution-data-server-$BASE_VERSION/rw-sources
1490 AC_SUBST(rw_sourcesdir)
1492 if test "x$use_gweather" = "xyes"; then
1493 weatherdatadir="$privdatadir/weather"
1494 AC_SUBST(weatherdatadir)
1497 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1498 camel_providerdir='${libdir}'/evolution-data-server/camel-providers
1499 AC_SUBST(camel_providerdir)
1501 dnl *******************
1502 dnl D-BUS service stuff
1503 dnl *******************
1504 m4_pattern_allow([AM_V_GEN])
1505 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)|" $< > $@'
1506 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1508 dnl ******************************
1510 dnl ******************************
1514 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1515 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1516 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1518 dnl ******************************
1520 dnl ******************************
1521 AC_PATH_PROG(GPERF, gperf, [no])
1522 if test "x$GPERF" = "xno"; then
1523 AC_MSG_ERROR([You need gperf to build evolution-data-server])
1526 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1528 dnl ******************************
1530 dnl ******************************
1531 AC_ARG_ENABLE(vala-bindings,
1532 AC_HELP_STRING([--enable-vala-bindings],
1533 [build the EXPERIMENTAL Vala bindings]),
1534 enable_vala_bindings=$enableval,
1535 enable_vala_bindings=no)
1537 if test x$enable_vala_bindings = xyes; then
1538 if test "x$INTROSPECTION_SCANNER" = x; then
1539 AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1542 AM_PROG_VALAC([0.13.0])
1545 AC_PATH_PROG(VALAC, valac, valac)
1549 AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1551 if test "x$VAPIGEN" = "xfalse"; then
1552 AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1558 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1561 dnl ******************************
1563 dnl ******************************
1565 export privincludedir
1570 evolution-data-server-zip
1571 evolution-data-server.pc
1572 addressbook/Makefile
1573 addressbook/libebook/Makefile
1574 addressbook/libebook/libebook.pc
1575 addressbook/libedata-book/Makefile
1576 addressbook/libedata-book/libedata-book.pc
1577 addressbook/libegdbus/Makefile
1578 addressbook/backends/Makefile
1579 addressbook/backends/file/Makefile
1580 addressbook/backends/vcf/Makefile
1581 addressbook/backends/ldap/Makefile
1582 addressbook/backends/google/Makefile
1583 addressbook/backends/google/tests/Makefile
1584 addressbook/backends/webdav/Makefile
1587 calendar/libecal/Makefile
1588 calendar/libecal/libecal.pc
1589 calendar/libedata-cal/Makefile
1590 calendar/libedata-cal/libedata-cal.pc
1591 calendar/libegdbus/Makefile
1592 calendar/backends/Makefile
1593 calendar/backends/caldav/Makefile
1594 calendar/backends/file/Makefile
1595 calendar/backends/http/Makefile
1596 calendar/backends/contacts/Makefile
1597 calendar/backends/weather/Makefile
1599 camel/providers/Makefile
1600 camel/providers/imap/Makefile
1601 camel/providers/imapx/Makefile
1602 camel/providers/local/Makefile
1603 camel/providers/nntp/Makefile
1604 camel/providers/pop3/Makefile
1605 camel/providers/sendmail/Makefile
1606 camel/providers/smtp/Makefile
1607 camel/tests/Makefile
1608 camel/tests/folder/Makefile
1609 camel/tests/lib/Makefile
1610 camel/tests/message/Makefile
1611 camel/tests/mime-filter/Makefile
1612 camel/tests/misc/Makefile
1613 camel/tests/smime/Makefile
1616 data/sources/Makefile
1617 libebackend/Makefile
1618 libebackend/libebackend.pc
1619 libedataserver/Makefile
1620 libedataserver/eds-version.h
1621 libedataserver/libedataserver.pc
1622 libedataserverui/Makefile
1623 libedataserverui/libedataserverui.pc
1625 modules/cache-reaper/Makefile
1626 modules/google-backend/Makefile
1627 modules/online-accounts/Makefile
1628 modules/yahoo-backend/Makefile
1631 services/evolution-addressbook-factory/Makefile
1632 services/evolution-calendar-factory/Makefile
1633 services/evolution-source-registry/Makefile
1635 tests/libebook/Makefile
1636 tests/libebook/client/Makefile
1637 tests/libebook/vcard/Makefile
1638 tests/libecal/Makefile
1639 tests/libecal/client/Makefile
1640 tests/libedata-cal/Makefile
1641 tests/libedataserver/Makefile
1642 tests/libedataserverui/Makefile
1644 docs/reference/Makefile
1645 docs/reference/addressbook/Makefile
1646 docs/reference/addressbook/libebook/Makefile
1647 docs/reference/addressbook/libedata-book/Makefile
1648 docs/reference/calendar/Makefile
1649 docs/reference/calendar/libecal/Makefile
1650 docs/reference/calendar/libedata-cal/Makefile
1651 docs/reference/camel/Makefile
1652 docs/reference/libedataserver/Makefile
1653 docs/reference/libedataserverui/Makefile
1654 docs/reference/libebackend/Makefile
1655 docs/reference/private/Makefile
1662 evolution-data-server has been configured as follows:
1663 Weather calendar: $use_gweather
1664 Mail Directory: $system_mail_dir, $system_mail_perm
1665 LDAP support: $msg_ldap
1666 NNTP support: $msg_nntp
1667 Kerberos 5: $msg_krb5
1668 SMIME support: $msg_smime
1669 IPv6 support: $msg_ipv6
1670 Dot Locking: $msg_dot
1671 File Locking: $msg_file
1672 Large files: $enable_largefile
1673 Gtk Doc: $enable_gtk_doc
1674 Introspection: $enable_introspection
1675 Vala bindings: $enable_vala_bindings
1676 GNOME Online Accounts $enable_goa
1677 Code coverage (gcov): $enable_code_coverage