Merged pidgin/main into default
[pidgin-git.git] / configure.ac
blob8429041394f671caf873ef1f4495d00c848a4f86
1 dnl Process this file with autoconf to produce a configure script.
2 AC_PREREQ([2.63])
4 # UPDATING VERSION NUMBERS FOR RELEASES
6 # purple_micro_version += 1
8 # If any functions have been added to libpurple, Pidgin, or Finch:
9 #   purple_micro_version = 0
10 #   purple_minor_version += 1
11 #   purple_lt_current += 1
13 # If backwards compatibility has been broken in libpurple, Pidgin, or Finch:
14 #   purple_micro_version = 0
15 #   purple_minor_version = 0
16 #   purple_major_version += 1;
17 #   purple_lt_current += 1
19 # purple_version_suffix should be similar to one of the following:
20 #   For beta releases:          [beta2]
21 #   For code under development: [devel]
22 #   For production releases:    []
25 # If any code has changed in libgnt:
26 #   gnt_micro_version += 1
28 # If any functions have been added to libgnt:
29 #   gnt_micro_version = 0
30 #   gnt_minor_version += 1
31 #   gnt_lt_current += 1
33 # If backwards compatibility has been broken in libgnt:
34 #   gnt_micro_version = 0
35 #   gnt_minor_version = 0
36 #   gnt_major_version += 1;
37 #   gnt_lt_current += 1
39 # gnt_version_suffix should be similar to one of the following:
40 #   For beta releases:          [beta2]
41 #   For code under development: [devel]
42 #   For production releases:    []
44 # Make sure to update finch/libgnt/configure.ac with libgnt version changes.
46 m4_define([purple_lt_current], [20])
47 m4_define([purple_major_version], [3])
48 m4_define([purple_minor_version], [0])
49 m4_define([purple_micro_version], [0])
50 m4_define([purple_version_suffix], [devel])
51 m4_define([purple_version],
52           [purple_major_version.purple_minor_version.purple_micro_version])
53 m4_define([purple_display_version], purple_version[]m4_ifdef([purple_version_suffix],[purple_version_suffix]))
55 # the last version for Finch 2 was 2.8.10,
56 # the first version for Finch 3 was 2.9.0
57 m4_define([gnt_lt_current], [9])
58 m4_define([gnt_major_version], [2])
59 m4_define([gnt_minor_version], [9])
60 m4_define([gnt_micro_version], [0])
61 m4_define([gnt_version_suffix], [devel])
62 m4_define([gnt_version],
63           [gnt_major_version.gnt_minor_version.gnt_micro_version])
64 m4_define([gnt_display_version], gnt_version[]m4_ifdef([gnt_version_suffix],[gnt_version_suffix]))
67 AC_INIT([pidgin], [purple_display_version], [devel@pidgin.im])
69 if test `pwd | wc -w` -ne 1; then
70         AC_MSG_ERROR([
71 You are attempting to build in a path that contains spaces.  This
72 will fail.  Relocate this source tree to a path that does not contain
73 spaces and run configure again.
77 AC_CANONICAL_HOST
78 AC_CONFIG_HEADERS([config.h])
79 AC_CONFIG_MACRO_DIR([m4macros])
80 AM_INIT_AUTOMAKE([1.11 -Wno-portability dist-bzip2 subdir-objects])
81 AM_SILENT_RULES([yes])
83 PURPLE_MAJOR_VERSION=purple_major_version
84 PURPLE_MINOR_VERSION=purple_minor_version
85 PURPLE_MICRO_VERSION=purple_micro_version
86 PURPLE_VERSION=purple_display_version
87 PURPLE_API_VERSION=$((purple_lt_current - purple_minor_version))
88 AC_SUBST(PURPLE_MAJOR_VERSION)
89 AC_SUBST(PURPLE_MINOR_VERSION)
90 AC_SUBST(PURPLE_MICRO_VERSION)
91 AC_SUBST(PURPLE_VERSION)
92 AC_SUBST(PURPLE_API_VERSION)
94 PURPLE_LT_VERSION_INFO="purple_lt_current:purple_micro_version:purple_minor_version"
95 AC_SUBST(PURPLE_LT_VERSION_INFO)
97 GNT_MAJOR_VERSION=gnt_major_version
98 GNT_MINOR_VERSION=gnt_minor_version
99 GNT_MICRO_VERSION=gnt_micro_version
100 GNT_VERSION=gnt_display_version
101 GNT_API_VERSION=$((gnt_lt_current - gnt_minor_version))
102 AC_SUBST(GNT_MAJOR_VERSION)
103 AC_SUBST(GNT_MINOR_VERSION)
104 AC_SUBST(GNT_MICRO_VERSION)
105 AC_SUBST(GNT_VERSION)
106 AC_SUBST(GNT_API_VERSION)
108 GNT_LT_VERSION_INFO="gnt_lt_current:gnt_micro_version:gnt_minor_version"
109 AC_SUBST(GNT_LT_VERSION_INFO)
111 AC_PATH_PROG(sedpath, sed)
112 AC_PATH_PROG(xxdpath, xxd)
114 dnl Storing configure arguments
115 AC_DEFINE_UNQUOTED(CONFIG_ARGS, "$ac_configure_args", [configure arguments])
117 dnl Checks for programs.
118 AC_PROG_CC
119 AM_PROG_CC_C_O
120 AC_PROG_CXX
121 LT_PREREQ([2.2.6])
122 LT_INIT([disable-static])
123 AC_PROG_INSTALL
124 PKG_PROG_PKG_CONFIG
125 AC_FUNC_ALLOCA
127 dnl Check for Sun compiler
128 AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
130 dnl Check for Win32
131 case "$host" in
132         *-*-mingw* | *-*-cygwin*)
133                 is_win32="yes"
134                 is_not_win32="no"
135                 LIBS="$LIBS -lws2_32"
136                 DNSAPI_LIBS="-ldnsapi"
137                 PLUGIN_LDFLAGS="-avoid-version -no-undefined"
138                 AC_SUBST(DNSAPI_LIBS)
139                 AC_CHECK_TOOL(WINDRES, windres)
140                 AC_DEFINE(IS_WIN32_CROSS_COMPILED, 1,
141                         [Define to 1, when building with autotools (not necessarily
142                         cross-compiling) for windows. It's a temporary hack to remain
143                         non-autotools win32 build working. Drop it when we fully
144                         switch our win32 build to autotools.])
145                 AC_DEFINE(WIN32_LEAN_AND_MEAN, 1,
146                         [Define to 1, to build faster for win32.])
147                 ;;
148         *)
149                 is_win32="no"
150                 is_not_win32="yes"
151                 PLUGIN_LDFLAGS="-avoid-version"
152                 ;;
153 esac
154 AM_CONDITIONAL(IS_WIN32, test "x$is_win32" = "xyes")
155 AC_SUBST([PLUGIN_LDFLAGS])
157 dnl Define *_LIBS
158 PURPLE_LIBS="\$(top_builddir)/libpurple/libpurple.la \$(GLIB_LIBS) \$(GPLUGIN_LIBS)"
159 PIDGIN_LIBS="\$(top_builddir)/pidgin/libpidgin.la \$(GTK_LIBS) \$(PURPLE_LIBS) \$(WEBKIT_LIBS)"
160 FINCH_LIBS="\$(top_builddir)/finch/libfinch.la \$(top_builddir)/finch/libgnt/libgnt.la \$(PURPLE_LIBS)"
161 AC_SUBST(PURPLE_LIBS)
162 AC_SUBST(PIDGIN_LIBS)
163 AC_SUBST(FINCH_LIBS)
165 dnl Checks for header files.
166 AC_HEADER_SYS_WAIT
167 AC_CHECK_HEADERS(fcntl.h unistd.h stdint.h)
169 dnl Checks for typedefs, structures, and compiler characteristics.
170 AC_CHECK_SIZEOF(time_t, ,[
171 #include <stdio.h>
172 #include <time.h>])
174 AC_C_BIGENDIAN
176 AC_ARG_WITH(win32-dirs, [AS_HELP_STRING([--with-win32-dirs=<classic|fhs>],
177         [use win32 classic (Program Files-like) or FHS (unix-like) directory structure (default: classic)])], [
178                 if test "x$withval" != "xclassic" -a "x$withval" != "xfhs" ; then
179                         AC_MSG_ERROR([Unsupported win32-dirs option. Please choose "classic" or "fhs".])
180                 fi
181                 with_win32_dirs="$withval"
182         ], with_win32_dirs="classic")
183 if test "x$is_win32" = "xyes" -a "x$with_win32_dirs" = "xfhs" ; then
184         AC_DEFINE(USE_WIN32_FHS, 1, [Define to 1, to use FHS on win32.])
187 dnl Check for directories
188 if test "x$is_win32" = "xyes" ; then
189         if test "x$with_win32_dirs" = "xfhs" ; then
190                 AS_AC_EXPAND(win32_fhs_bindir, "$bindir")
191                 AC_DEFINE_UNQUOTED([WIN32_FHS_BINDIR], ["$win32_fhs_bindir"],
192                         [bindir, as defined by configure])
193                 AS_AC_EXPAND(win32_fhs_libdir, "$libdir")
194                 AC_DEFINE_UNQUOTED([WIN32_FHS_LIBDIR], ["$win32_fhs_libdir"],
195                         [libdir, as defined by configure])
196                 AS_AC_EXPAND(win32_fhs_datadir, "$datadir")
197                 AC_DEFINE_UNQUOTED([WIN32_FHS_DATADIR], ["$win32_fhs_datadir"],
198                         [datadir, as defined by configure])
199                 AS_AC_EXPAND(win32_fhs_sysconfdir, "$sysconfdir")
200                 AC_DEFINE_UNQUOTED([WIN32_FHS_SYSCONFDIR], ["$win32_fhs_sysconfdir"],
201                         [sysconfdir, as defined by configure])
202                 AS_AC_EXPAND(win32_fhs_localedir, "$localedir")
203                 AC_DEFINE_UNQUOTED([WIN32_FHS_LOCALEDIR], ["$win32_fhs_localedir"],
204                         [localedir, as defined by configure])
206                 purple_libdir="wpurple_lib_dir(\"purple-$PURPLE_MAJOR_VERSION\")"
207                 pidgin_libdir="wpurple_lib_dir(\"pidgin-$PURPLE_MAJOR_VERSION\")"
208                 finch_libdir="wpurple_lib_dir(\"finch-$PURPLE_MAJOR_VERSION\")"
209         else
210                 purple_libdir="wpurple_lib_dir(NULL)"
211                 pidgin_libdir="wpurple_lib_dir(NULL)"
212                 finch_libdir="wpurple_lib_dir(NULL)"
213         fi
215         purple_datadir="wpurple_data_dir()"
216         purple_sysconfdir="wpurple_sysconf_dir()"
217         purple_localedir="wpurple_locale_dir()"
218 else
219         AS_AC_EXPAND(purple_datadir, "$datadir")
220         purple_datadir="\"$purple_datadir\""
221         AS_AC_EXPAND(purple_sysconfdir, "$sysconfdir")
222         purple_sysconfdir="\"$purple_sysconfdir\""
223         AS_AC_EXPAND(purple_localedir, "$localedir")
224         purple_localedir="\"$purple_localedir\""
226         AS_AC_EXPAND(common_libdir, "$libdir")
227         purple_libdir="\"$common_libdir/purple-$PURPLE_MAJOR_VERSION\""
228         pidgin_libdir="\"$common_libdir/pidgin-$PURPLE_MAJOR_VERSION\""
229         finch_libdir="\"$common_libdir/finch-$PURPLE_MAJOR_VERSION\""
231 AC_DEFINE_UNQUOTED([PURPLE_DATADIR], [$purple_datadir],
232         [datadir to use, may expand into a function call that returns const char *])
233 AC_DEFINE_UNQUOTED([PURPLE_LIBDIR], [$purple_libdir],
234         [libdir to use for libpurple, may expand into a function call that returns const char *])
235 AC_DEFINE_UNQUOTED([PIDGIN_LIBDIR], [$pidgin_libdir],
236         [libdir to use for Pidgin, may expand into a function call that returns const char *])
237 AC_DEFINE_UNQUOTED([FINCH_LIBDIR], [$finch_libdir],
238         [libdir to use for Finch, may expand into a function call that returns const char *])
239 AC_DEFINE_UNQUOTED([PURPLE_SYSCONFDIR], [$purple_sysconfdir],
240         [sysconfdir to use, may expand into a function call that returns const char *])
241 AC_DEFINE_UNQUOTED([PURPLE_LOCALEDIR], [$purple_localedir],
242         [localedir to use, may expand into a function call that returns const char *])
244 PURPLE_PLUGINDIR="\$(libdir)/purple-$PURPLE_MAJOR_VERSION"
245 AC_SUBST([PURPLE_PLUGINDIR])
246 PIDGIN_PLUGINDIR="\$(libdir)/pidgin-$PURPLE_MAJOR_VERSION"
247 AC_SUBST([PIDGIN_PLUGINDIR])
248 FINCH_PLUGINDIR="\$(libdir)/finch-$PURPLE_MAJOR_VERSION"
249 AC_SUBST([FINCH_PLUGINDIR])
251 dnl Checks for library functions.
252 AC_CHECK_FUNCS(strdup)
253 dnl Checks for getopt in standard library
254 AC_CHECK_FUNCS(getopt_long,,
256         AC_LIBOBJ(getopt)
257         AC_LIBOBJ(getopt1)
260 dnl Check for inet_aton
261 if test "x$is_win32" != "xyes" ; then
262         AC_CHECK_FUNC(inet_aton, , [AC_CHECK_LIB(resolv, inet_aton, ,
263                 [AC_MSG_ERROR([inet_aton not found])])])
265 AC_CHECK_LIB(resolv, __res_query)
266 AC_CHECK_LIB(nsl, gethostent)
267 if test "x$is_win32" = "xyes" ; then
268         AC_DEFINE(HAVE_GETADDRINFO, 1, [Define to 1 if you have the getaddrinfo function.])
269         AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have the `inet_ntop' function.])
270 else
271         AC_CHECK_FUNC(socket, , [AC_CHECK_LIB(socket, socket, ,
272                 [AC_MSG_ERROR([socket not found])])])
273         dnl If all goes well, by this point the previous two checks will have
274         dnl pulled in -lsocket and -lnsl if we need them.
275         AC_CHECK_FUNC(getaddrinfo,
276                 [AC_DEFINE([HAVE_GETADDRINFO], [1],
277                         [Define to 1 if you have the getaddrinfo function.])],
278                 [AC_CHECK_LIB(socket, getaddrinfo,
279                         [AC_DEFINE([HAVE_GETADDRINFO]) LIBS="-lsocket -lnsl $LIBS"], , -lnsl)])
280         AC_CHECK_FUNCS(inet_ntop)
282 AC_CHECK_FUNCS(getifaddrs)
283 dnl Check for socklen_t (in Unix98)
284 AC_MSG_CHECKING(for socklen_t)
285 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
286         #include <sys/types.h>
287         #ifdef _WIN32
288         #  include <ws2tcpip.h>
289         #else
290         #  include <sys/socket.h>
291         #endif
292         socklen_t x;
293 ]], [[]])], [
294         AC_MSG_RESULT(yes)
295 ], [
296         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
297                 #include <sys/types.h>
298                 #ifdef _WIN32
299                 #  include <ws2tcpip.h>
300                 #else
301                 #  include <sys/socket.h>
302                 #endif
303                 int accept(int, struct sockaddr *, size_t *);
304         ]], [[]])], [
305                 AC_MSG_RESULT(size_t)
306                 AC_DEFINE(socklen_t, size_t, [socklen_t size])
307         ], [
308                 AC_MSG_RESULT(int)
309                 AC_DEFINE(socklen_t, int, [socklen_t size])
310         ])
313 dnl Some systems do not have sa_len field for struct sockaddr.
314 AC_CHECK_MEMBER([struct sockaddr.sa_len],
315         [AC_DEFINE([HAVE_STRUCT_SOCKADDR_SA_LEN],[1],
316         [Define if struct sockaddr has an sa_len member])],[:],
317         [
318                 #ifdef _WIN32
319                 #  include <ws2tcpip.h>
320                 #else
321                 #  include <sys/socket.h>
322                 #endif
323         ])
325 dnl Check for v6-only sockets
326 AC_CHECK_DECL([IPV6_V6ONLY],
327         [AC_DEFINE([HAVE_IPV6_V6ONLY],[1],
328         [Define if the IPV6_V6ONLY setsockopt option exists])],
329         [], [
330                 #ifdef _WIN32
331                 #  include <ws2tcpip.h>
332                 #else
333                 #  include <netinet/in.h>
334                 #endif
335         ])
337 dnl to prevent the g_stat()/g_unlink() crash,
338 dnl (09:50:07) Robot101: LSchiere2: it's easy. +LC_SYS_LARGEFILE somewhere in configure.ac
339 AC_SYS_LARGEFILE
341 dnl FreeBSD doesn't have libdl, dlopen is provided by libc
342 AC_CHECK_FUNC(dlopen, LIBDL="", [AC_CHECK_LIB(dl, dlopen, LIBDL="-ldl")])
344 dnl Windows and Haiku do not use libm for the math functions, they are part
345 dnl of the C library
346 AC_SEARCH_LIBS([ceil], [m], [], [
347   AC_MSG_ERROR([unable to find the ceil() function])
350 AC_MSG_CHECKING([for fileno()])
351 AC_RUN_IFELSE([AC_LANG_SOURCE([[
352 #include <stdio.h>
354 int main(int argc, char *argv[])
356         int fd;
358         fd = fileno(stdout);
360         return !(fd > 0);
362 ]])], [
363         AC_MSG_RESULT(yes)
364         AC_DEFINE([HAVE_FILENO], [1],
365                   [Define to 1 if your stdio has int fileno(FILE *).])
366 ], [
367         AC_MSG_RESULT(no)
368 ], [
369         # Fallback for Cross Compiling...
370         # This will enable the compatibility code.
371         AC_MSG_RESULT(no)
374 AC_MSG_CHECKING([for the %z format string in strftime()])
375 AC_RUN_IFELSE([AC_LANG_SOURCE([[
376 #include <time.h>
377 #include <stdio.h>
379 int main()
381         char buf[64];
382         time_t t = time(NULL);
384         if (strftime(buf, sizeof(buf), "%z", localtime(&t)) != 5)
385                 return 1;
387         fprintf(stderr, "strftime(\"%%z\") yields: \"%s\"\n", buf);
389         return !((buf[0] == '-' || buf[0] == '+') &&
390                  (buf[1] >= '0' && buf[1] <= '9') &&
391                  (buf[2] >= '0' && buf[2] <= '9') &&
392                  (buf[3] >= '0' && buf[3] <= '9') &&
393                  (buf[4] >= '0' && buf[4] <= '9')
394                 );
396 ]])], [
397         AC_MSG_RESULT(yes)
398         AC_DEFINE([HAVE_STRFTIME_Z_FORMAT], [1],
399                 [Define to 1 if you have a strftime() that supports the %z format string.])
400 ], [
401         AC_MSG_RESULT(no)
402 ], [
403         # Fallback for Cross Compiling...
404         # This will enable the compatibility code.
405         AC_MSG_RESULT(no)
408 # before gettexting, in case iconv matters
409 case "$host_os" in
410 darwin*)
411         AC_CHECK_LIB(resolv, res_query)
413         AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h, [
414                 AC_CHECK_HEADER(IOKit/IOKitLib.h, [
415                         AC_DEFINE(HAVE_IOKIT, 1, [Define if we have IOKit])
416                         LIBS="$LIBS -framework IOKit -framework CoreFoundation"
417                 ], [])
418         ], [])
420         AC_MSG_CHECKING([for fink])
421         if test -d /sw; then
422                 AC_MSG_RESULT([found, adding /sw to search paths])
423                 CPPFLAGS="$CPPFLAGS -I/sw/include"
424                 LDFLAGS="$LDFLAGS -L/sw/lib"
425         else
426                 AC_MSG_RESULT([not found])
427         fi
428         ;;
430         ;;
431 esac
433 dnl #######################################################################
434 dnl # Disable creation and installation of translation files
435 dnl #######################################################################
436 AC_ARG_ENABLE(nls, AS_HELP_STRING([--disable-nls], [disable installation of translation files]), enable_i18n="$enableval", enable_i18n=yes)
438 if test x$enable_i18n = xyes; then
439         IT_PROG_INTLTOOL
440         GETTEXT_PACKAGE=pidgin
441         AC_SUBST(GETTEXT_PACKAGE)
443         ALL_LINGUAS="af am ar as ast az be@latin bg bn_IN bn br brx bs ca ca@valencia cs da de dz el en_AU en_CA en_GB eo es_AR es et eu fa fi fr ga gl gu he hi hr hu id it ja ka kk km kn ko ks ku_IQ ku lt lv mai mhr mk ml mn mr ms_MY my_MM nb ne nl nn oc or pa pl ps pt_BR pt ro ru sd si sk sl sq sr@latin sr sv sw ta te th tr tt uk ur uz vi xh zh_CN zh_HK zh_TW"
444         AM_GLIB_GNU_GETTEXT
446         dnl If we don't have msgfmt, then po/ is going to fail -- ensure that
447         dnl AM_GLIB_GNU_GETTEXT found it.
449         if test x$MSGFMT = xno -o x$MSGFMT$GMSGFMT$INTLTOOL_MSGFMT = x
450         then
451                 AC_MSG_ERROR([
453 The msgfmt command is required to build libpurple.  If it is installed
454 on your system, ensure that it is in your path.  If it is not, install
455 GNU gettext to continue.
457 If you have msgfmt installed, but for some reason this error message
458 is still displayed, you have encountered what appears to be a bug in
459 third-party configure macros.  Try setting the MSGFMT environment
460 variable to the absolute path to your msgfmt binary and trying
461 configure again, like this:
463 MSGFMT=/path/to/msgfmt ./configure ...
464         ])
465         fi
466 fi #enable_i18n
468 AM_CONDITIONAL(INSTALL_I18N, test "x$enable_i18n" = "xyes")
470 dnl #######################################################################
471 dnl # Check for GLib 2.36 (required)
472 dnl #######################################################################
473 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.36.0 gio-2.0 gobject-2.0 gthread-2.0], , [
474         AC_MSG_RESULT(no)
475         AC_MSG_ERROR([
477 You must have GLib 2.36.0 or newer development headers installed to build.
479 If you have these installed already you may need to install pkg-config so
480 I can find them.
481 ])])
482 AC_SUBST(GLIB_CFLAGS)
483 AC_SUBST(GLIB_LIBS)
485 GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
486 AC_SUBST(GLIB_GENMARSHAL)
488 GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
489 AC_SUBST(GLIB_MKENUMS)
491 AC_PATH_PROG(GTESTER, gtester)
492 GLIB_TESTS
494 AC_ARG_WITH([extraversion],
495                         AS_HELP_STRING([--with-extraversion=STRING],
496                                                    [extra version number to be displayed in Help->About and --help (for packagers)]),
497                                                    EXTRA_VERSION=$withval)
499 if test x"$EXTRA_VERSION" != "x" ; then
500         AC_DEFINE_UNQUOTED(DISPLAY_VERSION, "$VERSION-$EXTRA_VERSION", [display version info])
501 else
502         AC_DEFINE_UNQUOTED(DISPLAY_VERSION, "$VERSION", [display version info])
505 AC_ARG_ENABLE(missing-dependencies, [AS_HELP_STRING([--disable-missing-dependencies],
506                 [skip missing dependencies instead of aborting configure])],
507         force_deps="$enableval", force_deps="yes")
509 AC_ARG_WITH(x, [],
510         with_x="$withval", with_x="$is_not_win32")
511 AC_ARG_ENABLE(gtkui, [AS_HELP_STRING([--disable-gtkui],
512                 [compile without GTK+ user interface])],
513         enable_gtkui="$enableval", enable_gtkui="yes")
514 AC_ARG_ENABLE(consoleui, [AS_HELP_STRING([--disable-consoleui],
515                 [compile without console user interface])],
516         [enable_consoleui=$enableval force_finch=$enableval], [enable_consoleui=yes force_finch=no])
518 dnl #######################################################################
519 dnl # Check for GTK+ 2.18 and other things used by the GTK UI
520 dnl #######################################################################
521 AC_ARG_ENABLE(screensaver,
522         [AS_HELP_STRING([--disable-screensaver],
523                 [compile without X screensaver extension (used to detect idleness)])],
524         enable_screensaver="$enableval", enable_screensaver="yes")
525 AC_ARG_ENABLE(sm,
526         [AS_HELP_STRING([--disable-sm],
527                 [compile without X session management support])],
528         enable_sm="$enableval", enable_sm="yes")
529 AC_ARG_ENABLE(startup-notification,
530         [AS_HELP_STRING([--disable-startup-notification],
531                 [compile without startup notification support])],
532         enable_startup_notification="$enableval", enable_startup_notification="yes")
533 AC_ARG_ENABLE(enchant,
534         [AS_HELP_STRING([--disable-enchant],
535                 [compile without Enchant spell checking support])],
536         enable_enchant="$enableval", enable_enchant="yes")
537 AC_ARG_ENABLE(gevolution,
538         [AS_HELP_STRING([--enable-gevolution],
539                 [compile with the Evolution plugin])],
540         enable_gevolution="$enableval", enable_gevolution="no")
541 AC_ARG_ENABLE(cap,
542         [AS_HELP_STRING([--enable-cap],
543                 [compile with Contact Availability Prediction plugin])],
544         enable_cap="$enableval", enable_cap="no")
545 AC_ARG_ENABLE(gestures,
546         [AS_HELP_STRING([--disable-gestures],
547                 [compile without the gestures plugin])],
548         enable_gestures="$enableval", enable_gestures="yes")
549 AC_ARG_ENABLE(gcr,
550         [AS_HELP_STRING([--enable-gcr],
551                 [compile with GCR certificate widgets])],
552         enable_gcr="$enableval", enable_gcr="no")
554 AC_PATH_XTRA
555 # We can't assume that $x_libraries will be set, because autoconf does not
556 # set it in the case when the X libraries are in a standard place.
557 # Ditto for $x_includes
558 if test X"$x_libraries" = X"" || test X"$x_libraries" = XNONE; then
559     x_libpath_add=
560 else
561     x_libpath_add="-L$x_libraries"
563 if test X"$x_includes" = X"" || test X"$x_includes" = XNONE; then
564     x_incpath_add=
565 else
566     x_incpath_add="-I$x_includes"
569 dnl #######################################################################
570 dnl Check Pidgin dependencies
571 dnl #######################################################################
572 if test "x$enable_gtkui" = "xyes" ; then
573         PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= 3.4.2], , [
574                 AC_MSG_RESULT(no)
575                 AC_MSG_ERROR([
576 You must have GTK+ 3.4.2 or newer development headers installed to compile
577 Pidgin.  If you want to build only Finch then specify --disable-gtkui when
578 running configure.
579 ])])
580         AC_SUBST(GTK_CFLAGS)
581         AC_SUBST(GTK_LIBS)
583         dnl We only really need Pango >= 1.4 for decent RTL support
584         PKG_CHECK_MODULES(PANGO, [pango >= 1.4.0],
585                         AC_DEFINE(HAVE_PANGO14, 1, [Define if we have Pango 1.4 or newer.]),:)
587         WEBKIT_VERSION=1.3.7
588         PKG_CHECK_MODULES(WEBKIT, ["webkitgtk-3.0" >= $WEBKIT_VERSION], , [
589                 AC_MSG_RESULT(no)
590                 AC_MSG_ERROR([
591 You must have WebKit for GTK+3 $WEBKIT_VERSION or newer development headers
592 installed to compile Pidgin.  If you want to build only Finch then specify
593 --disable-gtkui when running configure.
594 ])])
595         AC_SUBST(WEBKIT_CFLAGS)
596         AC_SUBST(WEBKIT_LIBS)
598         dnl #######################################################################
599         dnl # Check if we should compile with enchant support
600         dnl #######################################################################
601         dnl We need enchant for spell checking dictionary enumeration,
602         dnl because webkit1 doesn't have this.
603         use_enchant=no
604         if test "x$enable_enchant" = "xyes" ; then
605                 use_enchant=yes
606                 PKG_CHECK_MODULES(ENCHANT, enchant, , [
607                         AC_MSG_RESULT(no)
608                         use_enchant=no
609                 ])
610                 if test "x$force_deps" = "xyes" -a "x$use_enchant" = "xno"; then
611                         AC_MSG_ERROR([
612 Enchant development headers not found.
613 Use --disable-enchant if you do not need it.
615                 fi
616                 if test "x$use_enchant" = "xyes" ; then
617                         AC_DEFINE(USE_ENCHANT, 1, [Define if we're using enchant])
618                         AC_SUBST(ENCHANT_CFLAGS)
619                         AC_SUBST(ENCHANT_LIBS)
620                 fi
621         fi
623         dnl #######################################################################
624         dnl # Check if we should compile with X support
625         dnl #######################################################################
626         if test "x$with_x" = "xyes" ; then
627                 PKG_CHECK_MODULES(X11, x11,
628                         [AC_DEFINE(HAVE_X11, 1, [Define to 1 if you have X11])],
629                         [AC_MSG_RESULT(no)
630                                 if test "x$x_incpath_add" != "x" -a "x$x_libpath_add" != "x"; then
631                                         X11_LIBS="$x_libpath_add"
632                                         X11_CFLAGS="$x_incpath_add"
633                                 else
634                                         with_x="no"
635                                         if test "x$force_deps" = "xyes" ; then
636                                                 AC_MSG_ERROR([
637 X11 development headers not found.
638 Use --without-x if you do not need X11 support.
640                                         fi
641                                 fi
642                         ])
643                 AC_SUBST(X11_LIBS)
644                 AC_SUBST(X11_CFLAGS)
645         else
646                 enable_screensaver=no
647                 enable_sm=no
648                 enable_gestures=no
649         fi
651         dnl #######################################################################
652         dnl # Check for XScreenSaver
653         dnl #######################################################################
654         if test "x$enable_screensaver" = "xyes" ; then
655                 if test "x$with_x" = "xyes" ; then
656                         old_LIBS="$LIBS"
657                         LIBS="$LIBS $GTK_LIBS $x_libpath_add"
658                         XSS_LIBS=""
659                         XSS_HEADERS=""
660                         AC_CHECK_LIB(Xext, XScreenSaverRegister,[XSS_LIBS="$X_LIBS $X_PRE_LIBS -lX11 -lXext $X_EXTRA_LIBS"],[],[-lX11 -lXext -lm])
661                         AC_CHECK_LIB(Xss, XScreenSaverRegister,[XSS_LIBS="$X_LIBS $X_PRE_LIBS -lX11 -lXext $X_LIBS $X_EXTRA_LIBS -lXss"],[],[-lX11 -lXext -lm])
662                         if test "x$XSS_LIBS" != "x"; then
663                                 oldCPPFLAGS="$CPPFLAGS"
664                                 CPPFLAGS="$CPPFLAGS $x_incpath_add"
665                                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
666                                         #include <X11/Xlib.h>
667                                         #include <X11/extensions/scrnsaver.h>
668                                         ]], [[]])], [], [enable_screensaver=no])
669                                 CPPFLAGS="$oldCPPFLAGS"
670                         else
671                                 enable_screensaver=no
672                         fi
673                         LIBS="$old_LIBS"
675                         if test "x$enable_screensaver" = "xyes" ; then
676                                 AC_DEFINE(USE_SCREENSAVER, 1, [Define if we're using XScreenSaver.])
677                                 AC_SUBST(XSS_LIBS)
678                         else
679                                 if test "x$force_deps" = "xyes" ; then
680                                         AC_MSG_ERROR([
681 XScreenSaver extension development headers (libXScrnSaver-devel or libxss-dev) not found.
682 Use --disable-screensaver if you do not need XScreenSaver extension support,
683 this is required for detecting idle time by mouse and keyboard usage.
685                                 fi
686                         fi
687                 else
688                         AC_MSG_ERROR([X support is required to build with XScreenSaver extensions])
689                 fi
690         fi
692         dnl #######################################################################
693         dnl # Check for X session management libs
694         dnl #######################################################################
695         if test "x$enable_sm" = "xyes"; then
696                 if test "x$with_x" = "xyes" ; then
697                         enable_sm=no
698                         AC_CHECK_LIB(SM, SmcSaveYourselfDone, found_sm_lib=true, , [$x_libpath_add -lICE])
699                         if test "x$found_sm_lib" = "xtrue"; then
700                                 oldCPPFLAGS="$CPPFLAGS"
701                                 CPPFLAGS="$CPPFLAGS $x_incpath_add"
702                                 AC_CHECK_HEADERS(X11/SM/SMlib.h, SM_LIBS="$x_libpath_add -lSM -lICE" enable_sm=yes)
703                                 CPPFLAGS="$oldCPPFLAGS"
704                         fi
706                         if test "x$enable_sm" = "xyes"; then
707                                 AC_DEFINE(USE_SM, 1, [Define if we're using X Session Management.])
708                                 AC_SUBST(SM_LIBS)
709                         else
710                                 if test "x$force_deps" = "xyes" ; then
711                                         AC_MSG_ERROR([
712 X session management development headers not found.
713 Use --disable-sm if you do not need session management support.
715                                 fi
716                         fi
717                 else
718                         AC_MSG_ERROR([X support is required to build with X session management support])
719                 fi
720         fi
722         dnl #######################################################################
723         dnl # Check for X11 to allow the gestures plugin
724         dnl #######################################################################
725         if test "x$enable_gestures" = "xyes"; then
726                 if test "x$with_x" = "xno" ; then
727                         enable_gestures=no
728                 fi
729         fi
731         dnl #######################################################################
732         dnl # Check for stuff needed by the Evolution integration plugin.
733         dnl #######################################################################
734         if test "x$enable_gevolution" = "xyes"; then
735                 evo_deps="libebook-1.2 libedata-book-1.2 evolution-data-server-1.2 >= 3.6"
736                 PKG_CHECK_MODULES(EVOLUTION_ADDRESSBOOK, $evo_deps, , [
737                         enable_gevolution="no"
738                 ])
739                 if test "x$enable_gevolution" = "xyes"; then
740                         AC_DEFINE(HAVE_EVOLUTION_ADDRESSBOOK, 1, [Define if we're using evolution addressbook.])
741                         AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
742                         AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
743                 else
744                         if test "x$force_deps" = "xyes" ; then
745                                 AC_MSG_ERROR([
746 Evolution development headers not found (libebook, libedata-book, evolution-data-server >= 3.6).
747 Use --disable-gevolution if you do not need it.
749                         fi
750                 fi
751         fi
753         dnl #######################################################################
754         dnl # Check for libsqlite3 (for the Contact Availability Prediction plugin)
755         dnl #######################################################################
756         if test "x$enable_cap" = "xyes"; then
757                 PKG_CHECK_MODULES(SQLITE3, sqlite3 >= 3.3,,[
758                         AC_MSG_RESULT(no)
759                         enable_cap="no"
760                         if test "x$force_deps" = "xyes" ; then
761                                 AC_MSG_ERROR([
762 sqlite3 development headers not found.
763 Use --disable-cap if you do not need the Contact Availability Prediction plugin.
765                         fi])
766         fi
768         dnl #######################################################################
769         dnl # Check for GCR for its certificate widgets
770         dnl #######################################################################
771         if test "x$enable_gcr" = "xyes"; then
772                 PKG_CHECK_MODULES(GCR, gcr-3, [
773                         AC_DEFINE(ENABLE_GCR, 1, [Define to 1 if GCR is found.])], [
774                         AC_MSG_RESULT(no)
775                         enable_gcr="no"
776                         if test "x$force_deps" = "xyes" ; then
777                                 AC_MSG_ERROR([
778 GCR for GTK+3 development headers not found.
779 Use --disable-gcr if you do not need GCR certificate widgets.
781                         fi])
782         fi
785 else # GTK
786         enable_gcr=no
787         enable_cap=no
788         enable_gevolution=no
789         enable_screensaver=no
790         enable_sm=no
791         enable_startup_notification=no
792 fi      # GTK
794 AM_CONDITIONAL(ENABLE_GTK, test "x$enable_gtkui" = "xyes")
795 AM_CONDITIONAL(BUILD_GEVOLUTION, test "x$enable_gevolution" = "xyes")
796 AM_CONDITIONAL(ENABLE_CAP, test "x$enable_cap" = "xyes")
797 AM_CONDITIONAL(ENABLE_GESTURES, test "x$enable_gestures" = "xyes")
798 AM_CONDITIONAL(ENABLE_GCR, test "x$enable_gcr" = "xyes")
801 dnl #######################################################################
802 dnl # Check for ncurses and other things used by the console UI
803 dnl #######################################################################
804 GNT_LIBS=""
805 GNT_CFLAGS=""
806 AC_ARG_WITH(ncurses-headers, [AS_HELP_STRING([--with-ncurses-headers=DIR],
807                 [compile finch against the ncurses includes in DIR])],
808                 [ac_ncurses_includes="$withval"], [ac_ncurses_includes=""])
809 if test "x$enable_consoleui" = "xyes"; then
810         AC_CHECK_LIB(ncursesw, initscr, [GNT_LIBS="-lncursesw"], [enable_consoleui=no])
811         AC_CHECK_LIB(panelw, update_panels, [GNT_LIBS="$GNT_LIBS -lpanelw"],
812             [enable_consoleui=no], [$GNT_LIBS])
814         if test "x$is_win32" = "xyes" ; then
815                 ncurses_sys_prefix="/usr/$host/sys-root/mingw"
816         else
817                 ncurses_sys_prefix="/usr"
818         fi
820         ncurses_sys_dirs="$ncurses_sys_prefix/include/ncursesw $ncurses_sys_prefix/include"
822         if test "x$enable_consoleui" = "xyes"; then
823                 dnl # Some distros put the headers in ncursesw/, some don't
824                 found_ncurses_h=no
825                 for location in $ac_ncurses_includes $NCURSES_HEADERS $ncurses_sys_dirs
826                 do
827                         f="$location/ncurses.h"
828                         orig_CFLAGS="$CFLAGS"
829                         orig_CPPFLAGS="$CPPFLAGS"
830                         CFLAGS="$CFLAGS -I$location"
831                         CPPFLAGS="$CPPFLAGS -I$location"
832                         AC_CHECK_HEADER($f,[
833                                 AC_MSG_CHECKING([if $f supports wide characters])
834                                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
835                                         #define _XOPEN_SOURCE_EXTENDED
836                                         #include <$f>
837                                 ]], [[
838                                         #ifndef get_wch
839                                         # error get_wch not found!
840                                         #endif
841                                 ]])], [
842                                         dir=$location
843                                         if test x"$dir" != x"." ; then
844                                                 GNT_CFLAGS="-I$dir/"
845                                         else
846                                                 GNT_CFLAGS=""
847                                         fi
849                                         found_ncurses_h=yes
850                                         CFLAGS="$orig_CFLAGS"
851                                         CPPFLAGS="$orig_CPPFLAGS"
852                                         AC_MSG_RESULT([yes])
853                                         break
854                                 ], [
855                                         CFLAGS="$orig_CFLAGS"
856                                         CPPFLAGS="$orig_CPPFLAGS"
857                                         AC_MSG_RESULT([no])
858                                 ])
859                         ])
860                 done
862                 if test x"$found_ncurses_h" = x"no" ; then
863                         GNT_LIBS=""
864                         GNT_CFLAGS=""
865                         enable_consoleui=no
866                 fi
867         else
868                 # ncursesw was not found. Look for plain old ncurses
869                 enable_consoleui=yes
870                 AC_CHECK_LIB(ncurses, initscr, [GNT_LIBS="-lncurses"], [enable_consoleui=no])
871                 AC_CHECK_LIB(panel, update_panels, [GNT_LIBS="$GNT_LIBS -lpanel"],
872                     [enable_consoleui=no], [$GNT_LIBS])
873                 AC_DEFINE(NO_WIDECHAR, 1, [Define to 1 if you don't have wide-character support.])
874                 if test x"$ac_ncurses_includes" != "x"; then
875                         GNT_CFLAGS="-I$ac_ncurses_includes"
876                 else
877                         if test x"$NCURSES_HEADERS" != "x"; then
878                                 GNT_CFLAGS="-I$NCURSES_HEADERS"
879                         fi
880                 fi
881         fi
884 if test "x$force_finch" = "xyes" -a "x$enable_consoleui" != "xyes"; then
885         AC_MSG_ERROR([
887 Finch will not be built. You need to install ncursesw (or ncurses) and its development headers.
892 AC_SUBST(GNT_LIBS)
893 AC_SUBST(GNT_CFLAGS)
894 AM_CONDITIONAL(ENABLE_GNT, test "x$enable_consoleui" = "xyes")
896 #AC_CHECK_FUNC(wcwidth, [AC_DEFINE([HAVE_WCWIDTH], [1], [Define to 1 if you have wcwidth function.])])
898 dnl #######################################################################
899 dnl # Check for LibXML2 (required)
900 dnl #######################################################################
901 PKG_CHECK_MODULES(LIBXML, [libxml-2.0 >= 2.6.0], , [
902         AC_MSG_RESULT(no)
903         AC_MSG_ERROR([
904 You must have libxml2 >= 2.6.0 development headers installed to build.
905 ])])
906 PKG_CHECK_EXISTS([libxml-2.0 >= 2.6.18], , [
907         AC_MSG_WARN([
908 Versions of libxml2 < 2.6.18 may contain bugs that could cause XMPP messages to be discarded.
909 ])])
911 AC_SUBST(LIBXML_CFLAGS)
912 AC_SUBST(LIBXML_LIBS)
914 dnl #######################################################################
915 dnl # Check for JSON-GLib (required)
916 dnl #######################################################################
918 PKG_CHECK_MODULES([JSON], [json-glib-1.0 >= 0.14.0], , [
919         AC_MSG_RESULT(no)
920         AC_MSG_ERROR([
921 You must have JSON-GLib >= 0.14.0 development headers installed to build.
922 ])])
924 AC_SUBST(JSON_CFLAGS)
925 AC_SUBST(JSON_LIBS)
927 dnl #######################################################################
928 dnl # Check for zlib (required)
929 dnl #######################################################################
931 PKG_CHECK_MODULES(ZLIB, [zlib >= 1.2.0], , [
932         AC_SEARCH_LIBS([deflate], [z], [], AC_MSG_ERROR([You must have zlib >= 1.2.0 development headers installed to build.]), [])
935 AC_SUBST(ZLIB_CFLAGS)
936 AC_SUBST(ZLIB_LIBS)
938 dnl #######################################################################
939 dnl # Check for GStreamer
940 dnl #######################################################################
941 AC_ARG_ENABLE(gstreamer,
942         [AS_HELP_STRING([--disable-gstreamer], [compile without GStreamer audio support])],
943         enable_gst="$enableval", enable_gst="yes")
945 if test x"$enable_gst" != "xno"; then
946         PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0], [
947            AC_DEFINE(USE_GSTREAMER, 1, [Use GStreamer for playing sounds])
948            AC_SUBST(GSTREAMER_CFLAGS)
949            AC_SUBST(GSTREAMER_LIBS)
950    ], [
951            AC_MSG_RESULT(no)
952            enable_gst="no"
953            if test "x$force_deps" = "xyes" ; then
954                    AC_MSG_ERROR([
955  GStreamer development headers not found.
956  Use --disable-gstreamer if you do not need GStreamer (sound) support.
957                                          ])
958            fi
959    ])
962 dnl #######################################################################
963 dnl # Check for GStreamer Video
964 dnl #######################################################################
965 if test "x$enable_gst" != "xno"; then
966         AC_ARG_ENABLE(gstreamer-video,
967                 [AS_HELP_STRING([--disable-gstreamer-video], [compile without GStreamer 1.0 Video Overlay support])],
968                         enable_gstvideo="$enableval", enable_gstvideo="yes")
969         if test "x$enable_gstvideo" != "xno"; then
970                 PKG_CHECK_MODULES(GSTVIDEO, [gstreamer-video-1.0], [
971                         AC_DEFINE(USE_GSTVIDEO, 1, [Use GStreamer Video Overlay support])
972                         AC_SUBST(GSTVIDEO_CFLAGS)
973                         AC_SUBST(GSTVIDEO_LIBS)
974                 ], [
975                         enable_gstvideo="no"
976                 ])
977         fi
978 else
979         enable_gstvideo="no"
982 dnl #######################################################################
983 dnl # Check for Farstream
984 dnl #######################################################################
985 AC_ARG_ENABLE(farstream,
986         [AS_HELP_STRING([--disable-farstream], [compile without farstream support])],
987         enable_farstream="$enableval", enable_farstream="yes")
988 if test "x$enable_farstream" != "xno"; then
989         PKG_CHECK_MODULES(FARSTREAM, [farstream-0.2 >= 0.2.7], [
990                 AC_SUBST(FARSTREAM_CFLAGS)
991                 AC_SUBST(FARSTREAM_LIBS)
992         ], [
993                         enable_farstream="no"
994         ])
997 dnl #######################################################################
998 dnl # Check for Voice and Video support
999 dnl #######################################################################
1000 AC_ARG_ENABLE(vv,
1001         [AS_HELP_STRING([--disable-vv], [compile without voice and video support])],
1002         enable_vv="$enableval", enable_vv="yes")
1003 if test "x$enable_vv" != "xno"; then
1004         if test "x$enable_gst" != "xno" -a "x$enable_gstvideo" != "xno" -a "x$enable_farstream" != "xno"; then
1005                 AC_DEFINE(USE_VV, 1, [Use voice and video])
1006         else
1007                 enable_vv="no"
1008                 if test "x$force_deps" = "xyes"; then
1009                         AC_MSG_ERROR([
1010 Dependencies for voice/video were not met.
1011 Install the necessary gstreamer and farstream packages first.
1012 Or use --disable-vv if you do not need voice/video support.
1013                         ])
1014                 fi
1015         fi
1017 AM_CONDITIONAL(USE_VV, test "x$enable_vv" != "xno")
1019 dnl #######################################################################
1020 dnl # Check for Raw data streams support in Farstream 
1021 dnl #######################################################################
1022 if test "x$enable_vv" != "xno"; then
1023         PKG_CHECK_MODULES(GSTAPP, [gstreamer-app-1.0], [
1024                 AC_DEFINE(USE_GSTAPP, 1, [Use GStreamer Video Overlay support])
1025                 AC_SUBST(GSTAPP_CFLAGS)
1026                 AC_SUBST(GSTAPP_LIBS)
1027                 AC_DEFINE(HAVE_MEDIA_APPLICATION, 1, [Define if we have support for application media type.])
1028                 ] , )
1031 dnl #######################################################################
1032 dnl # Check for Internationalized Domain Name support
1033 dnl #######################################################################
1035 AC_ARG_ENABLE(idn,
1036         [AS_HELP_STRING([--disable-idn], [compile without IDN support])],
1037         [enable_idn="$enableval" force_idn=$enableval], [enable_idn="yes" force_idn=no])
1038 if test "x$enable_idn" != "xno"; then
1039         PKG_CHECK_MODULES(IDN, libidn >= 0.0.0, [
1040                 AC_DEFINE(USE_IDN, 1, [Use GNU Libidn for stringprep and IDN])
1041                 AC_SUBST(IDN_CFLAGS)
1042                 AC_SUBST(IDN_LIBS)
1043         ], [
1044                 AC_MSG_RESULT(no)
1045                 enable_idn="no"
1046                 if test "x$force_deps" = "xyes" ; then
1047                         AC_MSG_ERROR([
1048 GNU Libidn development headers not found.
1049 Use --disable-idn if you do not need it.
1051                 fi
1052         ])
1055 dnl #######################################################################
1056 dnl # Check for Meanwhile headers (for Sametime)
1057 dnl #######################################################################
1058 AC_ARG_ENABLE(meanwhile,
1059         [AS_HELP_STRING([--disable-meanwhile],
1060                 [compile without meanwhile (required for Sametime support)])],
1061         enable_meanwhile="$enableval", enable_meanwhile="yes")
1062 if test "x$enable_meanwhile" = "xyes"; then
1063         PKG_CHECK_MODULES(MEANWHILE, [meanwhile >= 1.0.0 meanwhile < 2.0.0], [
1064                 have_meanwhile="yes"
1065         ], [
1066                 have_meanwhile="no"
1067                 if test "x$force_deps" = "xyes" ; then
1068                         AC_MSG_ERROR([
1069 Meanwhile development headers not found.
1070 Use --disable-meanwhile if you do not need meanwhile (Sametime) support.
1072                 fi])
1074 AC_SUBST(MEANWHILE_CFLAGS)
1075 AC_SUBST(MEANWHILE_LIBS)
1077 dnl #######################################################################
1078 dnl # Check for Native Avahi headers (for Bonjour)
1079 dnl #######################################################################
1080 AC_ARG_ENABLE(avahi,
1081         [AS_HELP_STRING([--disable-avahi],
1082                 [compile without avahi (required for Bonjour support)])],
1083         enable_avahi="$enableval", enable_avahi="yes")
1085 if test "x$enable_avahi" = "xyes" -a "x$is_win32" = "xyes" ; then
1086         avahiincludes="yes"
1087         avahilibs="yes"
1088 elif test "x$enable_avahi" = "xyes"; then
1089         AC_ARG_WITH(avahi-client-includes, [AS_HELP_STRING([--with-avahi-client-includes=DIR], [compile the Bonjour plugin against the Avahi Client includes in DIR])], [ac_avahi_client_includes="$withval"], [ac_avahi_client_includes="no"])
1090         AC_ARG_WITH(avahi-client-libs, [AS_HELP_STRING([--with-avahi-client-libs=DIR], [compile the Bonjour plugin against the Avahi Client libs in DIR])], [ac_avahi_client_libs="$withval"], [ac_avahi_client_libs="no"])
1091         AVAHI_CFLAGS=""
1092         AVAHI_LIBS=""
1094         dnl Attempt to autodetect Avahi
1095         PKG_CHECK_MODULES(AVAHI, [avahi-client avahi-glib], [
1096                 avahiincludes="yes"
1097                 avahilibs="yes"
1098         ], [
1099                 avahiincludes="no"
1100                 avahilibs="no"
1101         ])
1103         dnl Override AVAHI_CFLAGS if the user specified an include dir
1104         if test "$ac_avahi_client_includes" != "no"; then
1105                 AVAHI_CFLAGS="-I$ac_avahi_client_includes"
1106         fi
1107         CPPFLAGS_save="$CPPFLAGS"
1108         CPPFLAGS="$CPPFLAGS $AVAHI_CFLAGS"
1109         AC_CHECK_HEADER(avahi-client/client.h, [avahiincludes=yes], [avahiincludes=no])
1110         CPPFLAGS="$CPPFLAGS $AVAHI_CFLAGS $GLIB_CFLAGS"
1111         AC_CHECK_HEADER(avahi-glib/glib-malloc.h, [avahiincludes=yes], [avahiincludes=no])
1112         CPPFLAGS="$CPPFLAGS_save"
1114         dnl Override AVAHI_LIBS if the user specified a libs dir
1115         if test "$ac_avahi_client_libs" != "no"; then
1116                 AVAHI_LIBS="-L$ac_avahi_client_libs -lavahi-common -lavahi-client -lavahi-glib "
1117         fi
1118         AC_CHECK_LIB(avahi-client, avahi_client_new, [avahilibs=yes], [avahilibs=no], $AVAHI_LIBS)
1121 if test "x$enable_avahi" = "xyes" -a \( "x$avahiincludes" = "xno" -o "x$avahilibs" = "xno" \); then
1122         enable_avahi="no"
1123         if test "x$force_deps" = "xyes"; then
1124                 AC_MSG_ERROR([
1125 avahi development headers not found.
1126 Use --disable-avahi if you do not need avahi (Bonjour) support.
1128         fi
1130 AC_SUBST(AVAHI_CFLAGS)
1131 AC_SUBST(AVAHI_LIBS)
1134 dnl #######################################################################
1135 dnl # Check for SILC client includes and libraries
1136 dnl #######################################################################
1137 AC_ARG_WITH(silc-includes, [AS_HELP_STRING([--with-silc-includes=DIR], [compile the SILC plugin against includes in DIR])], [ac_silc_includes="$withval"], [ac_silc_includes="no"])
1138 AC_ARG_WITH(silc-libs, [AS_HELP_STRING([--with-silc-libs=DIR], [compile the SILC plugin against the SILC libs in DIR])], [ac_silc_libs="$withval"], [ac_silc_libs="no"])
1139 SILC_CFLAGS=""
1140 SILC_LIBS=""
1141 have_silc="no"
1142 if test -n "$with_silc_includes" || test -n "$with_silc_libs"; then
1143         silc_manual_check="yes"
1144 else
1145         silc_manual_check="no"
1147 if test "x$silc_manual_check" = "xno"; then
1148         PKG_CHECK_MODULES(SILC, [silcclient >= 1.1], [
1149                 have_silc="yes"
1150                 silcincludes="yes"
1151                 silcclient="yes"
1152         ], [
1153                 have_silc="no"
1154         ])
1155 else
1156         if test "$ac_silc_includes" != "no"; then
1157                 SILC_CFLAGS="-I$ac_silc_includes"
1158         fi
1159         CPPFLAGS_save="$CPPFLAGS"
1160         CPPFLAGS="$CPPFLAGS $SILC_CFLAGS"
1161         AC_CHECK_HEADER(silc.h, [silcincludes=yes])
1162         CPPFLAGS="$CPPFLAGS_save"
1164         if test "$ac_silc_libs" != "no"; then
1165                 SILC_LIBS="-L$ac_silc_libs"
1166         fi
1167         SILC_LIBS="$SILC_LIBS -lsilc -lsilcclient -lpthread $LIBDL"
1168         AC_CHECK_LIB(silcclient, silc_client_init, [silcclient=yes], , $SILC_LIBS)
1170         if test "x$silcincludes" = "xyes" -a "x$silcclient" = "xyes"; then
1171                 have_silc="yes"
1172         fi
1174 AC_SUBST(SILC_LIBS)
1175 AC_SUBST(SILC_CFLAGS)
1176 dnl SILC Toolkit >= 1.0.1 has a new MIME API
1177 if test "x$silcclient" = "xyes"; then
1178         AC_DEFINE(HAVE_SILCMIME_H, 1, [Define if we have silcmime.h])
1181 dnl #######################################################################
1182 dnl # Check for Gadu-Gadu protocol library (libgadu)
1183 dnl #######################################################################
1184 AC_ARG_ENABLE(libgadu,
1185         [AS_HELP_STRING([--disable-libgadu],
1186                 [compile without libgadu (required for GaduGadu support)])],
1187         enable_libgadu="$enableval", enable_libgadu="yes")
1189 if test "x$enable_libgadu" = "xyes"; then
1190         PKG_CHECK_MODULES(LIBGADU, [libgadu >= 1.12.0], [
1191                 have_libgadu=yes
1192                 AC_CHECK_LIB(gadu, gg_is_gpl_compliant, , [
1193                         LIBGADU_LIBS=""
1194                         LIBGADU_CFLAGS=""
1195                         have_libgadu=no
1196                         if test "x$force_deps" = "xyes" ; then
1197                                 AC_MSG_WARN([
1198 libgadu is not compatible with the GPL when compiled with OpenSSL support.
1200 To link against libgadu, please recompile it using:
1201 ./configure --with-openssl=no
1202 Then rerun this ./configure
1203                                 ])
1204                         fi
1205                 ], [$LIBGADU_LIBS])
1206         ], [
1207                 have_libgadu=no
1208         ])
1210         if test "x$have_libgadu" != "xyes" -a "x$force_deps" = "xyes" ; then
1211                 AC_MSG_ERROR([
1212 Libgadu development headers not found.
1213 Use --disable-libgadu if you do not need GG (GaduGadu) support.
1215         fi
1218 AC_SUBST(LIBGADU_LIBS)
1219 AC_SUBST(LIBGADU_CFLAGS)
1222 AC_ARG_ENABLE(distrib,,,enable_distrib=no)
1223 AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes")
1224 DYNAMIC_PRPLS=all
1225 AC_ARG_WITH(static-prpls, [AS_HELP_STRING([--with-static-prpls], [Link to certain protocols statically])], [STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`], [STATIC_PRPLS=""])
1226 if test "x$STATIC_PRPLS" != "x" -a "x$DYNAMIC_PRPLS" = "xall"; then
1227         DYNAMIC_PRPLS=""
1230 if test "x$STATIC_PRPLS" = "xall" ; then
1231         STATIC_PRPLS="bonjour facebook gg irc jabber novell oscar sametime silc simple zephyr"
1233 if test "x$have_meanwhile" != "xyes" ; then
1234         STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/sametime//'`
1236 if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then
1237         STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/bonjour//'`
1239 if test "x$silcincludes" != "xyes" -o "x$silcclient" != "xyes"; then
1240         STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/silc//'`
1242 if test "x$have_libgadu" != "xyes" ; then
1243         STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/gg//'`
1245 if test "x$is_win32" = "xyes" ; then
1246         STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/zephyr//'`
1248 AC_SUBST(STATIC_PRPLS)
1249 STATIC_LINK_LIBS=
1250 extern_load=
1251 load_proto=
1252 extern_unload=
1253 unload_proto=
1254 for i in $STATIC_PRPLS ; do
1255         dnl Ugly special case for "libsilcpurple.la":
1256         if test "x$i" = "xsilc"; then
1257                 STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la"
1258         else
1259                 STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la"
1260         fi
1261         extern_load="$extern_load extern gboolean ${i}_plugin_load();"
1262         load_proto="$load_proto ${i}_plugin_load();"
1263         extern_unload="$extern_unload extern gboolean ${i}_plugin_unload();"
1264         unload_proto="$unload_proto ${i}_plugin_unload();"
1266         case $i in
1267                 bonjour)        static_bonjour=yes ;;
1268                 facebook)       static_facebook=yes ;;
1269                 gg)                     static_gg=yes ;;
1270                 irc)            static_irc=yes ;;
1271                 jabber)         static_jabber=yes ;;
1272                 novell)         static_novell=yes ;;
1273                 oscar)          static_oscar=yes ;;
1274                 aim)            static_oscar=yes ;;
1275                 icq)            static_oscar=yes ;;
1276                 sametime)       static_sametime=yes ;;
1277                 silc)           static_silc=yes ;;
1278                 simple)         static_simple=yes ;;
1279                 zephyr)         static_zephyr=yes ;;
1280                 *)                      echo "Invalid static protocol $i!!" ; exit 1 ;;
1281         esac
1282 done
1283 AM_CONDITIONAL(STATIC_BONJOUR, test "x$static_bonjour" = "xyes")
1284 AM_CONDITIONAL(STATIC_FACEBOOK, test "x$static_facebook" = "xyes")
1285 AM_CONDITIONAL(STATIC_GG, test "x$static_gg" = "xyes")
1286 AM_CONDITIONAL(STATIC_IRC, test "x$static_irc" = "xyes")
1287 AM_CONDITIONAL(STATIC_JABBER, test "x$static_jabber" = "xyes")
1288 AM_CONDITIONAL(STATIC_NOVELL, test "x$static_novell" = "xyes")
1289 AM_CONDITIONAL(STATIC_OSCAR, test "x$static_oscar" = "xyes")
1290 AM_CONDITIONAL(STATIC_SAMETIME, test "x$static_sametime" = "xyes" -a "x$have_meanwhile" = "xyes")
1291 AM_CONDITIONAL(STATIC_SILC, test "x$static_silc" = "xyes" -a "x$have_silc" = "xyes")
1292 AM_CONDITIONAL(STATIC_SIMPLE, test "x$static_simple" = "xyes")
1293 AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes")
1294 AC_SUBST(STATIC_LINK_LIBS)
1295 AC_DEFINE_UNQUOTED(STATIC_PROTO_LOAD, $extern_load static void static_proto_load(void) { $load_proto },
1296         [Loads protocols from static protocol plugin modules.])
1297 AC_DEFINE_UNQUOTED(STATIC_PROTO_UNLOAD, $extern_unload static void static_proto_unload(void) { $unload_proto },
1298         [Unloads protocols from static protocol plugin modules.])
1300 AC_ARG_WITH(dynamic_prpls, [AS_HELP_STRING([--with-dynamic-prpls], [specify which protocols to build dynamically])], [DYNAMIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`])
1301 if test "x$DYNAMIC_PRPLS" = "xall" ; then
1302         DYNAMIC_PRPLS="bonjour facebook gg irc jabber novell oscar sametime silc simple zephyr"
1304 if test "x$have_meanwhile" != "xyes"; then
1305         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/sametime//'`
1307 if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then
1308         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/bonjour//'`
1310 if test "x$silcincludes" != "xyes" -o "x$silcclient" != "xyes"; then
1311         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/silc//'`
1313 if test "x$have_libgadu" != "xyes"; then
1314         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/gg//'`
1316 if test "x$is_win32" = "xyes" ; then
1317         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/zephyr//'`
1319 AC_SUBST(DYNAMIC_PRPLS)
1320 for i in $DYNAMIC_PRPLS ; do
1321         case $i in
1322                 bonjour)        dynamic_bonjour=yes ;;
1323                 facebook)       dynamic_facebook=yes ;;
1324                 gg)                     dynamic_gg=yes ;;
1325                 irc)            dynamic_irc=yes ;;
1326                 jabber)         dynamic_jabber=yes ;;
1327                 novell)         dynamic_novell=yes ;;
1328                 null)           dynamic_null=yes ;;
1329                 oscar)          dynamic_oscar=yes ;;
1330                 aim)            dynamic_oscar=yes ;;
1331                 icq)            dynamic_oscar=yes ;;
1332                 sametime)       dynamic_sametime=yes ;;
1333                 silc)           dynamic_silc=yes ;;
1334                 simple)         dynamic_simple=yes ;;
1335                 zephyr)         dynamic_zephyr=yes ;;
1336                 *)                      echo "Invalid dynamic protocol $i!!" ; exit 1 ;;
1337         esac
1338 done
1340 AC_ARG_ENABLE(plugins, [AS_HELP_STRING([--disable-plugins], [compile without plugin support])], , enable_plugins=yes)
1341 AC_ARG_WITH(krb4, [AS_HELP_STRING([--with-krb4=PREFIX], [compile Zephyr plugin with Kerberos 4 support])], kerberos="$withval", kerberos="no")
1342 AC_ARG_WITH(zephyr, [AS_HELP_STRING([--with-zephyr=PREFIX], [compile Zephyr plugin against external libzephyr])], zephyr="$withval", zephyr="no")
1343 AM_CONDITIONAL(EXTERNAL_LIBZEPHYR, test "x$zephyr" != "xno")
1345 AC_CHECK_HEADERS(sys/utsname.h)
1346 AC_CHECK_FUNC(uname)
1348 AC_ARG_ENABLE(fortify, [AS_HELP_STRING([--disable-fortify], [compile without FORTIFY_SOURCE support])], , enable_fortify=yes)
1350 DEBUG_CFLAGS="$DEBUG_CFLAGS -DPURPLE_DISABLE_DEPRECATED -DPIDGIN_DISABLE_DEPRECATED -DFINCH_DISABLE_DEPRECATED -DGNT_DISABLE_DEPRECATED"
1351 if test "x$GCC" = "xyes"; then
1352         dnl We enable -Wall later.
1353         dnl If it's set after the warning CFLAGS in the compiler invocation, it counteracts the -Wno... flags.
1354         dnl This leads to warnings we don't want.
1355         CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'`
1357         dnl ENABLE WARNINGS SUPPORTED BY THE VERSION OF GCC IN USE
1358         dnl
1359         dnl Future Possibilities
1360         dnl
1361         dnl Consider adding -Wbad-function-cast.
1362         dnl     This leads to spurious warnings using GPOINTER_TO_INT(), et al. directly on a function call.
1363         dnl             We'd need an intermediate variable.
1364         dnl
1365         for newflag in \
1366                         "-Waggregate-return" \
1367                         "-Wcast-align" \
1368                         "-Wdeclaration-after-statement" \
1369                         "-Wendif-labels" \
1370                         "-Werror-implicit-function-declaration" \
1371                         "-Wextra -Wno-unused-parameter" \
1372                         "-Wformat-security" \
1373                                 "-Werror=format-security" \
1374                         "-Winit-self" \
1375                         "-Wmissing-declarations" \
1376                         "-Wmissing-noreturn" \
1377                         "-Wmissing-prototypes" \
1378                         "-Wpointer-arith" \
1379                         "-Wfloat-equal" \
1380                         "-Wundef" \
1381         ; do
1382                 orig_CFLAGS="$CFLAGS"
1383                 CFLAGS="$CFLAGS $newflag"
1384                 AC_MSG_CHECKING(for $newflag option to gcc)
1385                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [
1386                         AC_MSG_RESULT(yes)
1387                         CFLAGS="$orig_CFLAGS"
1388                         DEBUG_CFLAGS="$DEBUG_CFLAGS $newflag"
1389                 ], [
1390                         AC_MSG_RESULT(no)
1391                         CFLAGS="$orig_CFLAGS"
1392                 ])
1393         done
1395         if test "x$enable_fortify" = "xyes"; then
1396                 AC_MSG_CHECKING(for FORTIFY_SOURCE support)
1397                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <features.h>]], [[
1398                         #if !(__GNUC_PREREQ (4, 1) \
1399                                 || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (4, 0)) \
1400                                 || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (3, 4) \
1401                                         && __GNUC_MINOR__ == 4 \
1402                                         && (__GNUC_PATCHLEVEL__ > 2 \
1403                                                 || (__GNUC_PATCHLEVEL__ == 2 && __GNUC_RH_RELEASE__ >= 8))))
1404                         #error No FORTIFY_SOURCE support
1405                         #endif
1406                                 return 0;
1407                 ]])], [
1408                         AC_MSG_RESULT(yes)
1409                         DEBUG_CFLAGS="$DEBUG_CFLAGS -Wp,-D_FORTIFY_SOURCE=2"
1410                 ], [
1411                         AC_MSG_RESULT(no)
1412                 ])
1413         fi
1415         DEBUG_CFLAGS="-Wall $DEBUG_CFLAGS"
1416         CFLAGS="-g $CFLAGS"
1418 DEBUG_CPPFLAGS=`echo "$DEBUG_CFLAGS" | $sedpath 's/-Wdeclaration-after-statement//' | $sedpath 's/-Wmissing-prototypes//' | $sedpath 's/-Waggregate-return//'`
1420 if test "x$SUNCC" = "xyes"; then
1421         CFLAGS="$CFLAGS -features=extensions"
1423 AC_SUBST(CFLAGS)
1425 AC_PATH_PROG(pidginpath, pidgin)
1427 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
1428         #if !defined(__clang__)
1429         #error
1430         #endif
1431 ])], have_clang=yes, have_clang=no)
1433 AC_ARG_ENABLE(clang-address-sanitizer,
1434         [AS_HELP_STRING([--enable-clang-address-sanitizer],
1435                 [compile with the Clang's address sanitizer enabled])],
1436         enable_clang_address_sanitizer="$enableval", enable_clang_address_sanitizer="no")
1438 if test "x$enable_clang_address_sanitizer" = "xyes" -a "x$have_clang" = "xno"; then
1439                 AC_MSG_ERROR([
1440 Clang address sanitizer requested, but we don't compile with Clang.
1441 Disable the sanitizer or run configure script with CC and CCX set to clang binaries.
1445 if test "x$have_clang" = "xyes"; then
1446         GLIB_LIBS=`echo $GLIB_LIBS | $sedpath 's/-pthread/-lpthread/'`
1449 if test "x$enable_clang_address_sanitizer" = "xyes"; then
1450         CFLAGS="$CFLAGS -faddress-sanitizer -g -fno-omit-frame-pointer -fno-inline -fno-optimize-sibling-calls"
1454 AC_ARG_ENABLE(glib-errors-trace, [AS_HELP_STRING([--enable-glib-errors-trace], [print backtraces for glib errors])], enable_glibtrace="$enableval", enable_glibtrace="no")
1455 if test "x$enable_glibtrace" = "xyes"; then
1456         if test "x$have_clang" = "xyes"; then
1457                 AC_MSG_ERROR([--enable-glib-errors-trace doesn't work with clang])
1458         fi
1459         AC_DEFINE(ENABLE_GLIBTRACE, 1, [Define if backtraces should be printed for glib errors.])
1460         dnl CFLAGS="$CFLAGS -rdynamic"
1461         CFLAGS="$CFLAGS -rdynamic"
1464 dnl #######################################################################
1465 dnl # Check for D-Bus libraries
1466 dnl #######################################################################
1468 # dbus doesn't compile for win32 at the moment
1469 AC_ARG_ENABLE(dbus,
1470         [AS_HELP_STRING([--disable-dbus], [disable D-Bus support])], ,
1471         enable_dbus="$is_not_win32")
1473 if test "x$enable_dbus" = "xyes" ; then
1474         AC_CHECK_PROG(enable_dbus, dbus-binding-tool, yes, no)
1477 if test "x$enable_dbus" = "xyes" ; then
1478         PKG_CHECK_MODULES(DBUS, [dbus-1 >= 0.60 dbus-glib-1 >= 0.60], [
1479                 AC_SUBST(DBUS_CFLAGS)
1480                 AC_SUBST(DBUS_LIBS)
1481                 enable_dbus=yes
1482         ], [
1483         enable_dbus=no
1484         if test "x$force_deps" = "xyes" ; then
1485                 AC_MSG_ERROR([
1486 D-Bus development headers not found.
1487 Use --disable-dbus if you do not need D-Bus support.
1489         fi])
1492 dnl #######################################################################
1493 dnl # Check for Unity and Messaging Menu
1494 dnl #######################################################################
1495 AC_ARG_ENABLE(unity, [AC_HELP_STRING([--enable-unity],
1496         [compile with support for unity integration plugin])], enable_unity="$enableval", enable_unity="no")
1497 if test "$enable_unity" = yes; then
1498         PKG_CHECK_MODULES(UNITY, [unity >= 6.8 messaging-menu >= 12.10], , [
1499                 AC_MSG_RESULT(no)
1500                 AC_MSG_ERROR([
1501 You must have libunity9 >= 6.8 and libmessaging-menu >= 12.10 to build the unity integration plugin.
1502         ])])
1503         USES_MM_CHAT_SECTION="X-MessagingMenu-UsesChatSection=true"
1504         AC_SUBST(UNITY_CFLAGS)
1505         AC_SUBST(UNITY_LIBS)
1506         AC_SUBST(USES_MM_CHAT_SECTION)
1507 else
1508         enable_unity=no
1510 AM_CONDITIONAL(ENABLE_UNITY, [test "x$enable_unity" = "xyes"])
1512 dnl #######################################################################
1513 dnl # Check for Secret Service headers
1514 dnl #######################################################################
1516 AC_ARG_ENABLE(libsecret,
1517         [AC_HELP_STRING([--disable-libsecret], [enable Secret Service support])],
1518         enable_secret_service="$enableval", enable_secret_service="$is_not_win32")
1520 if test "x$enable_secret_service" = "xyes" ; then
1521         PKG_CHECK_MODULES(SECRETSERVICE, [libsecret-1], [
1522                 AC_SUBST(SECRETSERVICE_CFLAGS)
1523                 AC_SUBST(SECRETSERVICE_LIBS)
1524                 AC_DEFINE(HAVE_SECRETSERVICE, 1, [Define if we have Secret Service.])
1525         ], [
1526                 AC_MSG_RESULT(no)
1527                 enable_secret_service="no"
1528                 if test "x$force_deps" = "xyes" ; then
1529                         AC_MSG_ERROR([
1530 Libsecret development headers not found
1531 Use --disable-libsecret if you do not need it.
1533                 fi
1534         ])
1538 AM_CONDITIONAL(ENABLE_SECRETSERVICE, test "x$enable_secret_service" = "xyes")
1540 dnl #######################################################################
1541 dnl # Check for GNOME Keyring headers
1542 dnl #######################################################################
1544 AC_ARG_ENABLE(gnome-keyring,
1545         [AC_HELP_STRING([--disable-gnome-keyring], [disable GNOME Keyring support])],
1546         enable_gnome_keyring="$enableval", enable_gnome_keyring="$is_not_win32")
1548 if test "x$enable_gnome_keyring" = "xyes" ; then
1549         PKG_CHECK_MODULES(GNOMEKEYRING, [gnome-keyring-1], [
1550                 AC_SUBST(GNOMEKEYRING_CFLAGS)
1551                 AC_SUBST(GNOMEKEYRING_LIBS)
1552                 AC_DEFINE(HAVE_GNOMEKEYRING, 1, [Define if we have GNOME Keyring.])
1553         ], [
1554                 AC_MSG_RESULT(no)
1555                 enable_gnome_keyring="no"
1556                 if test "x$force_deps" = "xyes" ; then
1557                         AC_MSG_ERROR([
1558 GNOME Keyring development headers not found
1559 Use --disable-gnome-keyring if you do not need it.
1561                 fi
1562         ])
1565 AM_CONDITIONAL(ENABLE_GNOMEKEYRING, test "x$enable_gnome_keyring" = "xyes")
1567 dnl #######################################################################
1568 dnl # Check for KWallet headers
1569 dnl #######################################################################
1571 AC_ARG_ENABLE(kwallet,
1572         [AC_HELP_STRING([--disable-kwallet], [disable KWallet support])],
1573         enable_kwallet="$enableval", enable_kwallet="$is_not_win32")
1574 AC_ARG_WITH(kwallet-includes, [AC_HELP_STRING([--with-kwallet-includes=DIR], [compile the KWallet plugin against includes in DIR])], [ac_kwallet_includes="$withval"], [ac_kwallet_includes="no"])
1575 AC_ARG_WITH(kwallet-libs, [AC_HELP_STRING([--with-kwallet-libs=DIR], [compile the KWallet plugin against the KWallet libs in DIR])], [ac_kwallet_libs="$withval"], [ac_kwallet_libs="no"])
1577 if test "x$enable_kwallet" = "xyes"; then
1578         dnl Ensure C++ compiler works
1579         AC_CHECK_PROG(CXXTEST, [$CXX], [$CXX])
1580         if test "x$CXXTEST" = "x"; then
1581                 enable_kwallet=no
1582                 if test "x$force_deps" = "xyes"; then
1583                         AC_MSG_ERROR([
1584 A C++ compiler was not found.
1585 Use --disable-kwallet if you do not need KWallet support.
1587                 fi
1588         fi
1591 AC_LANG_PUSH([C++])
1592 CPPFLAGS_save="$CPPFLAGS"
1593 LIBS_save="$LIBS"
1595 if test "x$enable_kwallet" = "xyes"; then
1596         PKG_CHECK_MODULES(QT4, [QtCore], [
1597                 AC_SUBST(QT4_CFLAGS)
1598                 AC_SUBST(QT4_LIBS)
1599         ], [
1600                 AC_MSG_RESULT(no)
1601                 enable_kwallet=no
1602                 if test "x$force_deps" = "xyes"; then
1603                         AC_MSG_ERROR([
1604 Qt4 development headers not found.
1605 Use --disable-kwallet if you do not need KWallet support.
1607                 fi
1608         ])
1611 if test "x$enable_kwallet" = "xyes"; then
1612         AC_MSG_CHECKING([for metaobject compiler])
1613         MOC=`$PKG_CONFIG --variable=moc_location QtCore`
1614         AC_SUBST(MOC)
1615         AC_MSG_RESULT([$MOC])
1617         KWALLET_CXXFLAGS=""
1618         KWALLET_LIBS=""
1619         if test -z "$with_kwallet_includes" || test -z "$with_kwallet_libs"; then
1620                 AC_CHECK_PROG(KDE4_CONFIG, kde4-config, kde4-config, no)
1621                 if test "x$KDE4_CONFIG" = "xno"; then
1622                         enable_kwallet=no
1623                         if test "x$force_deps" = "xyes"; then
1624                                 AC_MSG_ERROR([
1625 kde4-config not found. $KDE4_CONFIG
1626 Use --disable-kwallet if you do not need KWallet support.
1627 Use --with-kwallet-includes and --with-kwallet-libs to set up includes manually.
1629                         fi
1630                 fi
1631         fi
1634 if test "x$enable_kwallet" = "xyes"; then
1635         if test "$ac_kwallet_includes" != "no"; then
1636                 KWALLET_CXXFLAGS="-I$ac_kwallet_includes"
1637         elif test "x$KDE4_CONFIG" != "xno"; then
1638                 KWALLET_CXXFLAGS="$QT4_CFLAGS -I`$KDE4_CONFIG --path include`"
1639         fi
1640         CPPFLAGS="$CPPFLAGS $KWALLET_CXXFLAGS"
1641         AC_CHECK_HEADER([kwallet.h], , [
1642                 enable_kwallet=no
1643                 if test "x$force_deps" = "xyes"; then
1644                         AC_MSG_ERROR([
1645 KWallet development headers not found.
1646 Use --disable-kwallet if you do not need KWallet support.
1648                 fi
1652 if test "x$enable_kwallet" = "xyes"; then
1653         AC_MSG_CHECKING([for KWallet libraries])
1654         if test "$ac_kwallet_libs" != "no"; then
1655                 KWALLET_LIBS="-L$ac_kwallet_libs -lkdeui"
1656         elif test "x$KDE4_CONFIG" != "xno"; then
1657                 KWALLET_LIBS="-L`$KDE4_CONFIG --install lib`/kde4/devel -lkdeui"
1658         else
1659                 KWALLET_LIBS="-lkdeui"
1660         fi
1661         KWALLET_LIBS="$KWALLET_LIBS"
1662         LIBS="$LIBS $KWALLET_LIBS $QT4_LIBS"
1663         AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <kwallet.h>],
1664                 [KWallet::Wallet::LocalWallet();])], [AC_MSG_RESULT([yes])],
1665                 [
1666                         AC_MSG_RESULT(no)
1667                         enable_kwallet=no
1668                         if test "x$force_deps" = "xyes"; then
1669                                 AC_MSG_ERROR([
1670 KWallet development libraries not found.
1671 Use --disable-kwallet if you do not need KWallet support.
1673                         fi
1674                 ])
1677 CPPFLAGS="$CPPFLAGS_save"
1678 LIBS="$LIBS_save"
1679 AC_LANG_POP
1681 AC_SUBST(KWALLET_CXXFLAGS)
1682 AC_SUBST(KWALLET_LIBS)
1684 AM_CONDITIONAL(ENABLE_KWALLET, test "x$enable_kwallet" = "xyes")
1686 dnl #######################################################################
1687 dnl # Check for GPlugin 0.0.17
1688 dnl #######################################################################
1689 if test "x$enable_plugins" = "xyes" ; then
1690         PKG_CHECK_MODULES(GPLUGIN, [gplugin >= 0.0.17 gmodule-2.0], [
1691                 dnl # GPLUGIN_REQ sets pkg-config requirements in the .pc file
1692                 GPLUGIN_REQ=[", gplugin"]
1693         ], [
1694                 AC_MSG_RESULT(no)
1695                 AC_MSG_ERROR([
1696         GPlugin 0.0.17 development headers not found, which are required if you wish to
1697         enable plugins.
1698         Use --disable-plugins if you want to disable plugins.
1699         ])])
1700         AC_SUBST(GPLUGIN_REQ)
1701         AC_SUBST(GPLUGIN_CFLAGS)
1702         AC_SUBST(GPLUGIN_LIBS)
1703 else
1704         enable_introspection=no
1707 dnl # Check for gobject introspection
1708 GOBJECT_INTROSPECTION_CHECK([1.30.0])
1710 if test "x$enable_introspection" = "xyes" ; then
1711         AC_DEFINE(ENABLE_INTROSPECTION, 1, [Define if GObject introspection is enabled.])
1714 dnl #######################################################################
1715 dnl # Check for Python
1716 dnl #######################################################################
1718 dnl Python scripts are used to auto-generate about 3000 lines of C
1719 dnl and XML code that wraps (part of) the existing API so that
1720 dnl it is now accessible through D-Bus.
1722 dnl Python is only required if --enable-dbus is used, and only for
1723 dnl the build process to generate the code, not for running pidgin.
1724 dnl This autogenerated code is system-independent, so in principle we
1725 dnl can generate all of it before shipping.  But I thought adding
1726 dnl auto-generated stuff to the repository is inelegant.
1727 dnl Alternatively, these python scripts could be rewritten
1728 dnl in C (brrrr ...).
1730 AC_ARG_WITH([python],
1731                         AS_HELP_STRING([--with-python=PATH],
1732                                                    [which python interpreter to use for dbus code generation]),
1733                         PYTHON=$withval)
1735 if test "x$enable_dbus" = "xyes" || test "x$enable_consoleui" = "xyes" ; then
1736         if test -z "$PYTHON" -a "x$is_win32" = "xyes" ; then
1737                 dnl there are problems with include files when cross compiling
1738                 dnl feel free to fix it, if you want
1739                 PYTHON=no
1740         elif test -z "$PYTHON" -o "x$PYTHON" = "xyes"; then
1741                 AC_PATH_PROG([PYTHON], [python], [no])
1742         fi
1744         if test x"$PYTHON" = x"no" -a "x$is_win32" != "xyes" ; then
1745                 AC_MSG_WARN([python interpreter not found in your path])
1746                 enable_dbus=no
1747         fi
1749         if test "x$PYTHON" != "xno" ; then
1750         if $PYTHON -c "import sys; sys.exit(sys.version[[:3]] >= '2.4')" ; then
1751                 AC_MSG_WARN([python version >= 2.4 required])
1752                 enable_dbus=no
1753         fi
1754         fi
1757 dnl ###########################################################################
1758 dnl # Find the D-Bus services dir.
1759 dnl #
1760 dnl # This is a 3 step process that
1761 dnl #
1762 dnl # 1. checks if --with-dbus-services was set, if so use that.
1763 dnl # 2. checks if --prefix was given, if so use that.
1764 dnl # 3. fallbacks to installing into what should be the correct system
1765 dnl #    directories.
1766 dnl #
1767 dnl # This is still prone to error if one of the legacy directories exist
1768 dnl # although a newer dbus is installed.  But I have tried to order the
1769 dnl # directory searching to keep this situation at a minimum.
1770 dnl ###########################################################################
1771 AC_ARG_WITH(dbus-services, [AS_HELP_STRING([--with-dbus-services=<dir>], [where the D-Bus services directory is located.])])
1773 DBUS_SERVICES_DIR=""
1775 if test x"$enable_dbus" = "xyes" ; then
1776         AC_MSG_CHECKING([location of the D-Bus services directory])
1777         if ! test -z "$with_dbus_services" ; then
1778                 if ! test -d "$with_dbus_services" ; then
1779                         AC_MSG_ERROR([$with_dbus_services does not exist, if this is the correct location please make sure that it exists.])
1780                 fi
1782                 DBUS_SERVICES_DIR="$with_dbus_services"
1783         else
1784                 if test x"$prefix" = x"NONE" ; then
1785                         dnl # no prefix given, so we look for the correct dbus system paths.
1786                         dnl # if a prefix is given, we use it.
1788                         serviceprefixes="$prefix/share $prefix/lib /usr/share /usr/local/share"
1789                         DBUS_SERVICES_DIR=""
1791                         for d in $serviceprefixes ; do
1792                                 dir="$d/dbus-1/services"
1793                                 if test -d $dir ; then
1794                                         DBUS_SERVICES_DIR="$dir"
1795                                         break
1796                                 fi
1797                         done
1799                         if test -z $DBUS_SERVICES_DIR ; then
1800                                 AC_MSG_ERROR([D-Bus services directory was not found!  Please use --with-dbus-services and specify its location.])
1801                         fi
1802                 else
1803                         DBUS_SERVICES_DIR="$datadir/dbus-1/services"
1804                 fi
1805         fi
1806         AC_MSG_RESULT([$DBUS_SERVICES_DIR])
1807         AC_DEFINE(HAVE_DBUS, 1, [Define if we are using D-Bus.])
1809 AC_SUBST(DBUS_SERVICES_DIR)
1811 if test "x$enable_dbus" = "xyes" ; then
1812         echo "Building with D-Bus support"
1813 else
1814         echo "Building without D-Bus support"
1817 AM_CONDITIONAL(ENABLE_DBUS, test "x$enable_dbus" = "xyes")
1819 dnl Check for Python headers (currently useful only for libgnt)
1820 dnl (Thanks to XChat)
1821 if test "x$enable_consoleui" = "xyes" -a ! -z "$PYTHON" -a x"$PYTHON" != x"no" ; then
1822         AC_MSG_CHECKING(for Python compile flags)
1823         if test -f ${PYTHON}-config; then
1824                 PY_CFLAGS=`${PYTHON}-config --includes`
1825                 PY_LIBS=`${PYTHON}-config --libs`
1826                 AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.])
1827                 AC_MSG_RESULT(ok)
1828         else
1829                 AC_MSG_RESULT([Cannot find ${PYTHON}-config])
1830                 PY_CFLAGS=""
1831                 PY_LIBS=""
1832         fi
1834 AC_SUBST(PY_CFLAGS)
1835 AC_SUBST(PY_LIBS)
1837 dnl #######################################################################
1838 dnl # SSL support
1839 dnl #
1840 dnl # Thanks go to Evolution for the checks.
1841 dnl #######################################################################
1843 AC_ARG_WITH(system-ssl-certs, [AS_HELP_STRING([--with-system-ssl-certs=<dir>], [directory containing system-wide SSL CA certificates])], [ssl_certificates_dir=$withval])
1845 SSL_CERTIFICATES_DIR=""
1846 if ! test -z "$ssl_certificates_dir" ; then
1847         if test "x$ssl_certificates_dir" = "xyes" ; then
1848                 AC_MSG_ERROR([--with-system-ssl-certs requires that a location is specified, eg. --with-system-ssl-certs=/etc/pki/tls/certs])
1849         fi
1850         if ! test -d "$ssl_certificates_dir" ; then
1851                 if test "x$is_win32" = "xyes" ; then
1852                         AC_MSG_WARN([$ssl_certificates_dir does not exist. \
1853 It may be OK when cross-compiling, but please make sure about it.])
1854                 else
1855                         AC_MSG_ERROR([$ssl_certificates_dir does not exist, \
1856 if this is the correct location please make sure that it exists.])
1857                 fi
1858         fi
1859         SSL_CERTIFICATES_DIR="$ssl_certificates_dir"
1861 AC_SUBST(SSL_CERTIFICATES_DIR)
1862 if test "x$SSL_CERTIFICATES_DIR" != "x" ; then
1863         AC_DEFINE_UNQUOTED([SSL_CERTIFICATES_DIR], ["$SSL_CERTIFICATES_DIR"],
1864                 [Directory where SSL certificates can be found])
1866 AM_CONDITIONAL(INSTALL_SSL_CERTIFICATES, test "x$SSL_CERTIFICATES_DIR" = "x")
1868 dnl These two are inverses of each other <-- stolen from evolution!
1870 AC_ARG_ENABLE(gnutls,
1871         [  --enable-gnutls=[yes,no]  attempt to use GnuTLS for SSL support [default=yes]],
1872         [enable_gnutls="$enableval"],
1873         [enable_gnutls="yes"])
1875 AC_ARG_ENABLE(nss,
1876         [  --enable-nss=[yes,no,static]    attempt to use Mozilla libnss for SSL support [default=yes]],
1877         [enable_nss="$enableval"],
1878         [enable_nss="yes"])
1880 msg_ssl="None. Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable!"
1881 looked_for_gnutls="no"
1882 dnl #
1883 dnl # Check for GnuTLS if it isn't disabled
1884 dnl #
1885 if test "x$enable_gnutls" != "xno"; then
1886         looked_for_gnutls="yes"
1888         if `$PKG_CONFIG --exists gnutls`; then
1889                 dnl # minimum required version should almost certainly be higher
1890                 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.10], [
1891                         have_gnutls="yes"
1892                 ], [
1893                         AC_MSG_RESULT(no)
1894                         have_gnutls="no"
1895                 ])
1896         fi
1898         if test "x$have_gnutls" = "xyes"; then
1899                 AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have GnuTLS])
1900                 msg_gnutls="GnuTLS"
1901         fi
1904 AM_CONDITIONAL(USE_GNUTLS, test "x$have_gnutls" = "xyes")
1907 dnl #
1908 dnl # Check for NSS if it isn't disabled
1909 dnl #
1910 looked_for_nss="no"
1911 if test "x$enable_nss" != "xno"; then
1912         looked_for_nss="yes"
1914         if `$PKG_CONFIG --exists mozilla-nss`; then
1915                 dnl # TODO: set required minimum version
1916                 PKG_CHECK_MODULES(NSS, mozilla-nss, [
1917                         have_nss="yes"
1918                 ], [
1919                         AC_MSG_RESULT(no)
1920                         have_nss="no"
1921                 ])
1922         elif `$PKG_CONFIG --exists nss`; then
1923                 dnl # TODO: set required minimum version
1924                 PKG_CHECK_MODULES(NSS, nss, [
1925                         have_nss="yes"
1926                 ], [
1927                         AC_MSG_RESULT(no)
1928                         have_nss="no"
1929                 ])
1930         fi
1932         if test "x$have_nss" = "xyes"; then
1933                 AC_DEFINE(HAVE_NSS, 1, [Define if you have Mozilla NSS])
1934                 msg_nss="Mozilla NSS"
1935         fi
1938 AM_CONDITIONAL(USE_NSS, test "x$have_nss" = "xyes")
1941 if test "x$msg_nss" != "x" -a "x$msg_gnutls" != "x"; then
1942         msg_ssl="$msg_nss and $msg_gnutls"
1943 elif test "x$msg_nss" != "x"; then
1944         msg_ssl=$msg_nss
1945 elif test "x$msg_gnutls" != "x"; then
1946         msg_ssl=$msg_gnutls
1947 elif test "x$looked_for_gnutls" = "xyes" -a "x$looked_for_nss" = "xyes" -a "x$force_deps" = "xyes" ; then
1948         AC_MSG_ERROR([
1949 Neither GnuTLS or NSS SSL development headers found.
1950 Use --disable-nss --disable-gnutls if you do not need SSL support.
1951 Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable!
1953 elif test "x$looked_for_gnutls" = "xyes" -a "x$force_deps" = "xyes" ; then
1954         AC_MSG_ERROR([
1955 GnuTLS SSL development headers not found.
1956 Use --disable-gnutls if you do not need SSL support.
1957 Novell Groupwise and Google Talk will not work without SSL support.
1959 elif test "x$looked_for_nss" = "xyes" -a "x$force_deps" = "xyes" ; then
1960         AC_MSG_ERROR([
1961 NSS SSL development headers not found.
1962 Use --disable-nss if you do not need SSL support.
1963 Novell Groupwise and Google Talk will not work without SSL support.
1967 if test "$ac_cv_cygwin" = yes ; then
1968         LDADD="$LDADD -static"
1969         AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])
1972 AC_SUBST(DEBUG_CPPFLAGS)
1973 AC_SUBST(DEBUG_CFLAGS)
1974 AC_SUBST(LDADD)
1975 AC_SUBST(LIBS)
1977 if test "x$enable_plugins" = "xyes" ; then
1978         AC_DEFINE(PURPLE_PLUGINS, 1, [Define if plugins are enabled.])
1979         AM_CONDITIONAL(PLUGINS, true)
1980         PLUGINS_DEFINE="#define PURPLE_PLUGINS 1"
1981 else
1982         AM_CONDITIONAL(PLUGINS, false)
1983         PLUGINS_DEFINE="#undef PURPLE_PLUGINS"
1985 AC_SUBST(PLUGINS_DEFINE)
1987 dnl #######################################################################
1988 dnl # Check for Cyrus-SASL (for xmpp/irc)
1989 dnl #######################################################################
1990 dnl AC_CHECK_SIZEOF(short)
1991 AC_CHECK_FUNCS(snprintf connect)
1992 AC_SUBST(SASL_LIBS)
1993 AC_ARG_ENABLE(cyrus-sasl, AS_HELP_STRING([--enable-cyrus-sasl], [enable Cyrus SASL support for xmpp/irc]), enable_cyrus_sasl=$enableval, enable_cyrus_sasl=no)
1994 if test "x$enable_cyrus_sasl" = "xyes" ; then
1995         AC_CHECK_LIB(sasl2, sasl_client_init, [
1996                         AM_CONDITIONAL(USE_CYRUS_SASL, true)
1997                         AC_DEFINE(HAVE_CYRUS_SASL, [1], [Define to 1 if Cyrus SASL is present])
1998                         SASL_LIBS=-"lsasl2"
1999                 ], [
2000                         AM_CONDITIONAL(USE_CYRUS_SASL, false)
2001                         AC_MSG_ERROR([Cyrus SASL library not found])
2002                 ])
2003 else
2004         AM_CONDITIONAL(USE_CYRUS_SASL, false)
2007 dnl #######################################################################
2008 dnl # Check for Kerberos (for Zephyr)
2009 dnl #######################################################################
2010 AC_DEFINE(ZEPHYR_INT32, long, [Size of an int32.])
2011 AC_SUBST(KRB4_CFLAGS)
2012 AC_SUBST(KRB4_LDFLAGS)
2013 AC_SUBST(KRB4_LIBS)
2014 if test "$kerberos" != "no" ; then
2015         if test "$kerberos" != "yes" ; then
2016                 KRB4_CFLAGS="-I${kerberos}/include"
2017                 if test -d "$kerberos/include/kerberosIV" ; then
2018                         KRB4_CFLAGS="$KRB4_CFLAGS -I${kerberos}/include/kerberosIV"
2019                 fi
2020                 KRB4_LDFLAGS="-L${kerberos}/lib"
2021         elif test -d /usr/local/include/kerberosIV ; then
2022                 KRB4_CFLAGS="-I/usr/local/include/kerberosIV"
2023         elif test -d /usr/include/kerberosIV ; then
2024                 KRB4_CFLAGS="-I/usr/include/kerberosIV"
2025         fi
2026         AC_DEFINE(ZEPHYR_USES_KERBEROS, 1, [Define if kerberos should be used in Zephyr.])
2028         orig_LDFLAGS="$LDFLAGS"
2029         LDFLAGS="$LDFLAGS $KRB4_LDFLAGS"
2030         AC_CHECK_LIB(krb4, krb_rd_req,
2031                         [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
2032                         [AC_CHECK_LIB(krb, krb_rd_req,
2033                                 [KRB4_LIBS="-lkrb -ldes"],
2034                                 [AC_MSG_ERROR([Kerberos 4 libraries not found])],
2035                                 -ldes)],
2036                         -ldes425 -lkrb5 -lk5crypto -lcom_err)
2037         orig_LIBS="$LIBS"
2038         LIBS="$LIBS $KRB4_LIBS"
2039         AC_CHECK_FUNCS(krb_set_key krb_rd_req krb_get_lrealm)
2040         AC_CHECK_FUNCS(krb_get_err_text krb_log)
2041         LIBS="$orig_LIBS"
2042         LDFLAGS="$orig_LDFLAGS"
2045 dnl #######################################################################
2046 dnl # Check for external libzephyr
2047 dnl #######################################################################
2048 AC_SUBST(ZEPHYR_CFLAGS)
2049 AC_SUBST(ZEPHYR_LDFLAGS)
2050 AC_SUBST(ZEPHYR_LIBS)
2051 if test "$zephyr" != "no" ; then
2052         if test "$zephyr" != "yes" ; then
2053                 ZEPHYR_CFLAGS="-I${zephyr}/include"
2054                 ZEPHYR_LDFLAGS="-L${zephyr}/lib"
2055         elif test -d /usr/athena/include/zephyr ; then
2056                 ZEPHYR_CFLAGS="-I/usr/athena/include"
2057         elif test -d /usr/include/zephyr ; then
2058                 ZEPHYR_CFLAGS="-I/usr/include"
2059         elif test -d /usr/local/include/zephyr ; then
2060                 ZEPHYR_CFLAGS="-I/usr/local/include"
2061         fi
2062         AC_DEFINE(LIBZEPHYR_EXT, 1 , [Define if external libzephyr should be used.])
2063         AM_CONDITIONAL(EXTERNAL_LIBZEPHYR, test "x$zephyr" != "xno")
2064         orig_LDFLAGS="$LDFLAGS"
2065         LDFLAGS="$LDFLAGS $ZEPHYR_LDFLAGS"
2066         AC_CHECK_LIB(zephyr, ZInitialize,
2067                 [ZEPHYR_LIBS="-lzephyr"],
2068                 [AC_MSG_ERROR([Zephyr libraries not found])],
2069                 -lzephyr)
2070         orig_LIBS="$LIBS"
2071         LIBS="$orig_LIBS"
2072         LDFLAGS="$orig_LDFLAGS"
2075 AC_MSG_CHECKING(for me pot o' gold)
2076 AC_MSG_RESULT(no)
2077 AC_CHECK_FUNCS(gethostid timegm)
2078 AC_CHECK_HEADERS(paths.h sgtty.h sys/cdefs.h)
2079 AC_CHECK_HEADERS(sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h)
2080 AC_CHECK_HEADERS(sys/select.h sys/uio.h sys/wait.h)
2081 AC_CHECK_HEADERS(termios.h)
2083 # sys/sysctl.h on OpenBSD 4.2 requires sys/param.h
2084 # sys/sysctl.h on FreeBSD requires sys/types.h
2085 AC_CHECK_HEADERS(sys/param.h)
2086 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2087         [[
2088                 #include <sys/types.h>
2089                 #ifdef HAVE_PARAM_H
2090                 # include <sys/param.h>
2091                 #endif
2092         ]])
2094 AC_CHECK_HEADERS(sys/socket.h)
2095 AC_VAR_TIMEZONE_EXTERNALS
2097 AC_CHECK_MEMBER([struct tm.tm_gmtoff],
2098         [AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if you have a tm_gmtoff member in struct tm])],
2099         [],
2100         [[#include <time.h>]])
2102 dnl #######################################################################
2103 dnl # Disable pixmap installation
2104 dnl #######################################################################
2105 AC_ARG_ENABLE(pixmaps-install, AS_HELP_STRING([--disable-pixmaps-install], [disable installation of pixmap files - Pidgin still needs them!]), enable_pixmaps="$enableval", enable_pixmaps=yes)
2107 AM_CONDITIONAL(INSTALL_PIXMAPS, test "x$enable_pixmaps" = "xyes")
2109 dnl #######################################################################
2110 dnl # Tweak status tray icon installation directory
2111 dnl #######################################################################
2112 AC_ARG_ENABLE(trayicon-compat, AS_HELP_STRING([--enable-trayicon-compat], [install tray icons in location compatible with older releases of hicolor-icon-theme]), enable_traycompat="$enableval", enable_traycompat=no)
2114 AM_CONDITIONAL(ENABLE_TRAYCOMPAT, test "x$enable_traycompat" = "xyes")
2116 # check for gtk-doc
2117 m4_ifdef([GTK_DOC_CHECK], [
2118 GTK_DOC_CHECK([1.16],[--flavour no-tmpl])
2120         if test "x$force_deps" = "xyes" -a "x$enable_gtk_doc" = "xyes"; then
2121                 AC_MSG_ERROR([
2122 You have requested to generate documentation, but gtk-doc was not found.
2123                 ])
2124         fi
2126         AM_CONDITIONAL([ENABLE_GTK_DOC], false)
2127         enable_gtk_doc=no
2130 AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],
2131         [compile with debugging support])], , enable_debug=no)
2133 if test "x$enable_debug" = "xyes" ; then
2134         AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])
2137 AM_CONDITIONAL(PURPLE_AVAILABLE, true)
2139 AC_CONFIG_FILES([Makefile
2140                    doc/Makefile
2141                    doc/pidgin.1
2142                    doc/finch.1
2143                    doc/reference/Makefile
2144                    doc/reference/finch/Makefile
2145                    doc/reference/finch/version.xml
2146                    doc/reference/libpurple/Makefile
2147                    doc/reference/libpurple/version.xml
2148                    doc/reference/protocols/Makefile
2149                    doc/reference/protocols/facebook/Makefile
2150                    doc/reference/protocols/version.xml
2151                    doc/reference/pidgin/Makefile
2152                    doc/reference/pidgin/version.xml
2153                    m4macros/Makefile
2154                    pidgin/Makefile
2155                    pidgin/data/pidgin.desktop.in
2156                    pidgin/data/pidgin-3.pc
2157                    pidgin/data/pidgin-3-uninstalled.pc
2158                    pidgin/pixmaps/Makefile
2159                    pidgin/pixmaps/emotes/default/24/Makefile
2160                    pidgin/pixmaps/emotes/small/16/Makefile
2161                    pidgin/plugins/Makefile
2162                    pidgin/plugins/cap/Makefile
2163                    pidgin/plugins/disco/Makefile
2164                    pidgin/plugins/gestures/Makefile
2165                    pidgin/plugins/gevolution/Makefile
2166                    pidgin/plugins/musicmessaging/Makefile
2167                    pidgin/plugins/ticker/Makefile
2168                    pidgin/plugins/win32/transparency/Makefile
2169                    pidgin/plugins/win32/winprefs/Makefile
2170                    pidgin/themes/Makefile
2171                    pidgin/win32/pidgin_dll_rc.rc
2172                    pidgin/win32/pidgin_exe_rc.rc
2173                    libpurple/data/purple-url-handler.desktop.in
2174                    libpurple/data/purple-3.pc
2175                    libpurple/data/purple-3-uninstalled.pc
2176                    libpurple/example/Makefile
2177                    libpurple/plugins/Makefile
2178                    libpurple/plugins/keyrings/Makefile
2179                    libpurple/Makefile
2180                    libpurple/protocols/Makefile
2181                    libpurple/protocols/bonjour/Makefile
2182                    libpurple/protocols/facebook/Makefile
2183                    libpurple/protocols/gg/Makefile
2184                    libpurple/protocols/irc/Makefile
2185                    libpurple/protocols/jabber/Makefile
2186                    libpurple/protocols/jabber/tests/Makefile
2187                    libpurple/protocols/novell/Makefile
2188                    libpurple/protocols/null/Makefile
2189                    libpurple/protocols/oscar/Makefile
2190                    libpurple/protocols/oscar/tests/Makefile
2191                    libpurple/protocols/sametime/Makefile
2192                    libpurple/protocols/silc/Makefile
2193                    libpurple/protocols/simple/Makefile
2194                    libpurple/protocols/zephyr/Makefile
2195                    libpurple/tests/Makefile
2196                    libpurple/purple.h
2197                    libpurple/version.h
2198                    libpurple/win32/libpurplerc.rc
2199                    share/sounds/Makefile
2200                    share/ca-certs/Makefile
2201                    finch/finch.pc
2202                    finch/finch_winres.rc
2203                    finch/libfinch_winres.rc
2204                    finch/Makefile
2205                    finch/libgnt/Makefile
2206                    finch/libgnt/gnt.pc
2207                    finch/libgnt/libgnt_winres.rc
2208                    finch/libgnt/wms/Makefile
2209                    finch/plugins/Makefile
2210                    po/Makefile.in
2211                   ])
2212 AC_OUTPUT
2214 echo
2215 echo $PACKAGE $VERSION
2217 echo
2218 echo Build GTK+ UI................. : $enable_gtkui
2219 echo Build console UI.............. : $enable_consoleui
2220 echo Build for X11................. : $with_x
2221 echo
2222 echo Enable Gestures............... : $enable_gestures
2223 echo Protocols to build dynamically : $DYNAMIC_PRPLS
2224 echo Protocols to link statically.. : $STATIC_PRPLS
2225 echo
2226 echo Build with GStreamer support.. : $enable_gst
2227 echo Build with D-Bus support...... : $enable_dbus
2228 echo Build with voice and video.... : $enable_vv
2229 if test "x$enable_dbus" = "xyes" ; then
2230         eval eval echo D-Bus services directory...... : $DBUS_SERVICES_DIR
2232 echo Build with GNU Libidn......... : $enable_idn
2233 echo SSL Library/Libraries......... : $msg_ssl
2234 if test "x$SSL_CERTIFICATES_DIR" != "x" ; then
2235         eval eval echo SSL CA certificates directory. : $SSL_CERTIFICATES_DIR
2237 echo Build with Cyrus SASL support. : $enable_cyrus_sasl
2238 echo Use kerberos 4 with zephyr.... : $kerberos
2239 echo Use external libzephyr........ : $zephyr
2240 echo Install pixmaps............... : $enable_pixmaps
2241 echo Old tray icon compatibility... : $enable_traycompat
2242 echo Install translations.......... : $enable_i18n
2243 echo Has you....................... : yes
2244 echo
2245 echo Use XScreenSaver Extension.... : $enable_screensaver
2246 echo Use X Session Management...... : $enable_sm
2247 echo Use startup notification...... : $enable_startup_notification
2248 echo Build with Enchant support.... : $use_enchant
2249 echo Build with GCR widgets........ : $enable_gcr
2250 echo Build Unity integration plugin.: $enable_unity
2251 echo
2252 echo Build with GNOME Keyring...... : $enable_gnome_keyring
2253 echo Build with KWallet............ : $enable_kwallet
2254 echo Build with Secret Service..... : $enable_secret_service
2255 echo
2256 echo Build with plugin support..... : $enable_plugins
2257 echo Enable Introspection...........: $enable_introspection
2259 if test "x$is_win32" = "xyes" ; then
2260         echo
2261         echo Win32 directory structure..... : $with_win32_dirs
2264 echo
2265 echo Print debugging messages...... : $enable_debug
2266 echo Generate documentation........ : $enable_gtk_doc
2267 echo
2268 eval eval echo Pidgin will be installed in $bindir.
2269 if test "x$pidginpath" != "x" ; then
2270         echo Warning: You have an old copy of Pidgin at $pidginpath.
2272 if test "x$enable_pixmaps" = "xno" ; then
2273         echo
2274         echo Warning: You have disabled the installation of pixmap data, but Pidgin
2275         echo still requires installed pixmaps.  Be sure you know what you are doing.
2277 if test "x$enable_i18n" = "xno" ; then
2278         echo
2279         echo Warning: You have disabled the building and installation of translation
2280         echo data.  This will prevent building pidgin.desktop and the GConf schemas.
2281         echo Be sure you know what you are doing.
2283 echo
2284 echo configure complete, now type \'make\'
2285 echo