2 dnl Evolution-Data-Server version
3 m4_define([eds_major_version], [3])
4 m4_define([eds_minor_version], [7])
5 m4_define([eds_micro_version], [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.8])
17 dnl This number is meaningless, but we're now stuck with it in our
18 dnl library names for backward compatibility.
19 m4_define([api_version], [1.2])
21 dnl Autoconf / Automake Initialization
23 AC_INIT([evolution-data-server],[eds_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution-Data-Server])
24 AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar dist-xz no-dist-gzip -Wall -Wno-portability foreign])
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_CONFIG_SRCDIR(README)
27 AC_CONFIG_HEADERS(config.h)
29 dnl This is for the autoconf tests only - it set's the language we use
32 dnl Automake 1.11 - Silent Build Rules
33 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
35 dnl Required Package Versions
36 m4_define([glib_minimum_version], [2.34])
37 m4_define([gtk_minimum_version], [3.2])
38 m4_define([gcr_minimum_version], [3.4])
39 m4_define([libsecret_minimum_version], [0.5])
40 m4_define([libxml_minimum_version], [2.0.0]) dnl XXX Just a Guess
41 m4_define([libsoup_minimum_version], [2.38.1])
42 m4_define([libgdata_minimum_version], [0.10])
43 m4_define([sqlite_minimum_version], [3.5])
44 m4_define([libical_minimum_version], [0.43])
47 m4_define([goa_minimum_version], [3.2])
48 m4_define([gweather_minimum_version], [3.5.0])
50 AC_SUBST([BASE_VERSION],[base_version])
51 AC_SUBST([API_VERSION],[api_version])
52 AC_DEFINE_UNQUOTED(BASE_VERSION, ["$BASE_VERSION"], [Base version (Major.Minor)])
53 AC_DEFINE_UNQUOTED(API_VERSION, ["$API_VERSION"], [API version (Major.Minor)])
55 EDS_MAJOR_VERSION=eds_major_version
56 EDS_MINOR_VERSION=eds_minor_version
57 EDS_MICRO_VERSION=eds_micro_version
61 dnl ******************************
63 dnl ******************************
64 ADDRESS_BOOK_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.AddressBook4"
65 CALENDAR_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Calendar3"
66 SOURCES_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Sources1"
69 ADDRESS_BOOK_DBUS_SERVICE_NAME,
70 ["$ADDRESS_BOOK_DBUS_SERVICE_NAME"],
71 [D-Bus service name for the address book factory])
74 CALENDAR_DBUS_SERVICE_NAME,
75 ["$CALENDAR_DBUS_SERVICE_NAME"],
76 [D-Bus service name for the calendar factory])
79 SOURCES_DBUS_SERVICE_NAME,
80 ["$SOURCES_DBUS_SERVICE_NAME"],
81 [D-Bus service name for the source registry])
83 AC_SUBST(ADDRESS_BOOK_DBUS_SERVICE_NAME)
84 AC_SUBST(CALENDAR_DBUS_SERVICE_NAME)
85 AC_SUBST(SOURCES_DBUS_SERVICE_NAME)
87 dnl ******************************
88 dnl Libtool versioning
89 dnl ******************************
90 LIBEDATASERVER_CURRENT=17
91 LIBEDATASERVER_REVISION=0
94 LIBEDATASERVERUI_CURRENT=5
95 LIBEDATASERVERUI_REVISION=0
96 LIBEDATASERVERUI_AGE=0
102 LIBEDATACAL_CURRENT=19
103 LIBEDATACAL_REVISION=0
106 LIBEDATABOOK_CURRENT=16
107 LIBEDATABOOK_REVISION=0
118 LIBEBACKEND_CURRENT=5
119 LIBEBACKEND_REVISION=0
122 AC_SUBST(EDS_MAJOR_VERSION)
123 AC_SUBST(EDS_MINOR_VERSION)
124 AC_SUBST(EDS_MICRO_VERSION)
125 AC_SUBST(LIBEDATASERVER_CURRENT)
126 AC_SUBST(LIBEDATASERVER_REVISION)
127 AC_SUBST(LIBEDATASERVER_AGE)
128 AC_SUBST(LIBEDATASERVERUI_CURRENT)
129 AC_SUBST(LIBEDATASERVERUI_REVISION)
130 AC_SUBST(LIBEDATASERVERUI_AGE)
131 AC_SUBST(LIBECAL_CURRENT)
132 AC_SUBST(LIBECAL_REVISION)
133 AC_SUBST(LIBECAL_AGE)
134 AC_SUBST(LIBEDATACAL_CURRENT)
135 AC_SUBST(LIBEDATACAL_REVISION)
136 AC_SUBST(LIBEDATACAL_AGE)
137 AC_SUBST(LIBEBOOK_CURRENT)
138 AC_SUBST(LIBEBOOK_REVISION)
139 AC_SUBST(LIBEBOOK_AGE)
140 AC_SUBST(LIBEDATABOOK_CURRENT)
141 AC_SUBST(LIBEDATABOOK_REVISION)
142 AC_SUBST(LIBEDATABOOK_AGE)
143 AC_SUBST(LIBCAMEL_CURRENT)
144 AC_SUBST(LIBCAMEL_REVISION)
145 AC_SUBST(LIBCAMEL_AGE)
146 AC_SUBST(LIBEBACKEND_CURRENT)
147 AC_SUBST(LIBEBACKEND_REVISION)
148 AC_SUBST(LIBEBACKEND_AGE)
150 dnl **************************************
151 dnl Put the ACLOCAL flags in the Makefile
152 dnl **************************************
153 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
155 dnl ******************************
156 dnl Compiler Warning Flags
157 dnl ******************************
158 AS_COMPILER_FLAGS(WARNING_FLAGS,
160 -Wno-missing-field-initializers
162 -Wno-unused-parameter
163 -Wdeclaration-after-statement
164 -Werror-implicit-function-declaration
165 -Wformat-security -Winit-self
166 -Wmissing-declarations -Wmissing-include-dirs
167 -Wmissing-noreturn -Wnested-externs -Wpointer-arith
168 -Wredundant-decls -Wundef -Wwrite-strings")
169 AC_SUBST(WARNING_FLAGS)
171 dnl Other useful compiler warnings for test builds only.
172 dnl These may produce warnings we have no control over,
173 dnl or false positives we don't always want to see.
175 dnl -Wformat-nonliteral
176 dnl -Wmissing-format-attribute
178 dnl -Wstrict-aliasing=2
180 AM_CPPFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
182 dnl *******************************
183 dnl Check for --enable-strict
184 dnl *******************************
185 AC_ARG_ENABLE([strict],
186 [AS_HELP_STRING([--enable-strict],
187 [enable strict building, like without deprecated symbols (default=auto); auto enables strict building only if .git subdirectory exists])],
188 [enable_strict=$enableval], [enable_strict=auto])
190 AC_MSG_CHECKING([if strict building is enabled])
191 if test "x$enable_strict" = xauto; then
192 dnl Be strict when compiling with .git subdirectory
193 if test -d .git ; then
199 AC_MSG_RESULT([$enable_strict])
201 if test "x$enable_strict" = xyes; then
202 AM_CPPFLAGS="$AM_CPPFLAGS -Wdeprecated-declarations -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DLIBSOUP_DISABLE_DEPRECATED"
204 AM_CPPFLAGS="$AM_CPPFLAGS -Wno-deprecated-declarations"
207 AC_SUBST(AM_CPPFLAGS)
209 dnl ******************************
210 dnl Initialize maintainer mode
211 dnl ******************************
212 AM_MAINTAINER_MODE([enable])
214 if test "x$enable_maintainer_mode" = "xyes" ; then
215 AC_DEFINE(ENABLE_MAINTAINER_MODE, 1, [Configured with enabled maintainer mode])
226 dnl For gen-western-table.py
229 dnl GCC 4.4 got more aggressive in its aliasing optimizations, changing
230 dnl behavior that -- according to the C99 standard -- is supposed to be
231 dnl undefined. We may still have aliasing abuses lying around that rely
232 dnl on GCC's previous "undefined" behavior, so disable strict-aliasing
233 dnl optimization until we can find and fix all the abuses.
234 dnl (AC_PROG_CC must run first to set the GCC variable.)
235 dnl XXX This really belongs in AM_CFLAGS.
236 if test "x${GCC}" = "xyes"; then
237 CFLAGS="$CFLAGS -fno-strict-aliasing"
240 dnl ******************************
242 dnl ******************************
243 IT_PROG_INTLTOOL([0.35.5])
245 GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
246 AC_SUBST(GETTEXT_PACKAGE)
247 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
249 localedir='$(prefix)/$(DATADIRNAME)/locale'
252 dnl ******************************
253 dnl Initialize libtool
254 dnl ******************************
256 LT_INIT(disable-static win32-dll)
260 dnl This relies on $SED, which is defined in ltmain.sh, which
261 dnl is invoked by LT_INIT (at least I think that's how it works).
264 dnl ******************************
266 dnl ******************************
267 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
269 dnl The private D-Bus documentation is for developers only.
270 AC_ARG_WITH([private-docs],
271 AS_HELP_STRING([--with-private-docs],
272 [Build documentation for private libraries ]
273 [(requires --enable-gtk-doc) [default=no]],),
274 [with_private_docs="$withval"],[with_private_docs="no"])
275 AM_CONDITIONAL(WITH_PRIVATE_DOCS, [test x$with_private_docs = xyes])
277 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
280 dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
283 LDFLAGS="$LDFLAGS -Wl,--no-undefined"
287 dnl ******************************
289 dnl ******************************
290 AC_MSG_CHECKING([for Win32])
294 NO_UNDEFINED='-no-undefined'
295 SOCKET_LIBS='-lws2_32 -ldnsapi'
297 LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
298 AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes])
299 AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
306 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
313 LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
316 AC_MSG_RESULT([$os_win32])
317 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
318 AC_SUBST(NO_UNDEFINED)
319 AC_SUBST(SOCKET_LIBS)
320 AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
322 dnl **************************************
323 dnl Check for posix compatible sys/wait.h
324 dnl **************************************
327 dnl ************************************
328 dnl Check for posix compatible alloca()
329 dnl ************************************
332 dnl ******************************
333 dnl Checks for functions
334 dnl ******************************
335 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
337 dnl ***********************************
338 dnl Check for base dependencies early.
339 dnl ***********************************
340 PKG_CHECK_MODULES(GNOME_PLATFORM,
341 [gio-2.0 >= glib_minimum_version
342 gmodule-2.0 >= glib_minimum_version
343 gtk+-3.0 >= gtk_minimum_version
344 libxml-2.0 >= libxml_minimum_version
345 libsoup-2.4 >= libsoup_minimum_version
346 libgdata >= libgdata_minimum_version])
348 if test x$os_win32 = xno; then
349 PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
352 dnl *******************************
353 dnl Check for GNOME Online Accounts
354 dnl *******************************
356 [AS_HELP_STRING([--enable-goa],
357 [enable GNOME Online Accounts support (default=yes)])],
358 [enable_goa=$enableval], [enable_goa=yes])
359 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
360 AC_MSG_RESULT([$enable_goa])
361 if test "x$enable_goa" = xyes; then
362 PKG_CHECK_MODULES([GOA], [goa-1.0 >= goa_minimum_version],,
365 goa-1.0 not found (or version < goa_minimum_version)
367 If you want to disable GNOME Online Accounts support,
368 please append --disable-goa to configure.
371 AC_DEFINE(HAVE_GOA, 1, [Define to 1 if you have the goa-1.0 package.])
373 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
375 dnl GoaPasswordBased was introduced in version 3.5.
376 if `$PKG_CONFIG --atleast-version=3.5 goa-1.0`; then
377 AC_DEFINE(HAVE_GOA_PASSWORD_BASED,1,[Have GoaPasswordBased in goa-1.0])
380 dnl ***********************************
381 dnl Check for GNOME Keyring.
382 dnl ***********************************
383 if test x$os_win32 = xno; then
384 PKG_CHECK_MODULES(LIBSECRET,
385 [libsecret-unstable >= libsecret_minimum_version])
387 AC_SUBST(LIBSECRET_CFLAGS)
388 AC_SUBST(LIBSECRET_LIBS)
390 dnl **********************************************************
391 dnl gcr-base is needed for secure password exchange over D-Bus
392 dnl **********************************************************
393 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
394 AC_SUBST(GCR_BASE_CFLAGS)
395 AC_SUBST(GCR_BASE_LIBS)
397 LIBICAL_REQUIRED=libical_minimum_version
398 AC_SUBST(LIBICAL_REQUIRED)
400 dnl ******************************
402 dnl ******************************
403 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
405 AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
406 [AC_MSG_ERROR([No regex library found])])])
409 dnl ******************************
411 dnl ******************************
413 AS_HELP_STRING([--with-libdb=PREFIX],
414 [Prefix where libdb is installed]),
415 [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
417 DB_CFLAGS="-I$libdb_prefix/include"
418 DB_LIBS="-L$libdb_prefix/lib -ldb"
420 AC_MSG_CHECKING([Berkeley DB])
421 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
422 save_libs=$LIBS; LIBS="$DB_LIBS"
423 AC_LINK_IFELSE([AC_LANG_PROGRAM(
425 [[db_create(NULL, NULL, 0)]])],
426 [AC_MSG_RESULT([yes])],
427 [AC_MSG_ERROR([Cannot find libdb])])
433 dnl ******************************
435 dnl ******************************
439 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
440 AC_LINK_IFELSE([AC_LANG_PROGRAM(
447 cd = iconv_open ("UTF-8", "ISO-8859-1");
449 )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
451 if test "x$ac_cv_libiconv" = "xyes"; then
453 if test "x$os_win32" = "xyes"; then
454 dnl Don't pointlessly auto-export the global symbols
455 dnl from a potentially static libiconv.a
456 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
461 AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
464 if test "x$have_iconv" = "xyes"; then
465 if test "x$ac_cv_libiconv" = "xno"; then
466 AC_CHECK_FUNCS(gnu_get_libc_version)
468 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
469 AC_RUN_IFELSE([AC_LANG_SOURCE([[
473 #ifdef HAVE_GNU_GET_LIBC_VERSION
474 #include <gnu/libc-version.h>
477 char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
478 char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
479 char *transbuf = malloc (10), *trans = transbuf;
481 size_t jp_len = strlen (jp), utf8_len = 10;
482 size_t utf8_real_len = strlen (utf8);
484 #ifdef HAVE_GNU_GET_LIBC_VERSION
485 /* glibc 2.1.2's iconv is broken in hard to test ways. */
486 if (!strcmp (gnu_get_libc_version (), "2.1.2"))
490 cd = iconv_open ("UTF-8", "ISO-2022-JP");
491 if (cd == (iconv_t) -1)
493 if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
495 if (memcmp (utf8, transbuf, utf8_real_len) != 0)
499 ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
502 if test "x$have_iconv" = "xno"; then
503 AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
507 CFLAGS="$CFLAGS -I$srcdir"
509 AC_MSG_CHECKING([preferred charset name formats for system iconv])
510 AC_RUN_IFELSE([AC_LANG_SOURCE([[
512 #include "iconv-detect.c"
514 [AC_MSG_RESULT([found])],
515 [AC_MSG_RESULT([not found])
517 *** The iconv-detect program was unable to determine the
518 *** preferred charset name formats recognized by your
519 *** iconv library. It is suggested that you install a
520 *** working iconv library such as the one found at
521 *** ftp://ftp.gnu.org/pub/gnu/libiconv
523 [if test "x$os_win32" = xyes; then
524 AC_MSG_RESULT([using known win32 result])
525 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
526 echo >>iconv-detect.h
527 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
528 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
529 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
531 AC_MSG_RESULT([unknown])
533 *** We can't determine the preferred charset name formats
534 *** recognized by your iconv library. You are
535 *** cross-compiling and supposed to know what you are doing.
536 *** Please construct the iconv-detect.h file manually.
541 CFLAGS="$save_CFLAGS"
544 AC_ARG_ENABLE([backtraces],
545 [AS_HELP_STRING([--enable-backtraces],
546 [enable backtraces for camel_pointer_tracker (default=no)])],
547 [enable_backtraces=$enableval], [enable_backtraces=no])
549 if test "x$enable_backtraces" = xyes; then
550 dnl ****************************
551 dnl Check for backtrace_symbols function and dwfl from elfutils
552 dnl ****************************
553 AC_MSG_CHECKING([libc backtrace_symbols function])
554 AC_LINK_IFELSE([AC_LANG_PROGRAM(
555 [[#include <execinfo.h>]],
556 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
557 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
558 AC_MSG_RESULT([$ac_cv_have_bsf])
560 if test "x$ac_cv_have_bsf" = xyes; then
563 AC_MSG_CHECKING([elfutils/libdwfl])
564 AC_LINK_IFELSE([AC_LANG_PROGRAM(
565 [[#include <elfutils/libdwfl.h>]],
569 Dwarf_Addr module_low_addr;
572 dwfl_standard_find_debuginfo;
573 dwfl_linux_proc_find_elf;
575 dwfl_linux_proc_report (NULL, 1);
576 dwfl_report_end (NULL, NULL, NULL);
578 dwfl_module_addrname (NULL, NULL);
579 dwfl_module_getsrc (NULL, NULL);
580 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
581 DWARF_CB_ABORT; DWARF_CB_OK;
582 dwfl_getmodules (NULL, NULL, NULL, 0);
584 [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
585 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
589 if test "x$ac_cv_have_elfdwfl" = xyes; then
591 AC_SUBST(LIBDWFL_LIBS)
596 dnl **********************************
597 dnl Check for nl_langinfo and CODESET
598 dnl **********************************
599 AC_MSG_CHECKING([for nl_langinfo (CODESET)])
600 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
601 [[#include <langinfo.h>]],
602 [[char *codeset = nl_langinfo (CODESET);]]
603 )],[ac_cv_langinfo_codeset=yes],[ac_cv_langinfo_codeset=no])
604 if test "x$ac_cv_langinfo_codeset" = "xyes"; then
605 AC_DEFINE(HAVE_CODESET, 1, [Have nl_langinfo (CODESET)])
607 AC_MSG_RESULT([$ac_cv_langinfo_codeset])
609 dnl *******************************************************
610 dnl Check to see if strftime supports the use of %l and %k
611 dnl *******************************************************
612 AC_MSG_CHECKING([for %l and %k support in strftime])
613 AC_RUN_IFELSE([AC_LANG_SOURCE(
614 [[ #include <stdlib.h>
617 int main(int argc, char **argv) {
623 timeinfo=localtime(&rawtime);
625 strftime(buf, 10, "%lx%k", timeinfo);
627 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
634 )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
635 AC_MSG_RESULT([$ac_cv_lkstrftime])
637 dnl ********************************************************************************
638 dnl security extension support (SSL and S/MIME)
640 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
641 dnl needed by Camel (SSL and S/MIME).
643 dnl The Evolution security extensions are only built if these libraries are found
644 dnl ********************************************************************************
647 AC_ARG_ENABLE([smime],
648 AS_HELP_STRING([--enable-smime],
649 [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
650 [enable_smime="$enableval"],[enable_smime="yes"])
652 AC_ARG_WITH([nspr-includes],
653 AS_HELP_STRING([--with-nspr-includes],
654 [Prefix of Mozilla nspr4 includes.]),
655 [with_nspr_includes="$withval"])
657 AC_ARG_WITH([nspr-libs],
658 AS_HELP_STRING([--with-nspr-libs],
659 [Prefix of Mozilla nspr4 libs.]),
660 [with_nspr_libs="$withval"])
662 AC_ARG_WITH([nss-includes],
663 AS_HELP_STRING([--with-nss-includes],
664 [Prefix of Mozilla nss3 includes.]),
665 [with_nss_includes="$withval"])
667 AC_ARG_WITH([nss-libs],
668 AS_HELP_STRING([--with-nss-libs],
669 [Prefix of Mozilla nss3 libs.]),
670 [with_nss_libs="$withval"])
672 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
678 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
679 if test "x${check_manually}" = "xno"; then
680 AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
681 mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
682 for pc in $mozilla_nspr_pcs; do
683 if $PKG_CONFIG --exists $pc; then
690 AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
691 mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
692 for pc in $mozilla_nss_pcs; do
693 if $PKG_CONFIG --exists $pc; then
700 if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
701 if test "x$enable_smime" = "xyes"; then
702 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
705 MANUAL_NSPR_CFLAGS=""
716 if test "x${check_manually}" = "xyes"; then
717 dnl ******************
719 dnl ******************
720 AC_MSG_CHECKING([for Mozilla nspr4 includes])
721 CPPFLAGS_save="$CPPFLAGS"
722 if test -n "$with_nspr_includes"; then
723 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
726 AC_CHECK_HEADERS(nspr.h prio.h,
727 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
728 CPPFLAGS="$CPPFLAGS_save"
730 if test "x${moz_nspr_includes}" = "xyes"; then
731 MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
733 AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
735 AC_MSG_RESULT([$moz_nspr_includes])
737 AC_MSG_CHECKING([for Mozilla nspr libraries])
738 CFLAGS_save="$CFLAGS"
739 LDFLAGS_save="$LDFLAGS"
741 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
743 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
745 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
746 if test -n "${with_nspr_libs}"; then
747 LDFLAGS="$LDFLAGS -L$with_nspr_libs"
752 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
753 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
755 CFLAGS="$CFLAGS_save"
756 LDFLAGS="$LDFLAGS_save"
759 if test "x${moz_nspr_libs}" = "xyes"; then
760 if test -n "${with_nspr_libs}"; then
761 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
763 MANUAL_NSPR_LIBS="$nsprlibs"
766 AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
768 AC_MSG_RESULT([$moz_nspr_libs])
770 dnl *****************
772 dnl *****************
773 AC_MSG_CHECKING([for Mozilla nss3 includes])
774 CPPFLAGS_save="$CPPFLAGS"
775 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
777 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
778 [moz_nss_includes="yes"],[moz_nss_includes="no"])
779 CPPFLAGS="$CPPFLAGS_save"
781 if test "x${moz_nss_includes}" = "xyes"; then
782 MANUAL_NSS_CFLAGS="-I$with_nss_includes"
784 AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
786 AC_MSG_RESULT($moz_nss_includes)
788 AC_MSG_CHECKING([for Mozilla nss libraries])
789 LDFLAGS_save="$LDFLAGS"
791 nsslibs="-lssl3 -lsmime3 -lnss3"
793 LIBS="$nsslibs $nsprlibs"
794 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
795 if test -n "${with_nss_libs}"; then
796 LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
798 LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
801 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
802 [moz_nss_libs="yes"],[moz_nss_libs="no"])
803 LDFLAGS="$LDFLAGS_save"
806 if test "x${moz_nss_libs}" = "xyes"; then
807 if test "x${enable_smime}" = "xyes"; then
808 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
811 if test -n "${with_nss_libs}"; then
812 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
814 MANUAL_NSS_LIBS="$nsslibs"
817 AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
819 AC_MSG_RESULT([$moz_nss_libs])
821 MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
822 MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
825 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
827 dnl For pkgconfig files.
828 AC_SUBST(mozilla_nss)
829 AC_SUBST(mozilla_nspr)
831 AC_SUBST(MANUAL_NSPR_CFLAGS)
832 AC_SUBST(MANUAL_NSPR_LIBS)
833 AC_SUBST(MANUAL_NSS_CFLAGS)
834 AC_SUBST(MANUAL_NSS_LIBS)
836 dnl ******************************
837 dnl system mail stuff
838 dnl ******************************
839 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
840 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
842 AC_MSG_CHECKING([system mail directory])
843 if test -d /var/mail -a '!' -h /var/mail ; then
844 system_mail_dir="/var/mail"
846 system_mail_dir="/var/spool/mail"
848 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
850 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
852 CAMEL_LOCK_HELPER_USER=""
853 CAMEL_LOCK_HELPER_GROUP=""
854 system_mail_perm="world writable"
857 CAMEL_LOCK_HELPER_USER=""
858 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
859 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
862 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
863 CAMEL_LOCK_HELPER_GROUP=""
864 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
867 CAMEL_LOCK_HELPER_USER=""
868 CAMEL_LOCK_HELPER_GROUP=""
869 system_mail_perm="???"
873 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
874 AC_SUBST(CAMEL_LOCK_HELPER_USER)
875 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
877 dnl ******************************
879 dnl ******************************
880 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
881 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
882 [[ #include <time.h> ]],
887 )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
888 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
889 AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
891 AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
892 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
893 [[ #include <time.h> ]],
895 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
896 if test "x$ac_cv_var_timezone" = "xyes"; then
897 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
898 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
899 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
900 [[ #include <time.h> ]],
902 )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
903 if test "x$ac_cv_var_altzone" = "xyes"; then
904 AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
907 AC_MSG_ERROR([unable to find a way to determine timezone])
911 dnl ******************************
912 dnl ctime_r prototype
913 dnl ******************************
914 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
916 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
917 [[ #include <time.h> ]],
920 ctime_r (&date, buf, 100); ]]
921 )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
924 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
925 AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
928 dnl ******************************
929 dnl gethostbyname_r prototype
930 dnl ******************************
931 AC_CHECK_FUNCS(gethostbyname_r,[
932 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
934 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
936 #include "confdefs.h"
937 #include <sys/types.h>
938 #include <sys/socket.h>
939 #include <netinet/in.h>
941 #define BUFSIZE (sizeof(struct hostent)+10)
945 char buffer[BUFSIZE];
948 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
950 )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
953 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
954 AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
957 dnl ******************************
958 dnl gethostbyaddr_r prototype
959 dnl ******************************
960 AC_CHECK_FUNCS(gethostbyaddr_r,[
961 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_args],
963 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
965 #include "confdefs.h"
966 #include <sys/types.h>
967 #include <sys/socket.h>
968 #include <netinet/in.h>
970 #define BUFSIZE (sizeof(struct hostent)+10)
974 char buffer[BUFSIZE];
977 (void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
978 )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
981 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
982 AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
985 dnl ******************************
986 dnl stat(v)fs location/type
987 dnl ******************************
988 AC_CHECK_HEADER([sys/statvfs.h],
989 [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
990 [[ #if HAVE_SYS_STATVFS_H
991 #include <sys/statvfs.h>
994 AC_CHECK_FUNCS(statvfs)
996 AC_CHECK_HEADER([sys/param.h],
997 [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
998 [[ #if HAVE_SYS_PARAM_H
999 #include <sys/param.h>
1002 AC_CHECK_HEADER([sys/mount.h],
1003 [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1004 [[ #if HAVE_SYS_MOUNT_H
1005 #include <sys/mount.h>
1008 AC_CHECK_FUNCS(statfs)
1010 dnl ******************************
1011 dnl IPv6 support and getaddrinfo calls
1012 dnl ******************************
1013 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1015 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1016 [[ #include "confdefs.h"
1017 #include <sys/types.h>
1018 #include <sys/socket.h>
1019 #include <netinet/in.h>
1023 [[ #ifndef NI_MAXHOST
1024 #define NI_MAXHOST 1025
1028 #define NI_MAXSERV 32
1031 struct addrinfo hints, *res;
1032 struct sockaddr_in6 sin6;
1034 char host[NI_MAXHOST];
1035 char serv[NI_MAXSERV];
1037 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1039 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1040 )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1043 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1044 AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1045 if test "x$enable_ipv6" = "xyes" ; then
1046 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1050 AC_ARG_ENABLE([ipv6],
1051 AS_HELP_STRING([--enable-ipv6=no/yes],
1052 [Enable support for resolving IPv6 addresses.]),
1053 [enable_ipv6=$enableval],[enable_ipv6=yes])
1054 if test "x$enable_ipv6" = "xyes"; then
1056 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1057 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1058 [[ #include "confdefs.h"
1059 #include <sys/types.h>
1060 #include <sys/socket.h>
1061 #include <netinet/in.h>
1064 [[ struct addrinfo hints;
1065 hints.ai_flags = AI_ADDRCONFIG;
1067 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1073 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1075 AC_CHECK_HEADER([wspiapi.h],
1076 [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1078 dnl **********************************
1079 dnl Weather calendar backend support
1080 dnl **********************************
1081 AC_MSG_CHECKING([if we should build the weather calendar backend])
1082 AC_ARG_ENABLE([weather],
1083 [AS_HELP_STRING([--enable-weather],
1084 [Build the weather calendar backend (default=yes)])],
1085 [use_gweather=$enableval], [use_gweather=yes])
1087 AC_MSG_RESULT([$use_gweather])
1088 if test "x$use_gweather" = "xyes"; then
1089 PKG_CHECK_MODULES([LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1090 [AC_MSG_ERROR([The weather calendar backend requires GWeather >= gweather_minimum_version. Alternatively, you may specify --disable-weather as a configure option to avoid building the backend.])])
1092 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1094 dnl ******************************
1096 dnl ******************************
1097 AC_ARG_ENABLE([nntp],
1098 AS_HELP_STRING([--enable-nntp],
1099 [Build Usenet news (NNTP) backend]),
1100 [enable_nntp=$enableval],[enable_nntp=yes])
1101 if test "x$enable_nntp" = "xyes"; then
1102 AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
1107 AM_CONDITIONAL(ENABLE_NNTP, [test x$enable_nntp = xyes])
1109 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1111 dnl ******************************
1113 dnl ******************************
1114 AC_ARG_ENABLE([dot-locking],
1115 AS_HELP_STRING([--enable-dot-locking=yes/no],
1116 [Enable support for locking mail files with dot locking]),
1117 [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1119 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1120 AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1126 AC_ARG_ENABLE([file-locking],
1127 AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1128 [Enable support for locking mail files with file locking]),
1129 [],[enable_file_locking=fcntl])
1131 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1132 AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1135 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1136 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1143 dnl ******************************
1144 dnl sendmail operation
1145 dnl ******************************
1146 AC_MSG_CHECKING([for SunOS broken spool format])
1147 if test "x$host_os" = "xsunos" ; then
1148 with_broken_spool="yes"
1151 AC_ARG_WITH([broken-spool],
1152 AS_HELP_STRING([--with-broken-spool=yes/no],
1153 [Using SunOS/Solaris sendmail which has a broken spool format]),
1154 [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1156 if test "x$with_broken_spool" = "xyes"; then
1157 AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1160 AC_MSG_RESULT([$with_broken_spool])
1162 dnl ******************************
1163 dnl DBus call timeout
1164 dnl ******************************
1166 AC_ARG_WITH([dbus-call-timeout],
1167 AS_HELP_STRING([--with-dbus-call-timeout=miliseconds],
1168 [Default timeout used when invoking g_dbus_proxy_call() family functions in EBook and ECal library (default=-1)]),
1169 [ac_cv_dbus_call_timeout=$withval],[ac_cv_dbus_call_timeout=-1])
1171 DEFAULT_EDS_DBUS_TIMEOUT=$ac_cv_dbus_call_timeout
1172 AC_SUBST(DEFAULT_EDS_DBUS_TIMEOUT)
1177 EVO_KRB5_SUPPORT(no)
1179 dnl ******************************
1181 dnl ******************************
1184 dnl ******************************
1186 dnl ******************************
1187 if test "x$os_win32" != "xyes"; then
1189 case $with_openldap in
1194 case $with_static_ldap in
1196 msg_ldap="$with_openldap (static)"
1199 msg_ldap="$with_openldap (dynamic)"
1204 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1205 if test "x$with_openldap" = "xno" ; then
1206 EVO_SUNLDAP_CHECK(no)
1207 case $with_sunldap in
1212 case $with_static_sunldap in
1214 msg_ldap="$with_sunldap (static)"
1217 msg_ldap="$with_sunldap (dynamic)"
1224 AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1226 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1228 dnl Win32 LDAP support
1229 LDAP_CFLAGS="-DLDAP_DEPRECATED"
1230 LDAP_LIBS="-lwldap32"
1231 AC_SUBST(LDAP_CFLAGS)
1233 AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1234 AM_CONDITIONAL(ENABLE_LDAP, true)
1235 AM_CONDITIONAL(SUNLDAP, false)
1239 dnl ******************************
1240 dnl GObject marshalling
1241 dnl ******************************
1244 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1245 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1246 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1248 dnl ******************************
1249 dnl Utility macro to set compiler flags for a specific lib.
1250 dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
1251 dnl ******************************
1252 AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
1253 PKG_CHECK_MODULES([$1], [$2])
1254 $1_CFLAGS="[$]$1_CFLAGS $3 "
1255 $1_LIBS="[$]$1_LIBS $4 "
1258 dnl ******************************
1260 dnl ******************************
1261 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1263 dnl ******************************
1264 dnl libedataserver flags
1265 dnl ******************************
1266 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1268 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1269 AC_SUBST(E_DATA_SERVER_CFLAGS)
1270 AC_SUBST(E_DATA_SERVER_LIBS)
1272 dnl ******************************
1273 dnl libedataserverui
1274 dnl ******************************
1275 E_DATA_SERVER_UI_DEPS="gtk+-3.0 libxml-2.0 libsoup-2.4"
1277 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER_UI, $E_DATA_SERVER_UI_DEPS, , )
1278 AC_SUBST(E_DATA_SERVER_UI_CFLAGS)
1279 AC_SUBST(E_DATA_SERVER_UI_LIBS)
1281 if test "x$enable_maintainer_mode" = "xyes" ; then
1282 FACTORY_GTK_CFLAGS=$E_DATA_SERVER_UI_CFLAGS
1283 FACTORY_GTK_LIBS=$E_DATA_SERVER_UI_LIBS
1284 AC_SUBST(FACTORY_GTK_CFLAGS)
1285 AC_SUBST(FACTORY_GTK_LIBS)
1288 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libsoup-2.4 libxml-2.0"
1290 dnl ******************************
1291 dnl libebackend flags
1292 dnl ******************************
1293 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1294 AC_SUBST(E_BACKEND_CFLAGS)
1295 AC_SUBST(E_BACKEND_LIBS)
1297 dnl ******************************
1298 dnl evolution-addressbook flags
1299 dnl ******************************
1300 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 libsecret-1"
1302 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1303 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1304 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1306 dnl ******************************
1307 dnl evolution-calendar flags
1308 dnl ******************************
1309 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 libsecret-1"
1312 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1313 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1314 dnl to differentiate between <libical/ical.h> and <ical.h>
1315 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1316 dnl libical is fixed, we have to work-around the buggy CFlags.
1318 LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1319 LIBICAL_EXTRA_LIBS=""
1320 AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1321 AC_SUBST(LIBICAL_EXTRA_LIBS)
1323 EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1324 AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1325 AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1327 dnl ****************************
1328 dnl Check for ical_set_unknown_token_handling_setting function
1329 dnl ****************************
1330 AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1331 save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1332 save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1333 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1334 [[#include <libical/ical.h>]],
1335 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1336 [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])
1339 AC_MSG_RESULT([$ac_cv_have_iuth])
1341 dnl ******************************
1343 dnl ******************************
1344 LIBGDATA_REQUIRED=libgdata_minimum_version
1345 AC_SUBST(LIBGDATA_REQUIRED)
1347 EVO_SET_COMPILE_FLAGS(GDATA, libgdata)
1348 AC_SUBST(GDATA_CFLAGS)
1349 AC_SUBST(GDATA_LIBS)
1351 dnl ******************************
1353 dnl ******************************
1354 LIBSOUP_REQUIRED=libsoup_minimum_version
1355 AC_SUBST(LIBSOUP_REQUIRED)
1357 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1358 AC_SUBST(SOUP_CFLAGS)
1361 dnl ******************************
1363 dnl ******************************
1364 SQLITE_REQUIRED=sqlite_minimum_version
1365 AC_SUBST(SQLITE_REQUIRED)
1368 dnl deflateInit is a #define, use deflateEnd instead
1369 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1371 if test "x$zlib_found" = "xfalse"; then
1372 AC_MSG_ERROR([*** zlib is required])
1375 dnl ******************************
1376 dnl Checks for large file support
1377 dnl ******************************
1378 AC_ARG_ENABLE([largefile],
1379 AS_HELP_STRING([--enable-largefile],
1380 [enable support for large files [[default=no]]]),
1381 [],[enable_largefile="yes"])
1383 if test "x$enable_largefile" != "xno"; then
1385 AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1386 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1387 [[ #include <sys/types.h>
1388 #include <sys/stat.h>
1391 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]]
1392 )],[ac_cv_largefile64_source="no"],
1393 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1394 [[ #define _LARGEFILE64_SOURCE
1395 #include <sys/types.h>
1396 #include <sys/stat.h>
1399 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1400 [ac_cv_largefile64_source="unknown"])])
1403 enable_largefile="no"
1405 if test "x$ac_cv_largefile64_source" = "xyes"; then
1406 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1407 enable_largefile="yes"
1408 elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1409 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1412 if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1413 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1414 enable_largefile="yes"
1417 if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1418 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1419 enable_largefile="yes"
1422 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1426 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1428 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)
1429 AC_SUBST(CAMEL_CFLAGS)
1430 AC_SUBST(CAMEL_LIBS)
1432 dnl ******************************
1433 dnl Special directories
1434 dnl ******************************
1436 dnl If you add something here, consider whether or not you also
1437 dnl need to add it to one or more .pc.in files (for Connector,
1440 privdatadir='${datadir}'/evolution-data-server
1441 AC_SUBST(privdatadir)
1443 privincludedir='${includedir}'/evolution-data-server
1444 AC_SUBST(privincludedir)
1446 privlibdir='${libdir}'/evolution-data-server
1447 AC_SUBST(privlibdir)
1449 imagesdir='${datadir}'/pixmaps/evolution-data-server
1452 moduledir='${privlibdir}'/registry-modules
1455 ebook_backenddir='${privlibdir}'/addressbook-backends
1456 AC_SUBST(ebook_backenddir)
1458 ecal_backenddir='${privlibdir}'/calendar-backends
1459 AC_SUBST(ecal_backenddir)
1461 ro_sourcesdir='${privdatadir}'/ro-sources
1462 AC_SUBST(ro_sourcesdir)
1464 rw_sourcesdir='${privdatadir}'/rw-sources
1465 AC_SUBST(rw_sourcesdir)
1467 if test "x$use_gweather" = "xyes"; then
1468 weatherdatadir="$privdatadir/weather"
1469 AC_SUBST(weatherdatadir)
1472 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1473 camel_providerdir='${privlibdir}'/camel-providers
1474 AC_SUBST(camel_providerdir)
1476 dnl *******************
1477 dnl D-BUS service stuff
1478 dnl *******************
1479 m4_pattern_allow([AM_V_GEN])
1480 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)|" $< > $@'
1481 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1483 dnl ******************************
1485 dnl ******************************
1489 dnl We use AC_SUBST_FILE because AC_SUBST won't deal with newlines
1490 EVO_MARSHAL_RULE=$srcdir/marshal.mk
1491 AC_SUBST_FILE(EVO_MARSHAL_RULE)
1493 dnl ******************************
1495 dnl ******************************
1496 AC_PATH_PROG(GPERF, gperf, [no])
1497 if test "x$GPERF" = "xno"; then
1498 AC_MSG_ERROR([You need gperf to build evolution-data-server])
1501 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1503 dnl ******************************
1505 dnl ******************************
1506 AC_ARG_ENABLE(vala-bindings,
1507 AC_HELP_STRING([--enable-vala-bindings],
1508 [build the EXPERIMENTAL Vala bindings]),
1509 enable_vala_bindings=$enableval,
1510 enable_vala_bindings=no)
1512 if test x$enable_vala_bindings = xyes; then
1513 if test "x$INTROSPECTION_SCANNER" = x; then
1514 AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1517 AM_PROG_VALAC([0.13.0])
1520 AC_PATH_PROG(VALAC, valac, valac)
1524 AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1526 if test "x$VAPIGEN" = "xfalse"; then
1527 AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1533 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1536 dnl ******************************
1538 dnl ******************************
1540 export privincludedir
1545 evolution-data-server-zip
1546 evolution-data-server.pc
1547 addressbook/Makefile
1548 addressbook/libebook/Makefile
1549 addressbook/libebook/libebook.pc
1550 addressbook/libedata-book/Makefile
1551 addressbook/libedata-book/libedata-book.pc
1552 addressbook/libegdbus/Makefile
1553 addressbook/backends/Makefile
1554 addressbook/backends/file/Makefile
1555 addressbook/backends/ldap/Makefile
1556 addressbook/backends/google/Makefile
1557 addressbook/backends/google/tests/Makefile
1558 addressbook/backends/webdav/Makefile
1561 calendar/libecal/Makefile
1562 calendar/libecal/libecal.pc
1563 calendar/libedata-cal/Makefile
1564 calendar/libedata-cal/libedata-cal.pc
1565 calendar/libegdbus/Makefile
1566 calendar/backends/Makefile
1567 calendar/backends/caldav/Makefile
1568 calendar/backends/file/Makefile
1569 calendar/backends/http/Makefile
1570 calendar/backends/contacts/Makefile
1571 calendar/backends/weather/Makefile
1573 camel/providers/Makefile
1574 camel/providers/imap/Makefile
1575 camel/providers/imapx/Makefile
1576 camel/providers/local/Makefile
1577 camel/providers/nntp/Makefile
1578 camel/providers/pop3/Makefile
1579 camel/providers/sendmail/Makefile
1580 camel/providers/smtp/Makefile
1581 camel/tests/Makefile
1582 camel/tests/folder/Makefile
1583 camel/tests/lib/Makefile
1584 camel/tests/message/Makefile
1585 camel/tests/mime-filter/Makefile
1586 camel/tests/misc/Makefile
1587 camel/tests/smime/Makefile
1590 data/sources/Makefile
1591 libebackend/Makefile
1592 libebackend/libebackend.pc
1593 libedataserver/Makefile
1594 libedataserver/eds-version.h
1595 libedataserver/libedataserver.pc
1596 libedataserverui/Makefile
1597 libedataserverui/libedataserverui.pc
1599 modules/cache-reaper/Makefile
1600 modules/gnome-online-accounts/Makefile
1601 modules/google-backend/Makefile
1602 modules/yahoo-backend/Makefile
1605 services/evolution-addressbook-factory/Makefile
1606 services/evolution-calendar-factory/Makefile
1607 services/evolution-source-registry/Makefile
1609 tests/libebook/Makefile
1610 tests/libebook/client/Makefile
1611 tests/libebook/vcard/Makefile
1612 tests/libecal/Makefile
1613 tests/libecal/client/Makefile
1614 tests/libedata-cal/Makefile
1615 tests/libedataserver/Makefile
1616 tests/libedataserverui/Makefile
1617 tests/tools/Makefile
1619 docs/reference/Makefile
1620 docs/reference/addressbook/Makefile
1621 docs/reference/addressbook/libebook/Makefile
1622 docs/reference/addressbook/libedata-book/Makefile
1623 docs/reference/calendar/Makefile
1624 docs/reference/calendar/libecal/Makefile
1625 docs/reference/calendar/libedata-cal/Makefile
1626 docs/reference/camel/Makefile
1627 docs/reference/libedataserver/Makefile
1628 docs/reference/libedataserverui/Makefile
1629 docs/reference/libebackend/Makefile
1630 docs/reference/private/Makefile
1637 evolution-data-server has been configured as follows:
1638 Weather calendar: $use_gweather
1639 Mail Directory: $system_mail_dir, $system_mail_perm
1640 LDAP support: $msg_ldap
1641 NNTP support: $msg_nntp
1642 Kerberos 5: $msg_krb5
1643 SMIME support: $msg_smime
1644 IPv6 support: $msg_ipv6
1645 Dot Locking: $msg_dot
1646 File Locking: $msg_file
1647 Large files: $enable_largefile
1648 Gtk Doc: $enable_gtk_doc
1649 Introspection: $enable_introspection
1650 Vala bindings: $enable_vala_bindings
1651 GNOME Online Accounts $enable_goa
1652 Code coverage (gcov): $enable_code_coverage
1653 Strict building: $enable_strict