2 dnl Evolution-Data-Server version
3 m4_define([eds_major_version], [3])
4 m4_define([eds_minor_version], [9])
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.10])
17 dnl This number is meaningless, but we're now stuck with it in our
18 dnl library names for backward compatibility.
19 m4_define([api_version], [1.2])
21 dnl Autoconf / Automake Initialization
23 AC_INIT([evolution-data-server],[eds_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution-Data-Server])
24 AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar dist-xz no-dist-gzip -Wall -Wno-portability foreign])
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_CONFIG_SRCDIR(README)
27 AC_CONFIG_HEADERS(config.h)
29 dnl This is for the autoconf tests only - it set's the language we use
32 dnl Automake 1.11 - Silent Build Rules
33 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
35 dnl Required Package Versions
37 dnl Keep these two definitions in agreement.
38 m4_define([glib_minimum_version], [2.34])
39 m4_define([glib_encoded_version], [GLIB_VERSION_2_34])
41 dnl Keep these two definitions in agreement.
42 m4_define([gdk_minimum_version], [3.2])
43 m4_define([gdk_encoded_version], [GDK_VERSION_3_2])
45 dnl Keep these two definitions in agreement.
46 m4_define([soup_minimum_version], [2.40.3])
47 m4_define([soup_encoded_version], [SOUP_VERSION_2_40])
49 m4_define([gcr_minimum_version], [3.4])
50 m4_define([libsecret_minimum_version], [0.5])
51 m4_define([libxml_minimum_version], [2.0.0]) dnl XXX Just a Guess
52 m4_define([libgdata_minimum_version], [0.10])
53 m4_define([sqlite_minimum_version], [3.5])
54 m4_define([libical_minimum_version], [0.43])
57 m4_define([goa_minimum_version], [3.8])
58 m4_define([gweather_minimum_version], [3.5.0])
59 m4_define([libaccounts_glib_minimum_version], [1.4])
60 m4_define([libsignon_glib_minimum_version], [1.8])
62 AC_SUBST([BASE_VERSION],[base_version])
63 AC_SUBST([API_VERSION],[api_version])
64 AC_DEFINE_UNQUOTED(BASE_VERSION, ["$BASE_VERSION"], [Base version (Major.Minor)])
65 AC_DEFINE_UNQUOTED(API_VERSION, ["$API_VERSION"], [API version (Major.Minor)])
67 EDS_MAJOR_VERSION=eds_major_version
68 EDS_MINOR_VERSION=eds_minor_version
69 EDS_MICRO_VERSION=eds_micro_version
73 dnl ******************************
75 dnl ******************************
76 ADDRESS_BOOK_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.AddressBook5"
77 CALENDAR_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Calendar4"
78 SOURCES_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Sources1"
79 USER_PROMPTER_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.UserPrompter0"
82 ADDRESS_BOOK_DBUS_SERVICE_NAME,
83 ["$ADDRESS_BOOK_DBUS_SERVICE_NAME"],
84 [D-Bus service name for the address book factory])
87 CALENDAR_DBUS_SERVICE_NAME,
88 ["$CALENDAR_DBUS_SERVICE_NAME"],
89 [D-Bus service name for the calendar factory])
92 SOURCES_DBUS_SERVICE_NAME,
93 ["$SOURCES_DBUS_SERVICE_NAME"],
94 [D-Bus service name for the source registry])
97 USER_PROMPTER_DBUS_SERVICE_NAME,
98 ["$USER_PROMPTER_DBUS_SERVICE_NAME"],
99 [D-Bus service name for the user prompter])
101 AC_SUBST(ADDRESS_BOOK_DBUS_SERVICE_NAME)
102 AC_SUBST(CALENDAR_DBUS_SERVICE_NAME)
103 AC_SUBST(SOURCES_DBUS_SERVICE_NAME)
104 AC_SUBST(USER_PROMPTER_DBUS_SERVICE_NAME)
106 dnl ******************************
107 dnl Libtool versioning
108 dnl ******************************
109 LIBEDATASERVER_CURRENT=18
110 LIBEDATASERVER_REVISION=0
117 LIBEDATACAL_CURRENT=23
118 LIBEDATACAL_REVISION=0
121 LIBEDATABOOK_CURRENT=20
122 LIBEDATABOOK_REVISION=0
129 LIBEBOOK_CONTACTS_CURRENT=0
130 LIBEBOOK_CONTACTS_REVISION=0
131 LIBEBOOK_CONTACTS_AGE=0
137 LIBEBACKEND_CURRENT=7
138 LIBEBACKEND_REVISION=0
141 AC_SUBST(EDS_MAJOR_VERSION)
142 AC_SUBST(EDS_MINOR_VERSION)
143 AC_SUBST(EDS_MICRO_VERSION)
144 AC_SUBST(LIBEDATASERVER_CURRENT)
145 AC_SUBST(LIBEDATASERVER_REVISION)
146 AC_SUBST(LIBEDATASERVER_AGE)
147 AC_SUBST(LIBECAL_CURRENT)
148 AC_SUBST(LIBECAL_REVISION)
149 AC_SUBST(LIBECAL_AGE)
150 AC_SUBST(LIBEDATACAL_CURRENT)
151 AC_SUBST(LIBEDATACAL_REVISION)
152 AC_SUBST(LIBEDATACAL_AGE)
153 AC_SUBST(LIBEBOOK_CURRENT)
154 AC_SUBST(LIBEBOOK_REVISION)
155 AC_SUBST(LIBEBOOK_AGE)
156 AC_SUBST(LIBEBOOK_CONTACTS_CURRENT)
157 AC_SUBST(LIBEBOOK_CONTACTS_REVISION)
158 AC_SUBST(LIBEBOOK_CONTACTS_AGE)
159 AC_SUBST(LIBEDATABOOK_CURRENT)
160 AC_SUBST(LIBEDATABOOK_REVISION)
161 AC_SUBST(LIBEDATABOOK_AGE)
162 AC_SUBST(LIBCAMEL_CURRENT)
163 AC_SUBST(LIBCAMEL_REVISION)
164 AC_SUBST(LIBCAMEL_AGE)
165 AC_SUBST(LIBEBACKEND_CURRENT)
166 AC_SUBST(LIBEBACKEND_REVISION)
167 AC_SUBST(LIBEBACKEND_AGE)
169 dnl **************************************
170 dnl Put the ACLOCAL flags in the Makefile
171 dnl **************************************
172 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
174 dnl *********************************************
175 dnl Figure out early if we'll need a C++ compiler
176 dnl *********************************************
181 dnl ******************************
182 dnl Compiler Warning Flags
183 dnl ******************************
184 proposed_warning_flags="-Wall -Wextra
185 -Wdeprecated-declarations
186 -Werror-implicit-function-declaration
187 -Wformat-security -Winit-self
188 -Wmissing-declarations -Wmissing-include-dirs
189 -Wmissing-noreturn -Wpointer-arith
190 -Wredundant-decls -Wundef -Wwrite-strings"
192 proposed_c_warning_flags="$proposed_warning_flags
193 -Wdeclaration-after-statement
194 -Wno-missing-field-initializers
196 -Wno-unused-parameter
199 proposed_cxx_warning_flags="$proposed_warning_flags
202 AS_COMPILER_FLAGS(WARNING_FLAGS, [$proposed_c_warning_flags])
203 AC_SUBST(WARNING_FLAGS)
205 dnl Other useful compiler warnings for test builds only.
206 dnl These may produce warnings we have no control over,
207 dnl or false positives we don't always want to see.
209 dnl -Wformat-nonliteral
210 dnl -Wmissing-format-attribute
212 dnl -Wstrict-aliasing=2
214 AM_CFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
217 if test "x$evo_with_cxx" = xyes; then
221 AS_COMPILER_FLAGS(CXX_WARNING_FLAGS, [$proposed_cxx_warning_flags])
222 AC_SUBST(CXX_WARNING_FLAGS)
223 AM_CXXFLAGS="$CXX_WARNING_FLAGS"
224 AC_SUBST(AM_CXXFLAGS)
227 dnl Autoconf requires those automake conditionals to be defined when
228 dnl generating the config files, but apparently it forgets to initialize
229 dnl them dnl if AC_PROG_CXX never gets called. Therefore we do it manually.
230 am__fastdepCXX_TRUE='#'
231 am__fastdepCXX_FALSE=
234 dnl Permits linking of C++ based libraries using the C linker if needed.
235 AC_SUBST([predeps_CXX])
236 AC_SUBST([postdeps_CXX])
238 dnl *******************************
239 dnl Check for --enable-strict
240 dnl *******************************
241 AC_ARG_ENABLE([strict],
242 [AS_HELP_STRING([--enable-strict],
243 [enable strict building, like without deprecated symbols (default=auto); auto enables strict building only if .git subdirectory exists])],
244 [enable_strict=$enableval], [enable_strict=auto])
246 AC_MSG_CHECKING([if strict building is enabled])
247 if test "x$enable_strict" = xauto; then
248 dnl Be strict when compiling with .git subdirectory
249 if test -d .git ; then
255 AC_MSG_RESULT([$enable_strict])
259 if test "x$enable_strict" = xyes; then
260 AM_CPPFLAGS="$AM_CPPFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
263 dnl Warn about API usage that violates our minimum requirements.
264 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MAX_ALLOWED=glib_encoded_version"
265 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MAX_ALLOWED=gdk_encoded_version"
266 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MAX_ALLOWED=soup_encoded_version"
268 dnl These will suppress warnings about newly-deprecated symbols. Ideally
269 dnl these settings should match our minimum requirements and we will clean
270 dnl up any new deprecation warnings after bumping our minimum requirements.
271 dnl But if the warnings get to be overwhelming, use fixed versions instead.
272 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MIN_REQUIRED=glib_encoded_version"
273 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MIN_REQUIRED=gdk_encoded_version"
274 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MIN_REQUIRED=soup_encoded_version"
276 AC_SUBST(AM_CPPFLAGS)
278 dnl ******************************
279 dnl Initialize maintainer mode
280 dnl ******************************
281 AM_MAINTAINER_MODE([enable])
283 if test "x$enable_maintainer_mode" = "xyes" ; then
284 AC_DEFINE(ENABLE_MAINTAINER_MODE, 1, [Configured with enabled maintainer mode])
295 dnl For gen-western-table.py
298 dnl GCC 4.4 got more aggressive in its aliasing optimizations, changing
299 dnl behavior that -- according to the C99 standard -- is supposed to be
300 dnl undefined. We may still have aliasing abuses lying around that rely
301 dnl on GCC's previous "undefined" behavior, so disable strict-aliasing
302 dnl optimization until we can find and fix all the abuses.
303 dnl (AC_PROG_CC must run first to set the GCC variable.)
304 dnl XXX This really belongs in AM_CFLAGS.
305 if test "x${GCC}" = "xyes"; then
306 CFLAGS="$CFLAGS -fno-strict-aliasing"
309 dnl ******************************
311 dnl ******************************
312 IT_PROG_INTLTOOL([0.35.5])
314 GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
315 AC_SUBST(GETTEXT_PACKAGE)
316 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
318 localedir='$(prefix)/$(DATADIRNAME)/locale'
321 dnl ******************************
322 dnl Initialize libtool
323 dnl ******************************
325 LT_INIT(disable-static win32-dll)
329 dnl This relies on $SED, which is defined in ltmain.sh, which
330 dnl is invoked by LT_INIT (at least I think that's how it works).
333 dnl ******************************
335 dnl ******************************
336 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
338 dnl The private D-Bus documentation is for developers only.
339 AC_ARG_WITH([private-docs],
340 AS_HELP_STRING([--with-private-docs],
341 [Build documentation for private libraries ]
342 [(requires --enable-gtk-doc) [default=no]],),
343 [with_private_docs="$withval"],[with_private_docs="no"])
344 AM_CONDITIONAL(WITH_PRIVATE_DOCS, [test x$with_private_docs = xyes])
346 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
349 dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
352 LDFLAGS="$LDFLAGS -Wl,--no-undefined"
356 dnl ******************************
358 dnl ******************************
359 AC_MSG_CHECKING([for Win32])
363 NO_UNDEFINED='-no-undefined'
364 SOCKET_LIBS='-lws2_32 -ldnsapi'
366 LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
367 AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes])
368 AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
375 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
382 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
385 AC_MSG_RESULT([$os_win32])
386 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
387 AC_SUBST(NO_UNDEFINED)
388 AC_SUBST(SOCKET_LIBS)
389 AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
391 dnl **************************************
392 dnl Check for posix compatible sys/wait.h
393 dnl **************************************
396 dnl ************************************
397 dnl Check for posix compatible alloca()
398 dnl ************************************
401 dnl ******************************
402 dnl Checks for functions
403 dnl ******************************
404 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
406 dnl ***********************************
407 dnl Check for base dependencies early.
408 dnl ***********************************
409 PKG_CHECK_MODULES(GNOME_PLATFORM,
410 [gio-2.0 >= glib_minimum_version
411 gmodule-2.0 >= glib_minimum_version
412 libxml-2.0 >= libxml_minimum_version
413 libsoup-2.4 >= soup_minimum_version])
415 if test x$os_win32 = xno; then
416 PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
419 dnl ******************************
420 dnl Check for libphonenumber
421 dnl ******************************
423 EVO_PHONENUMBER_SUPPORT
425 dnl *************************
427 dnl *************************
429 [AS_HELP_STRING([--enable-gtk],
430 [enable GTK+ (default=yes)])],
431 [enable_gtk=$enableval], [enable_gtk=yes])
432 AC_MSG_CHECKING([if GTK+ support is enabled])
433 AC_MSG_RESULT([$enable_gtk])
434 if test "x$enable_gtk" = xyes; then
436 [GTK], [gtk+-3.0 >= gdk_minimum_version],,
439 gtk+-3.0 not found (or version < gdk_minimum_version)
441 If you want to disable GTK+ support,
442 please append --disable-gtk to configure.
446 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if you have the gtk+-3.0 package.])
448 AM_CONDITIONAL(HAVE_GTK, [test x$enable_gtk = xyes])
450 dnl *******************************
451 dnl Check for GNOME Online Accounts
452 dnl *******************************
454 [AS_HELP_STRING([--enable-goa],
455 [enable GNOME Online Accounts support (default=yes)])],
456 [enable_goa=$enableval], [enable_goa=yes])
457 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
458 AC_MSG_RESULT([$enable_goa])
459 if test "x$enable_goa" = xyes; then
461 [GOA], [goa-1.0 >= goa_minimum_version],,
464 goa-1.0 not found (or version < goa_minimum_version)
466 If you want to disable GNOME Online Accounts support,
467 please append --disable-goa to configure.
471 AC_DEFINE(HAVE_GOA, 1, [Define to 1 if you have the goa-1.0 package.])
473 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
475 dnl ********************************
476 dnl Check for Ubuntu Online Accounts
477 dnl ********************************
479 [AS_HELP_STRING([--enable-uoa],
480 [enable Ubuntu Online Accounts support (default=yes)])],
481 [enable_uoa=$enableval], [enable_uoa=yes])
482 AC_MSG_CHECKING([if Ubuntu Online Accounts support is enabled])
483 AC_MSG_RESULT([$enable_uoa])
484 if test "x$enable_uoa" = xyes; then
487 [libaccounts-glib >= libaccounts_glib_minimum_version],,
490 libaccounts-glib not found (or version < libaccounts_glib_minimum_version)
492 If you want to disable Ubuntu Online Accounts support,
493 please append --disable-uoa to configure.
499 [libsignon-glib >= libsignon_glib_minimum_version],,
502 libsignon-glib not found (or version < libsignon_glib_minimum_version)
504 If you want to disable Ubuntu Online Accounts support,
505 please append --disable-uoa to configure.
510 [JSON_GLIB], [json-glib-1.0],,
513 json-glib-1.0 not found
515 If you want to disable Ubuntu Online Accounts support,
516 please append --disable-uoa to configure.
524 librest-0.7 not found
526 If you want to disable Ubuntu Online Accounts support,
527 please append --disable-uoa to configure.
531 AC_DEFINE(HAVE_UOA, 1, [Have libaccounts-glib])
533 AM_CONDITIONAL(HAVE_UOA, [test x$enable_uoa = xyes])
535 dnl ***********************************
536 dnl Check for GNOME Keyring.
537 dnl ***********************************
538 if test x$os_win32 = xno; then
539 PKG_CHECK_MODULES(LIBSECRET,
540 [libsecret-unstable >= libsecret_minimum_version])
542 AC_SUBST(LIBSECRET_CFLAGS)
543 AC_SUBST(LIBSECRET_LIBS)
545 dnl **********************************************************
546 dnl gcr-base is needed for secure password exchange over D-Bus
547 dnl **********************************************************
548 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
549 AC_SUBST(GCR_BASE_CFLAGS)
550 AC_SUBST(GCR_BASE_LIBS)
552 LIBICAL_REQUIRED=libical_minimum_version
553 AC_SUBST(LIBICAL_REQUIRED)
555 dnl ******************************
557 dnl ******************************
558 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
560 AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
561 [AC_MSG_ERROR([No regex library found])])])
564 dnl ******************************
566 dnl ******************************
568 AS_HELP_STRING([--with-libdb=PREFIX],
569 [Prefix where libdb is installed]),
570 [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
572 DB_CFLAGS="-I$libdb_prefix/include"
573 DB_LIBS="-L$libdb_prefix/lib -ldb"
575 AC_MSG_CHECKING([Berkeley DB])
576 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
577 save_libs=$LIBS; LIBS="$DB_LIBS"
578 AC_LINK_IFELSE([AC_LANG_PROGRAM(
580 [[db_create(NULL, NULL, 0)]])],
581 [AC_MSG_RESULT([yes])],
582 [AC_MSG_ERROR([Cannot find libdb])])
588 dnl ******************************
590 dnl ******************************
594 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
595 AC_LINK_IFELSE([AC_LANG_PROGRAM(
602 cd = iconv_open ("UTF-8", "ISO-8859-1");
604 )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
606 if test "x$ac_cv_libiconv" = "xyes"; then
608 if test "x$os_win32" = "xyes"; then
609 dnl Don't pointlessly auto-export the global symbols
610 dnl from a potentially static libiconv.a
611 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
616 AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
619 if test "x$have_iconv" = "xyes"; then
620 if test "x$ac_cv_libiconv" = "xno"; then
621 AC_CHECK_FUNCS(gnu_get_libc_version)
623 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
624 AC_RUN_IFELSE([AC_LANG_SOURCE([[
628 #ifdef HAVE_GNU_GET_LIBC_VERSION
629 #include <gnu/libc-version.h>
632 char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
633 char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
634 char *transbuf = malloc (10), *trans = transbuf;
636 size_t jp_len = strlen (jp), utf8_len = 10;
637 size_t utf8_real_len = strlen (utf8);
639 #ifdef HAVE_GNU_GET_LIBC_VERSION
640 /* glibc 2.1.2's iconv is broken in hard to test ways. */
641 if (!strcmp (gnu_get_libc_version (), "2.1.2"))
645 cd = iconv_open ("UTF-8", "ISO-2022-JP");
646 if (cd == (iconv_t) -1)
648 if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
650 if (memcmp (utf8, transbuf, utf8_real_len) != 0)
654 ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
657 if test "x$have_iconv" = "xno"; then
658 AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
662 CFLAGS="$CFLAGS -I$srcdir"
664 AC_MSG_CHECKING([preferred charset name formats for system iconv])
665 AC_RUN_IFELSE([AC_LANG_SOURCE([[
667 #include "iconv-detect.c"
669 [AC_MSG_RESULT([found])],
670 [AC_MSG_RESULT([not found])
672 *** The iconv-detect program was unable to determine the
673 *** preferred charset name formats recognized by your
674 *** iconv library. It is suggested that you install a
675 *** working iconv library such as the one found at
676 *** ftp://ftp.gnu.org/pub/gnu/libiconv
678 [if test "x$os_win32" = xyes; then
679 AC_MSG_RESULT([using known win32 result])
680 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
681 echo >>iconv-detect.h
682 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
683 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
684 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
686 AC_MSG_RESULT([unknown])
688 *** We can't determine the preferred charset name formats
689 *** recognized by your iconv library. You are
690 *** cross-compiling and supposed to know what you are doing.
691 *** Please construct the iconv-detect.h file manually.
696 CFLAGS="$save_CFLAGS"
699 AC_ARG_ENABLE([backtraces],
700 [AS_HELP_STRING([--enable-backtraces],
701 [enable backtraces for camel_pointer_tracker (default=no)])],
702 [enable_backtraces=$enableval], [enable_backtraces=no])
704 if test "x$enable_backtraces" = xyes; then
705 dnl ****************************
706 dnl Check for backtrace_symbols function and dwfl from elfutils
707 dnl ****************************
708 AC_MSG_CHECKING([libc backtrace_symbols function])
709 AC_LINK_IFELSE([AC_LANG_PROGRAM(
710 [[#include <execinfo.h>]],
711 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
712 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
713 AC_MSG_RESULT([$ac_cv_have_bsf])
715 if test "x$ac_cv_have_bsf" = xyes; then
718 AC_MSG_CHECKING([elfutils/libdwfl])
719 AC_LINK_IFELSE([AC_LANG_PROGRAM(
720 [[#include <elfutils/libdwfl.h>]],
724 Dwarf_Addr module_low_addr;
727 dwfl_standard_find_debuginfo;
728 dwfl_linux_proc_find_elf;
730 dwfl_linux_proc_report (NULL, 1);
731 dwfl_report_end (NULL, NULL, NULL);
733 dwfl_module_addrname (NULL, NULL);
734 dwfl_module_getsrc (NULL, NULL);
735 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
736 DWARF_CB_ABORT; DWARF_CB_OK;
737 dwfl_getmodules (NULL, NULL, NULL, 0);
739 [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
740 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
744 if test "x$ac_cv_have_elfdwfl" = xyes; then
746 AC_SUBST(LIBDWFL_LIBS)
751 dnl ******************************
752 dnl Check for nl_langinfo features
753 dnl ******************************
754 EVO_CHECK_LANGINFO([CODESET])
755 EVO_CHECK_LANGINFO([_NL_ADDRESS_COUNTRY_AB2])
757 dnl *******************************************************
758 dnl Check to see if strftime supports the use of %l and %k
759 dnl *******************************************************
760 AC_MSG_CHECKING([for %l and %k support in strftime])
761 AC_RUN_IFELSE([AC_LANG_SOURCE(
762 [[ #include <stdlib.h>
765 int main(int argc, char **argv) {
771 timeinfo=localtime(&rawtime);
773 strftime(buf, 10, "%lx%k", timeinfo);
775 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
782 )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
783 AC_MSG_RESULT([$ac_cv_lkstrftime])
785 dnl ********************************************************************************
786 dnl security extension support (SSL and S/MIME)
788 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
789 dnl needed by Camel (SSL and S/MIME).
791 dnl The Evolution security extensions are only built if these libraries are found
792 dnl ********************************************************************************
795 AC_ARG_ENABLE([smime],
796 AS_HELP_STRING([--enable-smime],
797 [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
798 [enable_smime="$enableval"],[enable_smime="yes"])
800 AC_ARG_WITH([nspr-includes],
801 AS_HELP_STRING([--with-nspr-includes],
802 [Prefix of Mozilla nspr4 includes.]),
803 [with_nspr_includes="$withval"])
805 AC_ARG_WITH([nspr-libs],
806 AS_HELP_STRING([--with-nspr-libs],
807 [Prefix of Mozilla nspr4 libs.]),
808 [with_nspr_libs="$withval"])
810 AC_ARG_WITH([nss-includes],
811 AS_HELP_STRING([--with-nss-includes],
812 [Prefix of Mozilla nss3 includes.]),
813 [with_nss_includes="$withval"])
815 AC_ARG_WITH([nss-libs],
816 AS_HELP_STRING([--with-nss-libs],
817 [Prefix of Mozilla nss3 libs.]),
818 [with_nss_libs="$withval"])
820 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
826 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
827 if test "x${check_manually}" = "xno"; then
828 AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
829 mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
830 for pc in $mozilla_nspr_pcs; do
831 if $PKG_CONFIG --exists $pc; then
838 AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
839 mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
840 for pc in $mozilla_nss_pcs; do
841 if $PKG_CONFIG --exists $pc; then
848 if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
849 if test "x$enable_smime" = "xyes"; then
850 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
853 MANUAL_NSPR_CFLAGS=""
864 if test "x${check_manually}" = "xyes"; then
865 dnl ******************
867 dnl ******************
868 AC_MSG_CHECKING([for Mozilla nspr4 includes])
869 CPPFLAGS_save="$CPPFLAGS"
870 if test -n "$with_nspr_includes"; then
871 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
874 AC_CHECK_HEADERS(nspr.h prio.h,
875 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
876 CPPFLAGS="$CPPFLAGS_save"
878 if test "x${moz_nspr_includes}" = "xyes"; then
879 MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
881 AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
883 AC_MSG_RESULT([$moz_nspr_includes])
885 AC_MSG_CHECKING([for Mozilla nspr libraries])
886 CFLAGS_save="$CFLAGS"
887 LDFLAGS_save="$LDFLAGS"
889 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
891 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
893 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
894 if test -n "${with_nspr_libs}"; then
895 LDFLAGS="$LDFLAGS -L$with_nspr_libs"
900 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
901 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
903 CFLAGS="$CFLAGS_save"
904 LDFLAGS="$LDFLAGS_save"
907 if test "x${moz_nspr_libs}" = "xyes"; then
908 if test -n "${with_nspr_libs}"; then
909 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
911 MANUAL_NSPR_LIBS="$nsprlibs"
914 AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
916 AC_MSG_RESULT([$moz_nspr_libs])
918 dnl *****************
920 dnl *****************
921 AC_MSG_CHECKING([for Mozilla nss3 includes])
922 CPPFLAGS_save="$CPPFLAGS"
923 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
925 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
926 [moz_nss_includes="yes"],[moz_nss_includes="no"])
927 CPPFLAGS="$CPPFLAGS_save"
929 if test "x${moz_nss_includes}" = "xyes"; then
930 MANUAL_NSS_CFLAGS="-I$with_nss_includes"
932 AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
934 AC_MSG_RESULT($moz_nss_includes)
936 AC_MSG_CHECKING([for Mozilla nss libraries])
937 LDFLAGS_save="$LDFLAGS"
939 nsslibs="-lssl3 -lsmime3 -lnss3"
941 LIBS="$nsslibs $nsprlibs"
942 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
943 if test -n "${with_nss_libs}"; then
944 LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
946 LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
949 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
950 [moz_nss_libs="yes"],[moz_nss_libs="no"])
951 LDFLAGS="$LDFLAGS_save"
954 if test "x${moz_nss_libs}" = "xyes"; then
955 if test "x${enable_smime}" = "xyes"; then
956 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
959 if test -n "${with_nss_libs}"; then
960 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
962 MANUAL_NSS_LIBS="$nsslibs"
965 AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
967 AC_MSG_RESULT([$moz_nss_libs])
969 MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
970 MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
973 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
975 dnl For pkgconfig files.
976 AC_SUBST(mozilla_nss)
977 AC_SUBST(mozilla_nspr)
979 AC_SUBST(MANUAL_NSPR_CFLAGS)
980 AC_SUBST(MANUAL_NSPR_LIBS)
981 AC_SUBST(MANUAL_NSS_CFLAGS)
982 AC_SUBST(MANUAL_NSS_LIBS)
984 dnl ******************************
985 dnl system mail stuff
986 dnl ******************************
987 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
988 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
990 AC_MSG_CHECKING([system mail directory])
991 if test -d /var/mail -a '!' -h /var/mail ; then
992 system_mail_dir="/var/mail"
994 system_mail_dir="/var/spool/mail"
996 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
998 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
1000 CAMEL_LOCK_HELPER_USER=""
1001 CAMEL_LOCK_HELPER_GROUP=""
1002 system_mail_perm="world writable"
1005 CAMEL_LOCK_HELPER_USER=""
1006 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
1007 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
1010 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
1011 CAMEL_LOCK_HELPER_GROUP=""
1012 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
1015 CAMEL_LOCK_HELPER_USER=""
1016 CAMEL_LOCK_HELPER_GROUP=""
1017 system_mail_perm="???"
1021 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
1022 AC_SUBST(CAMEL_LOCK_HELPER_USER)
1023 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
1025 dnl ******************************
1027 dnl ******************************
1028 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
1029 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1030 [[ #include <time.h> ]],
1035 )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
1036 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
1037 AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
1039 AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
1040 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1041 [[ #include <time.h> ]],
1043 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
1044 if test "x$ac_cv_var_timezone" = "xyes"; then
1045 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
1046 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
1047 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1048 [[ #include <time.h> ]],
1050 )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
1051 if test "x$ac_cv_var_altzone" = "xyes"; then
1052 AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
1055 AC_MSG_ERROR([unable to find a way to determine timezone])
1059 dnl ******************************
1060 dnl ctime_r prototype
1061 dnl ******************************
1062 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
1064 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1065 [[ #include <time.h> ]],
1068 ctime_r (&date, buf, 100); ]]
1069 )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
1072 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
1073 AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
1076 dnl ******************************
1077 dnl gethostbyname_r prototype
1078 dnl ******************************
1079 AC_CHECK_FUNCS(gethostbyname_r,[
1080 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
1082 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1084 #include "confdefs.h"
1085 #include <sys/types.h>
1086 #include <sys/socket.h>
1087 #include <netinet/in.h>
1089 #define BUFSIZE (sizeof(struct hostent)+10)
1092 struct hostent hent;
1093 char buffer[BUFSIZE];
1094 int bufsize=BUFSIZE;
1096 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
1098 )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
1101 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
1102 AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
1105 dnl ******************************
1106 dnl gethostbyaddr_r prototype
1107 dnl ******************************
1108 AC_CHECK_FUNCS(gethostbyaddr_r,[
1109 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_args],
1111 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1113 #include "confdefs.h"
1114 #include <sys/types.h>
1115 #include <sys/socket.h>
1116 #include <netinet/in.h>
1118 #define BUFSIZE (sizeof(struct hostent)+10)
1121 struct hostent hent;
1122 char buffer[BUFSIZE];
1123 int bufsize=BUFSIZE;
1125 (void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
1126 )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
1129 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
1130 AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
1133 dnl ******************************
1134 dnl stat(v)fs location/type
1135 dnl ******************************
1136 AC_CHECK_HEADER([sys/statvfs.h],
1137 [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
1138 [[ #if HAVE_SYS_STATVFS_H
1139 #include <sys/statvfs.h>
1142 AC_CHECK_FUNCS(statvfs)
1144 AC_CHECK_HEADER([sys/param.h],
1145 [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
1146 [[ #if HAVE_SYS_PARAM_H
1147 #include <sys/param.h>
1150 AC_CHECK_HEADER([sys/mount.h],
1151 [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1152 [[ #if HAVE_SYS_MOUNT_H
1153 #include <sys/mount.h>
1156 AC_CHECK_FUNCS(statfs)
1158 dnl ******************************
1159 dnl IPv6 support and getaddrinfo calls
1160 dnl ******************************
1161 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1163 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1164 [[ #include "confdefs.h"
1165 #include <sys/types.h>
1166 #include <sys/socket.h>
1167 #include <netinet/in.h>
1171 [[ #ifndef NI_MAXHOST
1172 #define NI_MAXHOST 1025
1176 #define NI_MAXSERV 32
1179 struct addrinfo hints, *res;
1180 struct sockaddr_in6 sin6;
1182 char host[NI_MAXHOST];
1183 char serv[NI_MAXSERV];
1185 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1187 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1188 )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1191 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1192 AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1193 if test "x$enable_ipv6" = "xyes" ; then
1194 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1198 AC_ARG_ENABLE([ipv6],
1199 AS_HELP_STRING([--enable-ipv6=no/yes],
1200 [Enable support for resolving IPv6 addresses.]),
1201 [enable_ipv6=$enableval],[enable_ipv6=yes])
1202 if test "x$enable_ipv6" = "xyes"; then
1204 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1205 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1206 [[ #include "confdefs.h"
1207 #include <sys/types.h>
1208 #include <sys/socket.h>
1209 #include <netinet/in.h>
1212 [[ struct addrinfo hints;
1213 hints.ai_flags = AI_ADDRCONFIG;
1215 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1221 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1223 AC_CHECK_HEADER([wspiapi.h],
1224 [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1226 dnl **********************************
1227 dnl Weather calendar backend support
1228 dnl **********************************
1229 AC_MSG_CHECKING([if we should build the weather calendar backend])
1230 AC_ARG_ENABLE([weather],
1231 [AS_HELP_STRING([--enable-weather],
1232 [Build the weather calendar backend (default=yes)])],
1233 [use_gweather=$enableval], [use_gweather=yes])
1235 AC_MSG_RESULT([$use_gweather])
1236 if test "x$use_gweather" = "xyes"; then
1238 [LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1241 gweather-3.0 not found (or version < gweather_minimum_version)
1243 If you want to disable weather calendar support,
1244 please append --disable-weather to configure.
1248 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1250 dnl ******************************
1252 dnl ******************************
1253 AC_ARG_ENABLE([nntp],
1254 AS_HELP_STRING([--enable-nntp],
1255 [Build Usenet news (NNTP) backend]),
1256 [enable_nntp=$enableval],[enable_nntp=yes])
1257 if test "x$enable_nntp" = "xyes"; then
1258 AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
1263 AM_CONDITIONAL(ENABLE_NNTP, [test x$enable_nntp = xyes])
1265 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1267 dnl ******************************
1269 dnl ******************************
1270 AC_ARG_ENABLE([dot-locking],
1271 AS_HELP_STRING([--enable-dot-locking=yes/no],
1272 [Enable support for locking mail files with dot locking]),
1273 [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1275 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1276 AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1282 AC_ARG_ENABLE([file-locking],
1283 AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1284 [Enable support for locking mail files with file locking]),
1285 [],[enable_file_locking=fcntl])
1287 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1288 AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1291 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1292 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1299 dnl ******************************
1300 dnl sendmail operation
1301 dnl ******************************
1302 AC_MSG_CHECKING([for SunOS broken spool format])
1303 if test "x$host_os" = "xsunos" ; then
1304 with_broken_spool="yes"
1307 AC_ARG_WITH([broken-spool],
1308 AS_HELP_STRING([--with-broken-spool=yes/no],
1309 [Using SunOS/Solaris sendmail which has a broken spool format]),
1310 [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1312 if test "x$with_broken_spool" = "xyes"; then
1313 AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1316 AC_MSG_RESULT([$with_broken_spool])
1321 EVO_KRB5_SUPPORT(no)
1323 dnl ******************************
1325 dnl ******************************
1328 dnl ******************************
1330 dnl ******************************
1331 if test "x$os_win32" != "xyes"; then
1333 case $with_openldap in
1338 case $with_static_ldap in
1340 msg_ldap="$with_openldap (static)"
1343 msg_ldap="$with_openldap (dynamic)"
1348 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1349 if test "x$with_openldap" = "xno" ; then
1350 EVO_SUNLDAP_CHECK(no)
1351 case $with_sunldap in
1356 case $with_static_sunldap in
1358 msg_ldap="$with_sunldap (static)"
1361 msg_ldap="$with_sunldap (dynamic)"
1368 AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1370 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1372 dnl Win32 LDAP support
1373 LDAP_CFLAGS="-DLDAP_DEPRECATED"
1374 LDAP_LIBS="-lwldap32"
1375 AC_SUBST(LDAP_CFLAGS)
1377 AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1378 AM_CONDITIONAL(ENABLE_LDAP, true)
1379 AM_CONDITIONAL(SUNLDAP, false)
1383 dnl ******************************
1384 dnl Utility macro to set compiler flags for a specific lib.
1385 dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
1386 dnl ******************************
1387 AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
1388 PKG_CHECK_MODULES([$1], [$2])
1389 $1_CFLAGS="[$]$1_CFLAGS $3 "
1390 $1_LIBS="[$]$1_LIBS $4 "
1393 dnl ******************************
1395 dnl ******************************
1396 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1398 if test "x$enable_maintainer_mode" = "xyes" ; then
1399 EVO_SET_COMPILE_FLAGS(FACTORY_GTK, "gtk+-3.0")
1400 AC_SUBST(FACTORY_GTK_CFLAGS)
1401 AC_SUBST(FACTORY_GTK_LIBS)
1404 dnl ******************************
1405 dnl libedataserver flags
1406 dnl ******************************
1407 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1409 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1410 AC_SUBST(E_DATA_SERVER_CFLAGS)
1411 AC_SUBST(E_DATA_SERVER_LIBS)
1413 dnl ******************************
1414 dnl libebackend flags
1415 dnl ******************************
1416 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libsoup-2.4 libxml-2.0"
1418 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1419 AC_SUBST(E_BACKEND_CFLAGS)
1420 AC_SUBST(E_BACKEND_LIBS)
1422 dnl ******************************
1423 dnl evolution-addressbook flags
1424 dnl ******************************
1425 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 libsecret-1"
1427 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1428 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1429 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1431 dnl ******************************
1432 dnl evolution-calendar flags
1433 dnl ******************************
1434 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 libsecret-1"
1437 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1438 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1439 dnl to differentiate between <libical/ical.h> and <ical.h>
1440 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1441 dnl libical is fixed, we have to work-around the buggy CFlags.
1443 LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1444 LIBICAL_EXTRA_LIBS=""
1445 AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1446 AC_SUBST(LIBICAL_EXTRA_LIBS)
1448 EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1449 AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1450 AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1452 dnl ****************************
1453 dnl Check for ical_set_unknown_token_handling_setting function
1454 dnl ****************************
1455 AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1456 save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1457 save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1458 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1459 [[#include <libical/ical.h>]],
1460 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1461 [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])
1464 AC_MSG_RESULT([$ac_cv_have_iuth])
1466 dnl ******************************
1468 dnl ******************************
1469 LIBGDATA_REQUIRED=libgdata_minimum_version
1470 AC_SUBST(LIBGDATA_REQUIRED)
1471 AC_ARG_ENABLE([google],
1472 [AS_HELP_STRING([--enable-google],
1473 [enable Google Contacts support (default=yes)])],
1474 [enable_google=$enableval], [enable_google=yes])
1475 AC_MSG_CHECKING([if Google Contacts support is enabled])
1476 AC_MSG_RESULT([$enable_google])
1477 if test "x$enable_google" = xyes; then
1478 EVO_SET_COMPILE_FLAGS(GDATA, libgdata >= libgdata_minimum_version)
1479 AC_SUBST(GDATA_CFLAGS)
1480 AC_SUBST(GDATA_LIBS)
1482 AC_DEFINE(HAVE_GOOGLE, 1, [Define to 1 if you have the google-1.0 package.])
1484 AM_CONDITIONAL(HAVE_GOOGLE, [test x$enable_google = xyes])
1486 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1487 AC_SUBST(SOUP_CFLAGS)
1490 dnl ******************************
1492 dnl ******************************
1493 SQLITE_REQUIRED=sqlite_minimum_version
1494 AC_SUBST(SQLITE_REQUIRED)
1497 dnl deflateInit is a #define, use deflateEnd instead
1498 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1500 if test "x$zlib_found" = "xfalse"; then
1501 AC_MSG_ERROR([*** zlib is required])
1504 dnl ******************************
1505 dnl Checks for large file support
1506 dnl ******************************
1507 AC_ARG_ENABLE([largefile],
1508 AS_HELP_STRING([--enable-largefile],
1509 [enable support for large files [[default=yes]]]),
1510 [],[enable_largefile="yes"])
1512 if test "x$enable_largefile" != "xno"; then
1514 AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1515 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1516 [[ #include <sys/types.h>
1517 #include <sys/stat.h>
1520 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]]
1521 )],[ac_cv_largefile64_source="no"],
1522 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1523 [[ #define _LARGEFILE64_SOURCE
1524 #include <sys/types.h>
1525 #include <sys/stat.h>
1528 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1529 [ac_cv_largefile64_source="unknown"])])
1532 enable_largefile="no"
1534 if test "x$ac_cv_largefile64_source" = "xyes"; then
1535 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1536 enable_largefile="yes"
1537 elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1538 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1541 if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1542 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1543 enable_largefile="yes"
1546 if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1547 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1548 enable_largefile="yes"
1551 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1555 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1557 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)
1558 AC_SUBST(CAMEL_CFLAGS)
1559 AC_SUBST(CAMEL_LIBS)
1561 dnl ******************************
1562 dnl Special directories
1563 dnl ******************************
1565 dnl If you add something here, consider whether or not you also
1566 dnl need to add it to one or more .pc.in files (for Connector,
1569 privdatadir='${datadir}'/evolution-data-server
1570 AC_SUBST(privdatadir)
1572 privincludedir='${includedir}'/evolution-data-server
1573 AC_SUBST(privincludedir)
1575 privlibdir='${libdir}'/evolution-data-server
1576 AC_SUBST(privlibdir)
1578 imagesdir='${datadir}'/pixmaps/evolution-data-server
1581 moduledir='${privlibdir}'/registry-modules
1584 ebook_backenddir='${privlibdir}'/addressbook-backends
1585 AC_SUBST(ebook_backenddir)
1587 ecal_backenddir='${privlibdir}'/calendar-backends
1588 AC_SUBST(ecal_backenddir)
1590 ro_sourcesdir='${privdatadir}'/ro-sources
1591 AC_SUBST(ro_sourcesdir)
1593 rw_sourcesdir='${privdatadir}'/rw-sources
1594 AC_SUBST(rw_sourcesdir)
1596 if test "x$use_gweather" = "xyes"; then
1597 weatherdatadir="$privdatadir/weather"
1598 AC_SUBST(weatherdatadir)
1601 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1602 camel_providerdir='${privlibdir}'/camel-providers
1603 AC_SUBST(camel_providerdir)
1605 dnl *******************
1606 dnl D-BUS service stuff
1607 dnl *******************
1608 m4_pattern_allow([AM_V_GEN])
1609 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)|" $< > $@'
1610 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1612 dnl ******************************
1614 dnl ******************************
1618 dnl ******************************
1620 dnl ******************************
1621 AC_PATH_PROG(GPERF, gperf, [no])
1622 if test "x$GPERF" = "xno"; then
1623 AC_MSG_ERROR([You need gperf to build evolution-data-server])
1626 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1628 dnl ******************************
1630 dnl ******************************
1631 AC_ARG_ENABLE(vala-bindings,
1632 AC_HELP_STRING([--enable-vala-bindings],
1633 [build the EXPERIMENTAL Vala bindings]),
1634 enable_vala_bindings=$enableval,
1635 enable_vala_bindings=no)
1637 if test x$enable_vala_bindings = xyes; then
1638 if test "x$INTROSPECTION_SCANNER" = x; then
1639 AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1642 AM_PROG_VALAC([0.13.0])
1645 AC_PATH_PROG(VALAC, valac, valac)
1649 AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1651 if test "x$VAPIGEN" = "xfalse"; then
1652 AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1658 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1661 dnl ******************************
1663 dnl ******************************
1665 export privincludedir
1670 evolution-data-server-zip
1671 evolution-data-server.pc
1672 addressbook/Makefile
1673 addressbook/libebook/Makefile
1674 addressbook/libebook/libebook.pc
1675 addressbook/libebook-contacts/Makefile
1676 addressbook/libebook-contacts/libebook-contacts.pc
1677 addressbook/libedata-book/Makefile
1678 addressbook/libedata-book/libedata-book.pc
1679 addressbook/libegdbus/Makefile
1680 addressbook/backends/Makefile
1681 addressbook/backends/file/Makefile
1682 addressbook/backends/ldap/Makefile
1683 addressbook/backends/google/Makefile
1684 addressbook/backends/google/tests/Makefile
1685 addressbook/backends/webdav/Makefile
1688 calendar/libecal/Makefile
1689 calendar/libecal/libecal.pc
1690 calendar/libedata-cal/Makefile
1691 calendar/libedata-cal/libedata-cal.pc
1692 calendar/libegdbus/Makefile
1693 calendar/backends/Makefile
1694 calendar/backends/caldav/Makefile
1695 calendar/backends/file/Makefile
1696 calendar/backends/http/Makefile
1697 calendar/backends/contacts/Makefile
1698 calendar/backends/weather/Makefile
1700 camel/providers/Makefile
1701 camel/providers/imapx/Makefile
1702 camel/providers/local/Makefile
1703 camel/providers/nntp/Makefile
1704 camel/providers/pop3/Makefile
1705 camel/providers/sendmail/Makefile
1706 camel/providers/smtp/Makefile
1707 camel/tests/Makefile
1708 camel/tests/folder/Makefile
1709 camel/tests/lib/Makefile
1710 camel/tests/message/Makefile
1711 camel/tests/mime-filter/Makefile
1712 camel/tests/misc/Makefile
1713 camel/tests/smime/Makefile
1716 libebackend/Makefile
1717 libebackend/libebackend.pc
1718 libedataserver/Makefile
1719 libedataserver/eds-version.h
1720 libedataserver/libedataserver.pc
1722 modules/cache-reaper/Makefile
1723 modules/gnome-online-accounts/Makefile
1724 modules/google-backend/Makefile
1725 modules/owncloud-backend/Makefile
1726 modules/ubuntu-online-accounts/Makefile
1727 modules/ubuntu-online-accounts/calendar.service-type.in
1728 modules/ubuntu-online-accounts/contacts.service-type.in
1729 modules/ubuntu-online-accounts/evolution-data-server.application.in
1730 modules/ubuntu-online-accounts/evolution-data-server-uoa.desktop.in
1731 modules/ubuntu-online-accounts/google-calendar.service.in
1732 modules/ubuntu-online-accounts/google-contacts.service.in
1733 modules/ubuntu-online-accounts/google-gmail.service.in
1734 modules/ubuntu-online-accounts/mail.service-type.in
1735 modules/ubuntu-online-accounts/yahoo-calendar.service.in
1736 modules/ubuntu-online-accounts/yahoo-mail.service.in
1737 modules/trust-prompt/Makefile
1738 modules/yahoo-backend/Makefile
1741 services/evolution-addressbook-factory/Makefile
1742 services/evolution-calendar-factory/Makefile
1743 services/evolution-source-registry/Makefile
1744 services/evolution-user-prompter/Makefile
1746 tests/libebook/Makefile
1747 tests/libebook-contacts/Makefile
1748 tests/libebook/client/Makefile
1749 tests/libebook/vcard/Makefile
1750 tests/libecal/Makefile
1751 tests/libecal/client/Makefile
1752 tests/libedata-cal/Makefile
1753 tests/libedataserver/Makefile
1754 tests/test-server-utils/Makefile
1755 tests/test-server-utils/services/Makefile
1756 tests/test-server-utils/services/org.gnome.evolution.dataserver.AddressBook.service
1757 tests/test-server-utils/services/org.gnome.evolution.dataserver.Calendar.service
1758 tests/test-server-utils/services/org.gnome.evolution.dataserver.Sources.service
1760 docs/reference/Makefile
1761 docs/reference/addressbook/Makefile
1762 docs/reference/addressbook/libebook/Makefile
1763 docs/reference/addressbook/libebook-contacts/Makefile
1764 docs/reference/addressbook/libedata-book/Makefile
1765 docs/reference/calendar/Makefile
1766 docs/reference/calendar/libecal/Makefile
1767 docs/reference/calendar/libedata-cal/Makefile
1768 docs/reference/camel/Makefile
1769 docs/reference/libedataserver/Makefile
1770 docs/reference/libebackend/Makefile
1771 docs/reference/private/Makefile
1778 evolution-data-server has been configured as follows:
1779 Weather calendar: $use_gweather
1780 Mail Directory: $system_mail_dir, $system_mail_perm
1781 LDAP support: $msg_ldap
1782 NNTP support: $msg_nntp
1783 Kerberos 5: $msg_krb5
1784 SMIME support: $msg_smime
1785 IPv6 support: $msg_ipv6
1786 Phone number support: $msg_phonenumber
1787 Dot Locking: $msg_dot
1788 File Locking: $msg_file
1789 Large files: $enable_largefile
1790 Gtk Doc: $enable_gtk_doc
1791 Introspection: $enable_introspection
1792 Vala bindings: $enable_vala_bindings
1793 GNOME Online Accounts $enable_goa
1794 Ubuntu Online Accounts $enable_uoa
1795 Google Contacts $enable_google
1797 Code coverage (gcov): $enable_code_coverage
1798 Strict building: $enable_strict