]> git.0d.be Git - empathy.git/blob - configure.ac
Merge branch 'bug-607146'
[empathy.git] / configure.ac
1 dnl If not 1, append datestamp to the version number
2 m4_define(empathy_released, 0)
3
4 m4_define([empathy_major_version], [2])
5 m4_define([empathy_minor_version], [91])
6 m4_define([empathy_micro_version], [2])
7 m4_define([empathy_nano_version], [0])
8
9 dnl Display the nano_version only if it's not '0'
10 m4_define([empathy_base_version],
11           [empathy_major_version.empathy_minor_version.empathy_micro_version])
12 m4_define([empathy_full_version],
13           [m4_if(empathy_nano_version, 0, [empathy_base_version],
14               [empathy_base_version].[empathy_nano_version])])
15
16 m4_define(empathy_maybe_datestamp,
17           m4_esyscmd([if test x]empathy_released[ != x1; then date +.%Y%m%d | tr -d '\n\r'; fi]))
18
19 m4_define(empathy_version, empathy_full_version[]empathy_maybe_datestamp)
20
21
22 AC_INIT(Empathy, empathy_version, http://bugzilla.gnome.org/browse.cgi?product=empathy)
23
24
25 AC_PREREQ(2.59)
26 AC_COPYRIGHT([
27   Copyright (C) 2003-2007 Imendio AB
28   Copyright (C) 2007-2010 Collabora Ltd.
29 ])
30
31 # Minimal version required
32
33 # Hardp deps
34 FOLKS_REQUIRED=0.3.2
35 GCONF_REQUIRED=1.2.0
36 GLIB_REQUIRED=2.27.2
37 GNUTLS_REQUIRED=2.8.5
38 GTK_REQUIRED=2.91.3
39 KEYRING_REQUIRED=2.26.0
40 LIBCANBERRA_GTK_REQUIRED=0.25
41 LIBNOTIFY_REQUIRED=0.7.0
42 TELEPATHY_FARSIGHT_REQUIRED=0.0.14
43 TELEPATHY_GLIB_REQUIRED=0.13.1.1
44 TELEPATHY_LOGGER=0.1.5
45
46 # Optionnal deps
47 CLUTTER_GTK_REQUIRED=0.90.3
48 ENCHANT_REQUIRED=1.2.0
49 GEOCLUE_REQUIRED=0.11
50 ISO_CODES_REQUIRED=0.35
51 LIBCHAMPLAIN_GTK_REQUIRED=0.7.1
52 LIBCHAMPLAIN_REQUIRED=0.7.1
53 NAUTILUS_SENDTO_REQUIRED=2.90.0
54 NETWORK_MANAGER_REQUIRED=0.7.0
55 WEBKIT_REQUIRED=1.3.2
56 GNOME_CONTROL_CENTER_REQUIRED=2.31.4
57
58 # Use --enable-maintainer-mode to disable deprecated symbols,
59 # disable single include and enable GSEAL. If this is not a released empathy,
60 # maintainer mode is forced
61 ifelse(empathy_released, 1, [], [enable_maintainer_mode="yes"])
62 GNOME_MAINTAINER_MODE_DEFINES
63
64 AC_CONFIG_MACRO_DIR([m4])
65 AC_CONFIG_HEADERS([config.h])
66 AC_CONFIG_SRCDIR([configure.ac])
67 AC_CONFIG_AUX_DIR(.)
68
69 GNOME_COMMON_INIT
70
71 AM_INIT_AUTOMAKE(1.9 dist-bzip2 no-define -Wno-portability)
72
73 # Support silent build rules, requires at least automake-1.11. Disable
74 # by either passing --disable-silent-rules to configure or passing V=1
75 # to make
76 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
77
78 AC_ISC_POSIX
79 AC_PROG_CC
80 AC_HEADER_STDC
81 AM_PROG_LIBTOOL
82 AM_PROG_MKDIR_P
83 AM_PATH_GLIB_2_0
84 AC_PATH_XTRA
85 IT_PROG_INTLTOOL([0.35.0])
86 GNOME_DOC_INIT([0.17.3])
87 AC_PATH_PROG(DBUS_BINDING_TOOL, dbus-binding-tool)
88 GLIB_GSETTINGS
89 GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal`
90 AC_SUBST(GLIB_GENMARSHAL)
91
92 AC_CHECK_PROGS([XSLTPROC], [xsltproc])
93 if test -z "$XSLTPROC"; then
94   AC_MSG_ERROR([xsltproc (from libxslt) is required])
95 fi
96 AM_PATH_PYTHON([2.3])
97
98 EMPATHY_ARG_VALGRIND
99
100
101 # -----------------------------------------------------------
102 # Error flags
103 # -----------------------------------------------------------
104 AS_COMPILER_FLAG(-Wall, ERROR_CFLAGS="-Wall", ERROR_CFLAGS="")
105 AS_COMPILER_FLAG(-Werror, werror=yes, werror=no)
106
107 AC_ARG_ENABLE(Werror,
108   AC_HELP_STRING([--disable-Werror],[compile without -Werror (normally enabled in development builds)]),
109     werror=$enableval, :)
110
111 AS_COMPILER_FLAG(-Wextra, wextra=yes, wextra=no)
112 AS_COMPILER_FLAG(-Wno-missing-field-initializers,
113         wno_missing_field_initializers=yes,
114         wno_missing_field_initializers=no)
115 AS_COMPILER_FLAG(-Wno-unused-parameter,
116         wno_unused_parameter=yes,
117         wno_unused_parameter=no)
118
119 ifelse(empathy_released, 1, [],
120     [
121         if test x$werror = xyes; then
122             ERROR_CFLAGS="$ERROR_CFLAGS -Werror"
123         fi
124         if test x$wextra = xyes -a \
125             x$wno_missing_field_initializers = xyes -a \
126             x$wno_unused_parameter = xyes; then
127             ERROR_CFLAGS="$ERROR_CFLAGS -Wextra -Wno-missing-field-initializers -Wno-unused-parameter"
128         fi
129     ])
130
131 AS_COMPILER_FLAG(-Wdeclaration-after-statement, ERROR_CFLAGS="$ERROR_CFLAGS -Wdeclaration-after-statement")
132 AS_COMPILER_FLAG(-Wshadow, ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow")
133 AS_COMPILER_FLAG(-Wmissing-prototypes, ERROR_CFLAGS="$ERROR_CFLAGS -Wmissing-prototypes")
134 AS_COMPILER_FLAG(-Wmissing-declarations, ERROR_CFLAGS="$ERROR_CFLAGS -Wmissing-declarations")
135 # Disabled because some GTK+ headers (like gtkitemfactory.h) are bugged :(
136 #AS_COMPILER_FLAG(-Wstrict-prototypes, ERROR_CFLAGS="$ERROR_CFLAGS -Wstrict-prototypes")
137
138 AC_SUBST(ERROR_CFLAGS)
139
140 # -----------------------------------------------------------
141 # Pkg-Config dependency checks
142 # -----------------------------------------------------------
143
144 PKG_CHECK_MODULES(EMPATHY,
145 [
146    dbus-glib-1
147    farsight2-0.10
148    folks >= $FOLKS_REQUIRED
149    folks-telepathy >= $FOLKS_REQUIRED
150    gconf-2.0 >= $GCONF_REQUIRED
151    gio-2.0 >= $GLIB_REQUIRED
152    gio-unix-2.0 >= $GLIB_REQUIRED
153    gnome-keyring-1 >= $KEYRING_REQUIRED
154    gnutls >= $GNUTLS_REQUIRED
155    gmodule-export-2.0
156    gobject-2.0
157    gstreamer-0.10
158    gstreamer-interfaces-0.10
159    libxml-2.0
160    telepathy-farsight >= $TELEPATHY_FARSIGHT_REQUIRED
161    telepathy-glib >= $TELEPATHY_GLIB_REQUIRED
162    telepathy-logger-0.1 >= $TELEPATHY_LOGGER
163    x11
164    gtk+-3.0 >= $GTK_REQUIRED
165    libcanberra-gtk3 >= $LIBCANBERRA_GTK_REQUIRED
166    libnotify >= $LIBNOTIFY_REQUIRED
167    gcr-3 >= $KEYRING_REQUIRED
168 ])
169
170 # -----------------------------------------------------------
171 # evolution-data-server (about-me)
172 # -----------------------------------------------------------
173 AC_ARG_WITH(eds,
174             AC_HELP_STRING([--with-eds], [build with evolution-data-server support]),,
175             [with_eds=yes])
176 if test x"$with_eds" = x"yes" ; then
177    PKG_CHECK_MODULES(EDS, [libebook-1.2])
178    AC_DEFINE(HAVE_EDS, 1, [Define if we have libebook])
179 fi
180
181 # -----------------------------------------------------------
182 # Enable debug
183 # -----------------------------------------------------------
184
185 AC_ARG_ENABLE(debug,
186   AC_HELP_STRING([--disable-debug],[compile without debug code]),
187     enable_debug=$enableval, enable_debug=yes )
188
189 if test x$enable_debug = xyes; then
190   AC_DEFINE(ENABLE_DEBUG, [], [Enable debug code])
191 fi
192
193 # -----------------------------------------------------------
194 # Language Support
195 # -----------------------------------------------------------
196
197 GETTEXT_PACKAGE=empathy
198 AC_SUBST(GETTEXT_PACKAGE)
199 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package name])
200
201 AM_GLIB_GNU_GETTEXT
202
203 # -----------------------------------------------------------
204 # Make CA certificates path configurable
205 # Stolen from GIO's TLS
206 # -----------------------------------------------------------
207 AC_MSG_CHECKING([location of system Certificate Authority list])
208 AC_ARG_WITH(ca-file,
209             [AC_HELP_STRING([--with-ca-file=@<:@path@:>@],
210                             [path to system Certificate Authority list])])
211 if test "$with_ca_file" = "no"; then
212     AC_MSG_RESULT([disabled])
213 else
214     if test -z "$with_ca_file"; then
215         for f in /etc/pki/tls/certs/ca-bundle.crt \
216                  /etc/ssl/certs/ca-certificates.crt; do
217             if test -f "$f"; then
218                 with_ca_file="$f"
219             fi
220         done
221         if test -z "$with_ca_file"; then
222             AC_MSG_ERROR([could not find. Use --with-ca-file=path to set, or --without-ca-file to disable])
223         fi
224     fi
225
226     AC_MSG_RESULT($with_ca_file)
227     if ! test -f "$with_ca_file"; then
228         AC_MSG_ERROR([No such file '$with_ca_file'. Use --with-ca-file=path to set, or --without-ca-file to disable])
229     fi
230     GTLS_SYSTEM_CA_FILE="$with_ca_file"
231
232     AC_DEFINE_UNQUOTED([GTLS_SYSTEM_CA_FILE], ["$GTLS_SYSTEM_CA_FILE"], [path to system Certificate Authority list])
233 fi
234
235 # -----------------------------------------------------------
236 # Connectivity integration
237 # -----------------------------------------------------------
238 AC_ARG_WITH(connectivity,
239               AS_HELP_STRING([--with-connectivity=@<:@nm/connman/auto/no@:>@],
240                              [build with connectivity support]), ,
241                              with_connectivity=auto)
242
243 if test "x$with_connectivity" = "xno"; then
244    have_nm=no
245    have_connman=no
246
247 elif test "x$with_connectivity" = "xconnman"; then
248    have_nm=no
249
250    PKG_CHECK_MODULES(CONNMAN,
251    [
252       dbus-glib-1
253    ], have_connman="yes", have_connman="no")
254
255    if test "x$have_connman" = "xyes"; then
256       AC_DEFINE(HAVE_CONNMAN, 1, [Define if you have connman dependencies])
257    fi
258
259 else
260    have_connman=no
261
262    PKG_CHECK_MODULES(NETWORK_MANAGER,
263    [
264       libnm-glib >= $NETWORK_MANAGER_REQUIRED
265    ], have_nm="yes", have_nm="no")
266
267    if test "x$have_nm" = "xyes"; then
268       AC_DEFINE(HAVE_NM, 1, [Define if you have libnm-glib])
269    fi
270 fi
271
272 if test "x$with_connectivity" = "xconnman" -a "x$have_connman" != "xyes"; then
273    AC_MSG_ERROR([Couldn't find connman dependencies.])
274 fi
275
276 if test "x$with_connectivity" = "xnm" -a "x$have_nm" != "xyes"; then
277    AC_MSG_ERROR([Couldn't find libnm-glib dependencies.])
278 fi
279
280 AM_CONDITIONAL(HAVE_NM, test "x$have_nm" = "xyes")
281 AM_CONDITIONAL(HAVE_CONNMAN, test "x$have_connman" = "xyes")
282
283 # -----------------------------------------------------------
284 # Webkit
285 # -----------------------------------------------------------
286 AC_ARG_ENABLE(webkit,
287               AS_HELP_STRING([--enable-webkit=@<:@no/yes/auto@:>@],
288                              [build with webkit support]), ,
289                              enable_webkit=auto)
290
291 if test "x$enable_webkit" != "xno"; then
292    PKG_CHECK_MODULES(WEBKIT, [webkitgtk-3.0 >= $WEBKIT_REQUIRED],
293         have_webkit="yes", have_webkit="no")
294
295    if test "x$have_webkit" = "xyes"; then
296       AC_DEFINE(HAVE_WEBKIT, 1, [Define if you have libwebkitgtk])
297    fi
298 else
299    have_webkit=no
300 fi
301
302 if test "x$enable_webkit" = "xyes" -a "x$have_webkit" != "xyes"; then
303    AC_MSG_ERROR([Could not find webkit dependencies.])
304 fi
305 AM_CONDITIONAL(HAVE_WEBKIT, test "x$have_webkit" = "xyes")
306
307 # -----------------------------------------------------------
308 # spellchecking checks: enchant and iso-codes
309 # -----------------------------------------------------------
310 AC_ARG_ENABLE(spell,
311               AS_HELP_STRING([--enable-spell=@<:@no/yes/auto@:>@],
312                              [Enable spell checking]), ,
313                              enable_spell=auto)
314
315 if test "x$enable_spell" != "xno"; then
316    PKG_CHECK_MODULES(ENCHANT,
317    [
318       enchant >= $ENCHANT_REQUIRED,
319       iso-codes >= $ISO_CODES_REQUIRED
320    ], have_enchant="yes", have_enchant="no")
321
322    if test "x$have_enchant" = "xyes"; then
323       AC_MSG_CHECKING([whether iso-codes has iso-639 and iso-3166 domains])
324       if $PKG_CONFIG --variable=domains iso-codes | grep 639 > /dev/null && \
325          $PKG_CONFIG --variable=domains iso-codes | grep 3166 > /dev/null ; then
326             AC_DEFINE_UNQUOTED(ISO_CODES_PREFIX, ["`$PKG_CONFIG --variable=prefix iso-codes`"], [ISO codes prefix])
327             AC_DEFINE(HAVE_ENCHANT, [], [Define if you have libenchant])
328             result=yes
329       else
330             result=no
331             have_enchant="no"
332       fi
333       AC_MSG_RESULT([$result])
334    fi
335 else
336    have_enchant=no
337 fi
338
339 if test "x$enable_spell" = "xyes" -a "x$have_enchant" != "xyes"; then
340    AC_MSG_ERROR([Could not find spell dependencies.])
341 fi
342
343 AM_CONDITIONAL(HAVE_ENCHANT, test "x$have_enchant" = "xyes")
344
345 # -----------------------------------------------------------
346 # Map view checks: libchamplain
347 # -----------------------------------------------------------
348 AC_ARG_ENABLE(map,
349               AS_HELP_STRING([--enable-map=@<:@no/yes/auto@:>@],
350                              [Enable map view]), ,
351                              enable_map=auto)
352
353 if test "x$enable_map" != "xno"; then
354
355    PKG_CHECK_MODULES(LIBCHAMPLAIN,
356     [
357        champlain-0.8 >= $LIBCHAMPLAIN_REQUIRED,
358 # champplain-gtk3 doesn't exist. Fix the name once bgo #631009
359        champlain-gtk3-0.8 >= $LIBCHAMPLAIN_GTK_REQUIRED
360        clutter-gtk >= $CLUTTER_GTK_REQUIRED
361     ], have_libchamplain="yes", have_libchamplain="no")
362
363    if test "x$have_libchamplain" = "xyes"; then
364       AC_DEFINE(HAVE_LIBCHAMPLAIN, 1, [Define if you have libchamplain])
365    fi
366 else
367    have_libchamplain=no
368 fi
369
370 if test "x$enable_map" = "xyes" -a "x$have_libchamplain" != "xyes"; then
371    AC_MSG_ERROR([Could not find map view dependencies.])
372 fi
373
374 AM_CONDITIONAL(HAVE_LIBCHAMPLAIN, test "x$have_libchamplain" = "xyes")
375
376 # -----------------------------------------------------------
377 # location checks: geoclue
378 # -----------------------------------------------------------
379 AC_ARG_ENABLE(location,
380               AS_HELP_STRING([--enable-location=@<:@no/yes/auto@:>@],
381                              [Enable location awareness]), ,
382                              enable_location=auto)
383
384 if test "x$enable_location" != "xno"; then
385    PKG_CHECK_MODULES(GEOCLUE,
386    [
387       geoclue >= $GEOCLUE_REQUIRED
388    ], have_geoclue="yes", have_geoclue="no")
389
390    if test "x$have_geoclue" = "xyes"; then
391       AC_DEFINE(HAVE_GEOCLUE, 1, [Define if you have geoclue])
392    fi
393 else
394    have_geoclue="no"
395 fi
396
397 if test "x$enable_location" = "xyes" -a "x$have_geoclue" != "xyes"; then
398    AC_MSG_ERROR([Could not find location dependencies.])
399 fi
400
401 AM_CONDITIONAL(HAVE_GEOCLUE, test "x$have_geoclue" = "xyes")
402 AC_SUBST(GEOCLUE_CFLAGS)
403 AC_SUBST(GEOCLUE_LIBS)
404
405 # -----------------------------------------------------------
406 # meego widgets support
407 # -----------------------------------------------------------
408 AC_ARG_ENABLE(meego,
409               AS_HELP_STRING([--enable-meego=@<:no/yes@:>@],
410                              [Enable meego widgets]), ,
411                              enable_meego=no)
412
413 if test "x$enable_meego" != "xno"; then
414     PKG_CHECK_MODULES(MEEGO,
415     [
416        mx-gtk-1.0
417        gio-unix-2.0
418     ], have_meego="yes", have_meego="no")
419
420     if test "x$have_meego" = "xyes"; then
421        AC_DEFINE(HAVE_MEEGO, 1, [Define if you have meego])
422     fi
423 else
424    have_meego="no"
425 fi
426
427 if test "x$enable_meego" = "xyes" -a "x$have_meego" != "xyes"; then
428    AC_MSG_ERROR([Could not find meego dependencies.])
429 fi
430
431 AM_CONDITIONAL(HAVE_MEEGO, test "x$have_meego" = "xyes")
432 AC_SUBST(MEEGO_CFLAGS)
433 AC_SUBST(MEEGO_LIBS)
434
435 # -----------------------------------------------------------
436 # nautilus-sendto
437 # -----------------------------------------------------------
438 AC_ARG_ENABLE(nautilus-sendto,
439               AS_HELP_STRING([--enable-nautilus-sendto=@<:@no/yes/auto@:>@],
440                              [build nautilus-sendto plugin]), ,
441                              enable_nautilus_sendto=auto)
442
443 if test "x$enable_nautilus_sendto" != "xno"; then
444    PKG_CHECK_MODULES(NST,
445     [
446        nautilus-sendto >= $NAUTILUS_SENDTO_REQUIRED
447     ], have_nst="yes", have_nst="no")
448 else
449    have_nst=no
450 fi
451
452 if test "x$enable_nautilus_sendto" = "xyes" -a "x$have_nst" != "xyes"; then
453    AC_MSG_ERROR([Could not find nautilus-sendto dependencies.])
454 fi
455
456 AM_CONDITIONAL(HAVE_NST, test "x$have_nst" = "xyes")
457
458 # -----------------------------------------------------------
459 # new, single-window control center
460 # -----------------------------------------------------------
461 AC_ARG_ENABLE(control_center_embedding,
462               AS_HELP_STRING([--enable-control-center-embedding=@<:@no/yes/auto@:>@],
463                              [Enable support for single-window control center]),
464                              , enable_control_center_embedding=auto)
465
466 if test "x$enable_control_center_embedding" != "xno"; then
467
468    PKG_CHECK_MODULES(CONTROL_CENTER_EMBEDDING, [libgnome-control-center >= GNOME_CONTROL_CENTER_REQUIRED],
469         have_control_center_embedding="yes", have_control_center_embedding="no")
470
471    if test "x$have_control_center_embedding" = "xyes"; then
472       AC_DEFINE(HAVE_CONTROL_CENTER_EMBEDDING, 1, [Define if you have the single-window control center])
473
474       AC_MSG_CHECKING([gnome-control-center extension dir])
475       CONTROL_CENTER_EXTENSIONDIR=`$PKG_CONFIG --variable=extensiondir libgnome-control-center`
476       if test "x$CONTROL_CENTER_EXTENSIONDIR" = "x"; then
477           AC_MSG_ERROR([Could not determine extensiondir])
478       else
479           AC_MSG_RESULT([$CONTROL_CENTER_EXTENSIONDIR])
480       fi
481       AC_SUBST(CONTROL_CENTER_EXTENSIONDIR)
482    fi
483 else
484    have_control_center_embedding="no"
485 fi
486
487 if test "x$enable_control_center_embedding" = "xyes" -a "x$have_control_center_embedding" != "xyes"; then
488    AC_MSG_ERROR([Could not find single-window control center dependencies.])
489 fi
490
491 AM_CONDITIONAL(HAVE_CONTROL_CENTER_EMBEDDING, test "x$have_control_center_embedding" = "xyes")
492 AC_SUBST(CONTROL_CENTER_EMBEDDING_CFLAGS)
493 AC_SUBST(CONTROL_CENTER_EMBEDDING_LIBS)
494
495 # -----------------------------------------------------------
496 # Coding style checks
497 # -----------------------------------------------------------
498 AC_ARG_ENABLE(coding-style-checks,
499   AC_HELP_STRING([--disable-coding-style-checks],
500                  [do not check coding style using grep]),
501     [ENABLE_CODING_STYLE_CHECKS=$enableval], [ENABLE_CODING_STYLE_CHECKS=yes])
502
503 AC_SUBST([ENABLE_CODING_STYLE_CHECKS])
504 # -----------------------------------------------------------
505
506 AC_OUTPUT([
507    Makefile
508    data/Makefile
509    data/empathy.desktop.in
510    data/empathy-accounts.desktop.in
511    data/icons/Makefile
512    extensions/Makefile
513    po/Makefile.in
514    libempathy/Makefile
515    libempathy-gtk/Makefile
516    src/Makefile
517    nautilus-sendto-plugin/Makefile
518    help/Makefile
519    tests/Makefile
520    tests/interactive/Makefile
521    tests/xml/Makefile
522    tools/Makefile
523 ])
524
525 echo "
526 Configure summary:
527
528         Compiler....................:  ${CC}
529         Compiler Flags..............:  ${CFLAGS} ${ERROR_CFLAGS}
530         Prefix......................:  ${prefix}
531         Coding style checks.........:  ${ENABLE_CODING_STYLE_CHECKS}
532         CA Cert Path................:  ${GTLS_SYSTEM_CA_FILE}
533
534     Features:
535         Spell checking (enchant)....:  ${have_enchant}
536         Display maps (libchamplain).:  ${have_libchamplain}
537         Location awareness (Geoclue):  ${have_geoclue}
538         Adium themes (Webkit).......:  ${have_webkit}
539         Meego widgets ..............:  ${have_meego}
540         Control center embedding....:  ${have_control_center_embedding}
541
542     Connectivity:
543         NetworkManager integration..:  ${have_nm}
544         ConnMan integration.........:  ${have_connman}
545
546     Extras:
547         Nautilus-sendto plugin......:  ${have_nst}
548         Salut E-D-S support.........:  ${with_eds}
549 "