purple: update to latest 3.x.x plugin interfaces
[siplcs.git] / configure.ac
blobe4ba30228f36eb0b53647119a439c418a2312ed2
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 nice           | TOO OLD | TOO OLD |  0.1.13 |  0.1.13 |    N/A |
271 dnl purple         |  2.11.x |   2.7.x |  2.12.x |  2.10.x | 2.13.x |
272 dnl telepathy-glib |  0.24.x |      NO |  0.24.x |  0.24.x |    N/A |
275 dnl check for glib
276 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.18.0])
277 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0 >= 2.18.0])
279 dnl check for gmime
280 PKG_CHECK_MODULES(GMIME, [gmime-3.0 >= 3.0.0],
281         [ac_have_gmime=yes],
282         [PKG_CHECK_MODULES(GMIME, [gmime-2.6 >= 2.6.0],
283                 [ac_have_gmime=yes],
284                 [ac_have_gmime=no])
285         ])
286 AM_CONDITIONAL(SIPE_MIME_GMIME, [test "x$ac_have_gmime" = xyes])
287 AS_IF([test "x$ac_have_gmime" = xyes],
288         [AC_DEFINE(HAVE_GMIME, 1, [Define if gmime should be used in sipe.])])
290 dnl check for NSS
291 AC_ARG_ENABLE(nss,
292         [AS_HELP_STRING([--enable-nss],
293                         [use NSS as crypto backend @<:@default=yes@:>@])],
294         [],
295         [enable_nss=yes])
296 AS_IF([test "x$enable_nss" != xno],
297         [PKG_CHECK_MODULES(NSS, [nss],
298                 [],
299                 [PKG_CHECK_MODULES(NSS, [mozilla-nss],
300                         [],
301                         [PKG_CHECK_MODULES(NSS, [microb-engine-nss],
302                                 [],
303                                 [enable_nss=no])
304                         ])
305                 ])
306         ])
308 dnl check for OpenSSL
309 AC_ARG_ENABLE(openssl,
310         [AS_HELP_STRING([--enable-openssl],
311                         [use OpenSSL as crypto backend @<:@default=yes@:>@])],
312         [],
313         [enable_openssl=yes])
314 AS_IF([test "x$enable_openssl" != xno],
315         [PKG_CHECK_MODULES(OPENSSL, [libcrypto],
316                    [],
317                    [enable_openssl=no])
318         ])
319 AS_IF(
320         [test "x$enable_nss" != xno],
321                 [ dnl NSS has priority over OpenSSL
322                   enable_openssl=no
323                   AC_MSG_NOTICE([using NSS as crypto backend.])],
324         [test "x$enable_openssl" != xno],
325                 [AC_MSG_NOTICE([using OpenSSL as crypto backend.])],
326         [AC_ERROR([nss, mozilla-nss, microb-engine-nss or libcrypto package is required])])
327 AM_CONDITIONAL(SIPE_OPENSSL, [test "x$enable_openssl" != xno])
329 dnl check for libxml2
330 PKG_CHECK_MODULES(LIBXML2, [libxml-2.0])
332 dnl assumption check: sizof(uuid_t) must be 16 (see uuid.c)
333 AC_MSG_CHECKING([that sizeof(uuid_t) is 16])
334 ac_save_CFLAGS="$CFLAGS"
335 CFLAGS="$CFLAGS $GLIB_CFLAGS $QUALITY_CFLAGS"
336 dnl note the [[[ quoting: our code contains []!
337 AC_RUN_IFELSE(
338         [AC_LANG_PROGRAM(
339                 [[
340 #include <glib.h>
341 #include <stdio.h>
343 /* Copied from uuid.c */
344 typedef struct {
345    guint32 time_low;
346    guint16 time_mid;
347    guint16 time_hi_and_version;
348    guint8  clock_seq_hi_and_reserved;
349    guint8  clock_seq_low;
350    guint8  node[6];
351 } uuid_t;
352                 ]],
353                 [[if (sizeof(uuid_t) == 16) {
354                         return(0);
355                  } else {
356                         printf("\n\nOoops, sizeof(uuid_t) is %" G_GSIZE_FORMAT ".\n\n", sizeof(uuid_t));
357                         return(1);
358                  }]])],
359         [AC_MSG_RESULT(yes)],
360         [AC_MSG_FAILURE([sizeof(uuid_t) is not 16
362 Please notify the SIPE developers.
364 Copy & paste all lines starting with the line
366   checking that sizeof(uuid_t) is 16...
368 to the report and attach the file "config.log".
370 Compiler information:
372  host:     $host
373  build:    $build
374  compiler: $CC
375 ])],
376         [AC_MSG_WARN([cross compiling: not checking])])
377 CFLAGS="$ac_save_CFLAGS"
379 dnl build option: OCS2005 client hack
380 AC_ARG_ENABLE([ocs2005-message-hack],
381         [AC_HELP_STRING([--enable-ocs2005-message-hack], [disable message timeout for OCS2005 clients
382                                                           which causes "false" not delivered error messages
383                                                           @<:@default=no@:>@])],
384         [AC_DEFINE([ENABLE_OCS2005_MESSAGE_HACK], [1],
385                    [Define to 1 to disable SIP MESSAGE timeout feature.
386                     OCS2005 clients don't seem to acknowledge MESSAGEs and
387                     disabling the timeout suppresses "false" error messages])])
389 dnl build option: purple backend
390 AC_ARG_ENABLE([purple],
391         [AC_HELP_STRING([--enable-purple], [build purple plugin @<:@default=yes@:>@])],
392         [],
393         [enable_purple=yes])
394 ac_have_appshare=no
395 ac_have_appshare_server=no
396 ac_have_xdata=no
397 with_purple_vv=no
398 AS_IF([test "x$enable_purple" != xno],
399         [PKG_CHECK_MODULES(PURPLE, [purple-3],
400                 [purple_pkgconfig=purple-3],
401                 [PKG_CHECK_MODULES(PURPLE, [purple >= 2.7.0],
402                         [purple_pkgconfig=purple],
403                         [enable_purple=no])])
405          AS_IF([test "x$enable_purple" != xno],
406                 [AC_MSG_NOTICE([using package "$purple_pkgconfig".])
408                  dnl unfortunately PURPLE_MAJOR_VERSION is not exported by purple.m4
409                  PURPLE_MAJOR_VERSION=`$PKG_CONFIG --modversion $purple_pkgconfig | cut -d. -f 1`
410                  AC_SUBST(PURPLE_MAJOR_VERSION)
412                  ac_save_CFLAGS="$CFLAGS"
413                  ac_save_LIBS="$LIBS"
414                  CFLAGS="$CFLAGS $PURPLE_CFLAGS $QUALITY_CFLAGS"
415                  LIBS="$LIBS $PURPLE_LIBS"
417                  dnl check whether enable voice and video support
418                  AS_IF([test "x$with_vv" = xno], [], dnl disabled by user
419                        [AC_MSG_CHECKING(for purple voice and video support)
420                         purple_has_media=no
421                         AC_RUN_IFELSE(
422                                 [AC_LANG_PROGRAM([[
423 #include <media.h>
424                                         ]],
425                                         [[return (purple_media_get_type() == G_TYPE_NONE ? 1 : 0);]]
426                                 )],
427                                 [purple_has_media=yes
428                                  AC_MSG_RESULT(ok)
429                                 ],
430                                 [AC_MSG_RESULT([no - your purple hasn't been compiled with voice and video support.])],
431                                 [AS_IF([test "x$with_vv" = xyes],
432                                        [purple_has_media=yes
433                                         AC_MSG_RESULT([yes - enabling voice and video support for cross compiling on users' request.])],
434                                        [AC_MSG_RESULT([no - disabled for cross compiling.])])
435                                 ]
436                         )
437                         AS_IF([test "x$purple_has_media" = xyes],
438                                 [PKG_CHECK_MODULES(NICE, [nice >= 0.1.0],
439                                         dnl sipe-media.c uses g_slist_free_full()
440                                         [PKG_CHECK_MODULES(_SIPE_MEDIA_RECHECK_PLEASE_IGNORE, [$purple_pkgconfig >= 2.8.0],
441                                                 dnl check purple pkgconfig for gstreamer version
442                                                 [gstreamer_pkgconfig=`$PKG_CONFIG --variable=gstreamer $purple_pkgconfig`
443                                                 AS_IF([test "x$gstreamer_pkgconfig" == x],
444                                                         [AS_IF([test "x$purple_pkgconfig" == xpurple-3],
445                                                                 [gstreamer_pkgconfig=1.0])])
446                                                 AS_IF([test "x$gstreamer_pkgconfig" == x1.0],
447                                                         [gstreamer_pkgconfig="gstreamer-$gstreamer_pkgconfig gstreamer-rtp-$gstreamer_pkgconfig"
449                                                         AC_MSG_NOTICE([using packages "$gstreamer_pkgconfig".])
450                                                         PKG_CHECK_MODULES(GSTREAMER, [$gstreamer_pkgconfig],
451                                                                 [PKG_CHECK_MODULES(FARSTREAM, [farstream-0.2],
452                                                                         [with_purple_vv=yes
454                                                                          AC_COMPILE_IFELSE(
455                                                                                  [AC_LANG_PROGRAM([[
456 #include <media.h>
457                                                                                         ]],
458                                                                                         [[return (PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE);]]
459                                                                                  )],
460                                                                                  [AC_DEFINE(HAVE_PURPLE_NEW_TCP_ENUMS, 1, [Define if libpurple has new TCP enums in media backend.])]
461                                                                         )],
462                                                                         [AC_MSG_NOTICE(Farstream required: disabling purple voice and video support)])],
463                                                                 [AC_MSG_NOTICE(GStreamer required: disabling purple voice and video support)])],
464                                                         [AC_MSG_NOTICE(your purple hasn't been compiled against GStreamer 1.0: disabling purple voice and video support)])],
465                                                 [AC_MSG_NOTICE(libpurple >= 2.8.0 required: disabling purple voice and video support)])],
466                                         [AC_MSG_NOTICE(libnice required: disabling purple voice and video support)])
467                                 ])
468                        ])
470                  dnl SRTP and XDATA require media backend
471                  AS_IF([test "x$with_purple_vv" != xno],
472                         [AC_LINK_IFELSE(
473                                 [AC_LANG_PROGRAM([[
474 #include <media.h>
475                                         ]],
476                                         [[purple_media_set_encryption_parameters(NULL, "", "", "", "", 0);
477                                           purple_media_set_decryption_parameters(NULL, "", "", "", "", "", 0);]]
478                                  )],
479                                  [AC_DEFINE(HAVE_SRTP, 1, [Define if we have SRTP support in media backend.])]
480                          )
482                          AC_COMPILE_IFELSE(
483                                 [AC_LANG_PROGRAM([[
484 #include <media.h>
485                                         ]],
486                                         [[return (PURPLE_MEDIA_APPLICATION);]]
487                                  )],
488                                  [dnl libpurple supports raw data RTP connections
489                                   ac_have_xdata=yes
491                                   dnl gio-2.0 is mandatory for application sharing support
492                                   PKG_CHECK_MODULES(GIO, [gio-2.0],
493                                         [ac_have_appshare=yes
495                                          dnl freerdp-shadow2 & winpr2 is mandatory for appshare server support
496                                          PKG_CHECK_MODULES(FREERDP_SHADOW, [freerdp-shadow2 winpr2],
497                                                 [ac_have_appshare_server=yes],
498                                                 [ac_have_appshare_server=no])
499                                    ])
500                                  ]
501                          )
502                         ],
503                         [AS_IF([test "x$with_vv" = xyes], dnl explicitly requested by user
504                                 [AC_ERROR([Voice and video support explicitly requested, but not available])]
505                          )]
506                  )
508                  CFLAGS="$ac_save_CFLAGS"
509                  LIBS="$ac_save_LIBS"])])
510 AM_CONDITIONAL(SIPE_INCLUDE_PURPLE, [test "x$enable_purple" != xno])
511 AM_CONDITIONAL(SIPE_PURPLE3, [test "x$purple_pkgconfig" = xpurple-3])
513 dnl build option: telepathy backend
514 AC_ARG_ENABLE([telepathy],
515         [AC_HELP_STRING([--enable-telepathy], [build telepathy plugin @<:@default=yes@:>@])],
516         [],
517         [enable_telepathy=yes])
518 AS_IF([test "x$enable_telepathy" != xno],
519         [PKG_CHECK_MODULES(TELEPATHY_GLIB, [telepathy-glib >= 0.24.0],
520                 [dnl GMIME is a build requirement
521                  AS_IF([test "x$ac_have_gmime" = xyes],
522                         [],
523                         [AC_ERROR(GMIME package is required for telepathy plugin)])
525                  dnl telepathy is based on GObject & D-Bus GLib
526                  PKG_CHECK_MODULES(GOBJECT, [gobject-2.0])
527                  PKG_CHECK_MODULES(DBUS_GLIB, [dbus-glib-1])
529                  dnl telepathy uses from gio:
530                  dnl  - GIOStream      (>= 2.22.0)
531                  dnl  - GResolver      (>= 2.22.0)
532                  dnl  - GSocketClient  (>= 2.32.0)
533                  dnl  - GTlsConnection (>= 2.28.0)
534                  PKG_CHECK_MODULES(GIO, [gio-2.0 >= 2.32.0])
536                 ],
537                 [enable_telepathy=no])])
538 AM_CONDITIONAL(SIPE_INCLUDE_TELEPATHY, [test "x$enable_telepathy" != xno])
540 dnl sanity check
541 AS_IF([test "x$enable_purple" = xno -a "x$enable_telepathy" = xno],
542         [AC_ERROR(at least one plugin must be selected
544 If you didn't use a --enable option then please check that you have
545 the headers for the packages "purple" or "telepathy-glib" installed.
547         [])
549 dnl enable voice & video support if any backend supports it
550 AS_IF([test "x$with_purple_vv" != xno],
551         [AC_DEFINE(HAVE_VV, 1, [Define if voice & video is enabled.])])
552 AM_CONDITIONAL(SIPE_WITH_VV, [test "x$with_purple_vv" != xno])
554 dnl raw data RTP streams enable Lync file transfer
555 AM_CONDITIONAL(SIPE_HAVE_XDATA, [test "x$ac_have_xdata" == xyes])
556 AS_IF([test "x$ac_have_xdata" == xyes],
557         [AC_DEFINE(HAVE_XDATA, 1, [Define if we have raw data RTP in media backend.])])
559 dnl enable appshare support
560 AM_CONDITIONAL(SIPE_HAVE_APPSHARE, [test "x$ac_have_appshare" == xyes])
561 AS_IF([test "x$ac_have_appshare" == xyes],
562         [AC_DEFINE(HAVE_APPSHARE, 1, [Define to 1 if we have appshare support.])])
564 dnl RDP server for sharing local desktop
565 AM_CONDITIONAL(SIPE_HAVE_APPSHARE_SERVER, [test "x$ac_have_appshare_server" = xyes])
566 AS_IF([test "x$ac_have_appshare_server" == xyes],
567         [AC_DEFINE(HAVE_APPSHARE_SERVER, 1, [Define if appshare server is enabled.])])
569 dnl telepathy code parts rely on interfaces that require GValueArray. This
570 dnl type has been declared "deprectated" in glib-2.0 >= 2.32.0, but there
571 dnl is no backward compatible replacement implementation possible
572 AS_IF([test "x$enable_telepathy" != xno],
573         [AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_30,
574                    [We need GValueArray for which no replacement is available])])
576 dnl i18n
577 AC_MSG_CHECKING([locale_CPPFLAGS])
578 LOCALE_CPPFLAGS='-DLOCALEDIR=\"$(datadir)/locale\"'
579 AC_SUBST([LOCALE_CPPFLAGS])
580 AC_MSG_RESULT([$LOCALE_CPPFLAGS])
581 AM_GLIB_GNU_GETTEXT
582 AC_SUBST(GETTEXT_PACKAGE, "${PACKAGE_NAME}")
584 dnl codeset
585 AM_LANGINFO_CODESET
587 dnl substitutions and generated files
588 AC_CONFIG_HEADERS([config.h])
589 AC_CONFIG_FILES([
590         Makefile
591         pixmaps/Makefile
592         m4macros/Makefile
593         po/Makefile.in
594         pixmaps/16/Makefile
595         pixmaps/22/Makefile
596         pixmaps/24/Makefile
597         pixmaps/32/Makefile
598         pixmaps/48/Makefile
599         pixmaps/scalable/Makefile
600         src/Makefile
601         src/core/Makefile
602         src/api/Makefile
603         src/purple/Makefile
604         src/telepathy/Makefile
605         src/telepathy/data/Makefile
606         ])
608 dnl generate files
609 AC_OUTPUT()
611 dnl additional info for the user
612 AS_ECHO()
613 AS_IF([test "x$enable_purple" = xno],
614         [AS_ECHO("Not building purple plugin")],
615         [AS_ECHO("Build purple plugin")
616          AS_ECHO("PURPLE_CFLAGS  : $PURPLE_CFLAGS")
617          AS_ECHO("PURPLE_LIBS    : $PURPLE_LIBS")
618          AS_ECHO_N("Voice and video: ")
619          AS_IF([test "x$with_purple_vv" = xno],
620           [AS_ECHO("disabled")],
621           [AS_ECHO("enabled")])
622         ])
623 AS_ECHO()
624 AS_IF([test "x$enable_telepathy" = xno],
625         [AS_ECHO("Not building telepathy plugin")],
626         [AS_ECHO("Build telepathy plugin")
627          AS_ECHO("TELEPATHY_GLIB_CFLAGS: $TELEPATHY_GLIB_CFLAGS")
628          AS_ECHO("TELEPATHY_GLIB_LIBS  : $TELEPATHY_GLIB_LIBS")])
629 AS_ECHO()
630 AS_IF([test "x$with_krb5" = xno],
631         [AS_ECHO("Not building with Kerberos 5 support")],
632         [AS_ECHO("Build with Kerberos 5 support")
633          AS_ECHO("KRB5_CFLAGS    : $KRB5_CFLAGS")
634          AS_ECHO("KRB5_LDFLAGS   : $KRB5_LDFLAGS")])
635 AS_ECHO()
636 AS_IF([test "x$enable_gssapi_only" = xno],
637         [AS_ECHO("Using internal authentication implementation")],
638         [AS_ECHO("Using only GSSAPI for authentication")])
639 AS_ECHO()
640 AS_IF([test "x$enable_debug" = xno],
641         [AS_ECHO("Debugging not enabled")],
642         [AS_ECHO("Build with debugging enabled")
643          AS_ECHO("DEBUG_CFLAGS   : $DEBUG_CFLAGS")])
644 AS_ECHO()
645 AS_IF([test "x$QUALITY_CFLAGS" = x],
646         [AS_ECHO("Compiler checks disabled")],
647         [AS_ECHO("Build with compiler checks enabled")
648          AS_ECHO("QUALITY_CFLAGS : $QUALITY_CFLAGS")])
649 AS_ECHO()
650 AS_ECHO("configure complete. Now run 'make'")
651 AS_ECHO()
653 dnl The End.