configure: fix build against latest gettext
[siplcs.git] / configure.ac
blob8148ed9075afc0c87f7eea1648d5d7544ea9f5fd
1 dnl ensure recent enough version of Autoconf
2 AC_PREREQ([2.50])
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))))
12 dnl homepage
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/p/sipe/bugs/], [],
18         SIPE_HOMEPAGE)
20 AC_DEFINE([SIPE_TRANSLATIONS_URL],
21         ["https://www.transifex.com/stefanb/pidgin-sipe/"],
22         [URL for submitting translations.])
24 dnl define optional git commit ID generated by autogen.sh
25 m4_define([SIPE_GIT_COMMIT], m4_sinclude([GITVERSION]))
26 AS_IF([test "x"SIPE_GIT_COMMIT != x],
27         [AC_MSG_NOTICE([set git commit])
28          AC_DEFINE(PACKAGE_GIT_COMMIT, "SIPE_GIT_COMMIT", [Define to the git commit for this package.])
31 dnl setup automake and require recent enough version
32 AM_INIT_AUTOMAKE([1.9 dist-bzip2 dist-xz no-define tar-ustar])
34 AC_CANONICAL_HOST
36 dnl set PACKAGE_URL for autoconf < 2.64
37 AS_IF([test "x${PACKAGE_URL}" = x],
38         [AC_MSG_NOTICE([set PACKAGE_URL for autoconf < 2.64])
39          AC_DEFINE(PACKAGE_URL, "SIPE_HOMEPAGE", [Define to the home page for this package.])
42 dnl set programming language
43 AC_LANG(C)
44 AM_PROG_CC_C_O
45 AM_PROG_LEX
46 AC_HEADER_STDC
48 dnl setup shared library generation
49 LT_INIT([disable-static])
51 dnl checks for tools
52 IT_PROG_INTLTOOL([0.35.0])
53 AC_PROG_INSTALL
54 AC_PROG_RANLIB
56 dnl ******************************
57 dnl Win32
58 dnl ******************************
59 AC_MSG_CHECKING([for Win32])
60 AS_CASE(["$host"],
61                 [*-mingw*], [os_win32=yes],
62                 [os_win32=no])
63 AC_MSG_RESULT([$os_win32])
64 AM_CONDITIONAL(SIPE_OS_WIN32, [test "x${os_win32}" = xyes])
66 dnl checks for header files
67 AC_CHECK_HEADERS([])
69 dnl checks for library functions
70 AC_CHECK_FUNCS([])
72 dnl tell pkgconfig to look in the same prefix where we're installing this to,
73 dnl as that is likely where libpurple will be found if it is not in the default
74 dnl pkgconfig path
75 PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${libdir}/pkgconfig"
76 export PKG_CONFIG_PATH
78 dnl debug mode
79 AC_ARG_ENABLE(debug,
80         [AS_HELP_STRING([--enable-debug],
81                         [compile with debugging support @<:@default=no@:>@])],
82         [],
83         [enable_debug=no])
85 AS_IF([test "x$enable_debug" = xyes],
86         [AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])])
87 AC_SUBST(DEBUG_CFLAGS)
89 dnl quality check mode
90 dnl For people who are interested in finding bugs and not hiding them
91 AC_ARG_ENABLE(quality-check,
92         [AS_HELP_STRING([--enable-quality-check],
93                         [compile with compiler checks enabled @<:@default=yes@:>@])],
94         [],
95         [enable_quality_check=yes])
97 AS_IF([test "x$enable_quality_check" = xyes],
98         [dnl default quality configuration
99          QUALITY_CFLAGS="$QUALITY_CFLAGS -Werror -Wall"
101          dnl enable warnings supported by the GCC on the build system
102          for newflag in \
103                         "-Wextra" \
104                         "-Waggregate-return" \
105                         "-Wcast-align" \
106                         "-Wcast-function-type" \
107                         "-Wdeclaration-after-statement" \
108                         "-Wdeprecated-declarations" \
109                         "-Wduplicate-decl-specifier" \
110                         "-Winit-self" \
111                         "-Wmaybe-uninitialized" \
112                         "-Wmissing-declarations" \
113                         "-Wmissing-prototypes" \
114                         "-Wnested-externs" \
115                         "-Wpointer-arith" \
116                         "-Wundef" \
117                         "-Wunused-but-set-variable" \
118          ; do
119                  ac_save_CFLAGS="$CFLAGS"
120                  AC_MSG_CHECKING([if $CC supports $newflag])
121                  CFLAGS="$CFLAGS $QUALITY_CFLAGS $newflag"
122                  AC_COMPILE_IFELSE(
123                         [AC_LANG_SOURCE([[]])],
124                         [AC_MSG_RESULT(yes)
125                          QUALITY_CFLAGS="$QUALITY_CFLAGS $newflag"],
126                         [AC_MSG_RESULT(no)]
127                  )
128                  CFLAGS="$ac_save_CFLAGS"
129          done
130         ])
131 AC_SUBST(QUALITY_CFLAGS)
133 dnl check for availability of addition linker flags
134 for newflag in \
135         "-Wl,-Bsymbolic-functions" \
136 ; do
137         ac_save_LDFLAGS="$LDFLAGS"
138         AC_MSG_CHECKING([if $CC supports $newflag])
139         LDFLAGS="$LDFLAGS $ADDITIONAL_LDFLAGS $newflag"
140         AC_LINK_IFELSE(
141                 [AC_LANG_SOURCE([[
142 int main(int argc, char *argv[])
144         return(0);
146                  ]])],
147                 [AC_MSG_RESULT(yes)
148                  ADDITIONAL_LDFLAGS="$ADDITIONAL_LDFLAGS $newflag"],
149                 [AC_MSG_RESULT(no)]
150         )
151         LDFLAGS="$ac_save_LDFLAGS"
152 done
153 AC_SUBST(ADDITIONAL_LDFLAGS)
155 dnl Check for pkg-config before using it
156 PKG_PROG_PKG_CONFIG
158 dnl check for valgrind (optional, only needed for debugging)
159 PKG_CHECK_MODULES(VALGRIND, [valgrind],
160         [AC_DEFINE(HAVE_VALGRIND, 1, [Define to 1 if you have the valgrind headers])],
161         [AC_MSG_RESULT(no)])
163 dnl build option: with AppStream support
164 AC_ARG_WITH(appstream,
165         [AC_HELP_STRING([--with-appstream],
166                 [install AppStream XML file @<:@default=yes@:>@])],
167         [AS_IF([test "x$withval" = xno], [with_appstream=no])],
168         [with_appstream=yes])
169 AM_CONDITIONAL(SIPE_WITH_APPSTREAM, [test "x$with_appstream" != xno])
171 dnl build option: with voice & video support (for all backends)
172 AC_ARG_WITH(vv,
173         [AC_HELP_STRING([--with-vv],
174                 [compile with voice and video support @<:@default=check@:>@])],
175         [AS_IF([test "x$withval" = xyes], [with_vv=yes])],
176         [with_vv=check])
178 dnl check for Kerberos 5 support
179 AC_ARG_WITH([krb5],
180         [AC_HELP_STRING([--with-krb5],
181                 [compile with Kerberos 5 support @<:@default=check@:>@])],
182         [AS_IF([test "x$withval" = xyes], [with_krb5=check])],
183         [with_krb5=check])
185 AS_IF([test "x$with_krb5" = xno], [], dnl disabled by user
186       [test "x$with_krb5" = xcheck],  dnl autodetect with krb5-config
187         [AC_MSG_CHECKING(if Kerberos 5 is available)
188          AS_IF([AC_RUN_LOG([krb5-config --version])],
189                 [KRB5_CFLAGS=`krb5-config --cflags 2>/dev/null`
190                  KRB5_LDFLAGS=""
192                  dnl same as AC_CHECK_LIB()
193                  LIBS="$LIBS `krb5-config --libs gssapi 2>/dev/null`"],
194                 [AC_MSG_RESULT(no)
195                  with_krb5=no])],
196       [                               dnl path specified by user
197         KRB5_CFLAGS="-I${with_krb5}/include"
198         KRB5_LDFLAGS="-L${with_krb5}/lib"
199       ])
200 AS_IF([test "x$with_krb5" != xno],
201       [ac_save_CFLAGS="$CFLAGS"
202        ac_save_LDFLAGS="$LDFLAGS"
203        CFLAGS="$CFLAGS $KRB5_CFLAGS"
204        LDFLAGS="$LDFLAGS $KRB5_LDFLAGS"
205        AC_CHECK_HEADERS([gssapi/gssapi.h gssapi/gssapi_krb5.h],
206                         [],
207                         [AC_ERROR([GSSAPI headers not found])])
208        AC_CHECK_FUNC([gss_init_sec_context],
209                      [],
210                      [AC_ERROR([GSSAPI libraries not found])])
212        dnl older GSSAPI releases don't have gss_acquire_cred_with_passwd()
213        AC_CHECK_HEADER([gssapi/gssapi_ext.h],
214                        [AC_CHECK_FUNC([gss_acquire_cred_with_password],
215                                       [AC_DEFINE(HAVE_GSSAPI_PASSWORD_SUPPORT, 1, [Define to 1 if gssapi has gss_acquire_cred_with_passwd()])],
216                                       [AC_MSG_NOTICE([gss_acquire_cred_with_passwd() required: disabling GSSAPI non-SSO support])])],
217                        [AC_MSG_NOTICE([gssapi/gssapi_ext.h required: disabling GSSAPI non-SSO support])])
219        CFLAGS="$ac_save_CFLAGS"
220        LDFLAGS="$ac_save_LDFLAGS"
221       ])
223 AM_CONDITIONAL(SIP_SEC_GSSAPI, [test "x$with_krb5" != xno])
224 AC_SUBST(KRB5_CFLAGS)
225 AC_SUBST(KRB5_LDFLAGS)
227 dnl check for DBUS support
228 AC_ARG_WITH([dbus],
229         [AC_HELP_STRING([--with-dbus],
230                 [compile with D-BUS support @<:@default=check@:>@])],
231         [AS_IF([test "x$withval" = xyes], [with_dbus=check])],
232         [with_dbus=check])
234 AS_IF([test "x$with_dbus" = xno], [], dnl disabled by user
235       [test "x$with_dbus" = xcheck],  dnl autodetect with pkg-config
236         [PKG_CHECK_MODULES(DBUS, [dbus-1],
237                 [with_dbus=yes],
238                 [with_dbus=no])
239         ])
240 AM_CONDITIONAL(SIPE_DBUS, [test "x$with_dbus" = xyes])
241 AS_IF([test "x$with_dbus" = xyes],
242         [AC_DEFINE(HAVE_DBUS, 1, [Define if D-BUS should be used in sipe.])])
244 AC_ARG_ENABLE(gssapi_only,
245         [AS_HELP_STRING([--enable-gssapi-only],
246                         [disable all internal authentication code and only use
247                          GSSAPI for authentication @<:@default=yes@:>@])],
248         [],
249         dnl requires Kerberos which provides GSSAPI
250         [enable_gssapi_only=$with_krb5])
251 AS_IF([test "x$enable_gssapi_only" != xno],
252         [AC_CHECK_HEADER([gssapi/gssapi_ntlmssp.h],
253                        [AC_DEFINE(HAVE_GSSAPI_ONLY, 1, [Define to 1 to enable GSSAPI-only mode])],
254                        [AC_MSG_NOTICE([gssapi/gssapi_ntlm.h required: falling back to internal authentication implementation])
255                         enable_gssapi_only=no])
256         ])
257 AM_CONDITIONAL(SIP_SEC_GSSAPI_ONLY, [test "x$enable_gssapi_only" != xno])
260 dnl oldest supported LTS release vs. package versions
262 dnl last checked: Jun-2019
264 dnl package        | Debian  | RHEL    | SLES    | Ubuntu  | win32  |
265 dnl                | 8.0     | 6.10    | 12 SP4  | 16.04   | 2.13.x |
266 dnl            EOL | 07/2020 | 12/2020 | 11/2024 | 04/2021 |    N/A |
267 dnl ---------------|---------|---------|---------|---------|--------|
268 dnl glib-2.0       |  2.42.x |  2.28.x |  2.48.x |  2.48.x | 2.18.x |
269 dnl gmime-2.6      |     YES |      NO |     YES |     YES |     NO |
270 dnl gss-ntlmssp    |      NO |      NO |      NO |   0.7.x |    N/A |
271 dnl nice           | TOO OLD | TOO OLD |  0.1.13 |  0.1.13 |    N/A |
272 dnl purple         |  2.11.x |   2.7.x |  2.12.x |  2.10.x | 2.13.x |
273 dnl telepathy-glib |  0.24.x |      NO |  0.24.x |  0.24.x |    N/A |
276 dnl check for glib
277 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.18.0])
278 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0 >= 2.18.0])
280 dnl check for gmime
281 PKG_CHECK_MODULES(GMIME, [gmime-3.0 >= 3.0.0],
282         [ac_have_gmime=yes],
283         [PKG_CHECK_MODULES(GMIME, [gmime-2.6 >= 2.6.0],
284                 [ac_have_gmime=yes],
285                 [ac_have_gmime=no])
286         ])
287 AM_CONDITIONAL(SIPE_MIME_GMIME, [test "x$ac_have_gmime" = xyes])
288 AS_IF([test "x$ac_have_gmime" = xyes],
289         [AC_DEFINE(HAVE_GMIME, 1, [Define if gmime should be used in sipe.])])
291 dnl check for NSS
292 AC_ARG_ENABLE(nss,
293         [AS_HELP_STRING([--enable-nss],
294                         [use NSS as crypto backend @<:@default=yes@:>@])],
295         [],
296         [enable_nss=yes])
297 AS_IF([test "x$enable_nss" != xno],
298         [PKG_CHECK_MODULES(NSS, [nss],
299                 [],
300                 [PKG_CHECK_MODULES(NSS, [mozilla-nss],
301                         [],
302                         [PKG_CHECK_MODULES(NSS, [microb-engine-nss],
303                                 [],
304                                 [enable_nss=no])
305                         ])
306                 ])
307         ])
309 dnl check for OpenSSL
310 AC_ARG_ENABLE(openssl,
311         [AS_HELP_STRING([--enable-openssl],
312                         [use OpenSSL as crypto backend @<:@default=yes@:>@])],
313         [],
314         [enable_openssl=yes])
315 AS_IF([test "x$enable_openssl" != xno],
316         [PKG_CHECK_MODULES(OPENSSL, [libcrypto],
317                    [],
318                    [enable_openssl=no])
319         ])
320 AS_IF(
321         [test "x$enable_nss" != xno],
322                 [ dnl NSS has priority over OpenSSL
323                   enable_openssl=no
324                   AC_MSG_NOTICE([using NSS as crypto backend.])],
325         [test "x$enable_openssl" != xno],
326                 [AC_MSG_NOTICE([using OpenSSL as crypto backend.])],
327         [AC_ERROR([nss, mozilla-nss, microb-engine-nss or libcrypto package is required])])
328 AM_CONDITIONAL(SIPE_OPENSSL, [test "x$enable_openssl" != xno])
330 dnl check for libxml2
331 PKG_CHECK_MODULES(LIBXML2, [libxml-2.0])
333 dnl assumption check: sizof(uuid_t) must be 16 (see uuid.c)
334 AC_MSG_CHECKING([that sizeof(uuid_t) is 16])
335 ac_save_CFLAGS="$CFLAGS"
336 CFLAGS="$CFLAGS $GLIB_CFLAGS $QUALITY_CFLAGS"
337 dnl note the [[[ quoting: our code contains []!
338 AC_RUN_IFELSE(
339         [AC_LANG_PROGRAM(
340                 [[
341 #include <glib.h>
342 #include <stdio.h>
344 /* Copied from uuid.c */
345 typedef struct {
346    guint32 time_low;
347    guint16 time_mid;
348    guint16 time_hi_and_version;
349    guint8  clock_seq_hi_and_reserved;
350    guint8  clock_seq_low;
351    guint8  node[6];
352 } uuid_t;
353                 ]],
354                 [[if (sizeof(uuid_t) == 16) {
355                         return(0);
356                  } else {
357                         printf("\n\nOoops, sizeof(uuid_t) is %" G_GSIZE_FORMAT ".\n\n", sizeof(uuid_t));
358                         return(1);
359                  }]])],
360         [AC_MSG_RESULT(yes)],
361         [AC_MSG_FAILURE([sizeof(uuid_t) is not 16
363 Please notify the SIPE developers.
365 Copy & paste all lines starting with the line
367   checking that sizeof(uuid_t) is 16...
369 to the report and attach the file "config.log".
371 Compiler information:
373  host:     $host
374  build:    $build
375  compiler: $CC
376 ])],
377         [AC_MSG_WARN([cross compiling: not checking])])
378 CFLAGS="$ac_save_CFLAGS"
380 dnl build option: OCS2005 client hack
381 AC_ARG_ENABLE([ocs2005-message-hack],
382         [AC_HELP_STRING([--enable-ocs2005-message-hack], [disable message timeout for OCS2005 clients
383                                                           which causes "false" not delivered error messages
384                                                           @<:@default=no@:>@])],
385         [AC_DEFINE([ENABLE_OCS2005_MESSAGE_HACK], [1],
386                    [Define to 1 to disable SIP MESSAGE timeout feature.
387                     OCS2005 clients don't seem to acknowledge MESSAGEs and
388                     disabling the timeout suppresses "false" error messages])])
390 dnl build option: purple backend
391 AC_ARG_ENABLE([purple],
392         [AC_HELP_STRING([--enable-purple], [build purple plugin @<:@default=yes@:>@])],
393         [],
394         [enable_purple=yes])
395 ac_have_appshare=no
396 ac_have_appshare_server=no
397 ac_have_xdata=no
398 with_purple_vv=no
399 AS_IF([test "x$enable_purple" != xno],
400         [PKG_CHECK_MODULES(PURPLE, [purple-3],
401                 [purple_pkgconfig=purple-3],
402                 [PKG_CHECK_MODULES(PURPLE, [purple >= 2.7.0],
403                         [purple_pkgconfig=purple],
404                         [enable_purple=no])])
406          AS_IF([test "x$enable_purple" != xno],
407                 [AC_MSG_NOTICE([using package "$purple_pkgconfig".])
409                  dnl unfortunately PURPLE_MAJOR_VERSION is not exported by purple.m4
410                  PURPLE_MAJOR_VERSION=`$PKG_CONFIG --modversion $purple_pkgconfig | cut -d. -f 1`
411                  AC_SUBST(PURPLE_MAJOR_VERSION)
413                  ac_save_CFLAGS="$CFLAGS"
414                  ac_save_LIBS="$LIBS"
415                  CFLAGS="$CFLAGS $PURPLE_CFLAGS $QUALITY_CFLAGS"
416                  LIBS="$LIBS $PURPLE_LIBS"
418                  dnl check whether enable voice and video support
419                  AS_IF([test "x$with_vv" = xno], [], dnl disabled by user
420                        [AC_MSG_CHECKING(for purple voice and video support)
421                         purple_has_media=no
422                         AC_RUN_IFELSE(
423                                 [AC_LANG_PROGRAM([[
424 #include <media.h>
425                                         ]],
426                                         [[return (purple_media_get_type() == G_TYPE_NONE ? 1 : 0);]]
427                                 )],
428                                 [purple_has_media=yes
429                                  AC_MSG_RESULT(ok)
430                                 ],
431                                 [AC_MSG_RESULT([no - your purple hasn't been compiled with voice and video support.])],
432                                 [AS_IF([test "x$with_vv" = xyes],
433                                        [purple_has_media=yes
434                                         AC_MSG_RESULT([yes - enabling voice and video support for cross compiling on users' request.])],
435                                        [AC_MSG_RESULT([no - disabled for cross compiling.])])
436                                 ]
437                         )
438                         AS_IF([test "x$purple_has_media" = xyes],
439                                 [PKG_CHECK_MODULES(NICE, [nice >= 0.1.0],
440                                         dnl sipe-media.c uses g_slist_free_full()
441                                         [PKG_CHECK_MODULES(_SIPE_MEDIA_RECHECK_PLEASE_IGNORE, [$purple_pkgconfig >= 2.8.0],
442                                                 dnl check purple pkgconfig for gstreamer version
443                                                 [gstreamer_pkgconfig=`$PKG_CONFIG --variable=gstreamer $purple_pkgconfig`
444                                                 AS_IF([test "x$gstreamer_pkgconfig" == x],
445                                                         [AS_IF([test "x$purple_pkgconfig" == xpurple-3],
446                                                                 [gstreamer_pkgconfig=1.0])])
447                                                 AS_IF([test "x$gstreamer_pkgconfig" == x1.0],
448                                                         [gstreamer_pkgconfig="gstreamer-$gstreamer_pkgconfig gstreamer-rtp-$gstreamer_pkgconfig"
450                                                         AC_MSG_NOTICE([using packages "$gstreamer_pkgconfig".])
451                                                         PKG_CHECK_MODULES(GSTREAMER, [$gstreamer_pkgconfig],
452                                                                 [PKG_CHECK_MODULES(FARSTREAM, [farstream-0.2],
453                                                                         [with_purple_vv=yes
455                                                                          AC_COMPILE_IFELSE(
456                                                                                  [AC_LANG_PROGRAM([[
457 #include <media.h>
458                                                                                         ]],
459                                                                                         [[return (PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE);]]
460                                                                                  )],
461                                                                                  [AC_DEFINE(HAVE_PURPLE_NEW_TCP_ENUMS, 1, [Define if libpurple has new TCP enums in media backend.])]
462                                                                         )],
463                                                                         [AC_MSG_NOTICE(Farstream required: disabling purple voice and video support)])],
464                                                                 [AC_MSG_NOTICE(GStreamer required: disabling purple voice and video support)])],
465                                                         [AC_MSG_NOTICE(your purple hasn't been compiled against GStreamer 1.0: disabling purple voice and video support)])],
466                                                 [AC_MSG_NOTICE(libpurple >= 2.8.0 required: disabling purple voice and video support)])],
467                                         [AC_MSG_NOTICE(libnice required: disabling purple voice and video support)])
468                                 ])
469                        ])
471                  dnl SRTP and XDATA require media backend
472                  AS_IF([test "x$with_purple_vv" != xno],
473                         [AC_LINK_IFELSE(
474                                 [AC_LANG_PROGRAM([[
475 #include <media.h>
476                                         ]],
477                                         [[purple_media_set_encryption_parameters(NULL, "", "", "", "", 0);
478                                           purple_media_set_decryption_parameters(NULL, "", "", "", "", "", 0);]]
479                                  )],
480                                  [AC_DEFINE(HAVE_SRTP, 1, [Define if we have SRTP support in media backend.])]
481                          )
483                          AC_COMPILE_IFELSE(
484                                 [AC_LANG_PROGRAM([[
485 #include <media.h>
486                                         ]],
487                                         [[return (PURPLE_MEDIA_APPLICATION);]]
488                                  )],
489                                  [dnl libpurple supports raw data RTP connections
490                                   ac_have_xdata=yes
492                                   dnl gio-2.0 is mandatory for application sharing support
493                                   PKG_CHECK_MODULES(GIO, [gio-2.0],
494                                         [ac_have_appshare=yes
496                                          dnl freerdp-shadow2 & winpr2 is mandatory for appshare server support
497                                          PKG_CHECK_MODULES(FREERDP_SHADOW, [freerdp-shadow2 winpr2],
498                                                 [ac_have_appshare_server=yes],
499                                                 [ac_have_appshare_server=no])
500                                    ])
501                                  ]
502                          )
503                         ],
504                         [AS_IF([test "x$with_vv" = xyes], dnl explicitly requested by user
505                                 [AC_ERROR([Voice and video support explicitly requested, but not available])]
506                          )]
507                  )
509                  CFLAGS="$ac_save_CFLAGS"
510                  LIBS="$ac_save_LIBS"])])
511 AM_CONDITIONAL(SIPE_INCLUDE_PURPLE, [test "x$enable_purple" != xno])
512 AM_CONDITIONAL(SIPE_PURPLE3, [test "x$purple_pkgconfig" = xpurple-3])
514 dnl build option: telepathy backend
515 AC_ARG_ENABLE([telepathy],
516         [AC_HELP_STRING([--enable-telepathy], [build telepathy plugin @<:@default=yes@:>@])],
517         [],
518         [enable_telepathy=yes])
519 AS_IF([test "x$enable_telepathy" != xno],
520         [PKG_CHECK_MODULES(TELEPATHY_GLIB, [telepathy-glib >= 0.24.0],
521                 [dnl GMIME is a build requirement
522                  AS_IF([test "x$ac_have_gmime" = xyes],
523                         [],
524                         [AC_ERROR(GMIME package is required for telepathy plugin)])
526                  dnl telepathy is based on GObject & D-Bus GLib
527                  PKG_CHECK_MODULES(GOBJECT, [gobject-2.0])
528                  PKG_CHECK_MODULES(DBUS_GLIB, [dbus-glib-1])
530                  dnl telepathy uses from gio:
531                  dnl  - GIOStream      (>= 2.22.0)
532                  dnl  - GResolver      (>= 2.22.0)
533                  dnl  - GSocketClient  (>= 2.32.0)
534                  dnl  - GTlsConnection (>= 2.28.0)
535                  PKG_CHECK_MODULES(GIO, [gio-2.0 >= 2.32.0])
537                 ],
538                 [enable_telepathy=no])])
539 AM_CONDITIONAL(SIPE_INCLUDE_TELEPATHY, [test "x$enable_telepathy" != xno])
541 dnl sanity check
542 AS_IF([test "x$enable_purple" = xno -a "x$enable_telepathy" = xno],
543         [AC_ERROR(at least one plugin must be selected
545 If you didn't use a --enable option then please check that you have
546 the headers for the packages "purple" or "telepathy-glib" installed.
548         [])
550 dnl enable voice & video support if any backend supports it
551 AS_IF([test "x$with_purple_vv" != xno],
552         [AC_DEFINE(HAVE_VV, 1, [Define if voice & video is enabled.])])
553 AM_CONDITIONAL(SIPE_WITH_VV, [test "x$with_purple_vv" != xno])
555 dnl raw data RTP streams enable Lync file transfer
556 AM_CONDITIONAL(SIPE_HAVE_XDATA, [test "x$ac_have_xdata" == xyes])
557 AS_IF([test "x$ac_have_xdata" == xyes],
558         [AC_DEFINE(HAVE_XDATA, 1, [Define if we have raw data RTP in media backend.])])
560 dnl enable appshare support
561 AM_CONDITIONAL(SIPE_HAVE_APPSHARE, [test "x$ac_have_appshare" == xyes])
562 AS_IF([test "x$ac_have_appshare" == xyes],
563         [AC_DEFINE(HAVE_APPSHARE, 1, [Define to 1 if we have appshare support.])])
565 dnl RDP server for sharing local desktop
566 AM_CONDITIONAL(SIPE_HAVE_APPSHARE_SERVER, [test "x$ac_have_appshare_server" = xyes])
567 AS_IF([test "x$ac_have_appshare_server" == xyes],
568         [AC_DEFINE(HAVE_APPSHARE_SERVER, 1, [Define if appshare server is enabled.])])
570 dnl libpurple API relies on GParameter (deprecated in glib-2.0 >= 2.62.0)
571 AS_IF([test "x$enable_purple" != xno],
572         [AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_60,
573                    [We need GParameter for which no replacement is available])
574         ])
575 dnl telepathy code parts rely on interfaces that require GValueArray. This
576 dnl type has been declared "deprectated" in glib-2.0 >= 2.32.0, but there
577 dnl is no backward compatible replacement implementation possible
578 dnl telepathy-glib API relies on GTimeVal (deprecated in glib-2.0 >= 2.62.0)
579 AS_IF([test "x$enable_telepathy" != xno],
580         [AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_30,
581                    [We need GValueArray for which no replacement is available])
582         ])
583 dnl libpurple 2.x API relies on G_CONST_RETURN (deprecated in glib-2.0 >= 2.30.0)
584 AS_IF([test "x$purple_pkgconfig" == xpurple],
585         [AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_28,
586                    [libpurple 2.x API uses G_CONST_RETURN])
587         ])
589 dnl i18n
590 AC_MSG_CHECKING([locale_CPPFLAGS])
591 LOCALE_CPPFLAGS='-DLOCALEDIR=\"$(datadir)/locale\"'
592 AC_SUBST([LOCALE_CPPFLAGS])
593 AC_MSG_RESULT([$LOCALE_CPPFLAGS])
594 AM_GNU_GETTEXT([external])
595 AC_SUBST(GETTEXT_PACKAGE, "${PACKAGE_NAME}")
597 dnl substitutions and generated files
598 AC_CONFIG_HEADERS([config.h])
599 AC_CONFIG_FILES([
600         Makefile
601         pixmaps/Makefile
602         m4macros/Makefile
603         po/Makefile.in
604         pixmaps/16/Makefile
605         pixmaps/22/Makefile
606         pixmaps/24/Makefile
607         pixmaps/32/Makefile
608         pixmaps/48/Makefile
609         pixmaps/scalable/Makefile
610         src/Makefile
611         src/core/Makefile
612         src/api/Makefile
613         src/purple/Makefile
614         src/telepathy/Makefile
615         src/telepathy/data/Makefile
616         ])
618 dnl generate files
619 AC_OUTPUT()
621 dnl additional info for the user
622 AS_ECHO()
623 AS_IF([test "x$enable_purple" = xno],
624         [AS_ECHO("Not building purple plugin")],
625         [AS_ECHO("Build purple plugin")
626          AS_ECHO("PURPLE_CFLAGS  : $PURPLE_CFLAGS")
627          AS_ECHO("PURPLE_LIBS    : $PURPLE_LIBS")
628          AS_ECHO_N("Voice and video: ")
629          AS_IF([test "x$with_purple_vv" = xno],
630           [AS_ECHO("disabled")],
631           [AS_ECHO("enabled")])
632         ])
633 AS_ECHO()
634 AS_IF([test "x$enable_telepathy" = xno],
635         [AS_ECHO("Not building telepathy plugin")],
636         [AS_ECHO("Build telepathy plugin")
637          AS_ECHO("TELEPATHY_GLIB_CFLAGS: $TELEPATHY_GLIB_CFLAGS")
638          AS_ECHO("TELEPATHY_GLIB_LIBS  : $TELEPATHY_GLIB_LIBS")])
639 AS_ECHO()
640 AS_IF([test "x$with_krb5" = xno],
641         [AS_ECHO("Not building with Kerberos 5 support")],
642         [AS_ECHO("Build with Kerberos 5 support")
643          AS_ECHO("KRB5_CFLAGS    : $KRB5_CFLAGS")
644          AS_ECHO("KRB5_LDFLAGS   : $KRB5_LDFLAGS")])
645 AS_ECHO()
646 AS_IF([test "x$enable_gssapi_only" = xno],
647         [AS_ECHO("Using internal authentication implementation")],
648         [AS_ECHO("Using only GSSAPI for authentication")])
649 AS_ECHO()
650 AS_IF([test "x$enable_debug" = xno],
651         [AS_ECHO("Debugging not enabled")],
652         [AS_ECHO("Build with debugging enabled")
653          AS_ECHO("DEBUG_CFLAGS   : $DEBUG_CFLAGS")])
654 AS_ECHO()
655 AS_IF([test "x$QUALITY_CFLAGS" = x],
656         [AS_ECHO("Compiler checks disabled")],
657         [AS_ECHO("Build with compiler checks enabled")
658          AS_ECHO("QUALITY_CFLAGS : $QUALITY_CFLAGS")])
659 AS_ECHO()
660 AS_ECHO("configure complete. Now run 'make'")
661 AS_ECHO()
663 dnl The End.