2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([centerim], m4_esyscmd([misc/git-version-gen .version]), [http://sourceforge.net/projects/centerim])
6 AC_CONFIG_SRCDIR([config.h.in])
7 AC_CONFIG_HEADER([config.h])
8 AM_INIT_AUTOMAKE([-Wall])
16 ########################
17 # Checks for programs. #
18 ########################
26 AM_GNU_GETTEXT_VERSION([0.16.1])
28 AC_PROG_GCC_TRADITIONAL
30 #########################
31 # Checks for libraries. #
32 #########################
34 AS_HELP_STRING([--disable-icq], [Build without ICQ]),
35 build_icq="$enableval",
39 AS_HELP_STRING([--disable-yahoo], [Build without Yahoo!]),
40 build_yahoo="$enableval",
44 AS_HELP_STRING([--disable-aim], [Build without AIM]),
45 build_aim="$enableval",
49 AS_HELP_STRING([--disable-irc], [Build without IRC]),
50 build_irc="$enableval",
54 AS_HELP_STRING([--disable-jabber], [Build without Jabber]),
55 build_jabber="$enableval",
59 AS_HELP_STRING([--disable-gg], [Build without Gadu-Gadu]),
60 build_gg="$enableval",
64 AS_HELP_STRING([--disable-msn], [Build without MSN]),
65 build_msn="$enableval",
69 AS_HELP_STRING([--disable-rss], [Build without RSS reader]),
70 build_rss="$enableval",
74 AS_HELP_STRING([--disable-lj], [Build without LiveJournal client]),
75 build_lj="$enableval",
78 AC_ARG_ENABLE(locales-fix,
79 AS_HELP_STRING([--enable-locales-fix], [enables workaround for
80 broken locales. use this option if some of
81 characters in your texts in Chinese or Japanese
86 AS_HELP_STRING([--with-fribidi=[DIR]], [enable Hebrew and Arabic
87 support using fribidi library in DIR]),
88 [with_fribidi=$withval],
92 AS_HELP_STRING([--with-ssl], [enable SSL secured connections using
93 either OpenSSL or GnuTLS (auto)]),
97 AS_HELP_STRING([--with-openssl=[DIR]], [enable SSL secured
98 connections using the OpenSSL library in DIR
100 [with_openssl=$withval]
107 LIBCURL_CHECK_CONFIG(
114 AS_HELP_STRING([--without-libjpeg], [Compile without JPEG token
115 support (for Gadu-Gadu registration)])
118 AS_HELP_STRING([--with-libotr], [enable Off-the-Record Messaging (libotr)]),
119 [with_libotr=$withval],
123 #####################
124 # Check for fribidi #
125 #####################
126 AC_MSG_CHECKING(whether to use fribidi)
132 if test "x$with_fribidi" = "xyes"; then
133 AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no)
134 if test "x$FRIBIDI_CONFIG" = "xno"; then
135 AC_MSG_ERROR([*** fribidi-config not found])
138 FRIBIDI_CFLAGS="`$FRIBIDI_CONFIG --cflags`"
139 CFLAGS="$CFLAGS $FRIBIDI_CFLAGS"
140 FRIBIDI_LIBS="`$FRIBIDI_CONFIG --libs`"
141 FRIBIDI_PC="fribidi,"
143 AC_CHECK_LIB(fribidi, fribidi_get_mirror_char, :, AC_MSG_ERROR([*** libfribidi not found.]), $FRIBIDI_LIBS)
144 AC_DEFINE(HAVE_FRIBIDI, 1, [has fribidi library])
147 AC_MSG_RESULT([$have_fribidi])
152 AC_MSG_CHECKING(for SSL)
155 if test "x$with_ssl" != "xno"; then
157 AC_MSG_CHECKING(for OpenSSL)
158 if test -z "$with_openssl" -o "x$with_openssl" = "xyes"; then
159 for ac_dir in $with_openssl /usr/local /usr; do
160 if test -f "$ac_dir/include/openssl/ssl.h"; then
167 if test -n "$with_openssl" -a "x$with_openssl" != "xno"; then
168 AC_MSG_RESULT([found in $with_openssl])
169 CFLAGS="$CFLAGS -I${with_openssl}"
170 AC_DEFINE(HAVE_OPENSSL, 1, [use openssl])
171 AC_CHECK_LIB(crypto, main, [
172 AC_CHECK_LIB(crypto, SSLeay_add_all_algorithms, [
173 AC_DEFINE(HAVE_SSLEAY, 1, [use SSLeay])
176 AC_CHECK_LIB(ssl, main)
177 ac_configure_args="$ac_configure_args --with-ssl --with-openssl=$with_openssl"
179 AC_MSG_RESULT([not found or disabled])
182 AM_PATH_LIBGNUTLS_EXTRA(0.0.1, [
183 AC_CHECK_LIB(lzo, lzo1x_1_compress, LZO_LIBS=-llzo)
184 if test -z "$LZO_LIBS"; then
185 AC_CHECK_LIB(lzo2, lzo1x_1_compress, LZO_LIBS=-llzo2, [
188 *** Could not find liblzo or liblzo2.
192 CXXFLAGS="$CXXFLAGS $LIBGNUTLS_CFLAGS"
193 LIBS="$LIBS $LIBGNUTLS_LIBS -lgnutls-extra"
194 AC_DEFINE(HAVE_GNUTLS, 1, [use gnutls])
196 ac_configure_args="$ac_configure_args --with-ssl"
200 AC_MSG_RESULT([disabled (use --with-ssl=[DIR] to enable)])
206 if test "x$have_gpgme" = "xyes"; then
207 AC_DEFINE(HAVE_GPGME, 1, [has gpgme library])
208 GPGME_CXXFLAGS="$GPGME_CFLAGS"
209 CFLAGS="$CFLAGS $GPGME_CFLAGS"
210 CXXFLAGS="$CFLAGS $GPGME_CXXFLAGS"
211 LIBS="$LIBS $GPGME_LIBS"
214 #####################
215 # Check for libcurl #
216 #####################
218 CURL_CFLAGS="$LIBCURL_CPPFLAGS"
219 CURL_CXXFLAGS="$LIBCURL_CPPFLAGS"
221 CFLAGS="$CFLAGS $CURL_CFLAGS"
222 CXXFLAGS="$CXXFLAGS $CURL_CXXFLAGS"
223 LIBS="$LIBS $CURL_LIBS"
225 #####################
226 # Check for libjpeg #
227 #####################
228 AC_MSG_CHECKING(for libjpeg (for Gadu-Gadu registration))
232 if test "x$with_libjpeg" != "xno"; then
235 AC_CHECK_LIB(jpeg, jpeg_start_decompress,
237 AC_CHECK_HEADERS(jpeglib.h,
239 AC_DEFINE(HAVE_LIBJPEG, 1, [define if you have libjpeg])
240 JPEG_LIBS="-ljpeg $LIBS"
241 LIBS="$LIBS $JPEG_LIBS"
248 #####################
250 #####################
251 AC_MSG_CHECKING(for libotr)
254 if test "x$with_libotr" != "xno"; then
257 AC_CHECK_LIB(otr, otrl_init,
259 AC_CHECK_HEADERS(libotr/context.h, libotr/userstate.h
261 AC_DEFINE(HAVE_LIBOTR, 1, [define if you have libotr])
262 OTR_LIBS="-lotr $LIBS"
263 LIBS="$LIBS $OTR_LIBS"
274 LIBS="$LIBS $LIBICONV"
276 AC_CHECK_LIB(socket, socket)
277 AC_CHECK_LIB(nsl, gethostbyname)
278 AC_CHECK_LIB(ncursesw, get_wch,, [AC_CHECK_LIB(ncurses, initscr,,
279 [AC_CHECK_LIB(curses, initscr,,
280 AC_MSG_ERROR(The ncurses terminal library is required in order to build the program))])])
283 #include <sys/types.h>
284 #include <sys/socket.h>
285 ],[ socklen_t foo; ], ac_cv_c_socklen_t=yes, ac_cv_c_socklen_t=no)
287 if test "x$ac_cv_c_socklen_t" = "xno"; then
288 AC_DEFINE(socklen_t, int, [Define type of socklen_t for systems missing it])
293 LIBS="$LIBS -flat_namespace"
297 AM_CONDITIONAL(BUILD_ICQ, test "x$build_icq" = "xyes")
298 AM_CONDITIONAL(BUILD_YAHOO, test "x$build_yahoo" = "xyes")
299 AM_CONDITIONAL(BUILD_AIM, test "x$build_aim" = "xyes")
300 AM_CONDITIONAL(BUILD_IRC, test "x$build_irc" = "xyes")
301 AM_CONDITIONAL(BUILD_FIRETALK, test "x$build_irc" = "xyes" -o "x$build_aim" = xyes)
302 AM_CONDITIONAL(BUILD_JABBER, test "x$build_jabber" = "xyes")
303 AM_CONDITIONAL(BUILD_GADU, test "x$build_gg" = "xyes")
304 AM_CONDITIONAL(BUILD_MSN, test "x$build_msn" = "xyes")
305 AM_CONDITIONAL(BUILD_RSS, test "x$build_rss" = "xyes" -o "x$build_lj" = "xyes")
306 AM_CONDITIONAL(BUILD_LJ, test "x$build_lj" = "xyes")
307 AM_CONDITIONAL(HAVE_LIBOTR, test "x$have_libotr" = "xyes")
308 AM_CONDITIONAL(HAVE_FRIBIDI, test "x$have_fribidi" = "xyes")
310 if test "x$build_icq" = "xyes"; then
311 AC_DEFINE(BUILD_ICQ, 1, [build with ICQ support])
313 if test "x$build_yahoo" = "xyes"; then
314 AC_DEFINE(BUILD_YAHOO, 1, [build with yahoo support])
316 if test "x$build_aim" = "xyes"; then
317 AC_DEFINE(BUILD_AIM, 1, [build with aim support])
319 if test "x$build_irc" = "xyes";
320 then AC_DEFINE(BUILD_IRC, 1, [build with irc support])
322 if test "x$build_jabber" = "xyes"; then
323 if test "x$have_gpgme" = "xno"; then
324 AC_MSG_WARN([No GPG support in Jabber, since GPGME library not found or its setup not ok])
326 AC_DEFINE(BUILD_JABBER, 1, [build with jabber support])
328 if test "x$build_gg" = "xyes"; then
329 if test "x$have_libjpeg" = "xno"; then
330 AC_MSG_WARN([No jpeg support in Gadu-Gadu, you will not be able to register??????????])
332 AC_DEFINE(BUILD_GADU, 1, [build with gadu-gadu support])
334 if test "x$build_msn" = "xyes"; then
335 if test "x$have_curl" = "xno"; then
336 AC_MSG_ERROR([MSN cannot be built without the curl library.])
338 if test -z "$libcurl_feature_SSL" -o "x$libcurl_feature_SSL" = "xno"; then
339 AC_MSG_ERROR([MSN requires libcurl built with SSL support.])
341 AC_DEFINE(BUILD_MSN, 1, [build with MSN support])
343 if test "x$build_rss" = "xyes" -o "x$build_lj" = "xyes"; then
344 AC_DEFINE(BUILD_RSS, 1, [build the integrated rss feeds reader])
346 if test "x$build_lj" = "xyes"; then
347 AC_DEFINE(BUILD_LJ, 1, [build the integrated livejournal client])
350 ############################
351 # Checks for header files. #
352 ############################
357 AC_CHECK_HEADERS([argz.h arpa/inet.h fcntl.h float.h inttypes.h langinfo.h libintl.h limits.h locale.h malloc.h netdb.h netinet/in.h stddef.h stdint.h stdio_ext.h stdlib.h string.h strings.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h sys/statvfs.h sys/time.h sys/vfs.h syslog.h unistd.h utmp.h wchar.h])
358 AC_CHECK_HEADERS([stdint.h sys/types.h],,)
362 AC_CHECK_HEADERS([vector iostream fstream string algorithm list memory iterator exception utility],, AC_MSG_ERROR([You need to have the libstdc++ headers installed]))
363 AC_CHECK_HEADERS([hash_map strstream ext/hash_map sstream],,)
366 ##################################################################
367 # Checks for typedefs, structures, and compiler characteristics. #
368 ##################################################################
378 AC_CHECK_TYPES([ptrdiff_t])
384 AC_SUBST(FRIBIDI_LIBS)
385 AC_SUBST(FRIBIDI_CFLAGS)
389 AC_SUBST(GPGME_CFLAGS)
390 AC_SUBST(GPGME_CXXFLAGS)
392 AC_SUBST(GNUTLS_LIBS)
393 AC_SUBST(GNUTLS_CFLAGS)
394 AC_SUBST(GNUTLS_CXXFLAGS)
397 AC_SUBST(CURL_CFLAGS)
398 AC_SUBST(CURL_CXXFLAGS)
402 #################################
403 # Checks for library functions. #
404 #################################
405 AC_FUNC_CLOSEDIR_VOID
406 AC_FUNC_ERROR_AT_LINE
409 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
415 AC_FUNC_SELECT_ARGTYPES
420 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify alarm atexit bzero dup2 floor getcwd gethostbyname gethostname gettimeofday inet_ntoa isascii memmove mempcpy memset mkdir modf munmap nl_langinfo putenv regcomp rmdir select setenv setlocale socket stpcpy strcasecmp strchr strcspn strdup strerror strncasecmp strpbrk strrchr strspn strstr strtol strtoul uname])
422 ########################
423 # Create output files. #
424 ########################
425 # also configure other packages
426 AC_CONFIG_SUBDIRS(connwrap firetalk kkconsui kkstrtext kksystr libgadu libicq2000 libjabber libmsn libyahoo2)
428 ALL_LINGUAS="zh_TW.Big5 uk sv ru ro pt_BR pl nl ms it hu fr es de cs bg"
429 AC_CONFIG_FILES([Makefile
442 Install prefix $prefix
443 Build shared libs $enable_shared
444 Build static libs $enable_static
448 Protocols and Clients:])
449 if test "x$build_icq" = "xyes"; then AC_MSG_RESULT([ ICQ]); fi
450 if test "x$build_yahoo" = "xyes"; then AC_MSG_RESULT([ Yahoo]); fi
451 if test "x$build_aim" = "xyes"; then AC_MSG_RESULT([ AIM]); fi
452 if test "x$build_jabber" = "xyes"; then AC_MSG_RESULT([ jabber]); fi
453 if test "x$build_gg" = "xyes"; then AC_MSG_RESULT([ Gadu-Gadu]); fi
454 if test "x$build_msn" = "xyes"; then AC_MSG_RESULT([ MSN Messenger]); fi
455 if test "x$build_rss" = "xyes"; then AC_MSG_RESULT([ RSS Reader]); fi
456 if test "x$build_lj" = "xyes"; then AC_MSG_RESULT([ LiveJournal client]); fi
457 if test "x$have_fribidi" = "xyes"; then AC_MSG_RESULT([ LiveJournal client]); fi
458 if test "x$with_ssl" = "xno"; then
460 WARNING: SSL disabled (This means no Google Talk)
463 if test "x$have_gpgme" = "xno"; then
465 WARNING: GPGME disabled (This means no encrypted messages between users)
467 if test "x$have_libotr" = "xno"; then
469 WARNING: libotr disabled (This means no otr encryption)