Bug #719382 - Build break, missing NSPR CFLAGS/LIBS in Camel
[platform/upstream/evolution-data-server.git] / configure.ac
1
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])
6
7 m4_define([eds_version],
8         [eds_major_version.eds_minor_version.eds_micro_version])
9
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.
14 BASE_VERSION=3.12
15 m4_define([base_version], [3.12])
16
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])
20
21 dnl Autoconf / Automake Initialization
22 AC_PREREQ(2.62)
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)
28
29 dnl This is for the autoconf tests only - it set's the language we use
30 AC_LANG(C)
31
32 dnl Automake 1.11 - Silent Build Rules
33 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
34
35 dnl Required Package Versions
36
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])
40
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])
44
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])
48
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])
55
56 dnl Optional Packages
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])
61
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)])
66
67 EDS_MAJOR_VERSION=eds_major_version
68 EDS_MINOR_VERSION=eds_minor_version
69 EDS_MICRO_VERSION=eds_micro_version
70
71 GLIB_GSETTINGS
72
73 dnl ******************************
74 dnl D-Bus versioning
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"
80
81 AC_DEFINE_UNQUOTED(
82        ADDRESS_BOOK_DBUS_SERVICE_NAME,
83        ["$ADDRESS_BOOK_DBUS_SERVICE_NAME"],
84        [D-Bus service name for the address book factory])
85
86 AC_DEFINE_UNQUOTED(
87        CALENDAR_DBUS_SERVICE_NAME,
88        ["$CALENDAR_DBUS_SERVICE_NAME"],
89        [D-Bus service name for the calendar factory])
90
91 AC_DEFINE_UNQUOTED(
92         SOURCES_DBUS_SERVICE_NAME,
93         ["$SOURCES_DBUS_SERVICE_NAME"],
94         [D-Bus service name for the source registry])
95
96 AC_DEFINE_UNQUOTED(
97         USER_PROMPTER_DBUS_SERVICE_NAME,
98         ["$USER_PROMPTER_DBUS_SERVICE_NAME"],
99         [D-Bus service name for the user prompter])
100
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)
105
106 dnl ******************************
107 dnl Libtool versioning
108 dnl ******************************
109 LIBEDATASERVER_CURRENT=18
110 LIBEDATASERVER_REVISION=0
111 LIBEDATASERVER_AGE=0
112
113 LIBECAL_CURRENT=16
114 LIBECAL_REVISION=0
115 LIBECAL_AGE=0
116
117 LIBEDATACAL_CURRENT=23
118 LIBEDATACAL_REVISION=0
119 LIBEDATACAL_AGE=0
120
121 LIBEDATABOOK_CURRENT=20
122 LIBEDATABOOK_REVISION=0
123 LIBEDATABOOK_AGE=0
124
125 LIBEBOOK_CURRENT=17
126 LIBEBOOK_REVISION=1
127 LIBEBOOK_AGE=3
128
129 LIBEBOOK_CONTACTS_CURRENT=0
130 LIBEBOOK_CONTACTS_REVISION=0
131 LIBEBOOK_CONTACTS_AGE=0
132
133 LIBCAMEL_CURRENT=48
134 LIBCAMEL_REVISION=0
135 LIBCAMEL_AGE=0
136
137 LIBEBACKEND_CURRENT=7
138 LIBEBACKEND_REVISION=0
139 LIBEBACKEND_AGE=0
140
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)
168
169 dnl **************************************
170 dnl Put the ACLOCAL flags in the Makefile
171 dnl **************************************
172 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
173
174 dnl *********************************************
175 dnl Figure out early if we'll need a C++ compiler
176 dnl *********************************************
177
178 EVO_PHONENUMBER_ARGS
179
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"
190
191 proposed_c_warning_flags="$proposed_warning_flags
192         -Wdeclaration-after-statement
193         -Wno-missing-field-initializers
194         -Wno-sign-compare
195         -Wno-unused-parameter
196         -Wnested-externs"
197
198 proposed_cxx_warning_flags="$proposed_warning_flags
199         -Wabi -Wnoexcept"
200
201 AS_COMPILER_FLAGS(WARNING_FLAGS, [$proposed_c_warning_flags])
202 AC_SUBST(WARNING_FLAGS)
203
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.
207 dnl
208 dnl     -Wformat-nonliteral
209 dnl     -Wmissing-format-attribute
210 dnl     -Wshadow
211 dnl     -Wstrict-aliasing=2
212
213 AM_CFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
214 AC_SUBST(AM_CFLAGS)
215
216 dnl C++ Compiler flags, needed for ICU C++ access and libphonenumber usage
217 AC_PROG_CXX
218
219 AC_LANG_PUSH([C++])
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)
224 AC_LANG_POP([C++])
225
226 dnl Permits linking of C++ based libraries using the C linker if needed.
227 AC_SUBST([predeps_CXX])
228 AC_SUBST([postdeps_CXX])
229
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])
237
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
242                 enable_strict=yes
243         else
244                 enable_strict=no
245         fi
246 fi
247 AC_MSG_RESULT([$enable_strict])
248
249 AM_CPPFLAGS=
250
251 if test "x$enable_strict" = xyes; then
252         AM_CPPFLAGS="$AM_CPPFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
253 fi
254
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"
259
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"
267
268 AC_SUBST(AM_CPPFLAGS)
269
270 dnl ******************************
271 dnl Initialize maintainer mode
272 dnl ******************************
273 AM_MAINTAINER_MODE([enable])
274
275 if test "x$enable_maintainer_mode" = "xyes" ; then
276         AC_DEFINE(ENABLE_MAINTAINER_MODE, 1, [Configured with enabled maintainer mode])
277 fi
278
279 AC_PROG_CC
280 AC_PROG_CPP
281 AC_C_INLINE
282 AM_PROG_CC_C_O
283 AC_PROG_INSTALL
284 AC_PROG_LN_S
285 AC_PROG_MAKE_SET
286
287 dnl For gen-western-table.py
288 AM_PATH_PYTHON
289
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"
299 fi
300
301 dnl ******************************
302 dnl I18N stuff
303 dnl ******************************
304 IT_PROG_INTLTOOL([0.35.5])
305
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])
309
310 localedir='$(prefix)/$(DATADIRNAME)/locale'
311 AC_SUBST(localedir)
312
313 dnl ******************************
314 dnl Initialize libtool
315 dnl ******************************
316 LT_PREREQ(2.2)
317 LT_INIT(disable-static win32-dll)
318
319 PKG_PROG_PKG_CONFIG
320
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).
323 GNOME_CODE_COVERAGE
324
325 dnl ******************************
326 dnl Gtk Doc stuff
327 dnl ******************************
328 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
329
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])
337
338 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
339 case "$host" in
340 *openbsd*|*freebsd*)
341         dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
342         ;;
343 *)
344         LDFLAGS="$LDFLAGS -Wl,--no-undefined"
345         ;;
346 esac
347
348 dnl ******************************
349 dnl Check for Win32
350 dnl ******************************
351 AC_MSG_CHECKING([for Win32])
352 case "$host" in
353 *-mingw*)
354         os_win32='yes'
355         NO_UNDEFINED='-no-undefined'
356         SOCKET_LIBS='-lws2_32 -ldnsapi'
357         DL_LIB=''
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])
361         ;;
362 *openbsd*|*freebsd*)
363         os_win32='no'
364         NO_UNDEFINED=''
365         SOCKET_LIBS=''
366         DL_LIB=''
367         LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
368         ;;
369 *)
370         os_win32='no'
371         NO_UNDEFINED=''
372         SOCKET_LIBS=''
373         DL_LIB='-ldl'
374         LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
375         ;;
376 esac
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)
382
383 dnl **************************************
384 dnl Check for posix compatible sys/wait.h
385 dnl **************************************
386 AC_HEADER_SYS_WAIT
387
388 dnl ************************************
389 dnl Check for posix compatible alloca()
390 dnl ************************************
391 AC_FUNC_ALLOCA
392
393 dnl ******************************
394 dnl Checks for functions
395 dnl ******************************
396 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
397
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])
406
407 if test x$os_win32 = xno; then
408         PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
409 fi
410
411 dnl ******************************
412 dnl Check for libphonenumber
413 dnl ******************************
414
415 EVO_PHONENUMBER_SUPPORT
416
417 dnl *******************
418 dnl Check for ICU
419 dnl *******************
420 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
424 enable_icu=no
425 PKG_CHECK_MODULES(ICU, icu-i18n, enable_icu=yes, [
426         enable_icu=yes
427         AC_CHECK_HEADERS(unicode/ucol.h,, enable_icu=no)
428         AC_MSG_CHECKING([for libicui18n])
429         LIBS_old=$LIBS
430         LIBS="$LIBS -licui18n -licuuc -licudata"
431         AC_TRY_LINK([#include <unicode/ucol.h>],
432                 [ucol_open ("", NULL);],
433                 AC_MSG_RESULT(yes),
434                 AC_MSG_RESULT(no); enable_icu=no)
435         LIBS=$LIBS_old
436         if [test x$enable_icu = xyes]; then
437                 ICU_CFLAGS=-D_REENTRANT
438                 ICU_LIBS="-licui18n -licuuc -licudata"
439                 AC_SUBST(ICU_CFLAGS)
440                 AC_SUBST(ICU_LIBS)
441         else
442                 AC_MSG_ERROR([ICU libs not found, icu-i18n is required.])
443         fi
444 ])
445
446 dnl *************************
447 dnl Check for GTK+
448 dnl *************************
449 AC_ARG_ENABLE([gtk],
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
456         PKG_CHECK_MODULES(
457                 [GTK], [gtk+-3.0 >= gdk_minimum_version],,
458                 [AC_MSG_ERROR([
459
460         gtk+-3.0 not found (or version < gdk_minimum_version)
461
462         If you want to disable GTK+ support,
463         please append --disable-gtk to configure.
464
465         ])])
466
467         PKG_CHECK_MODULES(
468                 [GCR], [gcr-3 >= gcr_minimum_version],,
469                 [AC_MSG_ERROR([
470
471         gcr-3.0 not found (or version < gcr_minimum_version)
472
473         If you want to disable gcr-3.0's GTK+ widgets,
474         please append --disable-gtk to configure.
475
476         ])])
477
478         AC_DEFINE(HAVE_GTK, 1, [Define to 1 if you have the gtk+-3.0 package.])
479 fi
480 AM_CONDITIONAL(HAVE_GTK, [test x$enable_gtk = xyes])
481
482
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],,
495         [AC_MSG_ERROR([
496         Some packages were not available to build the example program(s).
497
498         If you want to disable examples, please
499         append --disable-examples to configure.
500         ])])
501
502         AC_DEFINE(BUILD_EXAMPLES, 1, [Define to 1 if the examples should be built.])
503 fi
504 AM_CONDITIONAL(BUILD_EXAMPLES, [test x$enable_examples = xyes])
505
506
507 dnl *******************************
508 dnl Check for GNOME Online Accounts
509 dnl *******************************
510 AC_ARG_ENABLE([goa],
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
517         PKG_CHECK_MODULES(
518                 [GOA], [goa-1.0 >= goa_minimum_version],,
519                 [AC_MSG_ERROR([
520
521         goa-1.0 not found (or version < goa_minimum_version)
522
523         If you want to disable GNOME Online Accounts support,
524         please append --disable-goa to configure.
525
526         ])])
527
528         AC_DEFINE(HAVE_GOA, 1, [Define to 1 if you have the goa-1.0 package.])
529 fi
530 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
531
532 dnl ********************************
533 dnl Check for Ubuntu Online Accounts
534 dnl ********************************
535 AC_ARG_ENABLE([uoa],
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
542         PKG_CHECK_MODULES(
543                 [LIBACCOUNTS_GLIB],
544                 [libaccounts-glib >= libaccounts_glib_minimum_version],,
545                 [AC_MSG_ERROR([
546
547         libaccounts-glib not found (or version < libaccounts_glib_minimum_version)
548
549         If you want to disable Ubuntu Online Accounts support,
550         please append --disable-uoa to configure.
551
552         ])])
553
554         PKG_CHECK_MODULES(
555                 [LIBSIGNON_GLIB],
556                 [libsignon-glib >= libsignon_glib_minimum_version],,
557                 [AC_MSG_ERROR([
558
559         libsignon-glib not found (or version < libsignon_glib_minimum_version)
560
561         If you want to disable Ubuntu Online Accounts support,
562         please append --disable-uoa to configure.
563
564         ])])
565
566         PKG_CHECK_MODULES(
567                 [JSON_GLIB], [json-glib-1.0],,
568                 [AC_MSG_ERROR([
569
570         json-glib-1.0 not found
571
572         If you want to disable Ubuntu Online Accounts support,
573         please append --disable-uoa to configure.
574
575         ])])
576
577         PKG_CHECK_MODULES(
578                 [REST], [rest-0.7],,
579                 [AC_MSG_ERROR([
580
581         librest-0.7 not found
582
583         If you want to disable Ubuntu Online Accounts support,
584         please append --disable-uoa to configure.
585
586         ])])
587
588         AC_DEFINE(HAVE_UOA, 1, [Have libaccounts-glib])
589 fi
590 AM_CONDITIONAL(HAVE_UOA, [test x$enable_uoa = xyes])
591
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])
598 fi
599 AC_SUBST(LIBSECRET_CFLAGS)
600 AC_SUBST(LIBSECRET_LIBS)
601
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)
608
609 LIBICAL_REQUIRED=libical_minimum_version
610 AC_SUBST(LIBICAL_REQUIRED)
611
612 dnl ******************************
613 dnl regex check
614 dnl ******************************
615 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
616                         [REGEX_LIBS=-lregex
617                         AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
618                         [AC_MSG_ERROR([No regex library found])])])
619 AC_SUBST(REGEX_LIBS)
620
621 dnl ******************************
622 dnl libdb checking
623 dnl ******************************
624 AC_ARG_WITH([libdb],
625         AS_HELP_STRING([--with-libdb=PREFIX],
626         [Prefix where libdb is installed]),
627         [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
628
629 DB_CFLAGS="-I$libdb_prefix/include"
630 DB_LIBS="-L$libdb_prefix/lib -ldb"
631
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(
636         [[#include <db.h>]],
637         [[db_create(NULL, NULL, 0)]])],
638         [AC_MSG_RESULT([yes])],
639         [AC_MSG_ERROR([Cannot find libdb])])
640 CFLAGS=$save_cflags
641 LIBS=$save_libs
642 AC_SUBST(DB_CFLAGS)
643 AC_SUBST(DB_LIBS)
644
645 dnl ******************************
646 dnl db_load checking
647 dnl ******************************
648 have_db_load=no
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.])
652 else
653    have_db_load=yes
654 fi
655
656 AM_CONDITIONAL(HAVE_DB_LOAD, test x"$have_db_load" = "xyes")
657
658 dnl ******************************
659 dnl iconv checking
660 dnl ******************************
661 have_iconv="no"
662 save_LIBS="$LIBS"
663 LIBS="$LIBS -liconv"
664 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
665         AC_LINK_IFELSE([AC_LANG_PROGRAM(
666         [[
667                 #include <iconv.h>
668                 #include <stdlib.h>
669         ]],
670         [[
671                 iconv_t cd;
672                 cd = iconv_open ("UTF-8", "ISO-8859-1");
673         ]]
674         )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
675
676 if test "x$ac_cv_libiconv" = "xyes"; then
677         ICONV_LIBS="-liconv"
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"
682         fi
683         have_iconv="yes"
684 else
685         LIBS="$save_LIBS"
686         AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
687 fi
688
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)
692         fi
693 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
694         AC_RUN_IFELSE([AC_LANG_SOURCE([[
695                 #include <iconv.h>
696                 #include <stdlib.h>
697                 #include <string.h>
698                 #ifdef HAVE_GNU_GET_LIBC_VERSION
699                 #include <gnu/libc-version.h>
700                 #endif
701                 int main() {
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;
705                         iconv_t cd;
706                         size_t jp_len = strlen (jp), utf8_len = 10;
707                         size_t utf8_real_len = strlen (utf8);
708
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"))
712                                 exit (1);
713                         #endif
714
715                         cd = iconv_open ("UTF-8", "ISO-2022-JP");
716                         if (cd == (iconv_t) -1)
717                                 exit (1);
718                         if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
719                                 exit (1);
720                         if (memcmp (utf8, transbuf, utf8_real_len) != 0)
721                                 exit (1);
722                         return (0);}
723                 ]])
724         ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
725 fi
726
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])
729 fi
730 AC_SUBST(ICONV_LIBS)
731
732 CFLAGS="$CFLAGS -I$srcdir"
733
734 AC_MSG_CHECKING([preferred charset name formats for system iconv])
735 AC_RUN_IFELSE([AC_LANG_SOURCE([[
736         #define CONFIGURE_IN
737         #include "iconv-detect.c"
738         ]])],
739         [AC_MSG_RESULT([found])],
740         [AC_MSG_RESULT([not found])
741                 AC_MSG_WARN([
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
747         ])],
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
755         else
756                 AC_MSG_RESULT([unknown])
757                 AC_MSG_WARN([
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.
762                 ])
763         fi
764 ])
765
766 CFLAGS="$save_CFLAGS"
767 LIBS="$save_LIBS"
768
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])
773
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])
784
785         if test "x$ac_cv_have_bsf" = xyes; then
786                 LIBS="$LIBS -ldw"
787
788                 AC_MSG_CHECKING([elfutils/libdwfl])
789                 AC_LINK_IFELSE([AC_LANG_PROGRAM(
790                         [[#include <elfutils/libdwfl.h>]],
791                         [[{
792                                 Dwfl *dwfl;
793                                 Dwfl_Module *module;
794                                 Dwarf_Addr module_low_addr;
795                                 Dwfl_Line *line;
796
797                                 dwfl_standard_find_debuginfo;
798                                 dwfl_linux_proc_find_elf;
799                                 dwfl_begin (NULL);
800                                 dwfl_linux_proc_report (NULL, 1);
801                                 dwfl_report_end (NULL, NULL, NULL);
802                                 dwfl_end (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);
808                         }]])],
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])
811
812                 LIBS="$save_LIBS"
813
814                 if test "x$ac_cv_have_elfdwfl" = xyes; then
815                         LIBDWFL_LIBS="-ldw"
816                         AC_SUBST(LIBDWFL_LIBS)
817                 fi
818         fi
819 fi
820
821 dnl ******************************
822 dnl Check for nl_langinfo features
823 dnl ******************************
824 EVO_CHECK_LANGINFO([CODESET])
825 EVO_CHECK_LANGINFO([_NL_ADDRESS_COUNTRY_AB2])
826
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>
833                 #include <string.h>
834                 #include <time.h>
835                 int main(int argc, char **argv) {
836                 char buf[10];
837                 time_t rawtime;
838                 struct tm *timeinfo;
839
840                 time(&rawtime);
841                 timeinfo=localtime(&rawtime);
842                 buf[0] = '\0';
843                 strftime(buf, 10, "%lx%k", timeinfo);
844
845                 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
846                         exit(1);
847                 else
848                         exit(0);
849                 return 0;
850                 }
851         ]]
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])
854
855 dnl ********************************************************************************
856 dnl security extension support (SSL and S/MIME)
857 dnl
858 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
859 dnl needed by Camel (SSL and S/MIME).
860 dnl
861 dnl The Evolution security extensions are only built if these libraries are found
862 dnl ********************************************************************************
863 msg_smime="no"
864
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"])
869
870 AC_ARG_WITH([nspr-includes],
871         AS_HELP_STRING([--with-nspr-includes],
872         [Prefix of Mozilla nspr4 includes.]),
873         [with_nspr_includes="$withval"])
874
875 AC_ARG_WITH([nspr-libs],
876         AS_HELP_STRING([--with-nspr-libs],
877         [Prefix of Mozilla nspr4 libs.]),
878         [with_nspr_libs="$withval"])
879
880 AC_ARG_WITH([nss-includes],
881         AS_HELP_STRING([--with-nss-includes],
882         [Prefix of Mozilla nss3 includes.]),
883         [with_nss_includes="$withval"])
884
885 AC_ARG_WITH([nss-libs],
886         AS_HELP_STRING([--with-nss-libs],
887         [Prefix of Mozilla nss3 libs.]),
888         [with_nss_libs="$withval"])
889
890 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
891         check_manually="yes"
892 else
893         check_manually="no"
894 fi
895
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
902                         AC_MSG_RESULT($pc)
903                         mozilla_nspr=$pc
904                         break;
905                 fi
906         done
907
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
912                         AC_MSG_RESULT($pc)
913                         mozilla_nss=$pc
914                         break;
915                 fi
916         done
917
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])
921                         msg_smime="yes"
922                 fi
923                 MANUAL_NSPR_CFLAGS=""
924                 MANUAL_NSPR_LIBS=""
925                 MANUAL_NSS_CFLAGS=""
926                 MANUAL_NSS_LIBS=""
927         else
928                 check_manually="yes"
929                 mozilla_nspr=""
930                 mozilla_nss=""
931         fi
932 fi
933
934 if test "x${check_manually}" = "xyes"; then
935 dnl ******************
936 dnl Check for NSPR 4
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"
942                 fi
943
944                 AC_CHECK_HEADERS(nspr.h prio.h,
945                 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
946                 CPPFLAGS="$CPPFLAGS_save"
947
948                 if test "x${moz_nspr_includes}" = "xyes"; then
949                         MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
950                 else
951                         AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
952                 fi
953         AC_MSG_RESULT([$moz_nspr_includes])
954
955         AC_MSG_CHECKING([for Mozilla nspr libraries])
956                 CFLAGS_save="$CFLAGS"
957                 LDFLAGS_save="$LDFLAGS"
958                 LIBS_save="$LIBS"
959                 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
960
961                 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
962                 LIBS="$nsprlibs"
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"
966                 else
967                         LDFLAGS="$LDFLAGS"
968                 fi
969
970                 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
971                 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
972
973                 CFLAGS="$CFLAGS_save"
974                 LDFLAGS="$LDFLAGS_save"
975                 LIBS="$LIBS_save"
976
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"
980                         else
981                                 MANUAL_NSPR_LIBS="$nsprlibs"
982                         fi
983                 else
984                         AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
985                 fi
986         AC_MSG_RESULT([$moz_nspr_libs])
987
988 dnl *****************
989 dnl Check for NSS 3
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"
994
995                 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
996                 [moz_nss_includes="yes"],[moz_nss_includes="no"])
997                 CPPFLAGS="$CPPFLAGS_save"
998
999                 if test "x${moz_nss_includes}" = "xyes"; then
1000                         MANUAL_NSS_CFLAGS="-I$with_nss_includes"
1001                 else
1002                         AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
1003                 fi
1004         AC_MSG_RESULT($moz_nss_includes)
1005
1006         AC_MSG_CHECKING([for Mozilla nss libraries])
1007                 LDFLAGS_save="$LDFLAGS"
1008                 LIBS_save="$LIBS"
1009                 nsslibs="-lssl3 -lsmime3 -lnss3"
1010
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"
1015                 else
1016                         LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
1017                 fi
1018
1019                 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
1020                 [moz_nss_libs="yes"],[moz_nss_libs="no"])
1021                 LDFLAGS="$LDFLAGS_save"
1022                 LIBS="$LIBS_save"
1023
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])
1027                                 msg_smime="yes"
1028                         fi
1029                         if test -n "${with_nss_libs}"; then
1030                                 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
1031                         else
1032                                 MANUAL_NSS_LIBS="$nsslibs"
1033                         fi
1034                 else
1035                         AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
1036                 fi
1037         AC_MSG_RESULT([$moz_nss_libs])
1038
1039         MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
1040         MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
1041 fi
1042
1043 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
1044
1045 dnl For pkgconfig files.
1046 AC_SUBST(mozilla_nss)
1047 AC_SUBST(mozilla_nspr)
1048
1049 AC_SUBST(MANUAL_NSPR_CFLAGS)
1050 AC_SUBST(MANUAL_NSPR_LIBS)
1051 AC_SUBST(MANUAL_NSS_CFLAGS)
1052 AC_SUBST(MANUAL_NSS_LIBS)
1053
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])
1059
1060 AC_MSG_CHECKING([system mail directory])
1061 if test -d /var/mail -a '!' -h /var/mail ; then
1062         system_mail_dir="/var/mail"
1063 else
1064         system_mail_dir="/var/spool/mail"
1065 fi
1066 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
1067
1068 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
1069         d??????rw?)
1070                 CAMEL_LOCK_HELPER_USER=""
1071                 CAMEL_LOCK_HELPER_GROUP=""
1072                 system_mail_perm="world writable"
1073         ;;
1074         d???rw????)
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"
1078         ;;
1079         drw???????)
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"
1083         ;;
1084         *)
1085                 CAMEL_LOCK_HELPER_USER=""
1086                 CAMEL_LOCK_HELPER_GROUP=""
1087                 system_mail_perm="???"
1088         ;;
1089 esac
1090
1091 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
1092 AC_SUBST(CAMEL_LOCK_HELPER_USER)
1093 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
1094
1095 dnl ******************************
1096 dnl Timezone checks
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>       ]],
1101         [[
1102                 struct tm tm;
1103                 tm.tm_gmtoff = 1;
1104         ]]
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])
1108 else
1109         AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
1110                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1111                 [[      #include <time.h> ]],
1112                 [[      timezone = 1;   ]]
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>       ]],
1119                         [[      altzone = 1; ]]
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])
1123                 fi
1124         else
1125                 AC_MSG_ERROR([unable to find a way to determine timezone])
1126         fi
1127 fi
1128
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],
1133 [
1134         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1135         [[      #include <time.h> ]],
1136         [[      char *buf;
1137                 time_t date;
1138                 ctime_r (&date, buf, 100); ]]
1139         )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
1140 ])
1141
1142 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
1143         AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
1144 fi
1145
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],
1151 [
1152         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1153         [[
1154                 #include "confdefs.h"
1155                 #include <sys/types.h>
1156                 #include <sys/socket.h>
1157                 #include <netinet/in.h>
1158                 #include <netdb.h>
1159                 #define BUFSIZE (sizeof(struct hostent)+10)
1160         ]],
1161         [[
1162                 struct hostent hent;
1163                 char buffer[BUFSIZE];
1164                 int bufsize=BUFSIZE;
1165                 int h_errno;
1166                 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
1167         ]]
1168         )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
1169 ])])
1170
1171 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
1172         AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
1173 fi
1174
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],
1180 [
1181         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1182         [[
1183                 #include "confdefs.h"
1184                 #include <sys/types.h>
1185                 #include <sys/socket.h>
1186                 #include <netinet/in.h>
1187                 #include <netdb.h>
1188                 #define BUFSIZE (sizeof(struct hostent)+10)
1189         ]],
1190         [[
1191                 struct hostent hent;
1192                 char buffer[BUFSIZE];
1193                 int bufsize=BUFSIZE;
1194                 int h_errno;
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])
1197 ])])
1198
1199 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
1200         AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
1201 fi
1202
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>
1210                 #endif
1211         ]])
1212 AC_CHECK_FUNCS(statvfs)
1213
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>
1218                 #endif
1219         ]])
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>
1224                 #endif
1225         ]])
1226 AC_CHECK_FUNCS(statfs)
1227
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],
1232 [
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>
1238                 #include <netdb.h>
1239                 #include <stddef.h>
1240         ]],
1241         [[      #ifndef NI_MAXHOST
1242                 #define NI_MAXHOST      1025
1243                 #endif
1244
1245                 #ifndef NI_MAXSERV
1246                 #define NI_MAXSERV      32
1247                 #endif
1248
1249                 struct addrinfo hints, *res;
1250                 struct sockaddr_in6 sin6;
1251                 int af = AF_INET6;
1252                 char host[NI_MAXHOST];
1253                 char serv[NI_MAXSERV];
1254
1255                 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1256                 freeaddrinfo (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])
1259 ])
1260
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])
1265         fi
1266         msg_ipv6="no"
1267 else
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
1273                 msg_ipv6="yes"
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>
1280                         #include <netdb.h>
1281                 ]],
1282                 [[      struct addrinfo hints;
1283                         hints.ai_flags = AI_ADDRCONFIG;
1284                 ]]
1285                 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1286         else
1287                 msg_ipv6="no"
1288         fi
1289 fi
1290
1291 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1292
1293 AC_CHECK_HEADER([wspiapi.h],
1294         [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1295
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])
1304
1305 AC_MSG_RESULT([$use_gweather])
1306 if test "x$use_gweather" = "xyes"; then
1307         PKG_CHECK_MODULES(
1308                 [LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1309                 [AC_MSG_ERROR([
1310
1311         gweather-3.0 not found (or version < gweather_minimum_version)
1312
1313         If you want to disable weather calendar support,
1314         please append --disable-weather to configure.
1315
1316         ])])
1317 fi
1318 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1319
1320 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1321
1322 dnl ******************************
1323 dnl File locking
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])
1329
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])
1332         msg_dot="yes"
1333 else
1334         msg_dot="no"
1335 fi
1336
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])
1341
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])
1344         msg_file="fcntl"
1345 else
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])
1348                 msg_file="flock"
1349         else
1350                 msg_file="no"
1351         fi
1352 fi
1353
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"
1360 fi
1361
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}])
1366
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])
1369 fi
1370
1371 AC_MSG_RESULT([$with_broken_spool])
1372
1373 dnl ***********
1374 dnl Kerberos 5
1375 dnl ***********
1376 EVO_KRB5_SUPPORT(no)
1377
1378 dnl ******************************
1379 dnl Purify support
1380 dnl ******************************
1381 EVO_PURIFY_SUPPORT
1382
1383 dnl ******************************
1384 dnl LDAP support.
1385 dnl ******************************
1386 if test "x$os_win32" != "xyes"; then
1387         EVO_LDAP_CHECK(no)
1388         case $with_openldap in
1389         no)
1390                 msg_ldap="no"
1391         ;;
1392         *)
1393                 case $with_static_ldap in
1394                 yes)
1395                         msg_ldap="$with_openldap (static)"
1396                         ;;
1397                 *)
1398                         msg_ldap="$with_openldap (dynamic)"
1399                         ;;
1400                 esac
1401         esac
1402
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
1407                 no)
1408                         msg_ldap="no"
1409                         ;;
1410                 *)
1411                         case $with_static_sunldap in
1412                         yes)
1413                                 msg_ldap="$with_sunldap (static)"
1414                                 ;;
1415                         *)
1416                                 msg_ldap="$with_sunldap (dynamic)"
1417                                 ;;
1418                 esac
1419         esac
1420         else
1421                 with_sunldap="no"
1422         fi
1423         AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1424
1425         LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1426 else
1427         dnl Win32 LDAP support
1428         LDAP_CFLAGS="-DLDAP_DEPRECATED"
1429         LDAP_LIBS="-lwldap32"
1430         AC_SUBST(LDAP_CFLAGS)
1431         AC_SUBST(LDAP_LIBS)
1432         AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1433         AM_CONDITIONAL(ENABLE_LDAP, true)
1434         AM_CONDITIONAL(SUNLDAP, false)
1435         msg_ldap="yes"
1436 fi
1437
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 "
1446 ])
1447
1448 dnl ******************************
1449 dnl sqlite3 flags
1450 dnl ******************************
1451 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1452
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)
1457 fi
1458
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"
1463
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)
1467
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"
1472
1473 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1474 AC_SUBST(E_BACKEND_CFLAGS)
1475 AC_SUBST(E_BACKEND_LIBS)
1476
1477 dnl ******************************
1478 dnl evolution-addressbook flags
1479 dnl ******************************
1480 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 libsecret-1"
1481
1482 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1483 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1484 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1485
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"
1490
1491 dnl *****
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.
1497 dnl *****
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)
1502
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)
1506
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])
1517         CFLAGS=$save_cflags
1518         LIBS=$save_libs
1519         AC_MSG_RESULT([$ac_cv_have_iuth])
1520
1521 dnl ******************************
1522 dnl Google flags
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)
1536
1537         AC_DEFINE(HAVE_GOOGLE, 1, [Define to 1 if you have the google-1.0 package.])
1538 fi
1539 AM_CONDITIONAL(HAVE_GOOGLE, [test x$enable_google = xyes])
1540
1541 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1542 AC_SUBST(SOUP_CFLAGS)
1543 AC_SUBST(SOUP_LIBS)
1544
1545 dnl ******************************
1546 dnl Camel flags
1547 dnl ******************************
1548 SQLITE_REQUIRED=sqlite_minimum_version
1549 AC_SUBST(SQLITE_REQUIRED)
1550
1551 zlib_found="false"
1552 dnl deflateInit is a #define, use deflateEnd instead
1553 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1554
1555 if test "x$zlib_found" = "xfalse"; then
1556         AC_MSG_ERROR([*** zlib is required])
1557 fi
1558
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"])
1566
1567 if test "x$enable_largefile" != "xno"; then
1568         AC_SYS_LARGEFILE
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>
1573                 #include <fcntl.h>
1574         ]],
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>
1581                         #include <fcntl.h>
1582                 ]],
1583                 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1584                 [ac_cv_largefile64_source="unknown"])])
1585         ])
1586
1587         enable_largefile="no"
1588
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])
1594         fi
1595
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"
1599         fi
1600
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"
1604         fi
1605 else
1606         AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1607         LARGEFILE_CFLAGS=""
1608 fi
1609
1610 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1611
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)
1615
1616 dnl ******************************
1617 dnl Special directories
1618 dnl ******************************
1619
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,
1622 dnl etc)
1623
1624 privdatadir='${datadir}'/evolution-data-server
1625 AC_SUBST(privdatadir)
1626
1627 privincludedir='${includedir}'/evolution-data-server
1628 AC_SUBST(privincludedir)
1629
1630 privlibdir='${libdir}'/evolution-data-server
1631 AC_SUBST(privlibdir)
1632
1633 imagesdir='${datadir}'/pixmaps/evolution-data-server
1634 AC_SUBST(imagesdir)
1635
1636 moduledir='${privlibdir}'/registry-modules
1637 AC_SUBST(moduledir)
1638
1639 ebook_backenddir='${privlibdir}'/addressbook-backends
1640 AC_SUBST(ebook_backenddir)
1641
1642 ecal_backenddir='${privlibdir}'/calendar-backends
1643 AC_SUBST(ecal_backenddir)
1644
1645 ro_sourcesdir='${privdatadir}'/ro-sources
1646 AC_SUBST(ro_sourcesdir)
1647
1648 rw_sourcesdir='${privdatadir}'/rw-sources
1649 AC_SUBST(rw_sourcesdir)
1650
1651 if test "x$use_gweather" = "xyes"; then
1652         weatherdatadir="$privdatadir/weather"
1653         AC_SUBST(weatherdatadir)
1654 fi
1655
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)
1659
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)
1666
1667 dnl ******************************
1668 dnl GLib stuff
1669 dnl ******************************
1670 GLIB_GSETTINGS
1671 AM_PATH_GLIB_2_0
1672
1673 dnl ******************************
1674 dnl gperf stuff
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])
1679 fi
1680
1681 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1682
1683 dnl ******************************
1684 dnl Vala binding
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)
1691
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])
1695   fi
1696
1697   AM_PROG_VALAC([0.13.0])
1698   have_vala=yes
1699
1700   AC_PATH_PROG(VALAC, valac, valac)
1701   AC_SUBST(VALAC)
1702   AC_SUBST(VALAFLAGS)
1703
1704   AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1705
1706   if test "x$VAPIGEN" = "xfalse"; then
1707     AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1708   fi
1709
1710   AC_SUBST(VAPIGEN)
1711 fi
1712
1713 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1714 AC_SUBST(HAVE_VALA)
1715
1716 dnl ******************************
1717 dnl Makefiles
1718 dnl ******************************
1719 export privlibdir
1720 export privincludedir
1721 export privdatadir
1722
1723 AC_CONFIG_FILES([
1724 Makefile
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
1741 art/Makefile
1742 calendar/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
1754 camel/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
1769 camel/camel.pc
1770 data/Makefile
1771 libebackend/Makefile
1772 libebackend/libebackend.pc
1773 libedataserver/Makefile
1774 libedataserver/eds-version.h
1775 libedataserver/libedataserver.pc
1776 modules/Makefile
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
1796 private/Makefile
1797 services/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
1802 tests/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
1820 docs/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
1833 po/Makefile.in
1834 vala/Makefile
1835 ])
1836 AC_OUTPUT
1837
1838 echo "
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
1856         GTK+:                   $enable_gtk
1857         Examples:               $enable_examples
1858         Code coverage (gcov):   $enable_code_coverage
1859         Strict building:        $enable_strict
1860 "