1 dnl ensure recent enough version of Autoconf
4 dnl Use `VERSION' files to get version.
5 m4_define([SIPE_VERSION_DATA], m4_include([VERSION]))
7 dnl Strip off newline characters.
8 m4_define([SIPE_VERSION],
9 m4_substr(SIPE_VERSION_DATA,
10 [0], m4_decr(m4_len(SIPE_VERSION_DATA))))
13 m4_define([SIPE_HOMEPAGE], [http://sipe.sourceforge.net/])
15 dnl initialize package name, version, bugtracker & homepage
16 AC_INIT([pidgin-sipe], SIPE_VERSION,
17 [https://sourceforge.net/tracker/?atid=949931&group_id=194563], [],
20 dnl setup automake and require recent enough version
21 AM_INIT_AUTOMAKE([1.9 dist-bzip2 no-define tar-ustar])
25 dnl set PACKAGE_URL for autoconf < 2.64
26 AS_IF([test "x${PACKAGE_URL}" = x],
27 [AC_MSG_NOTICE([set PACKAGE_URL for autoconf < 2.64])
28 AC_DEFINE(PACKAGE_URL, "SIPE_HOMEPAGE", [Define to the home page for this package.])
31 dnl set programming language
36 dnl setup shared library generation
37 LT_INIT([disable-static])
40 IT_PROG_INTLTOOL([0.35.0])
44 dnl ******************************
46 dnl ******************************
47 AC_MSG_CHECKING([for Win32])
49 [*-mingw*], [os_win32=yes],
51 AC_MSG_RESULT([$os_win32])
52 AM_CONDITIONAL(SIPE_OS_WIN32, [test "x${os_win32}" = xyes])
54 dnl checks for header files
55 AC_CHECK_HEADERS([sys/sockio.h])
57 dnl checks for library functions
60 dnl tell pkgconfig to look in the same prefix where we're installing this to,
61 dnl as that is likely where libpurple will be found if it is not in the default
63 PREFIX=$ac_default_prefix
64 AS_IF([test "x$prefix" != xNONE],
67 PKG_CONFIG_PATH="$PKG_CONFIG_PATH":"$PREFIX/lib/pkgconfig"
68 export PKG_CONFIG_PATH
72 [AS_HELP_STRING([--enable-debug],
73 [compile with debugging support [default=no]])],
77 AS_IF([test "x$enable_debug" = xyes],
78 [AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])])
79 AC_SUBST(DEBUG_CFLAGS)
81 dnl quality check mode
82 dnl For people who are interested in finding bugs and not hiding them
83 AC_ARG_ENABLE(quality-check,
84 [AS_HELP_STRING([--enable-quality-check],
85 [compile with compiler checks enabled [default=yes]])],
87 [enable_quality_check=yes])
89 AS_IF([test "x$enable_quality_check" = xyes],
90 [QUALITY_CFLAGS="$QUALITY_CFLAGS -Werror -Wall"
91 ac_save_CFLAGS=$CFLAGS
94 AC_MSG_CHECKING([if $CC supports -Wextra])
95 CFLAGS="$QUALITY_CFLAGS -Wextra"
99 QUALITY_CFLAGS="$QUALITY_CFLAGS -Wextra"],
103 dnl declaration-after-statement (ISO C90 behaviour, as on Windows & GCC < 3)
104 AC_MSG_CHECKING([if $CC supports -Werror=declaration-after-statement])
105 CFLAGS="$QUALITY_CFLAGS -Werror=declaration-after-statement"
109 QUALITY_CFLAGS="$QUALITY_CFLAGS -Werror=declaration-after-statement"],
112 CFLAGS=$ac_save_CFLAGS])
113 AC_SUBST(QUALITY_CFLAGS)
115 dnl Check for pkg-config before using it
118 dnl build option: with voice & video support (for all backends)
120 [AC_HELP_STRING([--with-vv],
121 [compile with voice and video support @<:@default=check@:>@])],
122 [AS_IF([test "x$withval" = xyes], [with_vv=check])],
125 dnl check for Kerberos 5 support
127 [AC_HELP_STRING([--with-krb5],
128 [compile with Kerberos 5 support @<:@default=check@:>@])],
129 [AS_IF([test "x$withval" = xyes], [with_krb5=check])],
132 AS_IF([test "x$with_krb5" = xno], [], dnl disabled by user
133 [test "x$with_krb5" = xcheck], dnl autodetect with krb5-config
134 [AC_MSG_CHECKING(if Kerberos 5 is available)
135 AS_IF([AC_RUN_LOG([krb5-config --version])],
136 [KRB5_CFLAGS=`krb5-config --cflags 2>/dev/null`
139 dnl same as AC_CHECK_LIB()
140 LIBS="$LIBS `krb5-config --libs gssapi 2>/dev/null`"
141 AC_DEFINE(HAVE_LIBKRB5, 1, [Define to 1 if you have the `krb5' library (-lkrb5)])],
144 [ dnl path specified by user
145 KRB5_CFLAGS="-I${with_krb5}/include"
146 KRB5_LDFLAGS="-L${with_krb5}/lib"
147 ac_save_LDFLAGS="$LDLAGS"
148 LDFLAGS="$LDFLAGS $KRB5_LDFLAGS"
149 AC_CHECK_LIB(krb5, krb5_rd_req, [],
150 [AC_CHECK_LIB(krb5, krb5_rd_req, [],
151 [AC_ERROR(Kerberos 5 libraries not found)])])
152 AC_CHECK_LIB(gssapi_krb5, gss_krb5_export_lucid_sec_context, [],
153 [AC_ERROR(GSSAPI Kerberos 5 libraries not found)])
154 LDFLAGS="$ac_save_LDFLAGS"])
155 AM_CONDITIONAL(SIP_SEC_KRB5, [test "x$with_krb5" != xno])
156 AC_SUBST(KRB5_CFLAGS)
157 AC_SUBST(KRB5_LDFLAGS)
160 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.12.0])
161 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0 >= 2.12.0])
164 dnl See also: https://bugzilla.gnome.org/show_bug.cgi?id=613653#c8
165 PKG_CHECK_MODULES(GMIME, [gmime-2.6 >= 2.5.2],
167 [PKG_CHECK_MODULES(GMIME, [gmime-2.4 >= 2.4.16],
171 AM_CONDITIONAL(SIPE_MIME_GMIME, [test "x$ac_have_gmime" = xyes])
172 AS_IF([test "x$ac_have_gmime" = xyes],
173 [AC_DEFINE(HAVE_GMIME, 1, [Define if gmime should be used in sipe.])])
176 PKG_CHECK_MODULES(NSS, [nss],
178 [PKG_CHECK_MODULES(NSS, [mozilla-nss],
180 [PKG_CHECK_MODULES(NSS, [microb-engine-nss],
185 AM_CONDITIONAL(SIPE_CRYPTO_NSS, [test "x$ac_have_nss" = xyes])
186 AS_IF([test "x$ac_have_nss" = xyes],
187 [AC_DEFINE(HAVE_NSS, 1, [Define if nss should be used in sipe.])])
189 dnl check for libxml2
190 PKG_CHECK_MODULES(LIBXML2, [libxml-2.0])
192 dnl assumption check: sizof(uuid_t) must be 16 (see uuid.c)
193 AC_MSG_CHECKING([that sizeof(uuid_t) is 16])
194 ac_save_CFLAGS=$CFLAGS
195 CFLAGS="$GLIB_CFLAGS $QUALITY_CFLAGS"
196 dnl note the [[[ quoting: our code contains []!
203 /* Copied from uuid.c */
207 guint16 time_hi_and_version;
208 guint8 clock_seq_hi_and_reserved;
209 guint8 clock_seq_low;
213 [return(sizeof(uuid_t) == 16 ? 0 : 1);]),
214 [AC_MSG_RESULT(yes)],
215 [AC_MSG_FAILURE([sizeof(uuid_t) is not 16
217 Please notify the SIPE developers and provide the following information:
223 [AC_MSG_WARN([cross compiling: not checking])])
224 CFLAGS=$ac_save_CFLAGS
226 dnl build option: purple backend
227 AC_ARG_ENABLE([purple],
228 [AC_HELP_STRING([--enable-purple], [build purple plugin @<:@default=yes@:>@])],
232 AS_IF([test "x$enable_purple" != xno],
233 [PKG_CHECK_MODULES(PURPLE, [purple >= 2.4.0],
234 [dnl unfortunately PURPLE_MAJOR_VERSION is not exported by purple.m4
235 PURPLE_MAJOR_VERSION=`$PKG_CONFIG --modversion purple | cut -d. -f 1`
236 AC_SUBST(PURPLE_MAJOR_VERSION)
238 dnl let user now if he has a 32- and 64-bit header conflict...
239 AC_MSG_CHECKING([for 32- and 64-bit header conflicts])
240 ac_save_CFLAGS=$CFLAGS
241 CFLAGS="$PURPLE_CFLAGS $QUALITY_CFLAGS"
247 /* Compile some code that has caused trouble in the past */
248 void testfunc(unsigned long len)
250 PurpleCipherContext *rc4 = NULL;
251 purple_cipher_context_set_option(rc4, "key_len", GUINT_TO_POINTER(len));
255 [AC_MSG_RESULT(none)],
256 [AC_MSG_FAILURE([conflicts found.
258 Check that you have the correct glib/libpurple headers installed for
259 your architecture or set PURPLE_CFLAGS to override the system defaults.
264 dnl test program needs to be in the same location as libpurple
265 dnl installation for latter to load ssl plugin referenced by
267 AS_IF([test "x${os_win32}" != xyes],
268 [dnl purple SSL support is mandatory
269 AC_MSG_CHECKING([for purple SSL support])
279 purple_plugins_init();
280 purple_plugins_probe(G_MODULE_SUFFIX);
282 return(purple_ssl_is_supported()?0:1);
285 [AC_MSG_FAILURE([your purple hasn't been compiled with SSL support.
288 [AC_MSG_WARN([cross compiling: not checking])])
291 dnl check whether enable voice and video support
292 AS_IF([test "x$with_vv" = xno], [], dnl disabled by user
293 [test "x$with_vv" = xcheck], dnl autodetect
294 [AC_MSG_CHECKING(for purple voice and video support)
298 #include <libpurple/media.h>
300 [return (purple_media_get_type() == G_TYPE_NONE ? 1 : 0);
301 purple_media_get_active_local_candidates(NULL, NULL, NULL);
302 purple_media_get_active_remote_candidates(NULL, NULL, NULL);]
305 PKG_CHECK_MODULES(NICE, [nice >= 0.0.14],
306 [PKG_CHECK_MODULES(PURPLE_MEDIA, [purple >= 2.7.0],
307 [with_purple_vv=yes],
308 [AC_MSG_NOTICE(libpurple >= 2.7.0 required: disabling purple voice and video support)])],
309 [AC_MSG_NOTICE(libnice required: disabling purple voice and video support)])],
310 [AC_MSG_RESULT(no - your purple hasn't been compiled with voice and video support.)],
311 [AC_MSG_WARN([cross compiling: not checking])])
313 CFLAGS=$ac_save_CFLAGS
315 [enable_purple=no])])
316 AM_CONDITIONAL(SIPE_INCLUDE_PURPLE, [test "x$enable_purple" != xno])
318 dnl build option: telepathy backend
319 AC_ARG_ENABLE([telepathy],
320 [AC_HELP_STRING([--enable-telepathy], [build telepathy plugin @<:@default=yes@:>@])],
322 [enable_telepathy=yes])
323 AS_IF([test "x$enable_telepathy" != xno],
324 [PKG_CHECK_MODULES(TELEPATHY, [telepathy-glib],
325 [dnl GMIME is a build requirement
326 AS_IF([test "x$ac_have_gmime" = xyes],
328 [AC_ERROR(GMIME package is required for telepathy plugin)])
330 dnl NSS is a build requirement
331 AS_IF([test "x$ac_have_nss" = xyes],
333 [AC_ERROR(NSS package is required for telepathy plugin)])
335 dnl NOTHING IMPLEMENTED YET!!!
337 [enable_telepathy=no])])
338 AM_CONDITIONAL(SIPE_INCLUDE_TELEPATHY, [test "x$enable_telepathy" != xno])
340 dnl build option: kopete backend
341 AC_ARG_ENABLE([kopete],
342 [AC_HELP_STRING([--enable-kopete], [build kopete plugin @<:@default=no@:>@])],
345 AS_IF([test "x$enable_kopete" != xno],
346 [dnl GMIME is a build requirement
347 AS_IF([test "x$ac_have_gmime" = xyes],
349 [AC_ERROR(GMIME package is required for kopete plugin)])
351 dnl NSS is a build requirement
352 AS_IF([test "x$ac_have_nss" = xyes],
354 [AC_ERROR(NSS package is required for kopete plugin)])
356 dnl NOTHING IMPLEMENTED YET!!!
359 AM_CONDITIONAL(SIPE_INCLUDE_KOPETE, [test "x$enable_kopete" != xno])
362 AS_IF([test "x$enable_purple" = xno -a "x$enable_telepathy" = xno -a "x$enable_kopete" = xno],
363 [AC_ERROR(at least one plugin must be selected
365 If you didn't use a --enable option then please check that you have
366 the headers for the packages "purple" or "telepathy-glib" installed.
370 dnl enable voice & video support if any backend supports it
371 AS_IF([test "x$with_purple_vv" != xno],
372 [AC_DEFINE(HAVE_VV, 1, [Define if voice & video is enabled.])])
373 AM_CONDITIONAL(SIPE_WITH_VV, [test "x$with_purple_vv" != xno])
376 AC_MSG_CHECKING([locale_CPPFLAGS])
377 LOCALE_CPPFLAGS='-DLOCALEDIR=\"$(prefix)/$(DATADIRNAME)/locale\"'
378 AC_SUBST([LOCALE_CPPFLAGS])
379 AC_MSG_RESULT([$LOCALE_CPPFLAGS])
381 AC_SUBST(GETTEXT_PACKAGE, "${PACKAGE_NAME}")
386 dnl substitutions and generated files
387 AC_CONFIG_HEADERS([config.h])
396 pixmaps/scalable/Makefile
401 src/telepathy/Makefile
408 dnl additional info for the user
410 AS_IF([test "x$enable_purple" = xno],
411 [AS_ECHO("Not building purple plugin")],
412 [AS_ECHO("Build purple plugin")
413 AS_ECHO("PURPLE_CFLAGS : $PURPLE_CFLAGS")
414 AS_ECHO("PURPLE_LIBS : $PURPLE_LIBS")
415 AS_IF([test "x$with_purple_vv" = xno],
416 [AS_ECHO("Voice and video: disabled")],
417 [AS_ECHO("Voice and video: enabled")])
420 AS_IF([test "x$enable_telepathy" = xno],
421 [AS_ECHO("Not building telepathy plugin")],
422 [AS_ECHO("Build telepathy plugin")
424 AS_ECHO("NOTHING IMPLEMENTED YET!!!")
426 AS_ECHO("TELEPATHY_CFLAGS: $TELEPATHY_CFLAGS")
427 AS_ECHO("TELEPATHY_LIBS : $TELEPATHY_LIBS")])
429 AS_IF([test "x$enable_kopete" = xno],
430 [AS_ECHO("Not building kopete plugin")],
431 [AS_ECHO("Build kopete plugin")
433 AS_ECHO("NOTHING IMPLEMENTED YET!!!")
436 AS_IF([test "x$with_krb5" = xno],
437 [AS_ECHO("Not building with Kerberos 5 support")],
438 [AS_ECHO("Build with Kerberos 5 support")
439 AS_ECHO("KRB5_CFLAGS : $KRB5_CFLAGS")
440 AS_ECHO("KRB5_LDFLAGS : $KRB5_LDFLAGS")])
442 AS_IF([test "x$enable_debug" = xno],
443 [AS_ECHO("Debugging not enabled")],
444 [AS_ECHO("Build with debugging enabled")
445 AS_ECHO("DEBUG_CFLAGS : $DEBUG_CFLAGS")])
447 AS_IF([test "x$QUALITY_CFLAGS" = x],
448 [AS_ECHO("Compiler checks disabled")],
449 [AS_ECHO("Build with compiler checks enabled")
450 AS_ECHO("QUALITY_CFLAGS : $QUALITY_CFLAGS")])
452 AS_ECHO("configure complete. Now run 'make'")