Bug #703181 - Book/calendar backends can authenticate without password
[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], [9])
5 m4_define([eds_micro_version], [90])
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.10
15 m4_define([base_version], [3.10])
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.34])
39 m4_define([glib_encoded_version], [GLIB_VERSION_2_34])
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.40.3])
47 m4_define([soup_encoded_version], [SOUP_VERSION_2_40])
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.5.0])
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.AddressBook5"
77 CALENDAR_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Calendar4"
78 SOURCES_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.Sources1"
79 USER_PROMPTER_DBUS_SERVICE_NAME="org.gnome.evolution.dataserver.UserPrompter0"
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=44
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_with_cxx=no
179 EVO_PHONENUMBER_ARGS
180
181 dnl ******************************
182 dnl Compiler Warning Flags
183 dnl ******************************
184 proposed_warning_flags="-Wall -Wextra
185         -Wdeprecated-declarations
186         -Werror-implicit-function-declaration
187         -Wformat-security -Winit-self
188         -Wmissing-declarations -Wmissing-include-dirs
189         -Wmissing-noreturn -Wpointer-arith
190         -Wredundant-decls -Wundef -Wwrite-strings"
191
192 proposed_c_warning_flags="$proposed_warning_flags
193         -Wdeclaration-after-statement
194         -Wno-missing-field-initializers
195         -Wno-sign-compare
196         -Wno-unused-parameter
197         -Wnested-externs"
198
199 proposed_cxx_warning_flags="$proposed_warning_flags
200         -Wabi -Wnoexcept"
201
202 AS_COMPILER_FLAGS(WARNING_FLAGS, [$proposed_c_warning_flags])
203 AC_SUBST(WARNING_FLAGS)
204
205 dnl Other useful compiler warnings for test builds only.
206 dnl These may produce warnings we have no control over,
207 dnl or false positives we don't always want to see.
208 dnl
209 dnl     -Wformat-nonliteral
210 dnl     -Wmissing-format-attribute
211 dnl     -Wshadow
212 dnl     -Wstrict-aliasing=2
213
214 AM_CFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
215 AC_SUBST(AM_CFLAGS)
216
217 if test "x$evo_with_cxx" = xyes; then
218         AC_PROG_CXX
219
220         AC_LANG_PUSH([C++])
221         AS_COMPILER_FLAGS(CXX_WARNING_FLAGS, [$proposed_cxx_warning_flags])
222         AC_SUBST(CXX_WARNING_FLAGS)
223         AM_CXXFLAGS="$CXX_WARNING_FLAGS"
224         AC_SUBST(AM_CXXFLAGS)
225         AC_LANG_POP([C++])
226 else
227         dnl Autoconf requires those automake conditionals to be defined when
228         dnl generating the config files, but apparently it forgets to initialize
229         dnl them dnl if AC_PROG_CXX never gets called. Therefore we do it manually.
230         am__fastdepCXX_TRUE='#'
231         am__fastdepCXX_FALSE=
232 fi
233
234 dnl Permits linking of C++ based libraries using the C linker if needed.
235 AC_SUBST([predeps_CXX])
236 AC_SUBST([postdeps_CXX])
237
238 dnl *******************************
239 dnl Check for --enable-strict
240 dnl *******************************
241 AC_ARG_ENABLE([strict],
242         [AS_HELP_STRING([--enable-strict],
243         [enable strict building, like without deprecated symbols (default=auto); auto enables strict building only if .git subdirectory exists])],
244         [enable_strict=$enableval], [enable_strict=auto])
245
246 AC_MSG_CHECKING([if strict building is enabled])
247 if test "x$enable_strict" = xauto; then
248         dnl Be strict when compiling with .git subdirectory
249         if test -d .git ; then
250                 enable_strict=yes
251         else
252                 enable_strict=no
253         fi
254 fi
255 AC_MSG_RESULT([$enable_strict])
256
257 AM_CPPFLAGS=
258
259 if test "x$enable_strict" = xyes; then
260         AM_CPPFLAGS="$AM_CPPFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
261 fi
262
263 dnl Warn about API usage that violates our minimum requirements.
264 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MAX_ALLOWED=glib_encoded_version"
265 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MAX_ALLOWED=gdk_encoded_version"
266 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MAX_ALLOWED=soup_encoded_version"
267
268 dnl These will suppress warnings about newly-deprecated symbols.  Ideally
269 dnl these settings should match our minimum requirements and we will clean
270 dnl up any new deprecation warnings after bumping our minimum requirements.
271 dnl But if the warnings get to be overwhelming, use fixed versions instead.
272 AM_CPPFLAGS="$AM_CPPFLAGS -DGLIB_VERSION_MIN_REQUIRED=glib_encoded_version"
273 AM_CPPFLAGS="$AM_CPPFLAGS -DGDK_VERSION_MIN_REQUIRED=gdk_encoded_version"
274 AM_CPPFLAGS="$AM_CPPFLAGS -DSOUP_VERSION_MIN_REQUIRED=soup_encoded_version"
275
276 AC_SUBST(AM_CPPFLAGS)
277
278 dnl ******************************
279 dnl Initialize maintainer mode
280 dnl ******************************
281 AM_MAINTAINER_MODE([enable])
282
283 if test "x$enable_maintainer_mode" = "xyes" ; then
284         AC_DEFINE(ENABLE_MAINTAINER_MODE, 1, [Configured with enabled maintainer mode])
285 fi
286
287 AC_PROG_CC
288 AC_PROG_CPP
289 AC_C_INLINE
290 AM_PROG_CC_C_O
291 AC_PROG_INSTALL
292 AC_PROG_LN_S
293 AC_PROG_MAKE_SET
294
295 dnl For gen-western-table.py
296 AM_PATH_PYTHON
297
298 dnl GCC 4.4 got more aggressive in its aliasing optimizations, changing
299 dnl behavior that -- according to the C99 standard -- is supposed to be
300 dnl undefined.  We may still have aliasing abuses lying around that rely
301 dnl on GCC's previous "undefined" behavior, so disable strict-aliasing
302 dnl optimization until we can find and fix all the abuses.
303 dnl (AC_PROG_CC must run first to set the GCC variable.)
304 dnl XXX This really belongs in AM_CFLAGS.
305 if test "x${GCC}" = "xyes"; then
306         CFLAGS="$CFLAGS -fno-strict-aliasing"
307 fi
308
309 dnl ******************************
310 dnl I18N stuff
311 dnl ******************************
312 IT_PROG_INTLTOOL([0.35.5])
313
314 GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION
315 AC_SUBST(GETTEXT_PACKAGE)
316 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
317
318 localedir='$(prefix)/$(DATADIRNAME)/locale'
319 AC_SUBST(localedir)
320
321 dnl ******************************
322 dnl Initialize libtool
323 dnl ******************************
324 LT_PREREQ(2.2)
325 LT_INIT(disable-static win32-dll)
326
327 PKG_PROG_PKG_CONFIG
328
329 dnl This relies on $SED, which is defined in ltmain.sh, which
330 dnl is invoked by LT_INIT (at least I think that's how it works).
331 GNOME_CODE_COVERAGE
332
333 dnl ******************************
334 dnl Gtk Doc stuff
335 dnl ******************************
336 GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
337
338 dnl The private D-Bus documentation is for developers only.
339 AC_ARG_WITH([private-docs],
340         AS_HELP_STRING([--with-private-docs],
341         [Build documentation for private libraries ]
342         [(requires --enable-gtk-doc) [default=no]],),
343         [with_private_docs="$withval"],[with_private_docs="no"])
344 AM_CONDITIONAL(WITH_PRIVATE_DOCS, [test x$with_private_docs = xyes])
345
346 dnl This must appear after AC_CANONICAL_HOST, which defines $host.
347 case "$host" in
348 *openbsd*|*freebsd*)
349         dnl Do not set '-Wl,--no-undefined' on freebsd/openbsd
350         ;;
351 *)
352         LDFLAGS="$LDFLAGS -Wl,--no-undefined"
353         ;;
354 esac
355
356 dnl ******************************
357 dnl Check for Win32
358 dnl ******************************
359 AC_MSG_CHECKING([for Win32])
360 case "$host" in
361 *-mingw*)
362         os_win32='yes'
363         NO_UNDEFINED='-no-undefined'
364         SOCKET_LIBS='-lws2_32 -ldnsapi'
365         DL_LIB=''
366         LIBEXECDIR_IN_SERVER_FILE='../../../libexec'
367         AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes])
368         AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations])
369         ;;
370 *openbsd*|*freebsd*)
371         os_win32='no'
372         NO_UNDEFINED=''
373         SOCKET_LIBS=''
374         DL_LIB=''
375         LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
376         ;;
377 *)
378         os_win32='no'
379         NO_UNDEFINED=''
380         SOCKET_LIBS=''
381         DL_LIB='-ldl'
382         LIBEXECDIR_IN_SERVER_FILE="$libexecdir"
383         ;;
384 esac
385 AC_MSG_RESULT([$os_win32])
386 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
387 AC_SUBST(NO_UNDEFINED)
388 AC_SUBST(SOCKET_LIBS)
389 AC_SUBST(LIBEXECDIR_IN_SERVER_FILE)
390
391 dnl **************************************
392 dnl Check for posix compatible sys/wait.h
393 dnl **************************************
394 AC_HEADER_SYS_WAIT
395
396 dnl ************************************
397 dnl Check for posix compatible alloca()
398 dnl ************************************
399 AC_FUNC_ALLOCA
400
401 dnl ******************************
402 dnl Checks for functions
403 dnl ******************************
404 AC_CHECK_FUNCS(fsync strptime strtok_r nl_langinfo)
405
406 dnl ***********************************
407 dnl Check for base dependencies early.
408 dnl ***********************************
409 PKG_CHECK_MODULES(GNOME_PLATFORM,
410         [gio-2.0 >= glib_minimum_version
411         gmodule-2.0 >= glib_minimum_version
412         libxml-2.0 >= libxml_minimum_version
413         libsoup-2.4 >= soup_minimum_version])
414
415 if test x$os_win32 = xno; then
416         PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
417 fi
418
419 dnl ******************************
420 dnl Check for libphonenumber
421 dnl ******************************
422
423 EVO_PHONENUMBER_SUPPORT
424
425 dnl *************************
426 dnl Check for GTK+
427 dnl *************************
428 AC_ARG_ENABLE([gtk],
429         [AS_HELP_STRING([--enable-gtk],
430         [enable GTK+ (default=yes)])],
431         [enable_gtk=$enableval], [enable_gtk=yes])
432 AC_MSG_CHECKING([if GTK+ support is enabled])
433 AC_MSG_RESULT([$enable_gtk])
434 if test "x$enable_gtk" = xyes; then
435         PKG_CHECK_MODULES(
436                 [GTK], [gtk+-3.0 >= gdk_minimum_version],,
437                 [AC_MSG_ERROR([
438
439         gtk+-3.0 not found (or version < gdk_minimum_version)
440
441         If you want to disable GTK+ support,
442         please append --disable-gtk to configure.
443
444         ])])
445
446         AC_DEFINE(HAVE_GTK, 1, [Define to 1 if you have the gtk+-3.0 package.])
447 fi
448 AM_CONDITIONAL(HAVE_GTK, [test x$enable_gtk = xyes])
449
450 dnl *******************************
451 dnl Check for GNOME Online Accounts
452 dnl *******************************
453 AC_ARG_ENABLE([goa],
454         [AS_HELP_STRING([--enable-goa],
455         [enable GNOME Online Accounts support (default=yes)])],
456         [enable_goa=$enableval], [enable_goa=yes])
457 AC_MSG_CHECKING([if GNOME Online Accounts support is enabled])
458 AC_MSG_RESULT([$enable_goa])
459 if test "x$enable_goa" = xyes; then
460         PKG_CHECK_MODULES(
461                 [GOA], [goa-1.0 >= goa_minimum_version],,
462                 [AC_MSG_ERROR([
463
464         goa-1.0 not found (or version < goa_minimum_version)
465
466         If you want to disable GNOME Online Accounts support,
467         please append --disable-goa to configure.
468
469         ])])
470
471         AC_DEFINE(HAVE_GOA, 1, [Define to 1 if you have the goa-1.0 package.])
472 fi
473 AM_CONDITIONAL(HAVE_GOA, [test x$enable_goa = xyes])
474
475 dnl ********************************
476 dnl Check for Ubuntu Online Accounts
477 dnl ********************************
478 AC_ARG_ENABLE([uoa],
479         [AS_HELP_STRING([--enable-uoa],
480         [enable Ubuntu Online Accounts support (default=yes)])],
481         [enable_uoa=$enableval], [enable_uoa=yes])
482 AC_MSG_CHECKING([if Ubuntu Online Accounts support is enabled])
483 AC_MSG_RESULT([$enable_uoa])
484 if test "x$enable_uoa" = xyes; then
485         PKG_CHECK_MODULES(
486                 [LIBACCOUNTS_GLIB],
487                 [libaccounts-glib >= libaccounts_glib_minimum_version],,
488                 [AC_MSG_ERROR([
489
490         libaccounts-glib not found (or version < libaccounts_glib_minimum_version)
491
492         If you want to disable Ubuntu Online Accounts support,
493         please append --disable-uoa to configure.
494
495         ])])
496
497         PKG_CHECK_MODULES(
498                 [LIBSIGNON_GLIB],
499                 [libsignon-glib >= libsignon_glib_minimum_version],,
500                 [AC_MSG_ERROR([
501
502         libsignon-glib not found (or version < libsignon_glib_minimum_version)
503
504         If you want to disable Ubuntu Online Accounts support,
505         please append --disable-uoa to configure.
506
507         ])])
508
509         PKG_CHECK_MODULES(
510                 [JSON_GLIB], [json-glib-1.0],,
511                 [AC_MSG_ERROR([
512
513         json-glib-1.0 not found
514
515         If you want to disable Ubuntu Online Accounts support,
516         please append --disable-uoa to configure.
517
518         ])])
519
520         PKG_CHECK_MODULES(
521                 [REST], [rest-0.7],,
522                 [AC_MSG_ERROR([
523
524         librest-0.7 not found
525
526         If you want to disable Ubuntu Online Accounts support,
527         please append --disable-uoa to configure.
528
529         ])])
530
531         AC_DEFINE(HAVE_UOA, 1, [Have libaccounts-glib])
532 fi
533 AM_CONDITIONAL(HAVE_UOA, [test x$enable_uoa = xyes])
534
535 dnl ***********************************
536 dnl Check for GNOME Keyring.
537 dnl ***********************************
538 if test x$os_win32 = xno; then
539         PKG_CHECK_MODULES(LIBSECRET,
540                 [libsecret-unstable >= libsecret_minimum_version])
541 fi
542 AC_SUBST(LIBSECRET_CFLAGS)
543 AC_SUBST(LIBSECRET_LIBS)
544
545 dnl **********************************************************
546 dnl gcr-base is needed for secure password exchange over D-Bus
547 dnl **********************************************************
548 PKG_CHECK_MODULES(GCR_BASE, [gcr-base-3 >= gcr_minimum_version])
549 AC_SUBST(GCR_BASE_CFLAGS)
550 AC_SUBST(GCR_BASE_LIBS)
551
552 LIBICAL_REQUIRED=libical_minimum_version
553 AC_SUBST(LIBICAL_REQUIRED)
554
555 dnl ******************************
556 dnl regex check
557 dnl ******************************
558 AC_CHECK_FUNCS(regexec,,[AC_CHECK_LIB(regex,regexec,
559                         [REGEX_LIBS=-lregex
560                         AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
561                         [AC_MSG_ERROR([No regex library found])])])
562 AC_SUBST(REGEX_LIBS)
563
564 dnl ******************************
565 dnl libdb checking
566 dnl ******************************
567 AC_ARG_WITH([libdb],
568         AS_HELP_STRING([--with-libdb=PREFIX],
569         [Prefix where libdb is installed]),
570         [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
571
572 DB_CFLAGS="-I$libdb_prefix/include"
573 DB_LIBS="-L$libdb_prefix/lib -ldb"
574
575 AC_MSG_CHECKING([Berkeley DB])
576 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
577 save_libs=$LIBS; LIBS="$DB_LIBS"
578 AC_LINK_IFELSE([AC_LANG_PROGRAM(
579         [[#include <db.h>]],
580         [[db_create(NULL, NULL, 0)]])],
581         [AC_MSG_RESULT([yes])],
582         [AC_MSG_ERROR([Cannot find libdb])])
583 CFLAGS=$save_cflags
584 LIBS=$save_libs
585 AC_SUBST(DB_CFLAGS)
586 AC_SUBST(DB_LIBS)
587
588 dnl ******************************
589 dnl iconv checking
590 dnl ******************************
591 have_iconv="no"
592 save_LIBS="$LIBS"
593 LIBS="$LIBS -liconv"
594 AC_CACHE_CHECK([for iconv in -liconv], [ac_cv_libiconv],
595         AC_LINK_IFELSE([AC_LANG_PROGRAM(
596         [[
597                 #include <iconv.h>
598                 #include <stdlib.h>
599         ]],
600         [[
601                 iconv_t cd;
602                 cd = iconv_open ("UTF-8", "ISO-8859-1");
603         ]]
604         )],[ac_cv_libiconv=yes],[ac_cv_libiconv=no]))
605
606 if test "x$ac_cv_libiconv" = "xyes"; then
607         ICONV_LIBS="-liconv"
608         if test "x$os_win32" = "xyes"; then
609                 dnl Don't pointlessly auto-export the global symbols
610                 dnl from a potentially static libiconv.a
611                 ICONV_LIBS="$ICONV_LIBS -Wl,--exclude-libs=libiconv.a"
612         fi
613         have_iconv="yes"
614 else
615         LIBS="$save_LIBS"
616         AC_CHECK_FUNC(iconv, [have_iconv=yes], [have_iconv=no])
617 fi
618
619 if test "x$have_iconv" = "xyes"; then
620         if test "x$ac_cv_libiconv" = "xno"; then
621                 AC_CHECK_FUNCS(gnu_get_libc_version)
622         fi
623 AC_CACHE_CHECK([if iconv() handles UTF-8], [ac_cv_libiconv_utf8],
624         AC_RUN_IFELSE([AC_LANG_SOURCE([[
625                 #include <iconv.h>
626                 #include <stdlib.h>
627                 #include <string.h>
628                 #ifdef HAVE_GNU_GET_LIBC_VERSION
629                 #include <gnu/libc-version.h>
630                 #endif
631                 int main() {
632                         char *jp = "\x1B\x24\x42\x46\x7C\x4B\x5C\x38\x6C";
633                         char *utf8 = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E";
634                         char *transbuf = malloc (10), *trans = transbuf;
635                         iconv_t cd;
636                         size_t jp_len = strlen (jp), utf8_len = 10;
637                         size_t utf8_real_len = strlen (utf8);
638
639                         #ifdef HAVE_GNU_GET_LIBC_VERSION
640                         /* glibc 2.1.2's iconv is broken in hard to test ways. */
641                         if (!strcmp (gnu_get_libc_version (), "2.1.2"))
642                                 exit (1);
643                         #endif
644
645                         cd = iconv_open ("UTF-8", "ISO-2022-JP");
646                         if (cd == (iconv_t) -1)
647                                 exit (1);
648                         if (iconv (cd, &jp, &jp_len, &trans, &utf8_len) == -1 || jp_len != 0)
649                                 exit (1);
650                         if (memcmp (utf8, transbuf, utf8_real_len) != 0)
651                                 exit (1);
652                         return (0);}
653                 ]])
654         ],[ac_cv_libiconv_utf8=yes],[ac_cv_libiconv_utf8=no; have_iconv=no],[ac_cv_libiconv_utf8=hopefully]))
655 fi
656
657 if test "x$have_iconv" = "xno"; then
658         AC_MSG_ERROR([You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv])
659 fi
660 AC_SUBST(ICONV_LIBS)
661
662 CFLAGS="$CFLAGS -I$srcdir"
663
664 AC_MSG_CHECKING([preferred charset name formats for system iconv])
665 AC_RUN_IFELSE([AC_LANG_SOURCE([[
666         #define CONFIGURE_IN
667         #include "iconv-detect.c"
668         ]])],
669         [AC_MSG_RESULT([found])],
670         [AC_MSG_RESULT([not found])
671                 AC_MSG_WARN([
672                 *** The iconv-detect program was unable to determine the
673                 *** preferred charset name formats recognized by your
674                 *** iconv library. It is suggested that you install a
675                 *** working iconv library such as the one found at
676                 *** ftp://ftp.gnu.org/pub/gnu/libiconv
677         ])],
678         [if test "x$os_win32" = xyes; then
679                 AC_MSG_RESULT([using known win32 result])
680                 echo '/* This is an auto-generated header, DO NOT EDIT! */' > iconv-detect.h
681                 echo  >>iconv-detect.h
682                 echo '#define ICONV_ISO_D_FORMAT "iso-%d-%d"' >>iconv-detect.h
683                 echo '#define ICONV_ISO_S_FORMAT "iso-%d-%s"' >>iconv-detect.h
684                 echo '#define ICONV_10646 "UCS-4BE"' >>iconv-detect.h
685         else
686                 AC_MSG_RESULT([unknown])
687                 AC_MSG_WARN([
688                 *** We can't determine the preferred charset name formats
689                 *** recognized by your iconv library. You are
690                 *** cross-compiling and supposed to know what you are doing.
691                 *** Please construct the iconv-detect.h file manually.
692                 ])
693         fi
694 ])
695
696 CFLAGS="$save_CFLAGS"
697 LIBS="$save_LIBS"
698
699 AC_ARG_ENABLE([backtraces],
700         [AS_HELP_STRING([--enable-backtraces],
701         [enable backtraces for camel_pointer_tracker (default=no)])],
702         [enable_backtraces=$enableval], [enable_backtraces=no])
703
704 if test "x$enable_backtraces" = xyes; then
705         dnl ****************************
706         dnl Check for backtrace_symbols function and dwfl from elfutils
707         dnl ****************************
708         AC_MSG_CHECKING([libc backtrace_symbols function])
709         AC_LINK_IFELSE([AC_LANG_PROGRAM(
710                 [[#include <execinfo.h>]],
711                 [[{ void *bt[1]; backtrace_symbols (bt, backtrace(bt, 1)); }]])],
712                 [AC_DEFINE(HAVE_BACKTRACE_SYMBOLS, 1, [libc provides backtrace_symbols function]) ac_cv_have_bsf=yes],[ac_cv_have_bsf=no])
713         AC_MSG_RESULT([$ac_cv_have_bsf])
714
715         if test "x$ac_cv_have_bsf" = xyes; then
716                 LIBS="$LIBS -ldw"
717
718                 AC_MSG_CHECKING([elfutils/libdwfl])
719                 AC_LINK_IFELSE([AC_LANG_PROGRAM(
720                         [[#include <elfutils/libdwfl.h>]],
721                         [[{
722                                 Dwfl *dwfl;
723                                 Dwfl_Module *module;
724                                 Dwarf_Addr module_low_addr;
725                                 Dwfl_Line *line;
726
727                                 dwfl_standard_find_debuginfo;
728                                 dwfl_linux_proc_find_elf;
729                                 dwfl_begin (NULL);
730                                 dwfl_linux_proc_report (NULL, 1);
731                                 dwfl_report_end (NULL, NULL, NULL);
732                                 dwfl_end (NULL);
733                                 dwfl_module_addrname (NULL, NULL);
734                                 dwfl_module_getsrc (NULL, NULL);
735                                 dwfl_lineinfo (NULL, NULL, NULL, NULL, NULL, NULL);
736                                 DWARF_CB_ABORT; DWARF_CB_OK;
737                                 dwfl_getmodules (NULL, NULL, NULL, 0);
738                         }]])],
739                         [AC_DEFINE(HAVE_ELFUTILS_LIBDWFL, 1, [have elfutils/libdwfl.h functions]) ac_cv_have_elfdwfl=yes],[ac_cv_have_elfdwfl=no])
740                 AC_MSG_RESULT([$ac_cv_have_elfdwfl])
741
742                 LIBS="$save_LIBS"
743
744                 if test "x$ac_cv_have_elfdwfl" = xyes; then
745                         LIBDWFL_LIBS="-ldw"
746                         AC_SUBST(LIBDWFL_LIBS)
747                 fi
748         fi
749 fi
750
751 dnl ******************************
752 dnl Check for nl_langinfo features
753 dnl ******************************
754 EVO_CHECK_LANGINFO([CODESET])
755 EVO_CHECK_LANGINFO([_NL_ADDRESS_COUNTRY_AB2])
756
757 dnl *******************************************************
758 dnl Check to see if strftime supports the use of %l and %k
759 dnl *******************************************************
760 AC_MSG_CHECKING([for %l and %k support in strftime])
761 AC_RUN_IFELSE([AC_LANG_SOURCE(
762         [[      #include <stdlib.h>
763                 #include <string.h>
764                 #include <time.h>
765                 int main(int argc, char **argv) {
766                 char buf[10];
767                 time_t rawtime;
768                 struct tm *timeinfo;
769
770                 time(&rawtime);
771                 timeinfo=localtime(&rawtime);
772                 buf[0] = '\0';
773                 strftime(buf, 10, "%lx%k", timeinfo);
774
775                 if (buf[0] == '\0' || buf[0] == 'x' || strstr(buf, "l") || strstr(buf, "k"))
776                         exit(1);
777                 else
778                         exit(0);
779                 return 0;
780                 }
781         ]]
782         )],[AC_DEFINE(HAVE_LKSTRFTIME, 1, [strftime supports use of l and k]) ac_cv_lkstrftime=yes],[ac_cv_lkstrftime=no],[ac_cv_lkstrftime=no])
783 AC_MSG_RESULT([$ac_cv_lkstrftime])
784
785 dnl ********************************************************************************
786 dnl security extension support (SSL and S/MIME)
787 dnl
788 dnl The following voodoo does detection of mozilla libraries (nspr and nss)
789 dnl needed by Camel (SSL and S/MIME).
790 dnl
791 dnl The Evolution security extensions are only built if these libraries are found
792 dnl ********************************************************************************
793 msg_smime="no"
794
795 AC_ARG_ENABLE([smime],
796         AS_HELP_STRING([--enable-smime],
797         [Enable SMIME support through Mozilla nss @<:@default=yes@:>@ ]),
798         [enable_smime="$enableval"],[enable_smime="yes"])
799
800 AC_ARG_WITH([nspr-includes],
801         AS_HELP_STRING([--with-nspr-includes],
802         [Prefix of Mozilla nspr4 includes.]),
803         [with_nspr_includes="$withval"])
804
805 AC_ARG_WITH([nspr-libs],
806         AS_HELP_STRING([--with-nspr-libs],
807         [Prefix of Mozilla nspr4 libs.]),
808         [with_nspr_libs="$withval"])
809
810 AC_ARG_WITH([nss-includes],
811         AS_HELP_STRING([--with-nss-includes],
812         [Prefix of Mozilla nss3 includes.]),
813         [with_nss_includes="$withval"])
814
815 AC_ARG_WITH([nss-libs],
816         AS_HELP_STRING([--with-nss-libs],
817         [Prefix of Mozilla nss3 libs.]),
818         [with_nss_libs="$withval"])
819
820 if test -n "${with_nspr_includes}" || test -n "${with_nspr_libs}" || test -n "${with_nss_includes}" || test -n "${with_nss_libs}"; then
821         check_manually="yes"
822 else
823         check_manually="no"
824 fi
825
826 dnl check if pkg-config files exist (which are only shipped by distributions, not upstream)
827 if test "x${check_manually}" = "xno"; then
828         AC_MSG_CHECKING(Mozilla NSPR pkg-config module name)
829         mozilla_nspr_pcs="nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr"
830         for pc in $mozilla_nspr_pcs; do
831                 if $PKG_CONFIG --exists $pc; then
832                         AC_MSG_RESULT($pc)
833                         mozilla_nspr=$pc
834                         break;
835                 fi
836         done
837
838         AC_MSG_CHECKING(Mozilla NSS pkg-config module name)
839         mozilla_nss_pcs="nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss"
840         for pc in $mozilla_nss_pcs; do
841                 if $PKG_CONFIG --exists $pc; then
842                         AC_MSG_RESULT($pc)
843                         mozilla_nss=$pc
844                         break;
845                 fi
846         done
847
848         if test -n "$mozilla_nspr" -a -n "$mozilla_nss"; then
849                 if test "x$enable_smime" = "xyes"; then
850                         AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
851                         msg_smime="yes"
852                 fi
853                 MANUAL_NSPR_CFLAGS=""
854                 MANUAL_NSPR_LIBS=""
855                 MANUAL_NSS_CFLAGS=""
856                 MANUAL_NSS_LIBS=""
857         else
858                 check_manually="yes"
859                 mozilla_nspr=""
860                 mozilla_nss=""
861         fi
862 fi
863
864 if test "x${check_manually}" = "xyes"; then
865 dnl ******************
866 dnl Check for NSPR 4
867 dnl ******************
868         AC_MSG_CHECKING([for Mozilla nspr4 includes])
869                 CPPFLAGS_save="$CPPFLAGS"
870                 if test -n "$with_nspr_includes"; then
871                         CPPFLAGS="$CPPFLAGS -I$with_nspr_includes"
872                 fi
873
874                 AC_CHECK_HEADERS(nspr.h prio.h,
875                 [moz_nspr_includes="yes"],[moz_nspr_includes="no"])
876                 CPPFLAGS="$CPPFLAGS_save"
877
878                 if test "x${moz_nspr_includes}" = "xyes"; then
879                         MANUAL_NSPR_CFLAGS="-I$with_nspr_includes"
880                 else
881                         AC_MSG_FAILURE([NSPR headers not found. Use --with-nspr-includes to specify the include dir of NSPR.])
882                 fi
883         AC_MSG_RESULT([$moz_nspr_includes])
884
885         AC_MSG_CHECKING([for Mozilla nspr libraries])
886                 CFLAGS_save="$CFLAGS"
887                 LDFLAGS_save="$LDFLAGS"
888                 LIBS_save="$LIBS"
889                 nsprlibs="$DL_LIB -lplc4 -lplds4 -lnspr4"
890
891                 CFLAGS="$CFLAGS $MANUAL_NSPR_CFLAGS"
892                 LIBS="$nsprlibs"
893                 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
894                 if test -n "${with_nspr_libs}"; then
895                         LDFLAGS="$LDFLAGS -L$with_nspr_libs"
896                 else
897                         LDFLAGS="$LDFLAGS"
898                 fi
899
900                 AC_LINK_IFELSE([AC_LANG_CALL([],[PR_Init])],
901                 [moz_nspr_libs="yes"],[moz_nspr_libs="no"])
902
903                 CFLAGS="$CFLAGS_save"
904                 LDFLAGS="$LDFLAGS_save"
905                 LIBS="$LIBS_save"
906
907                 if test "x${moz_nspr_libs}" = "xyes"; then
908                         if test -n "${with_nspr_libs}"; then
909                                 MANUAL_NSPR_LIBS="-L$with_nspr_libs $nsprlibs"
910                         else
911                                 MANUAL_NSPR_LIBS="$nsprlibs"
912                         fi
913                 else
914                         AC_MSG_FAILURE([NSPR libs not found. Use --with-nspr-libs to specify the libdir of NSPR.])
915                 fi
916         AC_MSG_RESULT([$moz_nspr_libs])
917
918 dnl *****************
919 dnl Check for NSS 3
920 dnl *****************
921         AC_MSG_CHECKING([for Mozilla nss3 includes])
922                 CPPFLAGS_save="$CPPFLAGS"
923                 CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes"
924
925                 AC_CHECK_HEADERS(nss.h ssl.h smime.h,
926                 [moz_nss_includes="yes"],[moz_nss_includes="no"])
927                 CPPFLAGS="$CPPFLAGS_save"
928
929                 if test "x${moz_nss_includes}" = "xyes"; then
930                         MANUAL_NSS_CFLAGS="-I$with_nss_includes"
931                 else
932                         AC_MSG_FAILURE([NSS headers not found. Use --with-nss-includes to specify the include dir of NSS.])
933                 fi
934         AC_MSG_RESULT($moz_nss_includes)
935
936         AC_MSG_CHECKING([for Mozilla nss libraries])
937                 LDFLAGS_save="$LDFLAGS"
938                 LIBS_save="$LIBS"
939                 nsslibs="-lssl3 -lsmime3 -lnss3"
940
941                 LIBS="$nsslibs $nsprlibs"
942                 dnl Test to protect from giving libtool an -L , which results in failure (used below,too)
943                 if test -n "${with_nss_libs}"; then
944                         LDFLAGS="$LDFLAGS -L$with_nss_libs $MANUAL_NSPR_LIBS"
945                 else
946                         LDFLAGS="$LDFLAGS $LDFLAGS_NSPR $MANUAL_NSPR_LIBS"
947                 fi
948
949                 AC_LINK_IFELSE([AC_LANG_CALL([],[NSS_Init])],
950                 [moz_nss_libs="yes"],[moz_nss_libs="no"])
951                 LDFLAGS="$LDFLAGS_save"
952                 LIBS="$LIBS_save"
953
954                 if test "x${moz_nss_libs}" = "xyes"; then
955                         if test "x${enable_smime}" = "xyes"; then
956                                 AC_DEFINE(ENABLE_SMIME,1,[Define if SMIME should be enabled])
957                                 msg_smime="yes"
958                         fi
959                         if test -n "${with_nss_libs}"; then
960                                 MANUAL_NSS_LIBS="-L$with_nss_libs $nsslibs"
961                         else
962                                 MANUAL_NSS_LIBS="$nsslibs"
963                         fi
964                 else
965                         AC_MSG_FAILURE([NSS libs not found. Use --with-nss-libs to specify the libdir of NSS.])
966                 fi
967         AC_MSG_RESULT([$moz_nss_libs])
968
969         MANUAL_NSS_CFLAGS="$MANUAL_NSPR_CFLAGS $MANUAL_NSS_CFLAGS"
970         MANUAL_NSS_LIBS="$MANUAL_NSPR_LIBS $MANUAL_NSS_LIBS"
971 fi
972
973 AM_CONDITIONAL(ENABLE_SMIME, test "x$msg_smime" != "xno")
974
975 dnl For pkgconfig files.
976 AC_SUBST(mozilla_nss)
977 AC_SUBST(mozilla_nspr)
978
979 AC_SUBST(MANUAL_NSPR_CFLAGS)
980 AC_SUBST(MANUAL_NSPR_LIBS)
981 AC_SUBST(MANUAL_NSS_CFLAGS)
982 AC_SUBST(MANUAL_NSS_LIBS)
983
984 dnl ******************************
985 dnl system mail stuff
986 dnl ******************************
987 AC_PATH_PROG(SENDMAIL, sendmail, [/usr/sbin/sendmail], [/usr/sbin:/usr/lib])
988 AC_DEFINE_UNQUOTED(SENDMAIL_PATH, "$SENDMAIL", [Path to a sendmail binary, or equivalent])
989
990 AC_MSG_CHECKING([system mail directory])
991 if test -d /var/mail -a '!' -h /var/mail ; then
992         system_mail_dir="/var/mail"
993 else
994         system_mail_dir="/var/spool/mail"
995 fi
996 AC_DEFINE_UNQUOTED(SYSTEM_MAIL_DIR, "$system_mail_dir", [Directory local mail is delivered to])
997
998 case `ls -ld $system_mail_dir 2>&1 | awk '{print $1;}'` in
999         d??????rw?)
1000                 CAMEL_LOCK_HELPER_USER=""
1001                 CAMEL_LOCK_HELPER_GROUP=""
1002                 system_mail_perm="world writable"
1003         ;;
1004         d???rw????)
1005                 CAMEL_LOCK_HELPER_USER=""
1006                 CAMEL_LOCK_HELPER_GROUP=`ls -ld $system_mail_dir 2>&1 | awk '{print $4;}'`
1007                 system_mail_perm="writable by group $CAMEL_LOCK_HELPER_GROUP"
1008         ;;
1009         drw???????)
1010                 CAMEL_LOCK_HELPER_USER=`ls -ld $system_mail_dir 2>&1 | awk '{print $3;}'`
1011                 CAMEL_LOCK_HELPER_GROUP=""
1012                 system_mail_perm="writable by user $CAMEL_LOCK_HELPER_USER"
1013         ;;
1014         *)
1015                 CAMEL_LOCK_HELPER_USER=""
1016                 CAMEL_LOCK_HELPER_GROUP=""
1017                 system_mail_perm="???"
1018         ;;
1019 esac
1020
1021 AC_MSG_RESULT([$system_mail_dir, $system_mail_perm])
1022 AC_SUBST(CAMEL_LOCK_HELPER_USER)
1023 AC_SUBST(CAMEL_LOCK_HELPER_GROUP)
1024
1025 dnl ******************************
1026 dnl Timezone checks
1027 dnl ******************************
1028 AC_CACHE_CHECK(for tm_gmtoff in struct tm, [ac_cv_struct_tm_gmtoff],
1029         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1030         [[      #include <time.h>       ]],
1031         [[
1032                 struct tm tm;
1033                 tm.tm_gmtoff = 1;
1034         ]]
1035         )],[ac_cv_struct_tm_gmtoff=yes],[ac_cv_struct_tm_gmtoff=no]))
1036 if test "x$ac_cv_struct_tm_gmtoff" = "xyes"; then
1037         AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has a tm_gmtoff member])
1038 else
1039         AC_CACHE_CHECK(for timezone variable, [ac_cv_var_timezone],
1040                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1041                 [[      #include <time.h> ]],
1042                 [[      timezone = 1;   ]]
1043                 )],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no]))
1044         if test "x$ac_cv_var_timezone" = "xyes"; then
1045                 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if libc defines a timezone variable])
1046                 AC_CACHE_CHECK(for altzone variable, [ac_cv_var_altzone],
1047                         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1048                         [[      #include <time.h>       ]],
1049                         [[      altzone = 1; ]]
1050                         )],[ac_cv_var_altzone=yes],[ac_cv_var_altzone=no]))
1051                 if test "x$ac_cv_var_altzone" = "xyes"; then
1052                         AC_DEFINE(HAVE_ALTZONE, 1, [Define if libc defines an altzone variable])
1053                 fi
1054         else
1055                 AC_MSG_ERROR([unable to find a way to determine timezone])
1056         fi
1057 fi
1058
1059 dnl ******************************
1060 dnl ctime_r prototype
1061 dnl ******************************
1062 AC_CACHE_CHECK([if ctime_r wants three arguments], [ac_cv_ctime_r_three_args],
1063 [
1064         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1065         [[      #include <time.h> ]],
1066         [[      char *buf;
1067                 time_t date;
1068                 ctime_r (&date, buf, 100); ]]
1069         )],[ac_cv_ctime_r_three_args=yes],[ac_cv_ctime_r_three_args=no])
1070 ])
1071
1072 if test "x$ac_cv_ctime_r_three_args" = "xyes" ; then
1073         AC_DEFINE(CTIME_R_THREE_ARGS, 1, [Solaris-style ctime_r])
1074 fi
1075
1076 dnl ******************************
1077 dnl gethostbyname_r prototype
1078 dnl ******************************
1079 AC_CHECK_FUNCS(gethostbyname_r,[
1080 AC_CACHE_CHECK([if gethostbyname_r wants five arguments], [ac_cv_gethostbyname_r_five_args],
1081 [
1082         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1083         [[
1084                 #include "confdefs.h"
1085                 #include <sys/types.h>
1086                 #include <sys/socket.h>
1087                 #include <netinet/in.h>
1088                 #include <netdb.h>
1089                 #define BUFSIZE (sizeof(struct hostent)+10)
1090         ]],
1091         [[
1092                 struct hostent hent;
1093                 char buffer[BUFSIZE];
1094                 int bufsize=BUFSIZE;
1095                 int h_errno;
1096                 (void)gethostbyname_r ("www.ximian.com", &hent, buffer, bufsize, &h_errno);
1097         ]]
1098         )],[ac_cv_gethostbyname_r_five_args=yes],[ac_cv_gethostbyname_r_five_args=no])
1099 ])])
1100
1101 if test "x$ac_cv_gethostbyname_r_five_args" = "xyes" ; then
1102         AC_DEFINE(GETHOSTBYNAME_R_FIVE_ARGS, 1, [Solaris-style gethostbyname_r])
1103 fi
1104
1105 dnl ******************************
1106 dnl gethostbyaddr_r prototype
1107 dnl ******************************
1108 AC_CHECK_FUNCS(gethostbyaddr_r,[
1109 AC_CACHE_CHECK([if gethostbyaddr_r wants seven arguments], [ac_cv_gethostbyaddr_r_seven_args],
1110 [
1111         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1112         [[
1113                 #include "confdefs.h"
1114                 #include <sys/types.h>
1115                 #include <sys/socket.h>
1116                 #include <netinet/in.h>
1117                 #include <netdb.h>
1118                 #define BUFSIZE (sizeof(struct hostent)+10)
1119         ]],
1120         [[
1121                 struct hostent hent;
1122                 char buffer[BUFSIZE];
1123                 int bufsize=BUFSIZE;
1124                 int h_errno;
1125                 (void)gethostbyaddr_r ("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno); ]]
1126         )],[ac_cv_gethostbyaddr_r_seven_args=yes],[ac_cv_gethostbyaddr_r_seven_args=no])
1127 ])])
1128
1129 if test "x$ac_cv_gethostbyaddr_r_seven_args" = "xyes" ; then
1130         AC_DEFINE(GETHOSTBYADDR_R_SEVEN_ARGS, 1, [Solaris-style gethostbyaddr_r])
1131 fi
1132
1133 dnl ******************************
1134 dnl stat(v)fs location/type
1135 dnl ******************************
1136 AC_CHECK_HEADER([sys/statvfs.h],
1137         [AC_DEFINE([HAVE_SYS_STATVFS_H], 1, [Have <sys/statvfs.h>])],,
1138         [[      #if HAVE_SYS_STATVFS_H
1139                 #include <sys/statvfs.h>
1140                 #endif
1141         ]])
1142 AC_CHECK_FUNCS(statvfs)
1143
1144 AC_CHECK_HEADER([sys/param.h],
1145         [AC_DEFINE([HAVE_SYS_PARAM_H], 1, [Have <sys/param.h>])],,
1146         [[      #if HAVE_SYS_PARAM_H
1147                 #include <sys/param.h>
1148                 #endif
1149         ]])
1150 AC_CHECK_HEADER([sys/mount.h],
1151         [AC_DEFINE([HAVE_SYS_MOUNT_H], 1, [Have <sys/mount.h>])],,
1152         [[      #if HAVE_SYS_MOUNT_H
1153                 #include <sys/mount.h>
1154                 #endif
1155         ]])
1156 AC_CHECK_FUNCS(statfs)
1157
1158 dnl ******************************
1159 dnl IPv6 support and getaddrinfo calls
1160 dnl ******************************
1161 AC_CACHE_CHECK([if system supports getaddrinfo and getnameinfo], [ac_cv_have_addrinfo],
1162 [
1163         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1164         [[      #include "confdefs.h"
1165                 #include <sys/types.h>
1166                 #include <sys/socket.h>
1167                 #include <netinet/in.h>
1168                 #include <netdb.h>
1169                 #include <stddef.h>
1170         ]],
1171         [[      #ifndef NI_MAXHOST
1172                 #define NI_MAXHOST      1025
1173                 #endif
1174
1175                 #ifndef NI_MAXSERV
1176                 #define NI_MAXSERV      32
1177                 #endif
1178
1179                 struct addrinfo hints, *res;
1180                 struct sockaddr_in6 sin6;
1181                 int af = AF_INET6;
1182                 char host[NI_MAXHOST];
1183                 char serv[NI_MAXSERV];
1184
1185                 getaddrinfo ("www.ximian.com", NULL, &hints, &res);
1186                 freeaddrinfo (res);
1187                 getnameinfo((struct sockaddr *)&sin6, sizeof(sin6), host, sizeof(host), serv, sizeof(serv), 0); ]]
1188         )],[ac_cv_have_addrinfo=yes],[ac_cv_have_addrinfo=no])
1189 ])
1190
1191 if test "x$ac_cv_have_addrinfo" = "xno" ; then
1192         AC_DEFINE(NEED_ADDRINFO,1,[Enable getaddrinfo emulation])
1193         if test "x$enable_ipv6" = "xyes" ; then
1194                 AC_MSG_ERROR([system doesn't support necessary interfaces for ipv6 support])
1195         fi
1196         msg_ipv6="no"
1197 else
1198         AC_ARG_ENABLE([ipv6],
1199         AS_HELP_STRING([--enable-ipv6=no/yes],
1200         [Enable support for resolving IPv6 addresses.]),
1201         [enable_ipv6=$enableval],[enable_ipv6=yes])
1202         if test "x$enable_ipv6" = "xyes"; then
1203                 msg_ipv6="yes"
1204                 AC_DEFINE(ENABLE_IPv6,1,[Enable IPv6 support])
1205                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1206                 [[      #include "confdefs.h"
1207                         #include <sys/types.h>
1208                         #include <sys/socket.h>
1209                         #include <netinet/in.h>
1210                         #include <netdb.h>
1211                 ]],
1212                 [[      struct addrinfo hints;
1213                         hints.ai_flags = AI_ADDRCONFIG;
1214                 ]]
1215                 )],[AC_DEFINE(HAVE_AI_ADDRCONFIG,1,[Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo])],[])
1216         else
1217                 msg_ipv6="no"
1218         fi
1219 fi
1220
1221 AM_CONDITIONAL(ENABLE_IPv6, [test "x$enable_ipv6" = "xyes"])
1222
1223 AC_CHECK_HEADER([wspiapi.h],
1224         [AC_DEFINE([HAVE_WSPIAPI_H], 1, [Have <wspiapi.h>])],,)
1225
1226 dnl **********************************
1227 dnl Weather calendar backend support
1228 dnl **********************************
1229 AC_MSG_CHECKING([if we should build the weather calendar backend])
1230 AC_ARG_ENABLE([weather],
1231         [AS_HELP_STRING([--enable-weather],
1232         [Build the weather calendar backend (default=yes)])],
1233         [use_gweather=$enableval], [use_gweather=yes])
1234
1235 AC_MSG_RESULT([$use_gweather])
1236 if test "x$use_gweather" = "xyes"; then
1237         PKG_CHECK_MODULES(
1238                 [LIBGWEATHER], [gweather-3.0 >= gweather_minimum_version],[],
1239                 [AC_MSG_ERROR([
1240
1241         gweather-3.0 not found (or version < gweather_minimum_version)
1242
1243         If you want to disable weather calendar support,
1244         please append --disable-weather to configure.
1245
1246         ])])
1247 fi
1248 AM_CONDITIONAL(ENABLE_WEATHER, [test $use_gweather = yes])
1249
1250 dnl ******************************
1251 dnl NNTP support.
1252 dnl ******************************
1253 AC_ARG_ENABLE([nntp],
1254         AS_HELP_STRING([--enable-nntp],
1255         [Build Usenet news (NNTP) backend]),
1256         [enable_nntp=$enableval],[enable_nntp=yes])
1257 if test "x$enable_nntp" = "xyes"; then
1258         AC_DEFINE(ENABLE_NNTP,1,[Build NNTP backend])
1259         msg_nntp="yes"
1260 else
1261         msg_nntp="no"
1262 fi
1263 AM_CONDITIONAL(ENABLE_NNTP, [test x$enable_nntp = xyes])
1264
1265 AC_DEFINE(HANDLE_LIBICAL_MEMORY, 1, [Define it once memory returned by libical is free'ed properly])
1266
1267 dnl ******************************
1268 dnl File locking
1269 dnl ******************************
1270 AC_ARG_ENABLE([dot-locking],
1271         AS_HELP_STRING([--enable-dot-locking=yes/no],
1272         [Enable support for locking mail files with dot locking]),
1273         [enable_dot_locking=$enableval],[enable_dot_locking=yes])
1274
1275 if test "x$os_win32" != "xyes" -a "x$enable_dot_locking" = "xyes"; then
1276         AC_DEFINE(USE_DOT,1,[Define to use dot locking for mbox files])
1277         msg_dot="yes"
1278 else
1279         msg_dot="no"
1280 fi
1281
1282 AC_ARG_ENABLE([file-locking],
1283         AS_HELP_STRING([--enable-file-locking=fcntl/flock/no],
1284         [Enable support for locking mail files with file locking]),
1285         [],[enable_file_locking=fcntl])
1286
1287 if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xfcntl"; then
1288         AC_DEFINE(USE_FCNTL,1,[Define to use fcntl locking for mbox files])
1289         msg_file="fcntl"
1290 else
1291         if test "x$os_win32" != "xyes" -a "x$enable_file_locking" = "xflock"; then
1292                 AC_DEFINE(USE_FLOCK,1,[Define to use flock locking for mbox files])
1293                 msg_file="flock"
1294         else
1295                 msg_file="no"
1296         fi
1297 fi
1298
1299 dnl ******************************
1300 dnl sendmail operation
1301 dnl ******************************
1302 AC_MSG_CHECKING([for SunOS broken spool format])
1303 if test "x$host_os" = "xsunos" ; then
1304         with_broken_spool="yes"
1305 fi
1306
1307 AC_ARG_WITH([broken-spool],
1308         AS_HELP_STRING([--with-broken-spool=yes/no],
1309         [Using SunOS/Solaris sendmail which has a broken spool format]),
1310         [with_broken_spool=$enableval],[with_broken_spool=${with_broken_spool:=no}])
1311
1312 if test "x$with_broken_spool" = "xyes"; then
1313         AC_DEFINE(HAVE_BROKEN_SPOOL,1,[Define if mail delivered to the system mail directory is in broken Content-Length format])
1314 fi
1315
1316 AC_MSG_RESULT([$with_broken_spool])
1317
1318 dnl ***********
1319 dnl Kerberos 5
1320 dnl ***********
1321 EVO_KRB5_SUPPORT(no)
1322
1323 dnl ******************************
1324 dnl Purify support
1325 dnl ******************************
1326 EVO_PURIFY_SUPPORT
1327
1328 dnl ******************************
1329 dnl LDAP support.
1330 dnl ******************************
1331 if test "x$os_win32" != "xyes"; then
1332         EVO_LDAP_CHECK(no)
1333         case $with_openldap in
1334         no)
1335                 msg_ldap="no"
1336         ;;
1337         *)
1338                 case $with_static_ldap in
1339                 yes)
1340                         msg_ldap="$with_openldap (static)"
1341                         ;;
1342                 *)
1343                         msg_ldap="$with_openldap (dynamic)"
1344                         ;;
1345                 esac
1346         esac
1347
1348 dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP.
1349         if test "x$with_openldap" = "xno" ; then
1350                 EVO_SUNLDAP_CHECK(no)
1351                 case $with_sunldap in
1352                 no)
1353                         msg_ldap="no"
1354                         ;;
1355                 *)
1356                         case $with_static_sunldap in
1357                         yes)
1358                                 msg_ldap="$with_sunldap (static)"
1359                                 ;;
1360                         *)
1361                                 msg_ldap="$with_sunldap (dynamic)"
1362                                 ;;
1363                 esac
1364         esac
1365         else
1366                 with_sunldap="no"
1367         fi
1368         AM_CONDITIONAL(SUNLDAP, [test "$with_sunldap" != no])
1369
1370         LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_DEPRECATED"
1371 else
1372         dnl Win32 LDAP support
1373         LDAP_CFLAGS="-DLDAP_DEPRECATED"
1374         LDAP_LIBS="-lwldap32"
1375         AC_SUBST(LDAP_CFLAGS)
1376         AC_SUBST(LDAP_LIBS)
1377         AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
1378         AM_CONDITIONAL(ENABLE_LDAP, true)
1379         AM_CONDITIONAL(SUNLDAP, false)
1380         msg_ldap="yes"
1381 fi
1382
1383 dnl ******************************
1384 dnl Utility macro to set compiler flags for a specific lib.
1385 dnl EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
1386 dnl ******************************
1387 AC_DEFUN([EVO_SET_COMPILE_FLAGS], [
1388         PKG_CHECK_MODULES([$1], [$2])
1389         $1_CFLAGS="[$]$1_CFLAGS $3 "
1390         $1_LIBS="[$]$1_LIBS $4 "
1391 ])
1392
1393 dnl ******************************
1394 dnl sqlite3 flags
1395 dnl ******************************
1396 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
1397
1398 if test "x$enable_maintainer_mode" = "xyes" ; then
1399         EVO_SET_COMPILE_FLAGS(FACTORY_GTK, "gtk+-3.0")
1400         AC_SUBST(FACTORY_GTK_CFLAGS)
1401         AC_SUBST(FACTORY_GTK_LIBS)
1402 fi
1403
1404 dnl ******************************
1405 dnl libedataserver flags
1406 dnl ******************************
1407 E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
1408
1409 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
1410 AC_SUBST(E_DATA_SERVER_CFLAGS)
1411 AC_SUBST(E_DATA_SERVER_LIBS)
1412
1413 dnl ******************************
1414 dnl libebackend flags
1415 dnl ******************************
1416 E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libsecret-1 libsoup-2.4 libxml-2.0"
1417
1418 EVO_SET_COMPILE_FLAGS(E_BACKEND, $E_BACKEND_DEPS)
1419 AC_SUBST(E_BACKEND_CFLAGS)
1420 AC_SUBST(E_BACKEND_LIBS)
1421
1422 dnl ******************************
1423 dnl evolution-addressbook flags
1424 dnl ******************************
1425 EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 libsecret-1"
1426
1427 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
1428 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
1429 AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
1430
1431 dnl ******************************
1432 dnl evolution-calendar flags
1433 dnl ******************************
1434 EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 libsecret-1"
1435
1436 dnl *****
1437 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
1438 dnl It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
1439 dnl to differentiate between <libical/ical.h> and <ical.h>
1440 dnl We have fixed all our instances to use <libical/ical.h>. Until the .pc from
1441 dnl libical is fixed, we have to work-around the buggy CFlags.
1442 dnl *****
1443         LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` "
1444         LIBICAL_EXTRA_LIBS=""
1445         AC_SUBST(LIBICAL_EXTRA_CFLAGS)
1446         AC_SUBST(LIBICAL_EXTRA_LIBS)
1447
1448         EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, $EVOLUTION_CALENDAR_DEPS, $LIBICAL_EXTRA_CFLAGS, $LIBICAL_EXTRA_LIBS)
1449         AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
1450         AC_SUBST(EVOLUTION_CALENDAR_LIBS)
1451
1452         dnl ****************************
1453         dnl Check for ical_set_unknown_token_handling_setting function
1454         dnl ****************************
1455         AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function])
1456         save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS
1457         save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS"
1458         AC_LINK_IFELSE([AC_LANG_PROGRAM(
1459                 [[#include <libical/ical.h>]],
1460                 [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])],
1461                 [AC_DEFINE(HAVE_ICAL_UNKNOWN_TOKEN_HANDLING, 1, [libical provides ical_set_unknown_token_handling_setting function]) ac_cv_have_iuth=yes],[ac_cv_have_iuth=no])
1462         CFLAGS=$save_cflags
1463         LIBS=$save_libs
1464         AC_MSG_RESULT([$ac_cv_have_iuth])
1465
1466 dnl ******************************
1467 dnl Google flags
1468 dnl ******************************
1469 LIBGDATA_REQUIRED=libgdata_minimum_version
1470 AC_SUBST(LIBGDATA_REQUIRED)
1471 AC_ARG_ENABLE([google],
1472         [AS_HELP_STRING([--enable-google],
1473         [enable Google Contacts support (default=yes)])],
1474         [enable_google=$enableval], [enable_google=yes])
1475 AC_MSG_CHECKING([if Google Contacts support is enabled])
1476 AC_MSG_RESULT([$enable_google])
1477 if test "x$enable_google" = xyes; then
1478         EVO_SET_COMPILE_FLAGS(GDATA, libgdata >= libgdata_minimum_version)
1479         AC_SUBST(GDATA_CFLAGS)
1480         AC_SUBST(GDATA_LIBS)
1481
1482         AC_DEFINE(HAVE_GOOGLE, 1, [Define to 1 if you have the google-1.0 package.])
1483 fi
1484 AM_CONDITIONAL(HAVE_GOOGLE, [test x$enable_google = xyes])
1485
1486 EVO_SET_COMPILE_FLAGS(SOUP, libsoup-2.4)
1487 AC_SUBST(SOUP_CFLAGS)
1488 AC_SUBST(SOUP_LIBS)
1489
1490 dnl ******************************
1491 dnl Camel flags
1492 dnl ******************************
1493 SQLITE_REQUIRED=sqlite_minimum_version
1494 AC_SUBST(SQLITE_REQUIRED)
1495
1496 zlib_found="false"
1497 dnl deflateInit is a #define, use deflateEnd instead
1498 AC_CHECK_LIB([z], [deflateEnd], [AC_CHECK_HEADER(zlib.h, [zlib_found=true])])
1499
1500 if test "x$zlib_found" = "xfalse"; then
1501         AC_MSG_ERROR([*** zlib is required])
1502 fi
1503
1504 dnl ******************************
1505 dnl Checks for large file support
1506 dnl ******************************
1507 AC_ARG_ENABLE([largefile],
1508         AS_HELP_STRING([--enable-largefile],
1509         [enable support for large files [[default=yes]]]),
1510         [],[enable_largefile="yes"])
1511
1512 if test "x$enable_largefile" != "xno"; then
1513         AC_SYS_LARGEFILE
1514         AC_CACHE_CHECK([for _LARGEFILE64_SOURCE value needed for large files], [ac_cv_largefile64_source],
1515         [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1516         [[      #include <sys/types.h>
1517                 #include <sys/stat.h>
1518                 #include <fcntl.h>
1519         ]],
1520         [[      int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644);  ]]
1521         )],[ac_cv_largefile64_source="no"],
1522                 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1523                 [[      #define _LARGEFILE64_SOURCE
1524                         #include <sys/types.h>
1525                         #include <sys/stat.h>
1526                         #include <fcntl.h>
1527                 ]],
1528                 [[ int fd = open ("__o_largefile", O_CREAT | O_RDWR | O_LARGEFILE, 0644); ]])],[ac_cv_largefile64_source="yes"],
1529                 [ac_cv_largefile64_source="unknown"])])
1530         ])
1531
1532         enable_largefile="no"
1533
1534         if test "x$ac_cv_largefile64_source" = "xyes"; then
1535                 LARGEFILE_CFLAGS="-D_LARGEFILE64_SOURCE"
1536                 enable_largefile="yes"
1537         elif test "x$ac_cv_largefile64_source" = "xunknown"; then
1538                 AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1539         fi
1540
1541         if test -n "$ac_cv_sys_large_files" -a "x$ac_cv_sys_large_files" != "xno"; then
1542                 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGE_FILES"
1543                 enable_largefile="yes"
1544         fi
1545
1546         if test "x$ac_cv_sys_file_offset_bits" != "xno"; then
1547                 LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
1548                 enable_largefile="yes"
1549         fi
1550 else
1551         AC_DEFINE(O_LARGEFILE, 0, [Define to 0 if your system does not have the O_LARGEFILE flag])
1552         LARGEFILE_CFLAGS=""
1553 fi
1554
1555 AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
1556
1557 EVO_SET_COMPILE_FLAGS(CAMEL, gio-2.0 gmodule-2.0 $mozilla_nss sqlite3 >= sqlite_minimum_version, $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $LARGEFILE_CFLAGS, -lz $KRB5_LIBS $MANUAL_NSS_LIBS)
1558 AC_SUBST(CAMEL_CFLAGS)
1559 AC_SUBST(CAMEL_LIBS)
1560
1561 dnl ******************************
1562 dnl Special directories
1563 dnl ******************************
1564
1565 dnl If you add something here, consider whether or not you also
1566 dnl need to add it to one or more .pc.in files (for Connector,
1567 dnl etc)
1568
1569 privdatadir='${datadir}'/evolution-data-server
1570 AC_SUBST(privdatadir)
1571
1572 privincludedir='${includedir}'/evolution-data-server
1573 AC_SUBST(privincludedir)
1574
1575 privlibdir='${libdir}'/evolution-data-server
1576 AC_SUBST(privlibdir)
1577
1578 imagesdir='${datadir}'/pixmaps/evolution-data-server
1579 AC_SUBST(imagesdir)
1580
1581 moduledir='${privlibdir}'/registry-modules
1582 AC_SUBST(moduledir)
1583
1584 ebook_backenddir='${privlibdir}'/addressbook-backends
1585 AC_SUBST(ebook_backenddir)
1586
1587 ecal_backenddir='${privlibdir}'/calendar-backends
1588 AC_SUBST(ecal_backenddir)
1589
1590 ro_sourcesdir='${privdatadir}'/ro-sources
1591 AC_SUBST(ro_sourcesdir)
1592
1593 rw_sourcesdir='${privdatadir}'/rw-sources
1594 AC_SUBST(rw_sourcesdir)
1595
1596 if test "x$use_gweather" = "xyes"; then
1597         weatherdatadir="$privdatadir/weather"
1598         AC_SUBST(weatherdatadir)
1599 fi
1600
1601 dnl separate camel from e-d-s? or should it be under the same spot? same for now.
1602 camel_providerdir='${privlibdir}'/camel-providers
1603 AC_SUBST(camel_providerdir)
1604
1605 dnl *******************
1606 dnl D-BUS service stuff
1607 dnl *******************
1608 m4_pattern_allow([AM_V_GEN])
1609 EVO_SUBST_SERVICE_RULE='%.service: %.service.in Makefile ; $(AM_V_GEN) sed -e "s|\@libexecdir\@|$(libexecdir)|" -e s"|\@ADDRESS_BOOK_DBUS_SERVICE_NAME\@|$(ADDRESS_BOOK_DBUS_SERVICE_NAME)|" -e "s|\@CALENDAR_DBUS_SERVICE_NAME\@|$(CALENDAR_DBUS_SERVICE_NAME)|" -e "s|\@SOURCES_DBUS_SERVICE_NAME\@|$(SOURCES_DBUS_SERVICE_NAME)|" -e "s|\@USER_PROMPTER_DBUS_SERVICE_NAME\@|$(USER_PROMPTER_DBUS_SERVICE_NAME)|" $< > $@'
1610 AC_SUBST(EVO_SUBST_SERVICE_RULE)
1611
1612 dnl ******************************
1613 dnl GLib stuff
1614 dnl ******************************
1615 GLIB_GSETTINGS
1616 AM_PATH_GLIB_2_0
1617
1618 dnl ******************************
1619 dnl gperf stuff
1620 dnl ******************************
1621 AC_PATH_PROG(GPERF, gperf, [no])
1622 if test "x$GPERF" = "xno"; then
1623   AC_MSG_ERROR([You need gperf to build evolution-data-server])
1624 fi
1625
1626 GOBJECT_INTROSPECTION_CHECK([0.9.12])
1627
1628 dnl ******************************
1629 dnl Vala binding
1630 dnl ******************************
1631 AC_ARG_ENABLE(vala-bindings,
1632         AC_HELP_STRING([--enable-vala-bindings],
1633         [build the EXPERIMENTAL Vala bindings]),
1634         enable_vala_bindings=$enableval,
1635         enable_vala_bindings=no)
1636
1637 if test x$enable_vala_bindings = xyes; then
1638   if test "x$INTROSPECTION_SCANNER" = x; then
1639     AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
1640   fi
1641
1642   AM_PROG_VALAC([0.13.0])
1643   have_vala=yes
1644
1645   AC_PATH_PROG(VALAC, valac, valac)
1646   AC_SUBST(VALAC)
1647   AC_SUBST(VALAFLAGS)
1648
1649   AC_PATH_PROG([VAPIGEN], [vapigen], [false])
1650
1651   if test "x$VAPIGEN" = "xfalse"; then
1652     AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
1653   fi
1654
1655   AC_SUBST(VAPIGEN)
1656 fi
1657
1658 AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
1659 AC_SUBST(HAVE_VALA)
1660
1661 dnl ******************************
1662 dnl Makefiles
1663 dnl ******************************
1664 export privlibdir
1665 export privincludedir
1666 export privdatadir
1667
1668 AC_CONFIG_FILES([
1669 Makefile
1670 evolution-data-server-zip
1671 evolution-data-server.pc
1672 addressbook/Makefile
1673 addressbook/libebook/Makefile
1674 addressbook/libebook/libebook.pc
1675 addressbook/libebook-contacts/Makefile
1676 addressbook/libebook-contacts/libebook-contacts.pc
1677 addressbook/libedata-book/Makefile
1678 addressbook/libedata-book/libedata-book.pc
1679 addressbook/libegdbus/Makefile
1680 addressbook/backends/Makefile
1681 addressbook/backends/file/Makefile
1682 addressbook/backends/ldap/Makefile
1683 addressbook/backends/google/Makefile
1684 addressbook/backends/google/tests/Makefile
1685 addressbook/backends/webdav/Makefile
1686 art/Makefile
1687 calendar/Makefile
1688 calendar/libecal/Makefile
1689 calendar/libecal/libecal.pc
1690 calendar/libedata-cal/Makefile
1691 calendar/libedata-cal/libedata-cal.pc
1692 calendar/libegdbus/Makefile
1693 calendar/backends/Makefile
1694 calendar/backends/caldav/Makefile
1695 calendar/backends/file/Makefile
1696 calendar/backends/http/Makefile
1697 calendar/backends/contacts/Makefile
1698 calendar/backends/weather/Makefile
1699 camel/Makefile
1700 camel/providers/Makefile
1701 camel/providers/imapx/Makefile
1702 camel/providers/local/Makefile
1703 camel/providers/nntp/Makefile
1704 camel/providers/pop3/Makefile
1705 camel/providers/sendmail/Makefile
1706 camel/providers/smtp/Makefile
1707 camel/tests/Makefile
1708 camel/tests/folder/Makefile
1709 camel/tests/lib/Makefile
1710 camel/tests/message/Makefile
1711 camel/tests/mime-filter/Makefile
1712 camel/tests/misc/Makefile
1713 camel/tests/smime/Makefile
1714 camel/camel.pc
1715 data/Makefile
1716 libebackend/Makefile
1717 libebackend/libebackend.pc
1718 libedataserver/Makefile
1719 libedataserver/eds-version.h
1720 libedataserver/libedataserver.pc
1721 modules/Makefile
1722 modules/cache-reaper/Makefile
1723 modules/gnome-online-accounts/Makefile
1724 modules/google-backend/Makefile
1725 modules/owncloud-backend/Makefile
1726 modules/ubuntu-online-accounts/Makefile
1727 modules/ubuntu-online-accounts/calendar.service-type.in
1728 modules/ubuntu-online-accounts/contacts.service-type.in
1729 modules/ubuntu-online-accounts/evolution-data-server.application.in
1730 modules/ubuntu-online-accounts/evolution-data-server-uoa.desktop.in
1731 modules/ubuntu-online-accounts/google-calendar.service.in
1732 modules/ubuntu-online-accounts/google-contacts.service.in
1733 modules/ubuntu-online-accounts/google-gmail.service.in
1734 modules/ubuntu-online-accounts/mail.service-type.in
1735 modules/ubuntu-online-accounts/yahoo-calendar.service.in
1736 modules/ubuntu-online-accounts/yahoo-mail.service.in
1737 modules/trust-prompt/Makefile
1738 modules/yahoo-backend/Makefile
1739 private/Makefile
1740 services/Makefile
1741 services/evolution-addressbook-factory/Makefile
1742 services/evolution-calendar-factory/Makefile
1743 services/evolution-source-registry/Makefile
1744 services/evolution-user-prompter/Makefile
1745 tests/Makefile
1746 tests/libebook/Makefile
1747 tests/libebook-contacts/Makefile
1748 tests/libebook/client/Makefile
1749 tests/libebook/vcard/Makefile
1750 tests/libecal/Makefile
1751 tests/libecal/client/Makefile
1752 tests/libedata-cal/Makefile
1753 tests/libedataserver/Makefile
1754 tests/test-server-utils/Makefile
1755 tests/test-server-utils/services/Makefile
1756 tests/test-server-utils/services/org.gnome.evolution.dataserver.AddressBook.service
1757 tests/test-server-utils/services/org.gnome.evolution.dataserver.Calendar.service
1758 tests/test-server-utils/services/org.gnome.evolution.dataserver.Sources.service
1759 docs/Makefile
1760 docs/reference/Makefile
1761 docs/reference/addressbook/Makefile
1762 docs/reference/addressbook/libebook/Makefile
1763 docs/reference/addressbook/libebook-contacts/Makefile
1764 docs/reference/addressbook/libedata-book/Makefile
1765 docs/reference/calendar/Makefile
1766 docs/reference/calendar/libecal/Makefile
1767 docs/reference/calendar/libedata-cal/Makefile
1768 docs/reference/camel/Makefile
1769 docs/reference/libedataserver/Makefile
1770 docs/reference/libebackend/Makefile
1771 docs/reference/private/Makefile
1772 po/Makefile.in
1773 vala/Makefile
1774 ])
1775 AC_OUTPUT
1776
1777 echo "
1778         evolution-data-server has been configured as follows:
1779         Weather calendar:       $use_gweather
1780         Mail Directory:         $system_mail_dir, $system_mail_perm
1781         LDAP support:           $msg_ldap
1782         NNTP support:           $msg_nntp
1783         Kerberos 5:             $msg_krb5
1784         SMIME support:          $msg_smime
1785         IPv6 support:           $msg_ipv6
1786         Phone number support:   $msg_phonenumber
1787         Dot Locking:            $msg_dot
1788         File Locking:           $msg_file
1789         Large files:            $enable_largefile
1790         Gtk Doc:                $enable_gtk_doc
1791         Introspection:          $enable_introspection
1792         Vala bindings:          $enable_vala_bindings
1793         GNOME Online Accounts   $enable_goa
1794         Ubuntu Online Accounts  $enable_uoa
1795         Google Contacts         $enable_google
1796         GTK+:                   $enable_gtk
1797         Code coverage (gcov):   $enable_code_coverage
1798         Strict building:        $enable_strict
1799 "