configure: use AS_ECHO() instead of echo
[siplcs.git] / configure.ac
blob32f14cfd272c0758c2fa1d78d907346a0222cd5e
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/tracker/?atid=949931&group_id=194563], [],
18         SIPE_HOMEPAGE)
20 dnl setup automake and require recent enough version
21 AM_INIT_AUTOMAKE([1.9 dist-bzip2 no-define tar-ustar])
23 dnl set PACKAGE_URL for autoconf < 2.64
24 AS_IF([test "x${PACKAGE_URL}" = x],
25         [AC_MSG_NOTICE([set PACKAGE_URL for autoconf < 2.64])
26          AC_DEFINE(PACKAGE_URL, "SIPE_HOMEPAGE", [Define to the home page for this package.])
29 dnl set programming language
30 AC_LANG(C)
31 AM_PROG_CC_C_O
32 AC_HEADER_STDC
34 dnl setup shared library generation
35 LT_INIT([disable-static])
37 dnl checks for tools
38 IT_PROG_INTLTOOL([0.35.0])
39 AC_PROG_INSTALL
40 AC_PROG_RANLIB
42 dnl checks for header files
43 AC_CHECK_HEADERS([sys/sockio.h])
45 dnl checks for library functions
46 AC_CHECK_FUNCS([])
48 dnl tell pkgconfig to look in the same prefix where we're installing this to,
49 dnl as that is likely where libpurple will be found if it is not in the default
50 dnl pkgconfig path
51 PREFIX=$ac_default_prefix
52 AS_IF([test "x$prefix" != xNONE],
53         [PREFIX=$prefix])
55 PKG_CONFIG_PATH="$PKG_CONFIG_PATH":"$PREFIX/lib/pkgconfig"
56 export PKG_CONFIG_PATH
58 dnl debug mode
59 AC_ARG_ENABLE(debug,
60         [AS_HELP_STRING([--enable-debug],
61                         [compile with debugging support [default=no]])],
62         [],
63         [enable_debug=no])
65 AS_IF([test "x$enable_debug" = xyes],
66         [AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])])
67 AC_SUBST(DEBUG_CFLAGS)
69 dnl quality check mode
70 dnl For people who are interested in finding bugs and not hiding them
71 AC_ARG_ENABLE(quality-check,
72         [AS_HELP_STRING([--enable-quality-check],
73                         [compile with compiler checks enabled [default=yes]])],
74         [],
75         [enable_quality_check=yes])
77 AS_IF([test "x$enable_quality_check" = xyes],
78         [QUALITY_CFLAGS="$QUALITY_CFLAGS -Werror -Wall"
79          ac_save_CFLAGS=$CFLAGS
81          dnl GCC >= 3.4
82          AC_MSG_CHECKING([if $CC supports -Wextra])
83          CFLAGS="$QUALITY_CFLAGS -Wextra"
84          AC_COMPILE_IFELSE(
85                 AC_LANG_PROGRAM(),
86                 [AC_MSG_RESULT(yes)
87                  QUALITY_CFLAGS="$QUALITY_CFLAGS -Wextra"],
88                 [AC_MSG_RESULT(no)]
89          )
91          dnl declaration-after-statement (ISO C90 behaviour, as on Windows & GCC < 3)
92          AC_MSG_CHECKING([if $CC supports -Werror=declaration-after-statement])
93          CFLAGS="$QUALITY_CFLAGS -Werror=declaration-after-statement"
94          AC_COMPILE_IFELSE(
95                 AC_LANG_PROGRAM(),
96                 [AC_MSG_RESULT(yes)
97                  QUALITY_CFLAGS="$QUALITY_CFLAGS -Werror=declaration-after-statement"],
98                 [AC_MSG_RESULT(no)]
99          )
100          CFLAGS=$ac_save_CFLAGS])
101 AC_SUBST(QUALITY_CFLAGS)
103 dnl Check for pkg-config before using it
104 PKG_PROG_PKG_CONFIG
106 dnl check for Kerberos 5 support
107 AC_ARG_WITH([krb5],
108         [AC_HELP_STRING([--with-krb5],
109                 [compile with Kerberos 5 support @<:@default=check@:>@])],
110         [AS_IF([test "x$withval" = xyes], [with_krb5=check])],
111         [with_krb5=check])
113 AS_IF([test "x$with_krb5" = xno], [], dnl disabled by user
114       [test "x$with_krb5" = xcheck],  dnl autodetect with krb5-config
115         [AC_MSG_CHECKING(if Kerberos 5 is available)
116          AS_IF([AC_RUN_LOG([krb5-config --version])],
117                 [KRB5_CFLAGS=`krb5-config --cflags 2>/dev/null`
118                  KRB5_LDFLAGS=""
119                  LIBS="$LIBS `krb5-config --libs gssapi 2>/dev/null`"],
120                 [AC_MSG_RESULT(no)
121                  with_krb5=no])],
122       [                               dnl path specified by user
123         KRB5_CFLAGS="-I${with_krb5}/include"
124         KRB5_LDFLAGS="-L${with_krb5}/lib"
125         ac_save_LDFLAGS="$LDLAGS"
126         LDFLAGS="$LDFLAGS $KRB5_LDFLAGS"
127         AC_CHECK_LIB(krb5, krb5_rd_req,          [],
128                 [AC_CHECK_LIB(krb5, krb5_rd_req, [],
129                         [AC_ERROR(Kerberos 5 libraries not found)])])
130         AC_CHECK_LIB(gssapi_krb5, gss_krb5_export_lucid_sec_context, [],
131                         [AC_ERROR(GSSAPI Kerberos 5libraries not found)])
132         LDFLAGS="$ac_save_LDFLAGS"])
133 AM_CONDITIONAL(SIP_SEC_KRB5, test "x$with_krb5" != xno)
134 AC_SUBST(KRB5_CFLAGS)
135 AC_SUBST(KRB5_LDFLAGS)
137 dnl check for glib
138 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.12.0])
140 dnl check for gmime
141 dnl See also: https://bugzilla.gnome.org/show_bug.cgi?id=613653#c8
142 PKG_CHECK_MODULES(GMIME, [gmime-2.6 >= 2.5.2],
143         [ac_have_gmime=yes],
144         [PKG_CHECK_MODULES(GMIME, [gmime-2.4 >= 2.4.16],
145                 [ac_have_gmime=yes],
146                 [ac_have_gmime=no])
148 AM_CONDITIONAL(SIPE_MIME_GMIME, [test x$ac_have_gmime = xyes])
149 AM_COND_IF(SIPE_MIME_GMIME,
150         [AC_DEFINE(HAVE_GMIME, 1, [Define if gmime should be used in sipe.])])
152 dnl check for libxml2
153 PKG_CHECK_MODULES(LIBXML2, [libxml-2.0])
155 dnl assumption check: sizof(uuid_t) must be 16 (see uuid.c)
156 AC_MSG_CHECKING([that sizeof(uuid_t) is 16])
157 ac_save_CFLAGS=$CFLAGS
158 CFLAGS="$GLIB_CFLAGS $QUALITY_CFLAGS"
159 dnl note the [[[ quoting: our code contains []!
160 AC_RUN_IFELSE(
161         AC_LANG_PROGRAM(
162                 [[[
163 #include <glib.h>
164 #include <stdio.h>
166 /* Copied from uuid.c */
167 typedef struct {
168    guint32 time_low;
169    guint16 time_mid;
170    guint16 time_hi_and_version;
171    guint8  clock_seq_hi_and_reserved;
172    guint8  clock_seq_low;
173    guint8  node[6];
174 } uuid_t;
175                 ]]],
176                 [return(sizeof(uuid_t) == 16 ? 0 : 1);]),
177         [AC_MSG_RESULT(yes)],
178         [AC_MSG_RESULT(failed)
179          AC_ERROR(sizeof(uuid_t) is not 16
181 Please notify the SIPE developers and provide the following information:
183  host:     $host
184  build:    $build
185  compiler: $CC
187 CFLAGS=$ac_save_CFLAGS
189 dnl check for libpurple
190 purple="yes"
191 AC_ARG_WITH([purple],
192         [AC_HELP_STRING([--with-purple],
193                 [compile sipe plugin for libpurple clients @<:@default=autodetect@:>@])],
194         [test "$withval" = "yes" || purple="no"],
195         [])
196 if test "$purple" != "no"; then
197         PKG_CHECK_MODULES(PURPLE, [purple >= 2.4.0],
198                 [],
199                 [purple="no"])
202 dnl support for libpurple plugin
203 AM_CONDITIONAL(SIPE_INCLUDE_PURPLE, test "$purple" != "no")
204 if test "$purple" != "no"; then
206         dnl unfortunately PURPLE_MAJOR_VERSION is not exported by purple.m4
207         PURPLE_MAJOR_VERSION=`$PKG_CONFIG --modversion purple | cut -d. -f 1`
208         AC_SUBST(PURPLE_MAJOR_VERSION)
210         dnl let user now if he has a 32- and 64-bit header conflict...
211         AC_MSG_CHECKING([for 32- and 64-bit header conflicts])
212         ac_save_CFLAGS=$CFLAGS
213         CFLAGS="$PURPLE_CFLAGS $QUALITY_CFLAGS"
214         AC_COMPILE_IFELSE(
215                 AC_LANG_PROGRAM(
216                         [
217 #include <glib.h>
218 #include <cipher.h>
220 /* Compile some code that has caused trouble in the past */
221 void testfunc(unsigned long len)
223   PurpleCipherContext *rc4 = NULL;
224   purple_cipher_context_set_option(rc4, "key_len", GUINT_TO_POINTER(len));
226                         ],
227                         [testfunc(16);]),
228                 [AC_MSG_RESULT(none)],
229                 [AC_MSG_RESULT(failed)
230                  AC_ERROR(conflicts found.
232 Check that you have the correct glib/libpurple headers installed for
233 your architecture or set PURPLE_CFLAGS to override the system defaults.
235         CFLAGS=$ac_save_CFLAGS
238 dnl check for telepathy
239 telepathy="yes"
240 AC_ARG_WITH([telepathy],
241         [AC_HELP_STRING([--with-telepathy],
242                 [compile sipe plugin for telepathy clients @<:@default=autodetect@:>@])],
243         [test "$withval" = "yes" || telepathy="no"],
244         [])
245 if test "$telepathy" != "no"; then
246         PKG_CHECK_MODULES(TELEPATHY, [telepathy-glib],
247                 [],
248                 [telepathy="no"])
251 dnl support for telepathy plugin
252 AM_CONDITIONAL(SIPE_INCLUDE_TELEPATHY, test "$telepathy" != "no")
253 if test "$telepathy" != "no"; then
254         AM_COND_IF(SIPE_MIME_GMIME, [],
255                 [AC_ERROR(GMIME package is required for telepathy plugin)])
256         dnl NOTHING IMPLEMENTED YET!!!
259 dnl sanity check
260 AS_IF([test "x$purple" = xno -a "x$telepathy" = xno],
261         [AC_ERROR(at least one plugin must be selected
263 If you didn't use a --without option then please check that you have
264 the headers for the packages "purple" or "telepathy-glib" installed.
266         [])
268 dnl i18n
269 AC_MSG_CHECKING([locale_CPPFLAGS])
270 LOCALE_CPPFLAGS='-DLOCALEDIR=\"$(prefix)/$(DATADIRNAME)/locale\"'
271 AC_SUBST([LOCALE_CPPFLAGS])
272 AC_MSG_RESULT([$LOCALE_CPPFLAGS])
273 AM_GLIB_GNU_GETTEXT
274 AC_SUBST(GETTEXT_PACKAGE, "${PACKAGE_NAME}")
276 dnl codeset
277 AM_LANGINFO_CODESET
279 dnl substitutions and generated files
280 AC_CONFIG_HEADERS([config.h])
281 AC_CONFIG_FILES([
282         Makefile
283         pixmaps/Makefile
284         m4macros/Makefile
285         po/Makefile.in
286         pixmaps/16/Makefile
287         pixmaps/22/Makefile
288         pixmaps/48/Makefile
289         pixmaps/scalable/Makefile
290         src/Makefile
291         src/core/Makefile
292         src/api/Makefile
293         src/purple/Makefile
294         src/telepathy/Makefile
295         ])
297 dnl generate files
298 AC_OUTPUT()
300 dnl additional info for the user
301 AS_ECHO()
302 AS_IF([test "x$purple" = xno], 
303         [AS_ECHO("Not building libpurple plugin")],
304         [AS_ECHO("Build libpurple plugin")
305          AS_ECHO("PURPLE_CFLAGS  : $PURPLE_CFLAGS")
306          AS_ECHO("PURPLE_LIBS    : $PURPLE_LIBS")])
307 AS_ECHO()
308 AS_IF([test "x$telepathy" = xno],
309         [AS_ECHO("Not building telepathy plugin")],
310         [AS_ECHO("Build telepathy plugin")
311          AS_ECHO()
312          AS_ECHO("NOTHING IMPLEMENTED YET!!!")
313          AS_ECHO()
314          AS_ECHO("TELEPATHY_CFLAGS: $TELEPATHY_CFLAGS")
315          AS_ECHO("TELEPATHY_LIBS  : $TELEPATHY_LIBS")])
316 AS_ECHO()
317 AS_IF([test "x$with_krb5" = xno],
318         [AS_ECHO("Not building with Kerberos 5 support")],
319         [AS_ECHO("Build with Kerberos 5 support")
320          AS_ECHO("KRB5_CFLAGS    : $KRB5_CFLAGS")
321          AS_ECHO("KRB5_LDFLAGS   : $KRB5_LDFLAGS")])
322 AS_ECHO()
323 AS_IF([test "x$enable_debug" = xno],
324         [AS_ECHO("Debugging not enabled")],
325         [AS_ECHO("Build with debugging enabled")
326          AS_ECHO("DEBUG_CFLAGS   : $DEBUG_CFLAGS")])
327 AS_ECHO()
328 AS_IF([test "x$QUALITY_CFLAGS" = x],
329         [AS_ECHO("Compiler checks disabled")],
330         [AS_ECHO("Build with compiler checks enabled")
331          AS_ECHO("QUALITY_CFLAGS : $QUALITY_CFLAGS")])
332 AS_ECHO()
333 AS_ECHO("configure complete. Now run 'make'")
334 AS_ECHO()
336 dnl The End.