Merged pidgin/main into default
[pidgin-git.git] / configure.ac
bloba01666efb98d5a299c2a0986a0a674f458b38087
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 msn mxit novell oscar sametime silc simple yahoo 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                 msn)            static_msn=yes ;;
1273                 mxit)           static_mxit=yes ;;
1274                 novell)         static_novell=yes ;;
1275                 oscar)          static_oscar=yes ;;
1276                 aim)            static_oscar=yes ;;
1277                 icq)            static_oscar=yes ;;
1278                 sametime)       static_sametime=yes ;;
1279                 silc)           static_silc=yes ;;
1280                 simple)         static_simple=yes ;;
1281                 yahoo)          static_yahoo=yes ;;
1282                 zephyr)         static_zephyr=yes ;;
1283                 *)                      echo "Invalid static protocol $i!!" ; exit 1 ;;
1284         esac
1285 done
1286 AM_CONDITIONAL(STATIC_BONJOUR, test "x$static_bonjour" = "xyes")
1287 AM_CONDITIONAL(STATIC_FACEBOOK, test "x$static_facebook" = "xyes")
1288 AM_CONDITIONAL(STATIC_GG, test "x$static_gg" = "xyes")
1289 AM_CONDITIONAL(STATIC_IRC, test "x$static_irc" = "xyes")
1290 AM_CONDITIONAL(STATIC_JABBER, test "x$static_jabber" = "xyes")
1291 AM_CONDITIONAL(STATIC_MSN, test "x$static_msn" = "xyes")
1292 AM_CONDITIONAL(STATIC_MXIT, test "x$static_mxit" = "xyes")
1293 AM_CONDITIONAL(STATIC_NOVELL, test "x$static_novell" = "xyes")
1294 AM_CONDITIONAL(STATIC_OSCAR, test "x$static_oscar" = "xyes")
1295 AM_CONDITIONAL(STATIC_SAMETIME, test "x$static_sametime" = "xyes" -a "x$have_meanwhile" = "xyes")
1296 AM_CONDITIONAL(STATIC_SILC, test "x$static_silc" = "xyes" -a "x$have_silc" = "xyes")
1297 AM_CONDITIONAL(STATIC_SIMPLE, test "x$static_simple" = "xyes")
1298 AM_CONDITIONAL(STATIC_YAHOO, test "x$static_yahoo" = "xyes")
1299 AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes")
1300 AC_SUBST(STATIC_LINK_LIBS)
1301 AC_DEFINE_UNQUOTED(STATIC_PROTO_LOAD, $extern_load static void static_proto_load(void) { $load_proto },
1302         [Loads protocols from static protocol plugin modules.])
1303 AC_DEFINE_UNQUOTED(STATIC_PROTO_UNLOAD, $extern_unload static void static_proto_unload(void) { $unload_proto },
1304         [Unloads protocols from static protocol plugin modules.])
1306 AC_ARG_WITH(dynamic_prpls, [AS_HELP_STRING([--with-dynamic-prpls], [specify which protocols to build dynamically])], [DYNAMIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`])
1307 if test "x$DYNAMIC_PRPLS" = "xall" ; then
1308         DYNAMIC_PRPLS="bonjour facebook gg irc jabber msn mxit novell oscar sametime silc simple yahoo zephyr"
1310 if test "x$have_meanwhile" != "xyes"; then
1311         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/sametime//'`
1313 if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then
1314         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/bonjour//'`
1316 if test "x$silcincludes" != "xyes" -o "x$silcclient" != "xyes"; then
1317         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/silc//'`
1319 if test "x$have_libgadu" != "xyes"; then
1320         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/gg//'`
1322 if test "x$is_win32" = "xyes" ; then
1323         DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/zephyr//'`
1325 AC_SUBST(DYNAMIC_PRPLS)
1326 for i in $DYNAMIC_PRPLS ; do
1327         case $i in
1328                 bonjour)        dynamic_bonjour=yes ;;
1329                 facebook)       dynamic_facebook=yes ;;
1330                 gg)                     dynamic_gg=yes ;;
1331                 irc)            dynamic_irc=yes ;;
1332                 jabber)         dynamic_jabber=yes ;;
1333                 msn)            dynamic_msn=yes ;;
1334                 mxit)           dynamic_mxit=yes ;;
1335                 novell)         dynamic_novell=yes ;;
1336                 null)           dynamic_null=yes ;;
1337                 oscar)          dynamic_oscar=yes ;;
1338                 aim)            dynamic_oscar=yes ;;
1339                 icq)            dynamic_oscar=yes ;;
1340                 sametime)       dynamic_sametime=yes ;;
1341                 silc)           dynamic_silc=yes ;;
1342                 simple)         dynamic_simple=yes ;;
1343                 yahoo)          dynamic_yahoo=yes ;;
1344                 zephyr)         dynamic_zephyr=yes ;;
1345                 *)                      echo "Invalid dynamic protocol $i!!" ; exit 1 ;;
1346         esac
1347 done
1349 AC_ARG_ENABLE(plugins, [AS_HELP_STRING([--disable-plugins], [compile without plugin support])], , enable_plugins=yes)
1350 AC_ARG_WITH(krb4, [AS_HELP_STRING([--with-krb4=PREFIX], [compile Zephyr plugin with Kerberos 4 support])], kerberos="$withval", kerberos="no")
1351 AC_ARG_WITH(zephyr, [AS_HELP_STRING([--with-zephyr=PREFIX], [compile Zephyr plugin against external libzephyr])], zephyr="$withval", zephyr="no")
1352 AM_CONDITIONAL(EXTERNAL_LIBZEPHYR, test "x$zephyr" != "xno")
1354 AC_CHECK_HEADERS(sys/utsname.h)
1355 AC_CHECK_FUNC(uname)
1357 AC_ARG_ENABLE(fortify, [AS_HELP_STRING([--disable-fortify], [compile without FORTIFY_SOURCE support])], , enable_fortify=yes)
1359 DEBUG_CFLAGS="$DEBUG_CFLAGS -DPURPLE_DISABLE_DEPRECATED -DPIDGIN_DISABLE_DEPRECATED -DFINCH_DISABLE_DEPRECATED -DGNT_DISABLE_DEPRECATED"
1360 if test "x$GCC" = "xyes"; then
1361         dnl We enable -Wall later.
1362         dnl If it's set after the warning CFLAGS in the compiler invocation, it counteracts the -Wno... flags.
1363         dnl This leads to warnings we don't want.
1364         CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'`
1366         dnl ENABLE WARNINGS SUPPORTED BY THE VERSION OF GCC IN USE
1367         dnl
1368         dnl Future Possibilities
1369         dnl
1370         dnl Consider adding -Wbad-function-cast.
1371         dnl     This leads to spurious warnings using GPOINTER_TO_INT(), et al. directly on a function call.
1372         dnl             We'd need an intermediate variable.
1373         dnl
1374         for newflag in \
1375                         "-Waggregate-return" \
1376                         "-Wcast-align" \
1377                         "-Wdeclaration-after-statement" \
1378                         "-Wendif-labels" \
1379                         "-Werror-implicit-function-declaration" \
1380                         "-Wextra -Wno-unused-parameter" \
1381                         "-Wformat-security" \
1382                                 "-Werror=format-security" \
1383                         "-Winit-self" \
1384                         "-Wmissing-declarations" \
1385                         "-Wmissing-noreturn" \
1386                         "-Wmissing-prototypes" \
1387                         "-Wpointer-arith" \
1388                         "-Wfloat-equal" \
1389                         "-Wundef" \
1390         ; do
1391                 orig_CFLAGS="$CFLAGS"
1392                 CFLAGS="$CFLAGS $newflag"
1393                 AC_MSG_CHECKING(for $newflag option to gcc)
1394                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [
1395                         AC_MSG_RESULT(yes)
1396                         CFLAGS="$orig_CFLAGS"
1397                         DEBUG_CFLAGS="$DEBUG_CFLAGS $newflag"
1398                 ], [
1399                         AC_MSG_RESULT(no)
1400                         CFLAGS="$orig_CFLAGS"
1401                 ])
1402         done
1404         if test "x$enable_fortify" = "xyes"; then
1405                 AC_MSG_CHECKING(for FORTIFY_SOURCE support)
1406                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <features.h>]], [[
1407                         #if !(__GNUC_PREREQ (4, 1) \
1408                                 || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (4, 0)) \
1409                                 || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (3, 4) \
1410                                         && __GNUC_MINOR__ == 4 \
1411                                         && (__GNUC_PATCHLEVEL__ > 2 \
1412                                                 || (__GNUC_PATCHLEVEL__ == 2 && __GNUC_RH_RELEASE__ >= 8))))
1413                         #error No FORTIFY_SOURCE support
1414                         #endif
1415                                 return 0;
1416                 ]])], [
1417                         AC_MSG_RESULT(yes)
1418                         DEBUG_CFLAGS="$DEBUG_CFLAGS -Wp,-D_FORTIFY_SOURCE=2"
1419                 ], [
1420                         AC_MSG_RESULT(no)
1421                 ])
1422         fi
1424         DEBUG_CFLAGS="-Wall $DEBUG_CFLAGS"
1425         CFLAGS="-g $CFLAGS"
1427 DEBUG_CPPFLAGS=`echo "$DEBUG_CFLAGS" | $sedpath 's/-Wdeclaration-after-statement//' | $sedpath 's/-Wmissing-prototypes//' | $sedpath 's/-Waggregate-return//'`
1429 if test "x$SUNCC" = "xyes"; then
1430         CFLAGS="$CFLAGS -features=extensions"
1432 AC_SUBST(CFLAGS)
1434 AC_PATH_PROG(pidginpath, pidgin)
1436 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
1437         #if !defined(__clang__)
1438         #error
1439         #endif
1440 ])], have_clang=yes, have_clang=no)
1442 AC_ARG_ENABLE(clang-address-sanitizer,
1443         [AS_HELP_STRING([--enable-clang-address-sanitizer],
1444                 [compile with the Clang's address sanitizer enabled])],
1445         enable_clang_address_sanitizer="$enableval", enable_clang_address_sanitizer="no")
1447 if test "x$enable_clang_address_sanitizer" = "xyes" -a "x$have_clang" = "xno"; then
1448                 AC_MSG_ERROR([
1449 Clang address sanitizer requested, but we don't compile with Clang.
1450 Disable the sanitizer or run configure script with CC and CCX set to clang binaries.
1454 if test "x$have_clang" = "xyes"; then
1455         GLIB_LIBS=`echo $GLIB_LIBS | $sedpath 's/-pthread/-lpthread/'`
1458 if test "x$enable_clang_address_sanitizer" = "xyes"; then
1459         CFLAGS="$CFLAGS -faddress-sanitizer -g -fno-omit-frame-pointer -fno-inline -fno-optimize-sibling-calls"
1463 AC_ARG_ENABLE(glib-errors-trace, [AS_HELP_STRING([--enable-glib-errors-trace], [print backtraces for glib errors])], enable_glibtrace="$enableval", enable_glibtrace="no")
1464 if test "x$enable_glibtrace" = "xyes"; then
1465         if test "x$have_clang" = "xyes"; then
1466                 AC_MSG_ERROR([--enable-glib-errors-trace doesn't work with clang])
1467         fi
1468         AC_DEFINE(ENABLE_GLIBTRACE, 1, [Define if backtraces should be printed for glib errors.])
1469         dnl CFLAGS="$CFLAGS -rdynamic"
1470         CFLAGS="$CFLAGS -rdynamic"
1473 dnl #######################################################################
1474 dnl # Check for D-Bus libraries
1475 dnl #######################################################################
1477 # dbus doesn't compile for win32 at the moment
1478 AC_ARG_ENABLE(dbus,
1479         [AS_HELP_STRING([--disable-dbus], [disable D-Bus support])], ,
1480         enable_dbus="$is_not_win32")
1482 if test "x$enable_dbus" = "xyes" ; then
1483         AC_CHECK_PROG(enable_dbus, dbus-binding-tool, yes, no)
1486 if test "x$enable_dbus" = "xyes" ; then
1487         PKG_CHECK_MODULES(DBUS, [dbus-1 >= 0.60 dbus-glib-1 >= 0.60], [
1488                 AC_SUBST(DBUS_CFLAGS)
1489                 AC_SUBST(DBUS_LIBS)
1490                 enable_dbus=yes
1491         ], [
1492         enable_dbus=no
1493         if test "x$force_deps" = "xyes" ; then
1494                 AC_MSG_ERROR([
1495 D-Bus development headers not found.
1496 Use --disable-dbus if you do not need D-Bus support.
1498         fi])
1501 dnl #######################################################################
1502 dnl # Check for Unity and Messaging Menu
1503 dnl #######################################################################
1504 AC_ARG_ENABLE(unity, [AC_HELP_STRING([--enable-unity],
1505         [compile with support for unity integration plugin])], enable_unity="$enableval", enable_unity="no")
1506 if test "$enable_unity" = yes; then
1507         PKG_CHECK_MODULES(UNITY, [unity >= 6.8 messaging-menu >= 12.10], , [
1508                 AC_MSG_RESULT(no)
1509                 AC_MSG_ERROR([
1510 You must have libunity9 >= 6.8 and libmessaging-menu >= 12.10 to build the unity integration plugin.
1511         ])])
1512         USES_MM_CHAT_SECTION="X-MessagingMenu-UsesChatSection=true"
1513         AC_SUBST(UNITY_CFLAGS)
1514         AC_SUBST(UNITY_LIBS)
1515         AC_SUBST(USES_MM_CHAT_SECTION)
1516 else
1517         enable_unity=no
1519 AM_CONDITIONAL(ENABLE_UNITY, [test "x$enable_unity" = "xyes"])
1521 dnl #######################################################################
1522 dnl # Check for Secret Service headers
1523 dnl #######################################################################
1525 AC_ARG_ENABLE(libsecret,
1526         [AC_HELP_STRING([--disable-libsecret], [enable Secret Service support])],
1527         enable_secret_service="$enableval", enable_secret_service="$is_not_win32")
1529 if test "x$enable_secret_service" = "xyes" ; then
1530         PKG_CHECK_MODULES(SECRETSERVICE, [libsecret-1], [
1531                 AC_SUBST(SECRETSERVICE_CFLAGS)
1532                 AC_SUBST(SECRETSERVICE_LIBS)
1533                 AC_DEFINE(HAVE_SECRETSERVICE, 1, [Define if we have Secret Service.])
1534         ], [
1535                 AC_MSG_RESULT(no)
1536                 enable_secret_service="no"
1537                 if test "x$force_deps" = "xyes" ; then
1538                         AC_MSG_ERROR([
1539 Libsecret development headers not found
1540 Use --disable-libsecret if you do not need it.
1542                 fi
1543         ])
1547 AM_CONDITIONAL(ENABLE_SECRETSERVICE, test "x$enable_secret_service" = "xyes")
1549 dnl #######################################################################
1550 dnl # Check for GNOME Keyring headers
1551 dnl #######################################################################
1553 AC_ARG_ENABLE(gnome-keyring,
1554         [AC_HELP_STRING([--disable-gnome-keyring], [disable GNOME Keyring support])],
1555         enable_gnome_keyring="$enableval", enable_gnome_keyring="$is_not_win32")
1557 if test "x$enable_gnome_keyring" = "xyes" ; then
1558         PKG_CHECK_MODULES(GNOMEKEYRING, [gnome-keyring-1], [
1559                 AC_SUBST(GNOMEKEYRING_CFLAGS)
1560                 AC_SUBST(GNOMEKEYRING_LIBS)
1561                 AC_DEFINE(HAVE_GNOMEKEYRING, 1, [Define if we have GNOME Keyring.])
1562         ], [
1563                 AC_MSG_RESULT(no)
1564                 enable_gnome_keyring="no"
1565                 if test "x$force_deps" = "xyes" ; then
1566                         AC_MSG_ERROR([
1567 GNOME Keyring development headers not found
1568 Use --disable-gnome-keyring if you do not need it.
1570                 fi
1571         ])
1574 AM_CONDITIONAL(ENABLE_GNOMEKEYRING, test "x$enable_gnome_keyring" = "xyes")
1576 dnl #######################################################################
1577 dnl # Check for KWallet headers
1578 dnl #######################################################################
1580 AC_ARG_ENABLE(kwallet,
1581         [AC_HELP_STRING([--disable-kwallet], [disable KWallet support])],
1582         enable_kwallet="$enableval", enable_kwallet="$is_not_win32")
1583 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"])
1584 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"])
1586 if test "x$enable_kwallet" = "xyes"; then
1587         dnl Ensure C++ compiler works
1588         AC_CHECK_PROG(CXXTEST, [$CXX], [$CXX])
1589         if test "x$CXXTEST" = "x"; then
1590                 enable_kwallet=no
1591                 if test "x$force_deps" = "xyes"; then
1592                         AC_MSG_ERROR([
1593 A C++ compiler was not found.
1594 Use --disable-kwallet if you do not need KWallet support.
1596                 fi
1597         fi
1600 AC_LANG_PUSH([C++])
1601 CPPFLAGS_save="$CPPFLAGS"
1602 LIBS_save="$LIBS"
1604 if test "x$enable_kwallet" = "xyes"; then
1605         PKG_CHECK_MODULES(QT4, [QtCore], [
1606                 AC_SUBST(QT4_CFLAGS)
1607                 AC_SUBST(QT4_LIBS)
1608         ], [
1609                 AC_MSG_RESULT(no)
1610                 enable_kwallet=no
1611                 if test "x$force_deps" = "xyes"; then
1612                         AC_MSG_ERROR([
1613 Qt4 development headers not found.
1614 Use --disable-kwallet if you do not need KWallet support.
1616                 fi
1617         ])
1620 if test "x$enable_kwallet" = "xyes"; then
1621         AC_MSG_CHECKING([for metaobject compiler])
1622         MOC=`$PKG_CONFIG --variable=moc_location QtCore`
1623         AC_SUBST(MOC)
1624         AC_MSG_RESULT([$MOC])
1626         KWALLET_CXXFLAGS=""
1627         KWALLET_LIBS=""
1628         if test -z "$with_kwallet_includes" || test -z "$with_kwallet_libs"; then
1629                 AC_CHECK_PROG(KDE4_CONFIG, kde4-config, kde4-config, no)
1630                 if test "x$KDE4_CONFIG" = "xno"; then
1631                         enable_kwallet=no
1632                         if test "x$force_deps" = "xyes"; then
1633                                 AC_MSG_ERROR([
1634 kde4-config not found. $KDE4_CONFIG
1635 Use --disable-kwallet if you do not need KWallet support.
1636 Use --with-kwallet-includes and --with-kwallet-libs to set up includes manually.
1638                         fi
1639                 fi
1640         fi
1643 if test "x$enable_kwallet" = "xyes"; then
1644         if test "$ac_kwallet_includes" != "no"; then
1645                 KWALLET_CXXFLAGS="-I$ac_kwallet_includes"
1646         elif test "x$KDE4_CONFIG" != "xno"; then
1647                 KWALLET_CXXFLAGS="$QT4_CFLAGS -I`$KDE4_CONFIG --path include`"
1648         fi
1649         CPPFLAGS="$CPPFLAGS $KWALLET_CXXFLAGS"
1650         AC_CHECK_HEADER([kwallet.h], , [
1651                 enable_kwallet=no
1652                 if test "x$force_deps" = "xyes"; then
1653                         AC_MSG_ERROR([
1654 KWallet development headers not found.
1655 Use --disable-kwallet if you do not need KWallet support.
1657                 fi
1661 if test "x$enable_kwallet" = "xyes"; then
1662         AC_MSG_CHECKING([for KWallet libraries])
1663         if test "$ac_kwallet_libs" != "no"; then
1664                 KWALLET_LIBS="-L$ac_kwallet_libs -lkdeui"
1665         elif test "x$KDE4_CONFIG" != "xno"; then
1666                 KWALLET_LIBS="-L`$KDE4_CONFIG --install lib`/kde4/devel -lkdeui"
1667         else
1668                 KWALLET_LIBS="-lkdeui"
1669         fi
1670         KWALLET_LIBS="$KWALLET_LIBS"
1671         LIBS="$LIBS $KWALLET_LIBS $QT4_LIBS"
1672         AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <kwallet.h>],
1673                 [KWallet::Wallet::LocalWallet();])], [AC_MSG_RESULT([yes])],
1674                 [
1675                         AC_MSG_RESULT(no)
1676                         enable_kwallet=no
1677                         if test "x$force_deps" = "xyes"; then
1678                                 AC_MSG_ERROR([
1679 KWallet development libraries not found.
1680 Use --disable-kwallet if you do not need KWallet support.
1682                         fi
1683                 ])
1686 CPPFLAGS="$CPPFLAGS_save"
1687 LIBS="$LIBS_save"
1688 AC_LANG_POP
1690 AC_SUBST(KWALLET_CXXFLAGS)
1691 AC_SUBST(KWALLET_LIBS)
1693 AM_CONDITIONAL(ENABLE_KWALLET, test "x$enable_kwallet" = "xyes")
1695 dnl #######################################################################
1696 dnl # Check for GPlugin 0.0.17
1697 dnl #######################################################################
1698 if test "x$enable_plugins" = "xyes" ; then
1699         PKG_CHECK_MODULES(GPLUGIN, [gplugin >= 0.0.17 gmodule-2.0], [
1700                 dnl # GPLUGIN_REQ sets pkg-config requirements in the .pc file
1701                 GPLUGIN_REQ=[", gplugin"]
1702         ], [
1703                 AC_MSG_RESULT(no)
1704                 AC_MSG_ERROR([
1705         GPlugin 0.0.17 development headers not found, which are required if you wish to
1706         enable plugins.
1707         Use --disable-plugins if you want to disable plugins.
1708         ])])
1709         AC_SUBST(GPLUGIN_REQ)
1710         AC_SUBST(GPLUGIN_CFLAGS)
1711         AC_SUBST(GPLUGIN_LIBS)
1712 else
1713         enable_introspection=no
1716 dnl # Check for gobject introspection
1717 GOBJECT_INTROSPECTION_CHECK([1.30.0])
1719 if test "x$enable_introspection" = "xyes" ; then
1720         AC_DEFINE(ENABLE_INTROSPECTION, 1, [Define if GObject introspection is enabled.])
1723 dnl #######################################################################
1724 dnl # Check for Python
1725 dnl #######################################################################
1727 dnl Python scripts are used to auto-generate about 3000 lines of C
1728 dnl and XML code that wraps (part of) the existing API so that
1729 dnl it is now accessible through D-Bus.
1731 dnl Python is only required if --enable-dbus is used, and only for
1732 dnl the build process to generate the code, not for running pidgin.
1733 dnl This autogenerated code is system-independent, so in principle we
1734 dnl can generate all of it before shipping.  But I thought adding
1735 dnl auto-generated stuff to the repository is inelegant.
1736 dnl Alternatively, these python scripts could be rewritten
1737 dnl in C (brrrr ...).
1739 AC_ARG_WITH([python],
1740                         AS_HELP_STRING([--with-python=PATH],
1741                                                    [which python interpreter to use for dbus code generation]),
1742                         PYTHON=$withval)
1744 if test "x$enable_dbus" = "xyes" || test "x$enable_consoleui" = "xyes" ; then
1745         if test -z "$PYTHON" -a "x$is_win32" = "xyes" ; then
1746                 dnl there are problems with include files when cross compiling
1747                 dnl feel free to fix it, if you want
1748                 PYTHON=no
1749         elif test -z "$PYTHON" -o "x$PYTHON" = "xyes"; then
1750                 AC_PATH_PROG([PYTHON], [python], [no])
1751         fi
1753         if test x"$PYTHON" = x"no" -a "x$is_win32" != "xyes" ; then
1754                 AC_MSG_WARN([python interpreter not found in your path])
1755                 enable_dbus=no
1756         fi
1758         if test "x$PYTHON" != "xno" ; then
1759         if $PYTHON -c "import sys; sys.exit(sys.version[[:3]] >= '2.4')" ; then
1760                 AC_MSG_WARN([python version >= 2.4 required])
1761                 enable_dbus=no
1762         fi
1763         fi
1766 dnl ###########################################################################
1767 dnl # Find the D-Bus services dir.
1768 dnl #
1769 dnl # This is a 3 step process that
1770 dnl #
1771 dnl # 1. checks if --with-dbus-services was set, if so use that.
1772 dnl # 2. checks if --prefix was given, if so use that.
1773 dnl # 3. fallbacks to installing into what should be the correct system
1774 dnl #    directories.
1775 dnl #
1776 dnl # This is still prone to error if one of the legacy directories exist
1777 dnl # although a newer dbus is installed.  But I have tried to order the
1778 dnl # directory searching to keep this situation at a minimum.
1779 dnl ###########################################################################
1780 AC_ARG_WITH(dbus-services, [AS_HELP_STRING([--with-dbus-services=<dir>], [where the D-Bus services directory is located.])])
1782 DBUS_SERVICES_DIR=""
1784 if test x"$enable_dbus" = "xyes" ; then
1785         AC_MSG_CHECKING([location of the D-Bus services directory])
1786         if ! test -z "$with_dbus_services" ; then
1787                 if ! test -d "$with_dbus_services" ; then
1788                         AC_MSG_ERROR([$with_dbus_services does not exist, if this is the correct location please make sure that it exists.])
1789                 fi
1791                 DBUS_SERVICES_DIR="$with_dbus_services"
1792         else
1793                 if test x"$prefix" = x"NONE" ; then
1794                         dnl # no prefix given, so we look for the correct dbus system paths.
1795                         dnl # if a prefix is given, we use it.
1797                         serviceprefixes="$prefix/share $prefix/lib /usr/share /usr/local/share"
1798                         DBUS_SERVICES_DIR=""
1800                         for d in $serviceprefixes ; do
1801                                 dir="$d/dbus-1/services"
1802                                 if test -d $dir ; then
1803                                         DBUS_SERVICES_DIR="$dir"
1804                                         break
1805                                 fi
1806                         done
1808                         if test -z $DBUS_SERVICES_DIR ; then
1809                                 AC_MSG_ERROR([D-Bus services directory was not found!  Please use --with-dbus-services and specify its location.])
1810                         fi
1811                 else
1812                         DBUS_SERVICES_DIR="$datadir/dbus-1/services"
1813                 fi
1814         fi
1815         AC_MSG_RESULT([$DBUS_SERVICES_DIR])
1816         AC_DEFINE(HAVE_DBUS, 1, [Define if we are using D-Bus.])
1818 AC_SUBST(DBUS_SERVICES_DIR)
1820 if test "x$enable_dbus" = "xyes" ; then
1821         echo "Building with D-Bus support"
1822 else
1823         echo "Building without D-Bus support"
1826 AM_CONDITIONAL(ENABLE_DBUS, test "x$enable_dbus" = "xyes")
1828 dnl Check for Python headers (currently useful only for libgnt)
1829 dnl (Thanks to XChat)
1830 if test "x$enable_consoleui" = "xyes" -a ! -z "$PYTHON" -a x"$PYTHON" != x"no" ; then
1831         AC_MSG_CHECKING(for Python compile flags)
1832         if test -f ${PYTHON}-config; then
1833                 PY_CFLAGS=`${PYTHON}-config --includes`
1834                 PY_LIBS=`${PYTHON}-config --libs`
1835                 AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.])
1836                 AC_MSG_RESULT(ok)
1837         else
1838                 AC_MSG_RESULT([Cannot find ${PYTHON}-config])
1839                 PY_CFLAGS=""
1840                 PY_LIBS=""
1841         fi
1843 AC_SUBST(PY_CFLAGS)
1844 AC_SUBST(PY_LIBS)
1846 dnl #######################################################################
1847 dnl # SSL support
1848 dnl #
1849 dnl # Thanks go to Evolution for the checks.
1850 dnl #######################################################################
1852 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])
1854 SSL_CERTIFICATES_DIR=""
1855 if ! test -z "$ssl_certificates_dir" ; then
1856         if test "x$ssl_certificates_dir" = "xyes" ; then
1857                 AC_MSG_ERROR([--with-system-ssl-certs requires that a location is specified, eg. --with-system-ssl-certs=/etc/pki/tls/certs])
1858         fi
1859         if ! test -d "$ssl_certificates_dir" ; then
1860                 if test "x$is_win32" = "xyes" ; then
1861                         AC_MSG_WARN([$ssl_certificates_dir does not exist. \
1862 It may be OK when cross-compiling, but please make sure about it.])
1863                 else
1864                         AC_MSG_ERROR([$ssl_certificates_dir does not exist, \
1865 if this is the correct location please make sure that it exists.])
1866                 fi
1867         fi
1868         SSL_CERTIFICATES_DIR="$ssl_certificates_dir"
1870 AC_SUBST(SSL_CERTIFICATES_DIR)
1871 if test "x$SSL_CERTIFICATES_DIR" != "x" ; then
1872         AC_DEFINE_UNQUOTED([SSL_CERTIFICATES_DIR], ["$SSL_CERTIFICATES_DIR"],
1873                 [Directory where SSL certificates can be found])
1875 AM_CONDITIONAL(INSTALL_SSL_CERTIFICATES, test "x$SSL_CERTIFICATES_DIR" = "x")
1877 dnl These two are inverses of each other <-- stolen from evolution!
1879 AC_ARG_ENABLE(gnutls,
1880         [  --enable-gnutls=[yes,no]  attempt to use GnuTLS for SSL support [default=yes]],
1881         [enable_gnutls="$enableval"],
1882         [enable_gnutls="yes"])
1884 AC_ARG_ENABLE(nss,
1885         [  --enable-nss=[yes,no,static]    attempt to use Mozilla libnss for SSL support [default=yes]],
1886         [enable_nss="$enableval"],
1887         [enable_nss="yes"])
1889 msg_ssl="None. MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable!"
1890 looked_for_gnutls="no"
1891 dnl #
1892 dnl # Check for GnuTLS if it isn't disabled
1893 dnl #
1894 if test "x$enable_gnutls" != "xno"; then
1895         looked_for_gnutls="yes"
1897         if `$PKG_CONFIG --exists gnutls`; then
1898                 dnl # minimum required version should almost certainly be higher
1899                 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.10], [
1900                         have_gnutls="yes"
1901                 ], [
1902                         AC_MSG_RESULT(no)
1903                         have_gnutls="no"
1904                 ])
1905         fi
1907         if test "x$have_gnutls" = "xyes"; then
1908                 AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have GnuTLS])
1909                 msg_gnutls="GnuTLS"
1910         fi
1913 AM_CONDITIONAL(USE_GNUTLS, test "x$have_gnutls" = "xyes")
1916 dnl #
1917 dnl # Check for NSS if it isn't disabled
1918 dnl #
1919 looked_for_nss="no"
1920 if test "x$enable_nss" != "xno"; then
1921         looked_for_nss="yes"
1923         if `$PKG_CONFIG --exists mozilla-nss`; then
1924                 dnl # TODO: set required minimum version
1925                 PKG_CHECK_MODULES(NSS, mozilla-nss, [
1926                         have_nss="yes"
1927                 ], [
1928                         AC_MSG_RESULT(no)
1929                         have_nss="no"
1930                 ])
1931         elif `$PKG_CONFIG --exists nss`; then
1932                 dnl # TODO: set required minimum version
1933                 PKG_CHECK_MODULES(NSS, nss, [
1934                         have_nss="yes"
1935                 ], [
1936                         AC_MSG_RESULT(no)
1937                         have_nss="no"
1938                 ])
1939         fi
1941         if test "x$have_nss" = "xyes"; then
1942                 AC_DEFINE(HAVE_NSS, 1, [Define if you have Mozilla NSS])
1943                 msg_nss="Mozilla NSS"
1944         fi
1947 AM_CONDITIONAL(USE_NSS, test "x$have_nss" = "xyes")
1950 if test "x$msg_nss" != "x" -a "x$msg_gnutls" != "x"; then
1951         msg_ssl="$msg_nss and $msg_gnutls"
1952 elif test "x$msg_nss" != "x"; then
1953         msg_ssl=$msg_nss
1954 elif test "x$msg_gnutls" != "x"; then
1955         msg_ssl=$msg_gnutls
1956 elif test "x$looked_for_gnutls" = "xyes" -a "x$looked_for_nss" = "xyes" -a "x$force_deps" = "xyes" ; then
1957         AC_MSG_ERROR([
1958 Neither GnuTLS or NSS SSL development headers found.
1959 Use --disable-nss --disable-gnutls if you do not need SSL support.
1960 MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable!
1962 elif test "x$looked_for_gnutls" = "xyes" -a "x$force_deps" = "xyes" ; then
1963         AC_MSG_ERROR([
1964 GnuTLS SSL development headers not found.
1965 Use --disable-gnutls if you do not need SSL support.
1966 MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support.
1968 elif test "x$looked_for_nss" = "xyes" -a "x$force_deps" = "xyes" ; then
1969         AC_MSG_ERROR([
1970 NSS SSL development headers not found.
1971 Use --disable-nss if you do not need SSL support.
1972 MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support.
1976 if test "$ac_cv_cygwin" = yes ; then
1977         LDADD="$LDADD -static"
1978         AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])
1981 AC_SUBST(DEBUG_CPPFLAGS)
1982 AC_SUBST(DEBUG_CFLAGS)
1983 AC_SUBST(LDADD)
1984 AC_SUBST(LIBS)
1986 if test "x$enable_plugins" = "xyes" ; then
1987         AC_DEFINE(PURPLE_PLUGINS, 1, [Define if plugins are enabled.])
1988         AM_CONDITIONAL(PLUGINS, true)
1989         PLUGINS_DEFINE="#define PURPLE_PLUGINS 1"
1990 else
1991         AM_CONDITIONAL(PLUGINS, false)
1992         PLUGINS_DEFINE="#undef PURPLE_PLUGINS"
1994 AC_SUBST(PLUGINS_DEFINE)
1996 dnl #######################################################################
1997 dnl # Check for Cyrus-SASL (for xmpp/irc)
1998 dnl #######################################################################
1999 dnl AC_CHECK_SIZEOF(short)
2000 AC_CHECK_FUNCS(snprintf connect)
2001 AC_SUBST(SASL_LIBS)
2002 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)
2003 if test "x$enable_cyrus_sasl" = "xyes" ; then
2004         AC_CHECK_LIB(sasl2, sasl_client_init, [
2005                         AM_CONDITIONAL(USE_CYRUS_SASL, true)
2006                         AC_DEFINE(HAVE_CYRUS_SASL, [1], [Define to 1 if Cyrus SASL is present])
2007                         SASL_LIBS=-"lsasl2"
2008                 ], [
2009                         AM_CONDITIONAL(USE_CYRUS_SASL, false)
2010                         AC_MSG_ERROR([Cyrus SASL library not found])
2011                 ])
2012 else
2013         AM_CONDITIONAL(USE_CYRUS_SASL, false)
2016 dnl #######################################################################
2017 dnl # Check for Kerberos (for Zephyr)
2018 dnl #######################################################################
2019 AC_DEFINE(ZEPHYR_INT32, long, [Size of an int32.])
2020 AC_SUBST(KRB4_CFLAGS)
2021 AC_SUBST(KRB4_LDFLAGS)
2022 AC_SUBST(KRB4_LIBS)
2023 if test "$kerberos" != "no" ; then
2024         if test "$kerberos" != "yes" ; then
2025                 KRB4_CFLAGS="-I${kerberos}/include"
2026                 if test -d "$kerberos/include/kerberosIV" ; then
2027                         KRB4_CFLAGS="$KRB4_CFLAGS -I${kerberos}/include/kerberosIV"
2028                 fi
2029                 KRB4_LDFLAGS="-L${kerberos}/lib"
2030         elif test -d /usr/local/include/kerberosIV ; then
2031                 KRB4_CFLAGS="-I/usr/local/include/kerberosIV"
2032         elif test -d /usr/include/kerberosIV ; then
2033                 KRB4_CFLAGS="-I/usr/include/kerberosIV"
2034         fi
2035         AC_DEFINE(ZEPHYR_USES_KERBEROS, 1, [Define if kerberos should be used in Zephyr.])
2037         orig_LDFLAGS="$LDFLAGS"
2038         LDFLAGS="$LDFLAGS $KRB4_LDFLAGS"
2039         AC_CHECK_LIB(krb4, krb_rd_req,
2040                         [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
2041                         [AC_CHECK_LIB(krb, krb_rd_req,
2042                                 [KRB4_LIBS="-lkrb -ldes"],
2043                                 [AC_MSG_ERROR([Kerberos 4 libraries not found])],
2044                                 -ldes)],
2045                         -ldes425 -lkrb5 -lk5crypto -lcom_err)
2046         orig_LIBS="$LIBS"
2047         LIBS="$LIBS $KRB4_LIBS"
2048         AC_CHECK_FUNCS(krb_set_key krb_rd_req krb_get_lrealm)
2049         AC_CHECK_FUNCS(krb_get_err_text krb_log)
2050         LIBS="$orig_LIBS"
2051         LDFLAGS="$orig_LDFLAGS"
2054 dnl #######################################################################
2055 dnl # Check for external libzephyr
2056 dnl #######################################################################
2057 AC_SUBST(ZEPHYR_CFLAGS)
2058 AC_SUBST(ZEPHYR_LDFLAGS)
2059 AC_SUBST(ZEPHYR_LIBS)
2060 if test "$zephyr" != "no" ; then
2061         if test "$zephyr" != "yes" ; then
2062                 ZEPHYR_CFLAGS="-I${zephyr}/include"
2063                 ZEPHYR_LDFLAGS="-L${zephyr}/lib"
2064         elif test -d /usr/athena/include/zephyr ; then
2065                 ZEPHYR_CFLAGS="-I/usr/athena/include"
2066         elif test -d /usr/include/zephyr ; then
2067                 ZEPHYR_CFLAGS="-I/usr/include"
2068         elif test -d /usr/local/include/zephyr ; then
2069                 ZEPHYR_CFLAGS="-I/usr/local/include"
2070         fi
2071         AC_DEFINE(LIBZEPHYR_EXT, 1 , [Define if external libzephyr should be used.])
2072         AM_CONDITIONAL(EXTERNAL_LIBZEPHYR, test "x$zephyr" != "xno")
2073         orig_LDFLAGS="$LDFLAGS"
2074         LDFLAGS="$LDFLAGS $ZEPHYR_LDFLAGS"
2075         AC_CHECK_LIB(zephyr, ZInitialize,
2076                 [ZEPHYR_LIBS="-lzephyr"],
2077                 [AC_MSG_ERROR([Zephyr libraries not found])],
2078                 -lzephyr)
2079         orig_LIBS="$LIBS"
2080         LIBS="$orig_LIBS"
2081         LDFLAGS="$orig_LDFLAGS"
2084 AC_MSG_CHECKING(for me pot o' gold)
2085 AC_MSG_RESULT(no)
2086 AC_CHECK_FUNCS(gethostid timegm)
2087 AC_CHECK_HEADERS(paths.h sgtty.h sys/cdefs.h)
2088 AC_CHECK_HEADERS(sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h)
2089 AC_CHECK_HEADERS(sys/select.h sys/uio.h sys/wait.h)
2090 AC_CHECK_HEADERS(termios.h)
2092 # sys/sysctl.h on OpenBSD 4.2 requires sys/param.h
2093 # sys/sysctl.h on FreeBSD requires sys/types.h
2094 AC_CHECK_HEADERS(sys/param.h)
2095 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2096         [[
2097                 #include <sys/types.h>
2098                 #ifdef HAVE_PARAM_H
2099                 # include <sys/param.h>
2100                 #endif
2101         ]])
2103 AC_CHECK_HEADERS(sys/socket.h)
2104 AC_VAR_TIMEZONE_EXTERNALS
2106 AC_CHECK_MEMBER([struct tm.tm_gmtoff],
2107         [AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if you have a tm_gmtoff member in struct tm])],
2108         [],
2109         [[#include <time.h>]])
2111 dnl #######################################################################
2112 dnl # Disable pixmap installation
2113 dnl #######################################################################
2114 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)
2116 AM_CONDITIONAL(INSTALL_PIXMAPS, test "x$enable_pixmaps" = "xyes")
2118 dnl #######################################################################
2119 dnl # Tweak status tray icon installation directory
2120 dnl #######################################################################
2121 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)
2123 AM_CONDITIONAL(ENABLE_TRAYCOMPAT, test "x$enable_traycompat" = "xyes")
2125 # check for gtk-doc
2126 m4_ifdef([GTK_DOC_CHECK], [
2127 GTK_DOC_CHECK([1.16],[--flavour no-tmpl])
2129         if test "x$force_deps" = "xyes" -a "x$enable_gtk_doc" = "xyes"; then
2130                 AC_MSG_ERROR([
2131 You have requested to generate documentation, but gtk-doc was not found.
2132                 ])
2133         fi
2135         AM_CONDITIONAL([ENABLE_GTK_DOC], false)
2136         enable_gtk_doc=no
2139 AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],
2140         [compile with debugging support])], , enable_debug=no)
2142 if test "x$enable_debug" = "xyes" ; then
2143         AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])
2146 AM_CONDITIONAL(PURPLE_AVAILABLE, true)
2148 AC_CONFIG_FILES([Makefile
2149                    doc/Makefile
2150                    doc/pidgin.1
2151                    doc/finch.1
2152                    doc/reference/Makefile
2153                    doc/reference/finch/Makefile
2154                    doc/reference/finch/version.xml
2155                    doc/reference/libpurple/Makefile
2156                    doc/reference/libpurple/version.xml
2157                    doc/reference/protocols/Makefile
2158                    doc/reference/protocols/facebook/Makefile
2159                    doc/reference/protocols/version.xml
2160                    doc/reference/pidgin/Makefile
2161                    doc/reference/pidgin/version.xml
2162                    m4macros/Makefile
2163                    pidgin/Makefile
2164                    pidgin/data/pidgin.desktop.in
2165                    pidgin/data/pidgin-3.pc
2166                    pidgin/data/pidgin-3-uninstalled.pc
2167                    pidgin/pixmaps/Makefile
2168                    pidgin/pixmaps/emotes/default/24/Makefile
2169                    pidgin/pixmaps/emotes/small/16/Makefile
2170                    pidgin/plugins/Makefile
2171                    pidgin/plugins/cap/Makefile
2172                    pidgin/plugins/disco/Makefile
2173                    pidgin/plugins/gestures/Makefile
2174                    pidgin/plugins/gevolution/Makefile
2175                    pidgin/plugins/musicmessaging/Makefile
2176                    pidgin/plugins/ticker/Makefile
2177                    pidgin/plugins/win32/transparency/Makefile
2178                    pidgin/plugins/win32/winprefs/Makefile
2179                    pidgin/themes/Makefile
2180                    pidgin/win32/pidgin_dll_rc.rc
2181                    pidgin/win32/pidgin_exe_rc.rc
2182                    libpurple/data/purple-url-handler.desktop.in
2183                    libpurple/data/purple-3.pc
2184                    libpurple/data/purple-3-uninstalled.pc
2185                    libpurple/example/Makefile
2186                    libpurple/plugins/Makefile
2187                    libpurple/plugins/keyrings/Makefile
2188                    libpurple/Makefile
2189                    libpurple/protocols/Makefile
2190                    libpurple/protocols/bonjour/Makefile
2191                    libpurple/protocols/facebook/Makefile
2192                    libpurple/protocols/gg/Makefile
2193                    libpurple/protocols/irc/Makefile
2194                    libpurple/protocols/jabber/Makefile
2195                    libpurple/protocols/jabber/tests/Makefile
2196                    libpurple/protocols/msn/Makefile
2197                    libpurple/protocols/mxit/Makefile
2198                    libpurple/protocols/novell/Makefile
2199                    libpurple/protocols/null/Makefile
2200                    libpurple/protocols/oscar/Makefile
2201                    libpurple/protocols/oscar/tests/Makefile
2202                    libpurple/protocols/sametime/Makefile
2203                    libpurple/protocols/silc/Makefile
2204                    libpurple/protocols/simple/Makefile
2205                    libpurple/protocols/yahoo/Makefile
2206                    libpurple/protocols/yahoo/tests/Makefile
2207                    libpurple/protocols/zephyr/Makefile
2208                    libpurple/tests/Makefile
2209                    libpurple/purple.h
2210                    libpurple/version.h
2211                    libpurple/win32/libpurplerc.rc
2212                    share/sounds/Makefile
2213                    share/ca-certs/Makefile
2214                    finch/finch.pc
2215                    finch/finch_winres.rc
2216                    finch/libfinch_winres.rc
2217                    finch/Makefile
2218                    finch/libgnt/Makefile
2219                    finch/libgnt/gnt.pc
2220                    finch/libgnt/libgnt_winres.rc
2221                    finch/libgnt/wms/Makefile
2222                    finch/plugins/Makefile
2223                    po/Makefile.in
2224                   ])
2225 AC_OUTPUT
2227 echo
2228 echo $PACKAGE $VERSION
2230 echo
2231 echo Build GTK+ UI................. : $enable_gtkui
2232 echo Build console UI.............. : $enable_consoleui
2233 echo Build for X11................. : $with_x
2234 echo
2235 echo Enable Gestures............... : $enable_gestures
2236 echo Protocols to build dynamically : $DYNAMIC_PRPLS
2237 echo Protocols to link statically.. : $STATIC_PRPLS
2238 echo
2239 echo Build with GStreamer support.. : $enable_gst
2240 echo Build with D-Bus support...... : $enable_dbus
2241 echo Build with voice and video.... : $enable_vv
2242 if test "x$enable_dbus" = "xyes" ; then
2243         eval eval echo D-Bus services directory...... : $DBUS_SERVICES_DIR
2245 echo Build with GNU Libidn......... : $enable_idn
2246 echo SSL Library/Libraries......... : $msg_ssl
2247 if test "x$SSL_CERTIFICATES_DIR" != "x" ; then
2248         eval eval echo SSL CA certificates directory. : $SSL_CERTIFICATES_DIR
2250 echo Build with Cyrus SASL support. : $enable_cyrus_sasl
2251 echo Use kerberos 4 with zephyr.... : $kerberos
2252 echo Use external libzephyr........ : $zephyr
2253 echo Install pixmaps............... : $enable_pixmaps
2254 echo Old tray icon compatibility... : $enable_traycompat
2255 echo Install translations.......... : $enable_i18n
2256 echo Has you....................... : yes
2257 echo
2258 echo Use XScreenSaver Extension.... : $enable_screensaver
2259 echo Use X Session Management...... : $enable_sm
2260 echo Use startup notification...... : $enable_startup_notification
2261 echo Build with Enchant support.... : $use_enchant
2262 echo Build with GCR widgets........ : $enable_gcr
2263 echo Build Unity integration plugin.: $enable_unity
2264 echo
2265 echo Build with GNOME Keyring...... : $enable_gnome_keyring
2266 echo Build with KWallet............ : $enable_kwallet
2267 echo Build with Secret Service..... : $enable_secret_service
2268 echo
2269 echo Build with plugin support..... : $enable_plugins
2270 echo Enable Introspection...........: $enable_introspection
2272 if test "x$is_win32" = "xyes" ; then
2273         echo
2274         echo Win32 directory structure..... : $with_win32_dirs
2277 echo
2278 echo Print debugging messages...... : $enable_debug
2279 echo Generate documentation........ : $enable_gtk_doc
2280 echo
2281 eval eval echo Pidgin will be installed in $bindir.
2282 if test "x$pidginpath" != "x" ; then
2283         echo Warning: You have an old copy of Pidgin at $pidginpath.
2285 if test "x$enable_pixmaps" = "xno" ; then
2286         echo
2287         echo Warning: You have disabled the installation of pixmap data, but Pidgin
2288         echo still requires installed pixmaps.  Be sure you know what you are doing.
2290 if test "x$enable_i18n" = "xno" ; then
2291         echo
2292         echo Warning: You have disabled the building and installation of translation
2293         echo data.  This will prevent building pidgin.desktop and the GConf schemas.
2294         echo Be sure you know what you are doing.
2296 echo
2297 echo configure complete, now type \'make\'
2298 echo