2 dnl Evolution-Data-Server version
3 m4_define([eds_major_version], [3])
4 m4_define([eds_minor_version], [11])
5 m4_define([eds_micro_version], [3])
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.12])
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.36])
39 m4_define([glib_encoded_version], [GLIB_VERSION_2_36])
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.42])
47 m4_define([soup_encoded_version], [SOUP_VERSION_2_42])
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.8])
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.AddressBook6"
77 CALENDAR_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Calendar4"
78 SOURCES_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Sources2"
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 *********************************************
180 dnl ******************************
181 dnl Compiler Warning Flags
182 dnl ******************************
183 proposed_warning_flags="-Wall -Wextra
184 -Wdeprecated-declarations
185 -Werror-implicit-function-declaration
186 -Wformat-security -Winit-self
187 -Wmissing-declarations -Wmissing-include-dirs
188 -Wmissing-noreturn -Wpointer-arith
189 -Wredundant-decls -Wundef -Wwrite-strings"
191 proposed_c_warning_flags="$proposed_warning_flags
192 -Wdeclaration-after-statement
193 -Wno-missing-field-initializers
195 -Wno-unused-parameter
198 proposed_cxx_warning_flags="$proposed_warning_flags
201 AS_COMPILER_FLAGS(WARNING_FLAGS, [$proposed_c_warning_flags])
202 AC_SUBST(WARNING_FLAGS)
204 dnl Other useful compiler warnings for test builds only.
205 dnl These may produce warnings we have no control over,
206 dnl or false positives we don't always want to see.
208 dnl -Wformat-nonliteral
209 dnl -Wmissing-format-attribute
211 dnl -Wstrict-aliasing=2
213 AM_CFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
216 dnl C++ Compiler flags, needed for ICU C++ access and libphonenumber usage
220 AS_COMPILER_FLAGS(CXX_WARNING_FLAGS, [$proposed_cxx_warning_flags])
221 AC_SUBST(CXX_WARNING_FLAGS)
222 AM_CXXFLAGS="$CXX_WARNING_FLAGS"
223 AC_SUBST(AM_CXXFLAGS)
226 dnl Permits linking of C++ based libraries using the C linker if needed.
227 AC_SUBST([predeps_CXX])
228 AC_SUBST([postdeps_CXX])
230 dnl *******************************
231 dnl Check for --enable-strict
232 dnl *******************************
233 AC_ARG_ENABLE([strict],
234 [AS_HELP_STRING([--enable-strict],
235 [enable strict building, like without deprecated symbols (default=auto); auto enables strict building only if .git subdirectory exists])],
236 [enable_strict=$enableval], [enable_strict=auto])
238 AC_MSG_CHECKING([if strict building is enabled])
239 if test "x$enable_strict" = xauto; then
240 dnl Be strict when compiling with .git subdirectory
241 if test -d .git ; then
247 AC_MSG_RESULT([$enable_strict])
251 if test "x$enable_strict" = xyes; then
252 AM_CPPFLAGS="$AM_CPPFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
255 dnl Warn about API usage that violates our minimum requirements.
256 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MAX_ALLOWED=glib_encoded_version"
257 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MAX_ALLOWED=gdk_encoded_version"
258 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MAX_ALLOWED=soup_encoded_version"
260 dnl These will suppress warnings about newly-deprecated symbols. Ideally
261 dnl these settings should match our minimum requirements and we will clean
262 dnl up any new deprecation warnings after bumping our minimum requirements.
263 dnl But if the warnings get to be overwhelming, use fixed versions instead.
264 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MIN_REQUIRED=glib_encoded_version"
265 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MIN_REQUIRED=gdk_encoded_version"
266 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MIN_REQUIRED=soup_encoded_version"
268 AC_SUBST(AM_CPPFLAGS)
270 dnl ******************************
271 dnl Initialize maintainer mode
272 dnl ******************************
273 AM_MAINTAINER_MODE([enable])
275 if test "x$enable_maintainer_mode" = "xyes" ; then
276 AC_DEFINE(ENABLE_MAINTAINER_MODE, 1, [Configured with enabled maintainer mode])
287 dnl For gen-western-table.py
290 dnl GCC 4.4 got more aggressive in its aliasing optimizations, changing
291 dnl behavior that -- according to the C99 standard -- is supposed to be
292 dnl undefined. We may still have aliasing abuses lying around that rely
293 dnl on GCC's previous "undefined" behavior, so disable strict-aliasing
294 dnl optimization until we can find and fix all the abuses.
295 dnl (AC_PROG_CC must run first to set the GCC variable.)
296 dnl XXX This really belongs in AM_CFLAGS.
297 if test "x${GCC}" = "xyes"; then
298 CFLAGS="$CFLAGS -fno-strict-aliasing"
301 dnl ******************************
303 dnl ******************************
304 IT_PROG_INTLTOOL([0.35.5])
306 GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
307 AC_SUBST(GETTEXT_PACKAGE)
308 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
310 localedir='$(prefix)/$(DATADIRNAME)/locale'
313 dnl ******************************
314 dnl Initialize libtool
315 dnl ******************************
317 LT_INIT(disable-static win32-dll)
321 dnl This relies on $SED, which is defined in ltmain.sh, which
322 dnl is invoked by LT_INIT (at least I think that's how it works).
325 dnl ******************************
327 dnl ******************************
328 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
330 dnl The private D-Bus documentation is for developers only.
331 AC_ARG_WITH([private-docs],
332 AS_HELP_STRING([--with-private-docs],
333 [Build documentation for private libraries ]
334 [(requires --enable-gtk-doc) [default=no]],),
335 [with_private_docs="$withval"],[with_private_docs="no"])
336 AM_CONDITIONAL(WITH_PRIVATE_DOCS, [test x$with_private_docs = xyes])
338 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
341 dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
344 LDFLAGS="$LDFLAGS -Wl,--no-undefined"
348 dnl ******************************
350 dnl ******************************
351 AC_MSG_CHECKING([for Win32])
355 NO_UNDEFINED='-no-undefined'
356 SOCKET_LIBS='-lws2_32 -ldnsapi'
358 LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
359 AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes])
360 AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
367 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
374 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
377 AC_MSG_RESULT([$os_win32])
378 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
379 AC_SUBST(NO_UNDEFINED)
380 AC_SUBST(SOCKET_LIBS)
381 AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
383 dnl **************************************
384 dnl Check for posix compatible sys/wait.h
385 dnl **************************************
388 dnl ************************************
389 dnl Check for posix compatible alloca()
390 dnl ************************************
393 dnl ******************************
394 dnl Checks for functions
395 dnl ******************************
396 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
398 dnl ***********************************
399 dnl Check for base dependencies early.
400 dnl ***********************************
401 PKG_CHECK_MODULES(GNOME_PLATFORM,
402 [gio-2.0 >= glib_minimum_version
403 gmodule-2.0 >= glib_minimum_version
404 libxml-2.0 >= libxml_minimum_version
405 libsoup-2.4 >= soup_minimum_version])
407 if test x$os_win32 = xno; then
408 PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
411 dnl ******************************
412 dnl Check for libphonenumber
413 dnl ******************************
415 EVO_PHONENUMBER_SUPPORT
417 dnl *******************
419 dnl *******************
421 dnl ICU recently started shipping pkg-config files but it's
422 dnl not present on many systems, if we don't find the pkg-config
423 dnl file then let's fallback on a manual check
425 PKG_CHECK_MODULES(ICU, icu-i18n, enable_icu=yes, [
427 AC_CHECK_HEADERS(unicode/ucol.h,, enable_icu=no)
428 AC_MSG_CHECKING([for libicui18n])
430 LIBS="$LIBS -licui18n -licuuc -licudata"
431 AC_TRY_LINK([#include <unicode/ucol.h>],
432 [ucol_open ("", NULL);],
434 AC_MSG_RESULT(no); enable_icu=no)
436 if [test x$enable_icu = xyes]; then
437 ICU_CFLAGS=-D_REENTRANT
438 ICU_LIBS="-licui18n -licuuc -licudata"
442 AC_MSG_ERROR([ICU libs not found, icu-i18n is required.])
446 dnl *************************
448 dnl *************************
450 [AS_HELP_STRING([--enable-gtk],
451 [enable GTK+ (default=yes)])],
452 [enable_gtk=$enableval], [enable_gtk=yes])
453 AC_MSG_CHECKING([if GTK+ support is enabled])
454 AC_MSG_RESULT([$enable_gtk])
455 if test "x$enable_gtk" = xyes; then
457 [GTK], [gtk+-3.0 >= gdk_minimum_version],,
460 gtk+-3.0 not found (or version < gdk_minimum_version)
462 If you want to disable GTK+ support,
463 please append --disable-gtk to configure.
468 [GCR], [gcr-3 >= gcr_minimum_version],,
471 gcr-3.0 not found (or version < gcr_minimum_version)
473 If you want to disable gcr-3.0's GTK+ widgets,
474 please append --disable-gtk to configure.
478 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if you have the gtk+-3.0 package.])
480 AM_CONDITIONAL(HAVE_GTK, [test x$enable_gtk = xyes])
483 dnl ******************************************
484 dnl Check whether to build examples/demos
485 dnl ******************************************
486 AC_ARG_ENABLE([examples],
487 [AS_HELP_STRING([--enable-examples],
488 [enable the building examples (default=yes)])],
489 [enable_examples=$enableval], [enable_examples=yes])
490 AC_MSG_CHECKING([if examples should be built])
491 AC_MSG_RESULT([$enable_examples])
492 if test "x$enable_examples" = xyes; then
493 PKG_CHECK_MODULES([EXAMPLES],
494 [gtk+-3.0 >= 3.10 glib-2.0 >= 2.38],,
496 Some packages were not available to build the example program(s).
498 If you want to disable examples, please
499 append --disable-examples to configure.
502 AC_DEFINE(BUILD_EXAMPLES, 1, [Define to 1 if the examples should be built.])
504 AM_CONDITIONAL(BUILD_EXAMPLES, [test x$enable_examples = xyes])
507 dnl *******************************
508 dnl Check for GNOME Online Accounts
509 dnl *******************************
511 [AS_HELP_STRING([--enable-goa],
512 [enable GNOME Online Accounts support (default=yes)])],
513 [enable_goa=$enableval], [enable_goa=yes])
514 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
515 AC_MSG_RESULT([$enable_goa])
516 if test "x$enable_goa" = xyes; then
518 [GOA], [goa-1.0 >= goa_minimum_version],,
521 goa-1.0 not found (or version < goa_minimum_version)
523 If you want to disable GNOME Online Accounts support,
524 please append --disable-goa to configure.
528 AC_DEFINE(HAVE_GOA, 1, [Define to 1 if you have the goa-1.0 package.])
530 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
532 dnl ********************************
533 dnl Check for Ubuntu Online Accounts
534 dnl ********************************
536 [AS_HELP_STRING([--enable-uoa],
537 [enable Ubuntu Online Accounts support (default=yes)])],
538 [enable_uoa=$enableval], [enable_uoa=yes])
539 AC_MSG_CHECKING([if Ubuntu Online Accounts support is enabled])
540 AC_MSG_RESULT([$enable_uoa])
541 if test "x$enable_uoa" = xyes; then
544 [libaccounts-glib >= libaccounts_glib_minimum_version],,
547 libaccounts-glib not found (or version < libaccounts_glib_minimum_version)
549 If you want to disable Ubuntu Online Accounts support,
550 please append --disable-uoa to configure.
556 [libsignon-glib >= libsignon_glib_minimum_version],,
559 libsignon-glib not found (or version < libsignon_glib_minimum_version)
561 If you want to disable Ubuntu Online Accounts support,
562 please append --disable-uoa to configure.
567 [JSON_GLIB], [json-glib-1.0],,
570 json-glib-1.0 not found
572 If you want to disable Ubuntu Online Accounts support,
573 please append --disable-uoa to configure.
581 librest-0.7 not found
583 If you want to disable Ubuntu Online Accounts support,
584 please append --disable-uoa to configure.
588 AC_DEFINE(HAVE_UOA, 1, [Have libaccounts-glib])
590 AM_CONDITIONAL(HAVE_UOA, [test x$enable_uoa = xyes])
592 dnl ***********************************
593 dnl Check for GNOME Keyring.
594 dnl ***********************************
595 if test x$os_win32 = xno; then
596 PKG_CHECK_MODULES(LIBSECRET,
597 [libsecret-unstable >= libsecret_minimum_version])
599 AC_SUBST(LIBSECRET_CFLAGS)
600 AC_SUBST(LIBSECRET_LIBS)
602 dnl **********************************************************
603 dnl gcr-base is needed for secure password exchange over D-Bus
604 dnl **********************************************************
605 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
606 AC_SUBST(GCR_BASE_CFLAGS)
607 AC_SUBST(GCR_BASE_LIBS)
609 LIBICAL_REQUIRED=libical_minimum_version
610 AC_SUBST(LIBICAL_REQUIRED)
612 dnl ******************************
614 dnl ******************************
615 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
617 AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
618 [AC_MSG_ERROR([No regex library found])])])
621 dnl ******************************
623 dnl ******************************
625 AS_HELP_STRING([--with-libdb=PREFIX],
626 [Prefix where libdb is installed]),
627 [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
629 DB_CFLAGS="-I$libdb_prefix/include"
630 DB_LIBS="-L$libdb_prefix/lib -ldb"
632 AC_MSG_CHECKING([Berkeley DB])
633 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
634 save_libs=$LIBS; LIBS="$DB_LIBS"
635 AC_LINK_IFELSE([AC_LANG_PROGRAM(
637 [[db_create(NULL, NULL, 0)]])],
638 [AC_MSG_RESULT([yes])],
639 [AC_MSG_ERROR([Cannot find libdb])])
645 dnl ******************************
647 dnl ******************************
649 AC_PATH_PROG(DB_LOAD, [db_load])
650 if test -z "$DB_LOAD"; then
651 AC_MSG_WARN([db_load not found, some unit tests will not be run.])
656 AM_CONDITIONAL(HAVE_DB_LOAD, test x"$have_db_load" = "xyes")
658 dnl ******************************
660 dnl ******************************
664 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
665 AC_LINK_IFELSE([AC_LANG_PROGRAM(
672 cd = iconv_open ("UTF-8", "ISO-8859-1");
674 )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
676 if test "x$ac_cv_libiconv" = "xyes"; then
678 if test "x$os_win32" = "xyes"; then
679 dnl Don't pointlessly auto-export the global symbols
680 dnl from a potentially static libiconv.a
681 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
686 AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
689 if test "x$have_iconv" = "xyes"; then
690 if test "x$ac_cv_libiconv" = "xno"; then
691 AC_CHECK_FUNCS(gnu_get_libc_version)
693 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
694 AC_RUN_IFELSE([AC_LANG_SOURCE([[
698 #ifdef HAVE_GNU_GET_LIBC_VERSION
699 #include <gnu/libc-version.h>
702 char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
703 char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
704 char *transbuf = malloc (10), *trans = transbuf;
706 size_t jp_len = strlen (jp), utf8_len = 10;
707 size_t utf8_real_len = strlen (utf8);
709 #ifdef HAVE_GNU_GET_LIBC_VERSION
710 /* glibc 2.1.2's iconv is broken in hard to test ways. */
711 if (!strcmp (gnu_get_libc_version (), "2.1.2"))
715 cd = iconv_open ("UTF-8", "ISO-2022-JP");
716 if (cd == (iconv_t) -1)
718 if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
720 if (memcmp (utf8, transbuf, utf8_real_len) != 0)
724 ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
727 if test "x$have_iconv" = "xno"; then
728 AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
732 CFLAGS="$CFLAGS -I$srcdir"
734 AC_MSG_CHECKING([preferred charset name formats for system iconv])
735 AC_RUN_IFELSE([AC_LANG_SOURCE([[
737 #include "iconv-detect.c"
739 [AC_MSG_RESULT([found])],
740 [AC_MSG_RESULT([not found])
742 *** The iconv-detect program was unable to determine the
743 *** preferred charset name formats recognized by your
744 *** iconv library. It is suggested that you install a
745 *** working iconv library such as the one found at
746 *** ftp://ftp.gnu.org/pub/gnu/libiconv
748 [if test "x$os_win32" = xyes; then
749 AC_MSG_RESULT([using known win32 result])
750 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
751 echo >>iconv-detect.h
752 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
753 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
754 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
756 AC_MSG_RESULT([unknown])
758 *** We can't determine the preferred charset name formats
759 *** recognized by your iconv library. You are
760 *** cross-compiling and supposed to know what you are doing.
761 *** Please construct the iconv-detect.h file manually.
766 CFLAGS="$save_CFLAGS"
769 AC_ARG_ENABLE([backtraces],
770 [AS_HELP_STRING([--enable-backtraces],
771 [enable backtraces for camel_pointer_tracker (default=no)])],
772 [enable_backtraces=$enableval], [enable_backtraces=no])
774 if test "x$enable_backtraces" = xyes; then
775 dnl ****************************
776 dnl Check for backtrace_symbols function and dwfl from elfutils
777 dnl ****************************
778 AC_MSG_CHECKING([libc backtrace_symbols function])
779 AC_LINK_IFELSE([AC_LANG_PROGRAM(
780 [[#include <execinfo.h>]],
781 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
782 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
783 AC_MSG_RESULT([$ac_cv_have_bsf])
785 if test "x$ac_cv_have_bsf" = xyes; then
788 AC_MSG_CHECKING([elfutils/libdwfl])
789 AC_LINK_IFELSE([AC_LANG_PROGRAM(
790 [[#include <elfutils/libdwfl.h>]],
794 Dwarf_Addr module_low_addr;
797 dwfl_standard_find_debuginfo;
798 dwfl_linux_proc_find_elf;
800 dwfl_linux_proc_report (NULL, 1);
801 dwfl_report_end (NULL, NULL, NULL);
803 dwfl_module_addrname (NULL, NULL);
804 dwfl_module_getsrc (NULL, NULL);
805 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
806 DWARF_CB_ABORT; DWARF_CB_OK;
807 dwfl_getmodules (NULL, NULL, NULL, 0);
809 [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
810 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
814 if test "x$ac_cv_have_elfdwfl" = xyes; then
816 AC_SUBST(LIBDWFL_LIBS)
821 dnl ******************************
822 dnl Check for nl_langinfo features
823 dnl ******************************
824 EVO_CHECK_LANGINFO([CODESET])
825 EVO_CHECK_LANGINFO([_NL_ADDRESS_COUNTRY_AB2])
827 dnl *******************************************************
828 dnl Check to see if strftime supports the use of %l and %k
829 dnl *******************************************************
830 AC_MSG_CHECKING([for %l and %k support in strftime])
831 AC_RUN_IFELSE([AC_LANG_SOURCE(
832 [[ #include <stdlib.h>
835 int main(int argc, char **argv) {
841 timeinfo=localtime(&rawtime);
843 strftime(buf, 10, "%lx%k", timeinfo);
845 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
852 )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
853 AC_MSG_RESULT([$ac_cv_lkstrftime])
855 dnl ********************************************************************************
856 dnl security extension support (SSL and S/MIME)
858 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
859 dnl needed by Camel (SSL and S/MIME).
861 dnl The Evolution security extensions are only built if these libraries are found
862 dnl ********************************************************************************
865 AC_ARG_ENABLE([smime],
866 AS_HELP_STRING([--enable-smime],
867 [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
868 [enable_smime="$enableval"],[enable_smime="yes"])
870 AC_ARG_WITH([nspr-includes],
871 AS_HELP_STRING([--with-nspr-includes],
872 [Prefix of Mozilla nspr4 includes.]),
873 [with_nspr_includes="$withval"])
875 AC_ARG_WITH([nspr-libs],
876 AS_HELP_STRING([--with-nspr-libs],
877 [Prefix of Mozilla nspr4 libs.]),
878 [with_nspr_libs="$withval"])
880 AC_ARG_WITH([nss-includes],
881 AS_HELP_STRING([--with-nss-includes],
882 [Prefix of Mozilla nss3 includes.]),
883 [with_nss_includes="$withval"])
885 AC_ARG_WITH([nss-libs],
886 AS_HELP_STRING([--with-nss-libs],
887 [Prefix of Mozilla nss3 libs.]),
888 [with_nss_libs="$withval"])
890 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
896 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
897 if test "x${check_manually}" = "xno"; then
898 AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
899 mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
900 for pc in $mozilla_nspr_pcs; do
901 if $PKG_CONFIG --exists $pc; then
908 AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
909 mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
910 for pc in $mozilla_nss_pcs; do
911 if $PKG_CONFIG --exists $pc; then
918 if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
919 if test "x$enable_smime" = "xyes"; then
920 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
923 MANUAL_NSPR_CFLAGS=""
934 if test "x${check_manually}" = "xyes"; then
935 dnl ******************
937 dnl ******************
938 AC_MSG_CHECKING([for Mozilla nspr4 includes])
939 CPPFLAGS_save="$CPPFLAGS"
940 if test -n "$with_nspr_includes"; then
941 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
944 AC_CHECK_HEADERS(nspr.h prio.h,
945 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
946 CPPFLAGS="$CPPFLAGS_save"
948 if test "x${moz_nspr_includes}" = "xyes"; then
949 MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
951 AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
953 AC_MSG_RESULT([$moz_nspr_includes])
955 AC_MSG_CHECKING([for Mozilla nspr libraries])
956 CFLAGS_save="$CFLAGS"
957 LDFLAGS_save="$LDFLAGS"
959 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
961 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
963 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
964 if test -n "${with_nspr_libs}"; then
965 LDFLAGS="$LDFLAGS -L$with_nspr_libs"
970 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
971 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
973 CFLAGS="$CFLAGS_save"
974 LDFLAGS="$LDFLAGS_save"
977 if test "x${moz_nspr_libs}" = "xyes"; then
978 if test -n "${with_nspr_libs}"; then
979 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
981 MANUAL_NSPR_LIBS="$nsprlibs"
984 AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
986 AC_MSG_RESULT([$moz_nspr_libs])
988 dnl *****************
990 dnl *****************
991 AC_MSG_CHECKING([for Mozilla nss3 includes])
992 CPPFLAGS_save="$CPPFLAGS"
993 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
995 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
996 [moz_nss_includes="yes"],[moz_nss_includes="no"])
997 CPPFLAGS="$CPPFLAGS_save"
999 if test "x${moz_nss_includes}" = "xyes"; then
1000 MANUAL_NSS_CFLAGS="-I$with_nss_includes"
1002 AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
1004 AC_MSG_RESULT($moz_nss_includes)
1006 AC_MSG_CHECKING([for Mozilla nss libraries])
1007 LDFLAGS_save="$LDFLAGS"
1009 nsslibs="-lssl3 -lsmime3 -lnss3"
1011 LIBS="$nsslibs $nsprlibs"
1012 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
1013 if test -n "${with_nss_libs}"; then
1014 LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
1016 LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
1019 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
1020 [moz_nss_libs="yes"],[moz_nss_libs="no"])
1021 LDFLAGS="$LDFLAGS_save"
1024 if test "x${moz_nss_libs}" = "xyes"; then
1025 if test "x${enable_smime}" = "xyes"; then
1026 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
1029 if test -n "${with_nss_libs}"; then
1030 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
1032 MANUAL_NSS_LIBS="$nsslibs"
1035 AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
1037 AC_MSG_RESULT([$moz_nss_libs])
1039 MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
1040 MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
1043 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
1045 dnl For pkgconfig files.
1046 AC_SUBST(mozilla_nss)
1047 AC_SUBST(mozilla_nspr)
1049 AC_SUBST(MANUAL_NSPR_CFLAGS)
1050 AC_SUBST(MANUAL_NSPR_LIBS)
1051 AC_SUBST(MANUAL_NSS_CFLAGS)
1052 AC_SUBST(MANUAL_NSS_LIBS)
1054 dnl ******************************
1055 dnl system mail stuff
1056 dnl ******************************
1057 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
1058 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
1060 AC_MSG_CHECKING([system mail directory])
1061 if test -d /var/mail -a '!' -h /var/mail ; then
1062 system_mail_dir="/var/mail"
1064 system_mail_dir="/var/spool/mail"
1066 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
1068 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
1070 CAMEL_LOCK_HELPER_USER=""
1071 CAMEL_LOCK_HELPER_GROUP=""
1072 system_mail_perm="world writable"
1075 CAMEL_LOCK_HELPER_USER=""
1076 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
1077 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
1080 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
1081 CAMEL_LOCK_HELPER_GROUP=""
1082 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
1085 CAMEL_LOCK_HELPER_USER=""
1086 CAMEL_LOCK_HELPER_GROUP=""
1087 system_mail_perm="???"
1091 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
1092 AC_SUBST(CAMEL_LOCK_HELPER_USER)
1093 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
1095 dnl ******************************
1097 dnl ******************************
1098 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
1099 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1100 [[ #include <time.h> ]],
1105 )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
1106 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
1107 AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
1109 AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
1110 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1111 [[ #include <time.h> ]],
1113 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
1114 if test "x$ac_cv_var_timezone" = "xyes"; then
1115 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
1116 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
1117 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1118 [[ #include <time.h> ]],
1120 )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
1121 if test "x$ac_cv_var_altzone" = "xyes"; then
1122 AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
1125 AC_MSG_ERROR([unable to find a way to determine timezone])
1129 dnl ******************************
1130 dnl ctime_r prototype
1131 dnl ******************************
1132 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
1134 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1135 [[ #include <time.h> ]],
1138 ctime_r (&date, buf, 100); ]]
1139 )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
1142 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
1143 AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
1146 dnl ******************************
1147 dnl gethostbyname_r prototype
1148 dnl ******************************
1149 AC_CHECK_FUNCS(gethostbyname_r,[
1150 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
1152 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1154 #include "confdefs.h"
1155 #include <sys/types.h>
1156 #include <sys/socket.h>
1157 #include <netinet/in.h>
1159 #define BUFSIZE (sizeof(struct hostent)+10)
1162 struct hostent hent;
1163 char buffer[BUFSIZE];
1164 int bufsize=BUFSIZE;
1166 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
1168 )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
1171 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
1172 AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
1175 dnl ******************************
1176 dnl gethostbyaddr_r prototype
1177 dnl ******************************
1178 AC_CHECK_FUNCS(gethostbyaddr_r,[
1179 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_args],
1181 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1183 #include "confdefs.h"
1184 #include <sys/types.h>
1185 #include <sys/socket.h>
1186 #include <netinet/in.h>
1188 #define BUFSIZE (sizeof(struct hostent)+10)
1191 struct hostent hent;
1192 char buffer[BUFSIZE];
1193 int bufsize=BUFSIZE;
1195 (void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
1196 )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
1199 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
1200 AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
1203 dnl ******************************
1204 dnl stat(v)fs location/type
1205 dnl ******************************
1206 AC_CHECK_HEADER([sys/statvfs.h],
1207 [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
1208 [[ #if HAVE_SYS_STATVFS_H
1209 #include <sys/statvfs.h>
1212 AC_CHECK_FUNCS(statvfs)
1214 AC_CHECK_HEADER([sys/param.h],
1215 [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
1216 [[ #if HAVE_SYS_PARAM_H
1217 #include <sys/param.h>
1220 AC_CHECK_HEADER([sys/mount.h],
1221 [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1222 [[ #if HAVE_SYS_MOUNT_H
1223 #include <sys/mount.h>
1226 AC_CHECK_FUNCS(statfs)
1228 dnl ******************************
1229 dnl IPv6 support and getaddrinfo calls
1230 dnl ******************************
1231 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1233 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1234 [[ #include "confdefs.h"
1235 #include <sys/types.h>
1236 #include <sys/socket.h>
1237 #include <netinet/in.h>
1241 [[ #ifndef NI_MAXHOST
1242 #define NI_MAXHOST 1025
1246 #define NI_MAXSERV 32
1249 struct addrinfo hints, *res;
1250 struct sockaddr_in6 sin6;
1252 char host[NI_MAXHOST];
1253 char serv[NI_MAXSERV];
1255 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1257 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1258 )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1261 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1262 AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1263 if test "x$enable_ipv6" = "xyes" ; then
1264 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1268 AC_ARG_ENABLE([ipv6],
1269 AS_HELP_STRING([--enable-ipv6=no/yes],
1270 [Enable support for resolving IPv6 addresses.]),
1271 [enable_ipv6=$enableval],[enable_ipv6=yes])
1272 if test "x$enable_ipv6" = "xyes"; then
1274 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1275 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1276 [[ #include "confdefs.h"
1277 #include <sys/types.h>
1278 #include <sys/socket.h>
1279 #include <netinet/in.h>
1282 [[ struct addrinfo hints;
1283 hints.ai_flags = AI_ADDRCONFIG;
1285 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1291 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1293 AC_CHECK_HEADER([wspiapi.h],
1294 [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1296 dnl **********************************
1297 dnl Weather calendar backend support
1298 dnl **********************************
1299 AC_MSG_CHECKING([if we should build the weather calendar backend])
1300 AC_ARG_ENABLE([weather],
1301 [AS_HELP_STRING([--enable-weather],
1302 [Build the weather calendar backend (default=yes)])],
1303 [use_gweather=$enableval], [use_gweather=yes])
1305 AC_MSG_RESULT([$use_gweather])
1306 if test "x$use_gweather" = "xyes"; then
1308 [LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1311 gweather-3.0 not found (or version < gweather_minimum_version)
1313 If you want to disable weather calendar support,
1314 please append --disable-weather to configure.
1318 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1320 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1322 dnl ******************************
1324 dnl ******************************
1325 AC_ARG_ENABLE([dot-locking],
1326 AS_HELP_STRING([--enable-dot-locking=yes/no],
1327 [Enable support for locking mail files with dot locking]),
1328 [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1330 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1331 AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1337 AC_ARG_ENABLE([file-locking],
1338 AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1339 [Enable support for locking mail files with file locking]),
1340 [],[enable_file_locking=fcntl])
1342 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1343 AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1346 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1347 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1354 dnl ******************************
1355 dnl sendmail operation
1356 dnl ******************************
1357 AC_MSG_CHECKING([for SunOS broken spool format])
1358 if test "x$host_os" = "xsunos" ; then
1359 with_broken_spool="yes"
1362 AC_ARG_WITH([broken-spool],
1363 AS_HELP_STRING([--with-broken-spool=yes/no],
1364 [Using SunOS/Solaris sendmail which has a broken spool format]),
1365 [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1367 if test "x$with_broken_spool" = "xyes"; then
1368 AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1371 AC_MSG_RESULT([$with_broken_spool])
1376 EVO_KRB5_SUPPORT(no)
1378 dnl ******************************
1380 dnl ******************************
1383 dnl ******************************
1385 dnl ******************************
1386 if test "x$os_win32" != "xyes"; then
1388 case $with_openldap in
1393 case $with_static_ldap in
1395 msg_ldap="$with_openldap (static)"
1398 msg_ldap="$with_openldap (dynamic)"
1403 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1404 if test "x$with_openldap" = "xno" ; then
1405 EVO_SUNLDAP_CHECK(no)
1406 case $with_sunldap in
1411 case $with_static_sunldap in
1413 msg_ldap="$with_sunldap (static)"
1416 msg_ldap="$with_sunldap (dynamic)"
1423 AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1425 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1427 dnl Win32 LDAP support
1428 LDAP_CFLAGS="-DLDAP_DEPRECATED"
1429 LDAP_LIBS="-lwldap32"
1430 AC_SUBST(LDAP_CFLAGS)
1432 AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1433 AM_CONDITIONAL(ENABLE_LDAP, true)
1434 AM_CONDITIONAL(SUNLDAP, false)
1438 dnl ******************************
1439 dnl Utility macro to set compiler flags for a specific lib.
1440 dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
1441 dnl ******************************
1442 AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
1443 PKG_CHECK_MODULES([$1], [$2])
1444 $1_CFLAGS="[$]$1_CFLAGS $3 "
1445 $1_LIBS="[$]$1_LIBS $4 "
1448 dnl ******************************
1450 dnl ******************************
1451 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1453 if test "x$enable_maintainer_mode" = "xyes" ; then
1454 EVO_SET_COMPILE_FLAGS(FACTORY_GTK, "gtk+-3.0")
1455 AC_SUBST(FACTORY_GTK_CFLAGS)
1456 AC_SUBST(FACTORY_GTK_LIBS)
1459 dnl ******************************
1460 dnl libedataserver flags
1461 dnl ******************************
1462 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1464 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1465 AC_SUBST(E_DATA_SERVER_CFLAGS)
1466 AC_SUBST(E_DATA_SERVER_LIBS)
1468 dnl ******************************
1469 dnl libebackend flags
1470 dnl ******************************
1471 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libsoup-2.4 libxml-2.0"
1473 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1474 AC_SUBST(E_BACKEND_CFLAGS)
1475 AC_SUBST(E_BACKEND_LIBS)
1477 dnl ******************************
1478 dnl evolution-addressbook flags
1479 dnl ******************************
1480 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 libsecret-1"
1482 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1483 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1484 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1486 dnl ******************************
1487 dnl evolution-calendar flags
1488 dnl ******************************
1489 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 libsecret-1"
1492 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1493 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1494 dnl to differentiate between <libical/ical.h> and <ical.h>
1495 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1496 dnl libical is fixed, we have to work-around the buggy CFlags.
1498 LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1499 LIBICAL_EXTRA_LIBS=""
1500 AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1501 AC_SUBST(LIBICAL_EXTRA_LIBS)
1503 EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1504 AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1505 AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1507 dnl ****************************
1508 dnl Check for ical_set_unknown_token_handling_setting function
1509 dnl ****************************
1510 AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1511 save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1512 save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1513 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1514 [[#include <libical/ical.h>]],
1515 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1516 [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])
1519 AC_MSG_RESULT([$ac_cv_have_iuth])
1521 dnl ******************************
1523 dnl ******************************
1524 LIBGDATA_REQUIRED=libgdata_minimum_version
1525 AC_SUBST(LIBGDATA_REQUIRED)
1526 AC_ARG_ENABLE([google],
1527 [AS_HELP_STRING([--enable-google],
1528 [enable Google Contacts support (default=yes)])],
1529 [enable_google=$enableval], [enable_google=yes])
1530 AC_MSG_CHECKING([if Google Contacts support is enabled])
1531 AC_MSG_RESULT([$enable_google])
1532 if test "x$enable_google" = xyes; then
1533 EVO_SET_COMPILE_FLAGS(GDATA, libgdata >= libgdata_minimum_version)
1534 AC_SUBST(GDATA_CFLAGS)
1535 AC_SUBST(GDATA_LIBS)
1537 AC_DEFINE(HAVE_GOOGLE, 1, [Define to 1 if you have the google-1.0 package.])
1539 AM_CONDITIONAL(HAVE_GOOGLE, [test x$enable_google = xyes])
1541 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1542 AC_SUBST(SOUP_CFLAGS)
1545 dnl ******************************
1547 dnl ******************************
1548 SQLITE_REQUIRED=sqlite_minimum_version
1549 AC_SUBST(SQLITE_REQUIRED)
1552 dnl deflateInit is a #define, use deflateEnd instead
1553 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1555 if test "x$zlib_found" = "xfalse"; then
1556 AC_MSG_ERROR([*** zlib is required])
1559 dnl ******************************
1560 dnl Checks for large file support
1561 dnl ******************************
1562 AC_ARG_ENABLE([largefile],
1563 AS_HELP_STRING([--enable-largefile],
1564 [enable support for large files [[default=yes]]]),
1565 [],[enable_largefile="yes"])
1567 if test "x$enable_largefile" != "xno"; then
1569 AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1570 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1571 [[ #include <sys/types.h>
1572 #include <sys/stat.h>
1575 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]]
1576 )],[ac_cv_largefile64_source="no"],
1577 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1578 [[ #define _LARGEFILE64_SOURCE
1579 #include <sys/types.h>
1580 #include <sys/stat.h>
1583 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1584 [ac_cv_largefile64_source="unknown"])])
1587 enable_largefile="no"
1589 if test "x$ac_cv_largefile64_source" = "xyes"; then
1590 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1591 enable_largefile="yes"
1592 elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1593 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1596 if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1597 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1598 enable_largefile="yes"
1601 if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1602 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1603 enable_largefile="yes"
1606 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1610 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1612 EVO_SET_COMPILE_FLAGS(CAMEL, gio-2.0 gmodule-2.0 $mozilla_nss $mozilla_nspr sqlite3 >= sqlite_minimum_version, $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $MANUAL_NSPR_CFLAGS $LARGEFILE_CFLAGS, -lz $KRB5_LIBS $MANUAL_NSS_LIBS $MANUAL_NSPR_LIBS)
1613 AC_SUBST(CAMEL_CFLAGS)
1614 AC_SUBST(CAMEL_LIBS)
1616 dnl ******************************
1617 dnl Special directories
1618 dnl ******************************
1620 dnl If you add something here, consider whether or not you also
1621 dnl need to add it to one or more .pc.in files (for Connector,
1624 privdatadir='${datadir}'/evolution-data-server
1625 AC_SUBST(privdatadir)
1627 privincludedir='${includedir}'/evolution-data-server
1628 AC_SUBST(privincludedir)
1630 privlibdir='${libdir}'/evolution-data-server
1631 AC_SUBST(privlibdir)
1633 imagesdir='${datadir}'/pixmaps/evolution-data-server
1636 moduledir='${privlibdir}'/registry-modules
1639 ebook_backenddir='${privlibdir}'/addressbook-backends
1640 AC_SUBST(ebook_backenddir)
1642 ecal_backenddir='${privlibdir}'/calendar-backends
1643 AC_SUBST(ecal_backenddir)
1645 ro_sourcesdir='${privdatadir}'/ro-sources
1646 AC_SUBST(ro_sourcesdir)
1648 rw_sourcesdir='${privdatadir}'/rw-sources
1649 AC_SUBST(rw_sourcesdir)
1651 if test "x$use_gweather" = "xyes"; then
1652 weatherdatadir="$privdatadir/weather"
1653 AC_SUBST(weatherdatadir)
1656 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1657 camel_providerdir='${privlibdir}'/camel-providers
1658 AC_SUBST(camel_providerdir)
1660 dnl *******************
1661 dnl D-BUS service stuff
1662 dnl *******************
1663 m4_pattern_allow([AM_V_GEN])
1664 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)|" $< > $@'
1665 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1667 dnl ******************************
1669 dnl ******************************
1673 dnl ******************************
1675 dnl ******************************
1676 AC_PATH_PROG(GPERF, gperf, [no])
1677 if test "x$GPERF" = "xno"; then
1678 AC_MSG_ERROR([You need gperf to build evolution-data-server])
1681 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1683 dnl ******************************
1685 dnl ******************************
1686 AC_ARG_ENABLE(vala-bindings,
1687 AC_HELP_STRING([--enable-vala-bindings],
1688 [build the EXPERIMENTAL Vala bindings]),
1689 enable_vala_bindings=$enableval,
1690 enable_vala_bindings=no)
1692 if test x$enable_vala_bindings = xyes; then
1693 if test "x$INTROSPECTION_SCANNER" = x; then
1694 AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1697 AM_PROG_VALAC([0.13.0])
1700 AC_PATH_PROG(VALAC, valac, valac)
1704 AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1706 if test "x$VAPIGEN" = "xfalse"; then
1707 AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1713 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1716 dnl ******************************
1718 dnl ******************************
1720 export privincludedir
1725 evolution-data-server-zip
1726 evolution-data-server.pc
1727 addressbook/Makefile
1728 addressbook/libebook/Makefile
1729 addressbook/libebook/libebook.pc
1730 addressbook/libebook-contacts/Makefile
1731 addressbook/libebook-contacts/libebook-contacts.pc
1732 addressbook/libedata-book/Makefile
1733 addressbook/libedata-book/libedata-book.pc
1734 addressbook/libegdbus/Makefile
1735 addressbook/backends/Makefile
1736 addressbook/backends/file/Makefile
1737 addressbook/backends/ldap/Makefile
1738 addressbook/backends/google/Makefile
1739 addressbook/backends/google/tests/Makefile
1740 addressbook/backends/webdav/Makefile
1743 calendar/libecal/Makefile
1744 calendar/libecal/libecal.pc
1745 calendar/libedata-cal/Makefile
1746 calendar/libedata-cal/libedata-cal.pc
1747 calendar/libegdbus/Makefile
1748 calendar/backends/Makefile
1749 calendar/backends/caldav/Makefile
1750 calendar/backends/file/Makefile
1751 calendar/backends/http/Makefile
1752 calendar/backends/contacts/Makefile
1753 calendar/backends/weather/Makefile
1755 camel/providers/Makefile
1756 camel/providers/imapx/Makefile
1757 camel/providers/local/Makefile
1758 camel/providers/nntp/Makefile
1759 camel/providers/pop3/Makefile
1760 camel/providers/sendmail/Makefile
1761 camel/providers/smtp/Makefile
1762 camel/tests/Makefile
1763 camel/tests/folder/Makefile
1764 camel/tests/lib/Makefile
1765 camel/tests/message/Makefile
1766 camel/tests/mime-filter/Makefile
1767 camel/tests/misc/Makefile
1768 camel/tests/smime/Makefile
1771 libebackend/Makefile
1772 libebackend/libebackend.pc
1773 libedataserver/Makefile
1774 libedataserver/eds-version.h
1775 libedataserver/libedataserver.pc
1777 modules/cache-reaper/Makefile
1778 modules/gnome-online-accounts/Makefile
1779 modules/google-backend/Makefile
1780 modules/outlook-backend/Makefile
1781 modules/owncloud-backend/Makefile
1782 modules/ubuntu-online-accounts/Makefile
1783 modules/ubuntu-online-accounts/calendar.service-type.in
1784 modules/ubuntu-online-accounts/contacts.service-type.in
1785 modules/ubuntu-online-accounts/evolution-data-server.application.in
1786 modules/ubuntu-online-accounts/evolution-data-server-uoa.desktop.in
1787 modules/ubuntu-online-accounts/google-calendar.service.in
1788 modules/ubuntu-online-accounts/google-contacts.service.in
1789 modules/ubuntu-online-accounts/google-gmail.service.in
1790 modules/ubuntu-online-accounts/mail.service-type.in
1791 modules/ubuntu-online-accounts/windows-live-mail.service.in
1792 modules/ubuntu-online-accounts/yahoo-calendar.service.in
1793 modules/ubuntu-online-accounts/yahoo-mail.service.in
1794 modules/trust-prompt/Makefile
1795 modules/yahoo-backend/Makefile
1798 services/evolution-addressbook-factory/Makefile
1799 services/evolution-calendar-factory/Makefile
1800 services/evolution-source-registry/Makefile
1801 services/evolution-user-prompter/Makefile
1803 tests/libedata-book/Makefile
1804 tests/libebook/Makefile
1805 tests/libebook-contacts/Makefile
1806 tests/libebook/client/Makefile
1807 tests/libebook/vcard/Makefile
1808 tests/book-migration/Makefile
1809 tests/book-migration/db/Makefile
1810 tests/libecal/Makefile
1811 tests/libecal/client/Makefile
1812 tests/libedata-cal/Makefile
1813 tests/libedataserver/Makefile
1814 tests/test-server-utils/Makefile
1815 tests/test-server-utils/services/Makefile
1816 tests/test-server-utils/services/org.gnome.evolution.dataserver.AddressBook.service
1817 tests/test-server-utils/services/org.gnome.evolution.dataserver.Calendar.service
1818 tests/test-server-utils/services/org.gnome.evolution.dataserver.Sources.service
1819 tests/cursor-example/Makefile
1821 docs/reference/Makefile
1822 docs/reference/addressbook/Makefile
1823 docs/reference/addressbook/libebook/Makefile
1824 docs/reference/addressbook/libebook-contacts/Makefile
1825 docs/reference/addressbook/libedata-book/Makefile
1826 docs/reference/calendar/Makefile
1827 docs/reference/calendar/libecal/Makefile
1828 docs/reference/calendar/libedata-cal/Makefile
1829 docs/reference/camel/Makefile
1830 docs/reference/libedataserver/Makefile
1831 docs/reference/libebackend/Makefile
1832 docs/reference/private/Makefile
1839 evolution-data-server has been configured as follows:
1840 Weather calendar: $use_gweather
1841 Mail Directory: $system_mail_dir, $system_mail_perm
1842 LDAP support: $msg_ldap
1843 Kerberos 5: $msg_krb5
1844 SMIME support: $msg_smime
1845 IPv6 support: $msg_ipv6
1846 Phone number support: $msg_phonenumber
1847 Dot Locking: $msg_dot
1848 File Locking: $msg_file
1849 Large files: $enable_largefile
1850 Gtk Doc: $enable_gtk_doc
1851 Introspection: $enable_introspection
1852 Vala bindings: $enable_vala_bindings
1853 GNOME Online Accounts $enable_goa
1854 Ubuntu Online Accounts $enable_uoa
1855 Google Contacts $enable_google
1857 Examples: $enable_examples
1858 Code coverage (gcov): $enable_code_coverage
1859 Strict building: $enable_strict