2 dnl Evolution-Data-Server version
3 m4_define([eds_major_version], [3])
4 m4_define([eds_minor_version], [7])
5 m4_define([eds_micro_version], [5])
7 m4_define([eds_version],
8 [eds_major_version.eds_minor_version.eds_micro_version])
10 dnl Base Version: This is for API/version tracking for things like
11 dnl Bonobo server files. This should always be the major/minor of
12 dnl the stable version or stable version to be. Note, this is set
13 dnl the way it is so that GETTEXT_PACKAGE will be parsed correctly.
15 m4_define([base_version], [3.8])
17 dnl This number is meaningless, but we're now stuck with it in our
18 dnl library names for backward compatibility.
19 m4_define([api_version], [1.2])
21 dnl Autoconf / Automake Initialization
23 AC_INIT([evolution-data-server],[eds_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution-Data-Server])
24 AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar dist-xz no-dist-gzip -Wall -Wno-portability foreign])
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_CONFIG_SRCDIR(README)
27 AC_CONFIG_HEADERS(config.h)
29 dnl This is for the autoconf tests only - it set's the language we use
32 dnl Automake 1.11 - Silent Build Rules
33 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
35 dnl Required Package Versions
37 dnl Keep these two definitions in agreement.
38 m4_define([glib_minimum_version], [2.34])
39 m4_define([glib_encoded_version], [GLIB_VERSION_2_34])
41 dnl Keep these two definitions in agreement.
42 m4_define([gdk_minimum_version], [3.2])
43 m4_define([gdk_encoded_version], [GDK_VERSION_3_2])
45 dnl Keep these two definitions in agreement.
46 m4_define([soup_minimum_version], [2.40.0])
47 m4_define([soup_encoded_version], [SOUP_VERSION_2_40])
49 m4_define([gcr_minimum_version], [3.4])
50 m4_define([libsecret_minimum_version], [0.5])
51 m4_define([libxml_minimum_version], [2.0.0]) dnl XXX Just a Guess
52 m4_define([libgdata_minimum_version], [0.10])
53 m4_define([sqlite_minimum_version], [3.5])
54 m4_define([libical_minimum_version], [0.43])
57 m4_define([goa_minimum_version], [3.2])
58 m4_define([gweather_minimum_version], [3.5.0])
60 AC_SUBST([BASE_VERSION],[base_version])
61 AC_SUBST([API_VERSION],[api_version])
62 AC_DEFINE_UNQUOTED(BASE_VERSION, ["$BASE_VERSION"], [Base version (Major.Minor)])
63 AC_DEFINE_UNQUOTED(API_VERSION, ["$API_VERSION"], [API version (Major.Minor)])
65 EDS_MAJOR_VERSION=eds_major_version
66 EDS_MINOR_VERSION=eds_minor_version
67 EDS_MICRO_VERSION=eds_micro_version
71 dnl ******************************
73 dnl ******************************
74 ADDRESS_BOOK_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.AddressBook4"
75 CALENDAR_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Calendar3"
76 SOURCES_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Sources1"
77 USER_PROMPTER_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.UserPrompter0"
80 ADDRESS_BOOK_DBUS_SERVICE_NAME,
81 ["$ADDRESS_BOOK_DBUS_SERVICE_NAME"],
82 [D-Bus service name for the address book factory])
85 CALENDAR_DBUS_SERVICE_NAME,
86 ["$CALENDAR_DBUS_SERVICE_NAME"],
87 [D-Bus service name for the calendar factory])
90 SOURCES_DBUS_SERVICE_NAME,
91 ["$SOURCES_DBUS_SERVICE_NAME"],
92 [D-Bus service name for the source registry])
95 USER_PROMPTER_DBUS_SERVICE_NAME,
96 ["$USER_PROMPTER_DBUS_SERVICE_NAME"],
97 [D-Bus service name for the user prompter])
99 AC_SUBST(ADDRESS_BOOK_DBUS_SERVICE_NAME)
100 AC_SUBST(CALENDAR_DBUS_SERVICE_NAME)
101 AC_SUBST(SOURCES_DBUS_SERVICE_NAME)
102 AC_SUBST(USER_PROMPTER_DBUS_SERVICE_NAME)
104 dnl ******************************
105 dnl Libtool versioning
106 dnl ******************************
107 LIBEDATASERVER_CURRENT=17
108 LIBEDATASERVER_REVISION=0
115 LIBEDATACAL_CURRENT=20
116 LIBEDATACAL_REVISION=0
119 LIBEDATABOOK_CURRENT=16
120 LIBEDATABOOK_REVISION=0
131 LIBEBACKEND_CURRENT=6
132 LIBEBACKEND_REVISION=0
135 AC_SUBST(EDS_MAJOR_VERSION)
136 AC_SUBST(EDS_MINOR_VERSION)
137 AC_SUBST(EDS_MICRO_VERSION)
138 AC_SUBST(LIBEDATASERVER_CURRENT)
139 AC_SUBST(LIBEDATASERVER_REVISION)
140 AC_SUBST(LIBEDATASERVER_AGE)
141 AC_SUBST(LIBECAL_CURRENT)
142 AC_SUBST(LIBECAL_REVISION)
143 AC_SUBST(LIBECAL_AGE)
144 AC_SUBST(LIBEDATACAL_CURRENT)
145 AC_SUBST(LIBEDATACAL_REVISION)
146 AC_SUBST(LIBEDATACAL_AGE)
147 AC_SUBST(LIBEBOOK_CURRENT)
148 AC_SUBST(LIBEBOOK_REVISION)
149 AC_SUBST(LIBEBOOK_AGE)
150 AC_SUBST(LIBEDATABOOK_CURRENT)
151 AC_SUBST(LIBEDATABOOK_REVISION)
152 AC_SUBST(LIBEDATABOOK_AGE)
153 AC_SUBST(LIBCAMEL_CURRENT)
154 AC_SUBST(LIBCAMEL_REVISION)
155 AC_SUBST(LIBCAMEL_AGE)
156 AC_SUBST(LIBEBACKEND_CURRENT)
157 AC_SUBST(LIBEBACKEND_REVISION)
158 AC_SUBST(LIBEBACKEND_AGE)
160 dnl **************************************
161 dnl Put the ACLOCAL flags in the Makefile
162 dnl **************************************
163 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
165 dnl ******************************
166 dnl Compiler Warning Flags
167 dnl ******************************
168 AS_COMPILER_FLAGS(WARNING_FLAGS,
170 -Wdeprecated-declarations
171 -Wno-missing-field-initializers
173 -Wno-unused-parameter
174 -Wdeclaration-after-statement
175 -Werror-implicit-function-declaration
176 -Wformat-security -Winit-self
177 -Wmissing-declarations -Wmissing-include-dirs
178 -Wmissing-noreturn -Wnested-externs -Wpointer-arith
179 -Wredundant-decls -Wundef -Wwrite-strings")
180 AC_SUBST(WARNING_FLAGS)
182 dnl Other useful compiler warnings for test builds only.
183 dnl These may produce warnings we have no control over,
184 dnl or false positives we don't always want to see.
186 dnl -Wformat-nonliteral
187 dnl -Wmissing-format-attribute
189 dnl -Wstrict-aliasing=2
191 AM_CPPFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
193 dnl *******************************
194 dnl Check for --enable-strict
195 dnl *******************************
196 AC_ARG_ENABLE([strict],
197 [AS_HELP_STRING([--enable-strict],
198 [enable strict building, like without deprecated symbols (default=auto); auto enables strict building only if .git subdirectory exists])],
199 [enable_strict=$enableval], [enable_strict=auto])
201 AC_MSG_CHECKING([if strict building is enabled])
202 if test "x$enable_strict" = xauto; then
203 dnl Be strict when compiling with .git subdirectory
204 if test -d .git ; then
210 AC_MSG_RESULT([$enable_strict])
212 if test "x$enable_strict" = xyes; then
213 AM_CPPFLAGS="$AM_CPPFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
216 dnl Warn about API usage that violates our minimum requirements.
217 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MAX_ALLOWED=glib_encoded_version"
218 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MAX_ALLOWED=gdk_encoded_version"
219 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MAX_ALLOWED=soup_encoded_version"
221 dnl These will suppress warnings about newly-deprecated symbols. Ideally
222 dnl these settings should match our minimum requirements and we will clean
223 dnl up any new deprecation warnings after bumping our minimum requirements.
224 dnl But if the warnings get to be overwhelming, use fixed versions instead.
225 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MIN_REQUIRED=glib_encoded_version"
226 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MIN_REQUIRED=gdk_encoded_version"
227 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MIN_REQUIRED=soup_encoded_version"
229 AC_SUBST(AM_CPPFLAGS)
231 dnl ******************************
232 dnl Initialize maintainer mode
233 dnl ******************************
234 AM_MAINTAINER_MODE([enable])
236 if test "x$enable_maintainer_mode" = "xyes" ; then
237 AC_DEFINE(ENABLE_MAINTAINER_MODE, 1, [Configured with enabled maintainer mode])
248 dnl For gen-western-table.py
251 dnl GCC 4.4 got more aggressive in its aliasing optimizations, changing
252 dnl behavior that -- according to the C99 standard -- is supposed to be
253 dnl undefined. We may still have aliasing abuses lying around that rely
254 dnl on GCC's previous "undefined" behavior, so disable strict-aliasing
255 dnl optimization until we can find and fix all the abuses.
256 dnl (AC_PROG_CC must run first to set the GCC variable.)
257 dnl XXX This really belongs in AM_CFLAGS.
258 if test "x${GCC}" = "xyes"; then
259 CFLAGS="$CFLAGS -fno-strict-aliasing"
262 dnl ******************************
264 dnl ******************************
265 IT_PROG_INTLTOOL([0.35.5])
267 GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
268 AC_SUBST(GETTEXT_PACKAGE)
269 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
271 localedir='$(prefix)/$(DATADIRNAME)/locale'
274 dnl ******************************
275 dnl libphonenumber support
276 dnl ******************************
278 dnl The EVO_PHONENUMBER_SUPPORT macro calls AC_PROG_CXX if libphonenumber
279 dnl support got requested. Therefore this macro must be expanded before
280 dnl the libtool macros. Feel free to move back to the other optional
281 dnl dependencies if you know how to fix the autoconf issue, or if you
282 dnl concluded that C++ actually is pretty awesome and should be a hard
284 EVO_PHONENUMBER_SUPPORT
286 dnl ******************************
287 dnl Initialize libtool
288 dnl ******************************
290 LT_INIT(disable-static win32-dll)
294 dnl This relies on $SED, which is defined in ltmain.sh, which
295 dnl is invoked by LT_INIT (at least I think that's how it works).
298 dnl ******************************
300 dnl ******************************
301 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
303 dnl The private D-Bus documentation is for developers only.
304 AC_ARG_WITH([private-docs],
305 AS_HELP_STRING([--with-private-docs],
306 [Build documentation for private libraries ]
307 [(requires --enable-gtk-doc) [default=no]],),
308 [with_private_docs="$withval"],[with_private_docs="no"])
309 AM_CONDITIONAL(WITH_PRIVATE_DOCS, [test x$with_private_docs = xyes])
311 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
314 dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
317 LDFLAGS="$LDFLAGS -Wl,--no-undefined"
321 dnl ******************************
323 dnl ******************************
324 AC_MSG_CHECKING([for Win32])
328 NO_UNDEFINED='-no-undefined'
329 SOCKET_LIBS='-lws2_32 -ldnsapi'
331 LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
332 AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes])
333 AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
340 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
347 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
350 AC_MSG_RESULT([$os_win32])
351 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
352 AC_SUBST(NO_UNDEFINED)
353 AC_SUBST(SOCKET_LIBS)
354 AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
356 dnl **************************************
357 dnl Check for posix compatible sys/wait.h
358 dnl **************************************
361 dnl ************************************
362 dnl Check for posix compatible alloca()
363 dnl ************************************
366 dnl ******************************
367 dnl Checks for functions
368 dnl ******************************
369 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
371 dnl ***********************************
372 dnl Check for base dependencies early.
373 dnl ***********************************
374 PKG_CHECK_MODULES(GNOME_PLATFORM,
375 [gio-2.0 >= glib_minimum_version
376 gmodule-2.0 >= glib_minimum_version
377 libxml-2.0 >= libxml_minimum_version
378 libsoup-2.4 >= soup_minimum_version])
380 if test x$os_win32 = xno; then
381 PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
384 dnl *************************
386 dnl *************************
388 [AS_HELP_STRING([--enable-gtk],
389 [enable GTK+ (default=yes)])],
390 [enable_gtk=$enableval], [enable_gtk=yes])
391 AC_MSG_CHECKING([if GTK+ support is enabled])
392 AC_MSG_RESULT([$enable_gtk])
393 if test "x$enable_gtk" = xyes; then
394 PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= gdk_minimum_version],,
397 gtk+-3.0 not found (or version < gdk_minimum_version)
399 If you want to disable GTK+ support,
400 please append --disable-gtk to configure.
403 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if you have the gtk+-3.0 package.])
405 AM_CONDITIONAL(HAVE_GTK, [test x$enable_gtk = xyes])
407 dnl *******************************
408 dnl Check for GNOME Online Accounts
409 dnl *******************************
411 [AS_HELP_STRING([--enable-goa],
412 [enable GNOME Online Accounts support (default=yes)])],
413 [enable_goa=$enableval], [enable_goa=yes])
414 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
415 AC_MSG_RESULT([$enable_goa])
416 if test "x$enable_goa" = xyes; then
417 PKG_CHECK_MODULES([GOA], [goa-1.0 >= goa_minimum_version],,
420 goa-1.0 not found (or version < goa_minimum_version)
422 If you want to disable GNOME Online Accounts support,
423 please append --disable-goa to configure.
426 AC_DEFINE(HAVE_GOA, 1, [Define to 1 if you have the goa-1.0 package.])
428 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
430 dnl GoaPasswordBased was introduced in version 3.5.
431 if `$PKG_CONFIG --atleast-version=3.5 goa-1.0`; then
432 AC_DEFINE(HAVE_GOA_PASSWORD_BASED,1,[Have GoaPasswordBased in goa-1.0])
435 dnl ***********************************
436 dnl Check for GNOME Keyring.
437 dnl ***********************************
438 if test x$os_win32 = xno; then
439 PKG_CHECK_MODULES(LIBSECRET,
440 [libsecret-unstable >= libsecret_minimum_version])
442 AC_SUBST(LIBSECRET_CFLAGS)
443 AC_SUBST(LIBSECRET_LIBS)
445 dnl **********************************************************
446 dnl gcr-base is needed for secure password exchange over D-Bus
447 dnl **********************************************************
448 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
449 AC_SUBST(GCR_BASE_CFLAGS)
450 AC_SUBST(GCR_BASE_LIBS)
452 LIBICAL_REQUIRED=libical_minimum_version
453 AC_SUBST(LIBICAL_REQUIRED)
455 dnl ******************************
457 dnl ******************************
458 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
460 AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
461 [AC_MSG_ERROR([No regex library found])])])
464 dnl ******************************
466 dnl ******************************
468 AS_HELP_STRING([--with-libdb=PREFIX],
469 [Prefix where libdb is installed]),
470 [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
472 DB_CFLAGS="-I$libdb_prefix/include"
473 DB_LIBS="-L$libdb_prefix/lib -ldb"
475 AC_MSG_CHECKING([Berkeley DB])
476 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
477 save_libs=$LIBS; LIBS="$DB_LIBS"
478 AC_LINK_IFELSE([AC_LANG_PROGRAM(
480 [[db_create(NULL, NULL, 0)]])],
481 [AC_MSG_RESULT([yes])],
482 [AC_MSG_ERROR([Cannot find libdb])])
488 dnl ******************************
490 dnl ******************************
494 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
495 AC_LINK_IFELSE([AC_LANG_PROGRAM(
502 cd = iconv_open ("UTF-8", "ISO-8859-1");
504 )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
506 if test "x$ac_cv_libiconv" = "xyes"; then
508 if test "x$os_win32" = "xyes"; then
509 dnl Don't pointlessly auto-export the global symbols
510 dnl from a potentially static libiconv.a
511 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
516 AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
519 if test "x$have_iconv" = "xyes"; then
520 if test "x$ac_cv_libiconv" = "xno"; then
521 AC_CHECK_FUNCS(gnu_get_libc_version)
523 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
524 AC_RUN_IFELSE([AC_LANG_SOURCE([[
528 #ifdef HAVE_GNU_GET_LIBC_VERSION
529 #include <gnu/libc-version.h>
532 char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
533 char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
534 char *transbuf = malloc (10), *trans = transbuf;
536 size_t jp_len = strlen (jp), utf8_len = 10;
537 size_t utf8_real_len = strlen (utf8);
539 #ifdef HAVE_GNU_GET_LIBC_VERSION
540 /* glibc 2.1.2's iconv is broken in hard to test ways. */
541 if (!strcmp (gnu_get_libc_version (), "2.1.2"))
545 cd = iconv_open ("UTF-8", "ISO-2022-JP");
546 if (cd == (iconv_t) -1)
548 if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
550 if (memcmp (utf8, transbuf, utf8_real_len) != 0)
554 ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
557 if test "x$have_iconv" = "xno"; then
558 AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
562 CFLAGS="$CFLAGS -I$srcdir"
564 AC_MSG_CHECKING([preferred charset name formats for system iconv])
565 AC_RUN_IFELSE([AC_LANG_SOURCE([[
567 #include "iconv-detect.c"
569 [AC_MSG_RESULT([found])],
570 [AC_MSG_RESULT([not found])
572 *** The iconv-detect program was unable to determine the
573 *** preferred charset name formats recognized by your
574 *** iconv library. It is suggested that you install a
575 *** working iconv library such as the one found at
576 *** ftp://ftp.gnu.org/pub/gnu/libiconv
578 [if test "x$os_win32" = xyes; then
579 AC_MSG_RESULT([using known win32 result])
580 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
581 echo >>iconv-detect.h
582 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
583 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
584 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
586 AC_MSG_RESULT([unknown])
588 *** We can't determine the preferred charset name formats
589 *** recognized by your iconv library. You are
590 *** cross-compiling and supposed to know what you are doing.
591 *** Please construct the iconv-detect.h file manually.
596 CFLAGS="$save_CFLAGS"
599 AC_ARG_ENABLE([backtraces],
600 [AS_HELP_STRING([--enable-backtraces],
601 [enable backtraces for camel_pointer_tracker (default=no)])],
602 [enable_backtraces=$enableval], [enable_backtraces=no])
604 if test "x$enable_backtraces" = xyes; then
605 dnl ****************************
606 dnl Check for backtrace_symbols function and dwfl from elfutils
607 dnl ****************************
608 AC_MSG_CHECKING([libc backtrace_symbols function])
609 AC_LINK_IFELSE([AC_LANG_PROGRAM(
610 [[#include <execinfo.h>]],
611 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
612 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
613 AC_MSG_RESULT([$ac_cv_have_bsf])
615 if test "x$ac_cv_have_bsf" = xyes; then
618 AC_MSG_CHECKING([elfutils/libdwfl])
619 AC_LINK_IFELSE([AC_LANG_PROGRAM(
620 [[#include <elfutils/libdwfl.h>]],
624 Dwarf_Addr module_low_addr;
627 dwfl_standard_find_debuginfo;
628 dwfl_linux_proc_find_elf;
630 dwfl_linux_proc_report (NULL, 1);
631 dwfl_report_end (NULL, NULL, NULL);
633 dwfl_module_addrname (NULL, NULL);
634 dwfl_module_getsrc (NULL, NULL);
635 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
636 DWARF_CB_ABORT; DWARF_CB_OK;
637 dwfl_getmodules (NULL, NULL, NULL, 0);
639 [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
640 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
644 if test "x$ac_cv_have_elfdwfl" = xyes; then
646 AC_SUBST(LIBDWFL_LIBS)
651 dnl ******************************
652 dnl Check for nl_langinfo features
653 dnl ******************************
654 EVO_CHECK_LANGINFO([CODESET])
655 EVO_CHECK_LANGINFO([_NL_ADDRESS_COUNTRY_AB2])
657 dnl *******************************************************
658 dnl Check to see if strftime supports the use of %l and %k
659 dnl *******************************************************
660 AC_MSG_CHECKING([for %l and %k support in strftime])
661 AC_RUN_IFELSE([AC_LANG_SOURCE(
662 [[ #include <stdlib.h>
665 int main(int argc, char **argv) {
671 timeinfo=localtime(&rawtime);
673 strftime(buf, 10, "%lx%k", timeinfo);
675 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
682 )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
683 AC_MSG_RESULT([$ac_cv_lkstrftime])
685 dnl ********************************************************************************
686 dnl security extension support (SSL and S/MIME)
688 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
689 dnl needed by Camel (SSL and S/MIME).
691 dnl The Evolution security extensions are only built if these libraries are found
692 dnl ********************************************************************************
695 AC_ARG_ENABLE([smime],
696 AS_HELP_STRING([--enable-smime],
697 [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
698 [enable_smime="$enableval"],[enable_smime="yes"])
700 AC_ARG_WITH([nspr-includes],
701 AS_HELP_STRING([--with-nspr-includes],
702 [Prefix of Mozilla nspr4 includes.]),
703 [with_nspr_includes="$withval"])
705 AC_ARG_WITH([nspr-libs],
706 AS_HELP_STRING([--with-nspr-libs],
707 [Prefix of Mozilla nspr4 libs.]),
708 [with_nspr_libs="$withval"])
710 AC_ARG_WITH([nss-includes],
711 AS_HELP_STRING([--with-nss-includes],
712 [Prefix of Mozilla nss3 includes.]),
713 [with_nss_includes="$withval"])
715 AC_ARG_WITH([nss-libs],
716 AS_HELP_STRING([--with-nss-libs],
717 [Prefix of Mozilla nss3 libs.]),
718 [with_nss_libs="$withval"])
720 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
726 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
727 if test "x${check_manually}" = "xno"; then
728 AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
729 mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
730 for pc in $mozilla_nspr_pcs; do
731 if $PKG_CONFIG --exists $pc; then
738 AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
739 mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
740 for pc in $mozilla_nss_pcs; do
741 if $PKG_CONFIG --exists $pc; then
748 if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
749 if test "x$enable_smime" = "xyes"; then
750 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
753 MANUAL_NSPR_CFLAGS=""
764 if test "x${check_manually}" = "xyes"; then
765 dnl ******************
767 dnl ******************
768 AC_MSG_CHECKING([for Mozilla nspr4 includes])
769 CPPFLAGS_save="$CPPFLAGS"
770 if test -n "$with_nspr_includes"; then
771 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
774 AC_CHECK_HEADERS(nspr.h prio.h,
775 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
776 CPPFLAGS="$CPPFLAGS_save"
778 if test "x${moz_nspr_includes}" = "xyes"; then
779 MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
781 AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
783 AC_MSG_RESULT([$moz_nspr_includes])
785 AC_MSG_CHECKING([for Mozilla nspr libraries])
786 CFLAGS_save="$CFLAGS"
787 LDFLAGS_save="$LDFLAGS"
789 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
791 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
793 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
794 if test -n "${with_nspr_libs}"; then
795 LDFLAGS="$LDFLAGS -L$with_nspr_libs"
800 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
801 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
803 CFLAGS="$CFLAGS_save"
804 LDFLAGS="$LDFLAGS_save"
807 if test "x${moz_nspr_libs}" = "xyes"; then
808 if test -n "${with_nspr_libs}"; then
809 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
811 MANUAL_NSPR_LIBS="$nsprlibs"
814 AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
816 AC_MSG_RESULT([$moz_nspr_libs])
818 dnl *****************
820 dnl *****************
821 AC_MSG_CHECKING([for Mozilla nss3 includes])
822 CPPFLAGS_save="$CPPFLAGS"
823 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
825 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
826 [moz_nss_includes="yes"],[moz_nss_includes="no"])
827 CPPFLAGS="$CPPFLAGS_save"
829 if test "x${moz_nss_includes}" = "xyes"; then
830 MANUAL_NSS_CFLAGS="-I$with_nss_includes"
832 AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
834 AC_MSG_RESULT($moz_nss_includes)
836 AC_MSG_CHECKING([for Mozilla nss libraries])
837 LDFLAGS_save="$LDFLAGS"
839 nsslibs="-lssl3 -lsmime3 -lnss3"
841 LIBS="$nsslibs $nsprlibs"
842 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
843 if test -n "${with_nss_libs}"; then
844 LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
846 LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
849 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
850 [moz_nss_libs="yes"],[moz_nss_libs="no"])
851 LDFLAGS="$LDFLAGS_save"
854 if test "x${moz_nss_libs}" = "xyes"; then
855 if test "x${enable_smime}" = "xyes"; then
856 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
859 if test -n "${with_nss_libs}"; then
860 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
862 MANUAL_NSS_LIBS="$nsslibs"
865 AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
867 AC_MSG_RESULT([$moz_nss_libs])
869 MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
870 MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
873 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
875 dnl For pkgconfig files.
876 AC_SUBST(mozilla_nss)
877 AC_SUBST(mozilla_nspr)
879 AC_SUBST(MANUAL_NSPR_CFLAGS)
880 AC_SUBST(MANUAL_NSPR_LIBS)
881 AC_SUBST(MANUAL_NSS_CFLAGS)
882 AC_SUBST(MANUAL_NSS_LIBS)
884 dnl ******************************
885 dnl system mail stuff
886 dnl ******************************
887 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
888 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
890 AC_MSG_CHECKING([system mail directory])
891 if test -d /var/mail -a '!' -h /var/mail ; then
892 system_mail_dir="/var/mail"
894 system_mail_dir="/var/spool/mail"
896 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
898 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
900 CAMEL_LOCK_HELPER_USER=""
901 CAMEL_LOCK_HELPER_GROUP=""
902 system_mail_perm="world writable"
905 CAMEL_LOCK_HELPER_USER=""
906 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
907 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
910 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
911 CAMEL_LOCK_HELPER_GROUP=""
912 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
915 CAMEL_LOCK_HELPER_USER=""
916 CAMEL_LOCK_HELPER_GROUP=""
917 system_mail_perm="???"
921 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
922 AC_SUBST(CAMEL_LOCK_HELPER_USER)
923 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
925 dnl ******************************
927 dnl ******************************
928 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
929 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
930 [[ #include <time.h> ]],
935 )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
936 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
937 AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
939 AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
940 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
941 [[ #include <time.h> ]],
943 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
944 if test "x$ac_cv_var_timezone" = "xyes"; then
945 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
946 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
947 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
948 [[ #include <time.h> ]],
950 )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
951 if test "x$ac_cv_var_altzone" = "xyes"; then
952 AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
955 AC_MSG_ERROR([unable to find a way to determine timezone])
959 dnl ******************************
960 dnl ctime_r prototype
961 dnl ******************************
962 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
964 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
965 [[ #include <time.h> ]],
968 ctime_r (&date, buf, 100); ]]
969 )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
972 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
973 AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
976 dnl ******************************
977 dnl gethostbyname_r prototype
978 dnl ******************************
979 AC_CHECK_FUNCS(gethostbyname_r,[
980 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
982 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
984 #include "confdefs.h"
985 #include <sys/types.h>
986 #include <sys/socket.h>
987 #include <netinet/in.h>
989 #define BUFSIZE (sizeof(struct hostent)+10)
993 char buffer[BUFSIZE];
996 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
998 )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
1001 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
1002 AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
1005 dnl ******************************
1006 dnl gethostbyaddr_r prototype
1007 dnl ******************************
1008 AC_CHECK_FUNCS(gethostbyaddr_r,[
1009 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_args],
1011 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1013 #include "confdefs.h"
1014 #include <sys/types.h>
1015 #include <sys/socket.h>
1016 #include <netinet/in.h>
1018 #define BUFSIZE (sizeof(struct hostent)+10)
1021 struct hostent hent;
1022 char buffer[BUFSIZE];
1023 int bufsize=BUFSIZE;
1025 (void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
1026 )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
1029 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
1030 AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
1033 dnl ******************************
1034 dnl stat(v)fs location/type
1035 dnl ******************************
1036 AC_CHECK_HEADER([sys/statvfs.h],
1037 [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
1038 [[ #if HAVE_SYS_STATVFS_H
1039 #include <sys/statvfs.h>
1042 AC_CHECK_FUNCS(statvfs)
1044 AC_CHECK_HEADER([sys/param.h],
1045 [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
1046 [[ #if HAVE_SYS_PARAM_H
1047 #include <sys/param.h>
1050 AC_CHECK_HEADER([sys/mount.h],
1051 [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1052 [[ #if HAVE_SYS_MOUNT_H
1053 #include <sys/mount.h>
1056 AC_CHECK_FUNCS(statfs)
1058 dnl ******************************
1059 dnl IPv6 support and getaddrinfo calls
1060 dnl ******************************
1061 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1063 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1064 [[ #include "confdefs.h"
1065 #include <sys/types.h>
1066 #include <sys/socket.h>
1067 #include <netinet/in.h>
1071 [[ #ifndef NI_MAXHOST
1072 #define NI_MAXHOST 1025
1076 #define NI_MAXSERV 32
1079 struct addrinfo hints, *res;
1080 struct sockaddr_in6 sin6;
1082 char host[NI_MAXHOST];
1083 char serv[NI_MAXSERV];
1085 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1087 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1088 )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1091 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1092 AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1093 if test "x$enable_ipv6" = "xyes" ; then
1094 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1098 AC_ARG_ENABLE([ipv6],
1099 AS_HELP_STRING([--enable-ipv6=no/yes],
1100 [Enable support for resolving IPv6 addresses.]),
1101 [enable_ipv6=$enableval],[enable_ipv6=yes])
1102 if test "x$enable_ipv6" = "xyes"; then
1104 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1105 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1106 [[ #include "confdefs.h"
1107 #include <sys/types.h>
1108 #include <sys/socket.h>
1109 #include <netinet/in.h>
1112 [[ struct addrinfo hints;
1113 hints.ai_flags = AI_ADDRCONFIG;
1115 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1121 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1123 AC_CHECK_HEADER([wspiapi.h],
1124 [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1126 dnl **********************************
1127 dnl Weather calendar backend support
1128 dnl **********************************
1129 AC_MSG_CHECKING([if we should build the weather calendar backend])
1130 AC_ARG_ENABLE([weather],
1131 [AS_HELP_STRING([--enable-weather],
1132 [Build the weather calendar backend (default=yes)])],
1133 [use_gweather=$enableval], [use_gweather=yes])
1135 AC_MSG_RESULT([$use_gweather])
1136 if test "x$use_gweather" = "xyes"; then
1137 PKG_CHECK_MODULES([LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1138 [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.])])
1140 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1142 dnl ******************************
1144 dnl ******************************
1145 AC_ARG_ENABLE([nntp],
1146 AS_HELP_STRING([--enable-nntp],
1147 [Build Usenet news (NNTP) backend]),
1148 [enable_nntp=$enableval],[enable_nntp=yes])
1149 if test "x$enable_nntp" = "xyes"; then
1150 AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
1155 AM_CONDITIONAL(ENABLE_NNTP, [test x$enable_nntp = xyes])
1157 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1159 dnl ******************************
1161 dnl ******************************
1162 AC_ARG_ENABLE([dot-locking],
1163 AS_HELP_STRING([--enable-dot-locking=yes/no],
1164 [Enable support for locking mail files with dot locking]),
1165 [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1167 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1168 AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1174 AC_ARG_ENABLE([file-locking],
1175 AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1176 [Enable support for locking mail files with file locking]),
1177 [],[enable_file_locking=fcntl])
1179 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1180 AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1183 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1184 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1191 dnl ******************************
1192 dnl sendmail operation
1193 dnl ******************************
1194 AC_MSG_CHECKING([for SunOS broken spool format])
1195 if test "x$host_os" = "xsunos" ; then
1196 with_broken_spool="yes"
1199 AC_ARG_WITH([broken-spool],
1200 AS_HELP_STRING([--with-broken-spool=yes/no],
1201 [Using SunOS/Solaris sendmail which has a broken spool format]),
1202 [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1204 if test "x$with_broken_spool" = "xyes"; then
1205 AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1208 AC_MSG_RESULT([$with_broken_spool])
1210 dnl ******************************
1211 dnl DBus call timeout
1212 dnl ******************************
1214 AC_ARG_WITH([dbus-call-timeout],
1215 AS_HELP_STRING([--with-dbus-call-timeout=miliseconds],
1216 [Default timeout used when invoking g_dbus_proxy_call() family functions in EBook and ECal library (default=-1)]),
1217 [ac_cv_dbus_call_timeout=$withval],[ac_cv_dbus_call_timeout=-1])
1219 DEFAULT_EDS_DBUS_TIMEOUT=$ac_cv_dbus_call_timeout
1220 AC_SUBST(DEFAULT_EDS_DBUS_TIMEOUT)
1225 EVO_KRB5_SUPPORT(no)
1227 dnl ******************************
1229 dnl ******************************
1232 dnl ******************************
1234 dnl ******************************
1235 if test "x$os_win32" != "xyes"; then
1237 case $with_openldap in
1242 case $with_static_ldap in
1244 msg_ldap="$with_openldap (static)"
1247 msg_ldap="$with_openldap (dynamic)"
1252 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1253 if test "x$with_openldap" = "xno" ; then
1254 EVO_SUNLDAP_CHECK(no)
1255 case $with_sunldap in
1260 case $with_static_sunldap in
1262 msg_ldap="$with_sunldap (static)"
1265 msg_ldap="$with_sunldap (dynamic)"
1272 AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1274 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1276 dnl Win32 LDAP support
1277 LDAP_CFLAGS="-DLDAP_DEPRECATED"
1278 LDAP_LIBS="-lwldap32"
1279 AC_SUBST(LDAP_CFLAGS)
1281 AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1282 AM_CONDITIONAL(ENABLE_LDAP, true)
1283 AM_CONDITIONAL(SUNLDAP, false)
1287 dnl ******************************
1288 dnl GObject marshalling
1289 dnl ******************************
1292 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1293 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1294 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1296 dnl ******************************
1297 dnl Utility macro to set compiler flags for a specific lib.
1298 dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
1299 dnl ******************************
1300 AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
1301 PKG_CHECK_MODULES([$1], [$2])
1302 $1_CFLAGS="[$]$1_CFLAGS $3 "
1303 $1_LIBS="[$]$1_LIBS $4 "
1306 dnl ******************************
1308 dnl ******************************
1309 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1311 if test "x$enable_maintainer_mode" = "xyes" ; then
1312 EVO_SET_COMPILE_FLAGS(FACTORY_GTK, "gtk+-3.0")
1313 AC_SUBST(FACTORY_GTK_CFLAGS)
1314 AC_SUBST(FACTORY_GTK_LIBS)
1317 dnl ******************************
1318 dnl libedataserver flags
1319 dnl ******************************
1320 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1322 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1323 AC_SUBST(E_DATA_SERVER_CFLAGS)
1324 AC_SUBST(E_DATA_SERVER_LIBS)
1326 dnl ******************************
1327 dnl libebackend flags
1328 dnl ******************************
1329 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libsoup-2.4 libxml-2.0"
1331 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1332 AC_SUBST(E_BACKEND_CFLAGS)
1333 AC_SUBST(E_BACKEND_LIBS)
1335 dnl ******************************
1336 dnl evolution-addressbook flags
1337 dnl ******************************
1338 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 libsecret-1"
1340 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1341 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1342 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1344 dnl ******************************
1345 dnl evolution-calendar flags
1346 dnl ******************************
1347 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 libsecret-1"
1350 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1351 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1352 dnl to differentiate between <libical/ical.h> and <ical.h>
1353 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1354 dnl libical is fixed, we have to work-around the buggy CFlags.
1356 LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1357 LIBICAL_EXTRA_LIBS=""
1358 AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1359 AC_SUBST(LIBICAL_EXTRA_LIBS)
1361 EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1362 AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1363 AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1365 dnl ****************************
1366 dnl Check for ical_set_unknown_token_handling_setting function
1367 dnl ****************************
1368 AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1369 save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1370 save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1371 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1372 [[#include <libical/ical.h>]],
1373 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1374 [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])
1377 AC_MSG_RESULT([$ac_cv_have_iuth])
1379 dnl ******************************
1381 dnl ******************************
1382 LIBGDATA_REQUIRED=libgdata_minimum_version
1383 AC_SUBST(LIBGDATA_REQUIRED)
1384 AC_ARG_ENABLE([google],
1385 [AS_HELP_STRING([--enable-google],
1386 [enable Google Contacts support (default=yes)])],
1387 [enable_google=$enableval], [enable_google=yes])
1388 AC_MSG_CHECKING([if Google Contacts support is enabled])
1389 AC_MSG_RESULT([$enable_google])
1390 if test "x$enable_google" = xyes; then
1391 EVO_SET_COMPILE_FLAGS(GDATA, libgdata >= libgdata_minimum_version)
1392 AC_SUBST(GDATA_CFLAGS)
1393 AC_SUBST(GDATA_LIBS)
1395 AC_DEFINE(HAVE_GOOGLE, 1, [Define to 1 if you have the google-1.0 package.])
1397 AM_CONDITIONAL(HAVE_GOOGLE, [test x$enable_google = xyes])
1399 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1400 AC_SUBST(SOUP_CFLAGS)
1403 dnl ******************************
1405 dnl ******************************
1406 SQLITE_REQUIRED=sqlite_minimum_version
1407 AC_SUBST(SQLITE_REQUIRED)
1410 dnl deflateInit is a #define, use deflateEnd instead
1411 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1413 if test "x$zlib_found" = "xfalse"; then
1414 AC_MSG_ERROR([*** zlib is required])
1417 dnl ******************************
1418 dnl Checks for large file support
1419 dnl ******************************
1420 AC_ARG_ENABLE([largefile],
1421 AS_HELP_STRING([--enable-largefile],
1422 [enable support for large files [[default=no]]]),
1423 [],[enable_largefile="yes"])
1425 if test "x$enable_largefile" != "xno"; then
1427 AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1428 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1429 [[ #include <sys/types.h>
1430 #include <sys/stat.h>
1433 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]]
1434 )],[ac_cv_largefile64_source="no"],
1435 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1436 [[ #define _LARGEFILE64_SOURCE
1437 #include <sys/types.h>
1438 #include <sys/stat.h>
1441 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1442 [ac_cv_largefile64_source="unknown"])])
1445 enable_largefile="no"
1447 if test "x$ac_cv_largefile64_source" = "xyes"; then
1448 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1449 enable_largefile="yes"
1450 elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1451 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1454 if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1455 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1456 enable_largefile="yes"
1459 if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1460 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1461 enable_largefile="yes"
1464 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1468 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1470 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)
1471 AC_SUBST(CAMEL_CFLAGS)
1472 AC_SUBST(CAMEL_LIBS)
1474 dnl ******************************
1475 dnl Special directories
1476 dnl ******************************
1478 dnl If you add something here, consider whether or not you also
1479 dnl need to add it to one or more .pc.in files (for Connector,
1482 privdatadir='${datadir}'/evolution-data-server
1483 AC_SUBST(privdatadir)
1485 privincludedir='${includedir}'/evolution-data-server
1486 AC_SUBST(privincludedir)
1488 privlibdir='${libdir}'/evolution-data-server
1489 AC_SUBST(privlibdir)
1491 imagesdir='${datadir}'/pixmaps/evolution-data-server
1494 moduledir='${privlibdir}'/registry-modules
1497 ebook_backenddir='${privlibdir}'/addressbook-backends
1498 AC_SUBST(ebook_backenddir)
1500 ecal_backenddir='${privlibdir}'/calendar-backends
1501 AC_SUBST(ecal_backenddir)
1503 ro_sourcesdir='${privdatadir}'/ro-sources
1504 AC_SUBST(ro_sourcesdir)
1506 rw_sourcesdir='${privdatadir}'/rw-sources
1507 AC_SUBST(rw_sourcesdir)
1509 if test "x$use_gweather" = "xyes"; then
1510 weatherdatadir="$privdatadir/weather"
1511 AC_SUBST(weatherdatadir)
1514 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1515 camel_providerdir='${privlibdir}'/camel-providers
1516 AC_SUBST(camel_providerdir)
1518 dnl *******************
1519 dnl D-BUS service stuff
1520 dnl *******************
1521 m4_pattern_allow([AM_V_GEN])
1522 EVO_SUBST_SERVICE_RULE='%.service: %.service.in Makefile ; $(AM_V_GEN) sed -e "s|\@libexecdir\@|$(libexecdir)|" -e s"|\@ADDRESS_BOOK_DBUS_SERVICE_NAME\@|$(ADDRESS_BOOK_DBUS_SERVICE_NAME)|" -e "s|\@CALENDAR_DBUS_SERVICE_NAME\@|$(CALENDAR_DBUS_SERVICE_NAME)|" -e "s|\@SOURCES_DBUS_SERVICE_NAME\@|$(SOURCES_DBUS_SERVICE_NAME)|" -e "s|\@USER_PROMPTER_DBUS_SERVICE_NAME\@|$(USER_PROMPTER_DBUS_SERVICE_NAME)|" $< > $@'
1523 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1525 dnl ******************************
1527 dnl ******************************
1531 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1532 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1533 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1535 dnl ******************************
1537 dnl ******************************
1538 AC_PATH_PROG(GPERF, gperf, [no])
1539 if test "x$GPERF" = "xno"; then
1540 AC_MSG_ERROR([You need gperf to build evolution-data-server])
1543 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1545 dnl ******************************
1547 dnl ******************************
1548 AC_ARG_ENABLE(vala-bindings,
1549 AC_HELP_STRING([--enable-vala-bindings],
1550 [build the EXPERIMENTAL Vala bindings]),
1551 enable_vala_bindings=$enableval,
1552 enable_vala_bindings=no)
1554 if test x$enable_vala_bindings = xyes; then
1555 if test "x$INTROSPECTION_SCANNER" = x; then
1556 AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1559 AM_PROG_VALAC([0.13.0])
1562 AC_PATH_PROG(VALAC, valac, valac)
1566 AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1568 if test "x$VAPIGEN" = "xfalse"; then
1569 AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1575 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1578 dnl ******************************
1580 dnl ******************************
1582 export privincludedir
1587 evolution-data-server-zip
1588 evolution-data-server.pc
1589 addressbook/Makefile
1590 addressbook/libebook/Makefile
1591 addressbook/libebook/libebook.pc
1592 addressbook/libedata-book/Makefile
1593 addressbook/libedata-book/libedata-book.pc
1594 addressbook/libegdbus/Makefile
1595 addressbook/backends/Makefile
1596 addressbook/backends/file/Makefile
1597 addressbook/backends/ldap/Makefile
1598 addressbook/backends/google/Makefile
1599 addressbook/backends/google/tests/Makefile
1600 addressbook/backends/webdav/Makefile
1603 calendar/libecal/Makefile
1604 calendar/libecal/libecal.pc
1605 calendar/libedata-cal/Makefile
1606 calendar/libedata-cal/libedata-cal.pc
1607 calendar/libegdbus/Makefile
1608 calendar/backends/Makefile
1609 calendar/backends/caldav/Makefile
1610 calendar/backends/file/Makefile
1611 calendar/backends/http/Makefile
1612 calendar/backends/contacts/Makefile
1613 calendar/backends/weather/Makefile
1615 camel/providers/Makefile
1616 camel/providers/imapx/Makefile
1617 camel/providers/local/Makefile
1618 camel/providers/nntp/Makefile
1619 camel/providers/pop3/Makefile
1620 camel/providers/sendmail/Makefile
1621 camel/providers/smtp/Makefile
1622 camel/tests/Makefile
1623 camel/tests/folder/Makefile
1624 camel/tests/lib/Makefile
1625 camel/tests/message/Makefile
1626 camel/tests/mime-filter/Makefile
1627 camel/tests/misc/Makefile
1628 camel/tests/smime/Makefile
1631 libebackend/Makefile
1632 libebackend/libebackend.pc
1633 libedataserver/Makefile
1634 libedataserver/eds-version.h
1635 libedataserver/libedataserver.pc
1637 modules/cache-reaper/Makefile
1638 modules/gnome-online-accounts/Makefile
1639 modules/google-backend/Makefile
1640 modules/trust-prompt/Makefile
1641 modules/yahoo-backend/Makefile
1644 services/evolution-addressbook-factory/Makefile
1645 services/evolution-calendar-factory/Makefile
1646 services/evolution-source-registry/Makefile
1647 services/evolution-user-prompter/Makefile
1649 tests/libebook/Makefile
1650 tests/libebook/client/Makefile
1651 tests/libebook/vcard/Makefile
1652 tests/libecal/Makefile
1653 tests/libecal/client/Makefile
1654 tests/libedata-cal/Makefile
1655 tests/libedataserver/Makefile
1656 tests/test-server-utils/Makefile
1657 tests/test-server-utils/services/Makefile
1658 tests/test-server-utils/services/org.gnome.evolution.dataserver.AddressBook.service
1659 tests/test-server-utils/services/org.gnome.evolution.dataserver.Calendar.service
1660 tests/test-server-utils/services/org.gnome.evolution.dataserver.Sources.service
1662 docs/reference/Makefile
1663 docs/reference/addressbook/Makefile
1664 docs/reference/addressbook/libebook/Makefile
1665 docs/reference/addressbook/libedata-book/Makefile
1666 docs/reference/calendar/Makefile
1667 docs/reference/calendar/libecal/Makefile
1668 docs/reference/calendar/libedata-cal/Makefile
1669 docs/reference/camel/Makefile
1670 docs/reference/libedataserver/Makefile
1671 docs/reference/libebackend/Makefile
1672 docs/reference/private/Makefile
1679 evolution-data-server has been configured as follows:
1680 Weather calendar: $use_gweather
1681 Mail Directory: $system_mail_dir, $system_mail_perm
1682 LDAP support: $msg_ldap
1683 NNTP support: $msg_nntp
1684 Kerberos 5: $msg_krb5
1685 SMIME support: $msg_smime
1686 IPv6 support: $msg_ipv6
1687 Phone number support: $msg_phonenumber
1688 Dot Locking: $msg_dot
1689 File Locking: $msg_file
1690 Large files: $enable_largefile
1691 Gtk Doc: $enable_gtk_doc
1692 Introspection: $enable_introspection
1693 Vala bindings: $enable_vala_bindings
1694 GNOME Online Accounts $enable_goa
1695 Google Contacts $enable_google
1697 Code coverage (gcov): $enable_code_coverage
1698 Strict building: $enable_strict