2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([centerim], m4_esyscmd([misc/git-version-gen .version]), [http://bugzilla.centerim.org])
6 AC_CONFIG_SRCDIR([config.h.in])
7 AC_CONFIG_HEADER([config.h])
8 AM_INIT_AUTOMAKE([-Wall])
16 ########################
17 # Checks for programs. #
18 ########################
24 AM_GNU_GETTEXT_VERSION([0.14.6])
27 #########################
28 # Checks for libraries. #
29 #########################
31 AS_HELP_STRING([--disable-icq], [Build without ICQ]),
32 build_icq="$enableval",
36 AS_HELP_STRING([--disable-yahoo], [Build without Yahoo!]),
37 build_yahoo="$enableval",
41 AS_HELP_STRING([--disable-aim], [Build without AIM]),
42 build_aim="$enableval",
46 AS_HELP_STRING([--disable-irc], [Build without IRC]),
47 build_irc="$enableval",
51 AS_HELP_STRING([--disable-jabber], [Build without Jabber]),
52 build_jabber="$enableval",
56 AS_HELP_STRING([--disable-gg], [Build without Gadu-Gadu]),
57 build_gg="$enableval",
61 AS_HELP_STRING([--disable-msn], [Build without MSN]),
62 build_msn="$enableval",
66 AS_HELP_STRING([--disable-rss], [Build without RSS reader]),
67 build_rss="$enableval",
71 AS_HELP_STRING([--disable-lj], [Build without LiveJournal client]),
72 build_lj="$enableval",
75 AC_ARG_ENABLE(locales-fix,
76 AS_HELP_STRING([--enable-locales-fix], [enables workaround for
77 broken locales. use this option if some of
78 characters in your texts in Chinese or Japanese
80 locales_fix="$enableval",
85 AS_HELP_STRING([--with-fribidi=[DIR]], [enable Hebrew and Arabic
86 support using fribidi library in DIR]),
87 [with_fribidi=$withval],
91 AS_HELP_STRING([--with-ssl], [enable SSL secured connections using
92 either OpenSSL or GnuTLS (auto)]),
96 AS_HELP_STRING([--with-openssl=[DIR]], [enable SSL secured
97 connections using the OpenSSL library in DIR
99 [with_openssl=$withval]
101 AC_ARG_WITH(nss_compat,
102 AS_HELP_STRING([--with-nss_compat=[DIR]], [enable SSL secured
103 connections using the NSS compat library in DIR
105 [with_nss_compat=$withval]
112 LIBCURL_CHECK_CONFIG(
119 AS_HELP_STRING([--without-libjpeg], [Compile without JPEG token
120 support (for Gadu-Gadu registration)])
123 AS_HELP_STRING([--with-libotr], [enable Off-the-Record Messaging (libotr) WARNING: use at your own risk, not supported yet]),
124 [with_libotr=$withval],
128 AS_HELP_STRING([--with-libXss], [enable Xss]),
129 [with_libXss=$withval],
133 #####################
134 # Check for fribidi #
135 #####################
136 AC_MSG_CHECKING(whether to use fribidi)
142 if test "x$with_fribidi" = "xyes"; then
143 AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no)
144 if test "x$FRIBIDI_CONFIG" = "xno"; then
145 AC_MSG_ERROR([*** fribidi-config not found])
148 FRIBIDI_CFLAGS="`$FRIBIDI_CONFIG --cflags`"
149 CFLAGS="$CFLAGS $FRIBIDI_CFLAGS"
150 FRIBIDI_LIBS="`$FRIBIDI_CONFIG --libs`"
151 FRIBIDI_PC="fribidi,"
153 AC_CHECK_LIB(fribidi, fribidi_get_mirror_char, :, AC_MSG_ERROR([*** libfribidi not found.]), $FRIBIDI_LIBS)
154 AC_DEFINE(HAVE_FRIBIDI, 1, [has fribidi library])
155 AC_DEFINE(KTOOL_USE_FRIBIDI, 1, [use fribidi in ktools])
158 AC_MSG_RESULT([$have_fribidi])
164 if test "x$with_ssl" != "xno"; then
168 AC_MSG_CHECKING(for OpenSSL)
169 if test -z "$with_openssl" -o "x$with_openssl" = "xyes"; then
170 for ac_dir in $with_openssl /usr/local /usr; do
171 if test -f "$ac_dir/include/openssl/ssl.h"; then
178 if test -n "$with_openssl" -a "x$with_openssl" != "xno" -a -z "$with_nss_compat"; then
179 CFLAGS="$CFLAGS -I${with_openssl}"
181 AC_MSG_RESULT([found in $with_openssl])
182 AC_DEFINE(HAVE_OPENSSL, 1, [use openssl])
185 AC_CHECK_LIB(crypto, main)
186 AC_CHECK_LIB(ssl, main)
188 AC_CHECK_LIB(crypto, SSLeay_add_all_algorithms,
189 AC_DEFINE(HAVE_SSLEAY, 1, [use SSLeay]))
191 AC_MSG_RESULT([not found or disabled])
194 if test "x$with_ssl" = "xno" -a -z "$with_nss_compat"; then
195 AM_PATH_LIBGNUTLS_EXTRA(0.0.1, [
196 AC_CHECK_LIB(lzo, lzo1x_1_compress, LZO_LIBS=-llzo)
198 if test -z "$LZO_LIBS"; then
199 AC_CHECK_LIB(lzo2, lzo1x_1_compress, LZO_LIBS=-llzo2, [
202 *** Could not find liblzo or liblzo2.
207 CXXFLAGS="$CXXFLAGS $LIBGNUTLS_CFLAGS"
208 LIBS="$LIBS $LIBGNUTLS_LIBS -lgnutls-extra"
209 AC_DEFINE(HAVE_GNUTLS, 1, [use gnutls])
214 if test "x$with_ssl" = "xno"; then
217 # NSS is essential for OpenSSL compatibility layer
218 # drags in NSPR as well
219 PKG_CHECK_MODULES(NSS, nss >= 3)
220 CFLAGS="$CFLAGS $NSS_CFLAGS"
221 CXXFLAGS="$CXXFLAGS $NSS_CFLAGS"
222 LIBS="$LIBS $NSS_LIBS"
224 # The compatibility layer
225 AC_MSG_CHECKING(for NSS compat)
226 if test -n "$with_nss_compat" -a "x$with_nss_compat" != "xno"; then
227 if test -f "${with_nss_compat}"; then
228 CFLAGS="$CFLAGS -I${with_nss_compat} -I/usr/include/nspr4"
229 CXXFLAGS="$CXXFLAGS -I${with_nss_compat} -I/usr/include/nspr4"
231 AC_CHECK_LIB(nss_compat_ossl, SSL_CTX_new, [
232 AC_DEFINE(HAVE_NSS_COMPAT, 1, [use nss_compat])
233 LIBS="$LIBS -lnss_compat_ossl"
237 AC_MSG_RESULT([Not enabled, sadly])
241 if test x"$with_ssl" != x"no"; then
242 AC_DEFINE(HAVE_SSL, 1, [ssl is available])
244 AC_MSG_ERROR([Karamba! SSL library not found.])
248 AC_MSG_RESULT([disabled (use --with-ssl=[DIR] to enable)])
254 if test "x$have_gpgme" = "xyes"; then
255 AC_DEFINE(HAVE_GPGME, 1, [has gpgme library])
256 GPGME_CXXFLAGS="$GPGME_CFLAGS"
257 CFLAGS="$CFLAGS $GPGME_CFLAGS"
258 CXXFLAGS="$CXXFLAGS $GPGME_CXXFLAGS"
259 LIBS="$LIBS $GPGME_LIBS"
262 ###############################
263 # Check for Largefile support #
264 ###############################
269 #############################
270 # Check for pthread library #
271 #############################
272 original_LIBS="$LIBS"
273 LIBS="-lpthread $original_LIBS"
275 AC_TRY_LINK([#include<pthread.h>],
276 [pthread_create((void *)0, (void *)0, (void *)0, (void *)0)],
277 [pthread=yes], [pthread=no])
279 if test x${pthread} = xyes; then
281 AC_DEFINE(HAVE_THREAD, 1, [pthread library is available])
283 LIBS="$original_LIBS"
287 AC_CHECK_HEADERS(sys/utsname.h,
289 AC_CHECK_FUNC(uname, AC_DEFINE(HAVE_UNAME, 1, [check uname function]),)
292 #####################
293 # Check for libcurl #
294 #####################
296 CURL_CFLAGS="$LIBCURL_CPPFLAGS"
297 CURL_CXXFLAGS="$LIBCURL_CPPFLAGS"
299 CFLAGS="$CFLAGS $CURL_CFLAGS"
300 CXXFLAGS="$CXXFLAGS $CURL_CXXFLAGS"
301 LIBS="$LIBS $CURL_LIBS"
303 #####################
304 # Check for libjpeg #
305 #####################
306 AC_MSG_CHECKING(for libjpeg (for Gadu-Gadu registration))
310 if test "x$with_libjpeg" != "xno"; then
313 AC_CHECK_LIB(jpeg, jpeg_start_decompress,
315 AC_CHECK_HEADERS(jpeglib.h,
317 AC_DEFINE(HAVE_LIBJPEG, 1, [define if you have libjpeg])
318 JPEG_LIBS="-ljpeg $LIBS"
319 LIBS="$LIBS $JPEG_LIBS"
326 #####################
328 #####################
329 AC_MSG_CHECKING(for libotr)
332 if test "x$with_libotr" != "xno"; then
335 AC_CHECK_LIB(otr, otrl_init,
337 AC_CHECK_HEADERS(libotr/context.h libotr/userstate.h,
339 AC_DEFINE(HAVE_LIBOTR, 1, [define if you have libotr])
340 OTR_LIBS="-lotr $LIBS"
341 LIBS="$LIBS $OTR_LIBS"
347 #####################
349 #####################
350 AC_MSG_CHECKING(whether to use Xss)
353 if test "x$with_libXss" = "xyes"; then
356 AC_CHECK_LIB(Xss, XScreenSaverQueryInfo,
358 AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
360 AC_DEFINE(HAVE_LIBXSS, 1, [define if you have Xss])
361 XSS_LIBS="-lX11 -lXss"
362 LIBS="$LIBS $XSS_LIBS"
378 LIBS="$LIBS $LIBICONV"
380 AC_CHECK_SIZEOF([int])
381 AC_CHECK_SIZEOF([short])
383 AC_CHECK_LIB(socket, socket)
384 AC_CHECK_LIB(nsl, gethostbyname)
386 AC_CHECK_LIB(ncursesw, get_wch, [AC_DEFINE(HAVE_NCURSESW, 1, [check widechar ncurses])
387 LIBS="$LIBS -lncursesw"
388 AC_CHECK_HEADERS(ncursesw/cursesw.h,[])
389 AC_CHECK_HEADERS(ncursesw/curses.h, [])
391 AC_CHECK_LIB(ncurses, initscr,,
392 [AC_CHECK_LIB(curses, initscr,,
393 AC_MSG_ERROR(The ncurses terminal library is required in order to build the program))])
398 #include <sys/types.h>
399 #include <sys/socket.h>
400 ],[ socklen_t foo; ], ac_cv_c_socklen_t=yes, ac_cv_c_socklen_t=no)
402 if test "x$ac_cv_c_socklen_t" = "xno"; then
403 AC_DEFINE(socklen_t, int, [Define type of socklen_t for systems missing it])
408 LIBS="$LIBS -flat_namespace"
409 CXXFLAGS="$CXXFLAGS -I/sw/include"
413 AM_CONDITIONAL(BUILD_ICQ, test "x$build_icq" = "xyes")
414 AM_CONDITIONAL(BUILD_YAHOO, test "x$build_yahoo" = "xyes")
415 AM_CONDITIONAL(BUILD_AIM, test "x$build_aim" = "xyes")
416 AM_CONDITIONAL(BUILD_IRC, test "x$build_irc" = "xyes")
417 AM_CONDITIONAL(BUILD_FIRETALK, test "x$build_irc" = "xyes" -o "x$build_aim" = "xyes")
418 AM_CONDITIONAL(BUILD_JABBER, test "x$build_jabber" = "xyes")
419 AM_CONDITIONAL(BUILD_GADU, test "x$build_gg" = "xyes")
420 AM_CONDITIONAL(BUILD_MSN, test "x$build_msn" = "xyes")
421 AM_CONDITIONAL(BUILD_RSS, test "x$build_rss" = "xyes" -o "x$build_lj" = "xyes")
422 AM_CONDITIONAL(BUILD_LJ, test "x$build_lj" = "xyes")
423 AM_CONDITIONAL(HAVE_THREAD, test "x$pthread" = "xyes")
424 AM_CONDITIONAL(HAVE_LIBOTR, test "x$have_libotr" = "xyes")
425 AM_CONDITIONAL(HAVE_FRIBIDI, test "x$have_fribidi" = "xyes")
427 if test "x$build_icq" = "xyes"; then
428 AC_DEFINE(BUILD_ICQ, 1, [build with ICQ support])
430 if test "x$build_yahoo" = "xyes"; then
431 if test "x$have_curl" = "xno"; then
432 AC_MSG_ERROR([Yahoo cannot be built without the curl library.])
434 if test -z "$libcurl_feature_SSL" -o "x$libcurl_feature_SSL" = "xno"; then
435 AC_MSG_ERROR([Yahoo requires libcurl built with SSL support.])
437 AC_DEFINE(BUILD_YAHOO, 1, [build with yahoo support])
439 if test "x$build_aim" = "xyes"; then
440 AC_DEFINE(BUILD_AIM, 1, [build with aim support])
442 if test "x$build_irc" = "xyes";
443 then AC_DEFINE(BUILD_IRC, 1, [build with irc support])
445 if test "x$build_jabber" = "xyes"; then
446 if test "x$have_gpgme" = "xno"; then
447 AC_MSG_WARN([No GPG support in Jabber, since GPGME library not found or its setup not ok])
449 AC_DEFINE(BUILD_JABBER, 1, [build with jabber support])
451 if test "x$build_gg" = "xyes"; then
452 if test "x$have_libjpeg" = "xno"; then
453 AC_MSG_WARN([No jpeg support in Gadu-Gadu, you will not be able to register??????????])
455 AC_DEFINE(BUILD_GADU, 1, [build with gadu-gadu support])
457 if test "x$build_msn" = "xyes"; then
458 if test "x$have_curl" = "xno"; then
459 AC_MSG_ERROR([MSN cannot be built without the curl library.])
461 if test -z "$libcurl_feature_SSL" -o "x$libcurl_feature_SSL" = "xno"; then
462 AC_MSG_ERROR([MSN requires libcurl built with SSL support.])
464 AC_DEFINE(BUILD_MSN, 1, [build with MSN support])
466 if test "x$build_rss" = "xyes" -o "x$build_lj" = "xyes"; then
467 AC_DEFINE(BUILD_RSS, 1, [build the integrated rss feeds reader])
469 if test "x$build_lj" = "xyes"; then
470 AC_DEFINE(BUILD_LJ, 1, [build the integrated livejournal client])
472 if test "x$locales_fx" != "xno"; then
473 AC_DEFINE([LOCALES_HACK], 1, [enables workaround for broken locales])
476 ############################
477 # Checks for header files. #
478 ############################
483 AC_CHECK_HEADERS([argz.h])
484 AC_CHECK_HEADERS([arpa/inet.h])
485 AC_CHECK_HEADERS([fcntl.h])
486 AC_CHECK_HEADERS([float.h])
487 AC_CHECK_HEADERS([ftw.h])
488 AC_CHECK_HEADERS([inttypes.h])
489 AC_CHECK_HEADERS([langinfo.h])
490 AC_CHECK_HEADERS([libintl.h])
491 AC_CHECK_HEADERS([limits.h])
492 AC_CHECK_HEADERS([locale.h])
493 AC_CHECK_HEADERS([malloc.h])
494 AC_CHECK_HEADERS([netdb.h])
495 AC_CHECK_HEADERS([netinet/in.h])
496 AC_CHECK_HEADERS([stddef.h])
497 AC_CHECK_HEADERS([stdint.h])
498 AC_CHECK_HEADERS([stdio_ext.h])
499 AC_CHECK_HEADERS([stdlib.h])
500 AC_CHECK_HEADERS([string.h])
501 AC_CHECK_HEADERS([strings.h])
502 AC_CHECK_HEADERS([sys/ioctl.h])
503 AC_CHECK_HEADERS([sys/mount.h])
504 AC_CHECK_HEADERS([sys/param.h])
505 AC_CHECK_HEADERS([sys/socket.h])
506 AC_CHECK_HEADERS([sys/statvfs.h])
507 AC_CHECK_HEADERS([sys/time.h])
508 AC_CHECK_HEADERS([sys/vfs.h])
509 AC_CHECK_HEADERS([syslog.h])
510 AC_CHECK_HEADERS([unistd.h])
511 AC_CHECK_HEADERS([utmp.h])
512 AC_CHECK_HEADERS([wchar.h])
513 AC_CHECK_HEADERS([sys/types.h])
514 AC_CHECK_HEADERS([_G_config.h])
518 AC_CHECK_HEADERS([vector iostream fstream string algorithm list memory iterator exception utility],, AC_MSG_ERROR([You need to have the libstdc++ headers installed]))
519 AC_CHECK_HEADERS([hash_map strstream ext/hash_map sstream],,)
522 ##################################################
523 # check whether make supports order-only targets #
524 ##################################################
526 AC_CACHE_CHECK([whether ${MAKE-make} supports order-only targets],
527 [centerim_cv_make_order_only],
528 [cat >conftest.make <<\_ACEOF
537 centerim_cv_make_order_only=no
539 ${MAKE-make} -f conftest.make >/dev/null 2>&1 && centerim_cv_make_order_only=yes
542 if test x$centerim_cv_make_order_only = xyes; then
547 ##################################################################
548 # Checks for typedefs, structures, and compiler characteristics. #
549 ##################################################################
559 AC_CHECK_TYPES([ptrdiff_t])
565 AC_SUBST(FRIBIDI_LIBS)
566 AC_SUBST(FRIBIDI_CFLAGS)
570 AC_SUBST(GPGME_CFLAGS)
571 AC_SUBST(GPGME_CXXFLAGS)
573 AC_SUBST(GNUTLS_LIBS)
574 AC_SUBST(GNUTLS_CFLAGS)
575 AC_SUBST(GNUTLS_CXXFLAGS)
578 AC_SUBST(CURL_CFLAGS)
579 AC_SUBST(CURL_CXXFLAGS)
585 #################################
586 # Checks for library functions. #
587 #################################
588 AC_FUNC_SELECT_ARGTYPES
590 AC_CHECK_FUNCS([gethostbyname])
591 AC_CHECK_FUNCS([gethostname])
592 AC_CHECK_FUNCS([getpass])
593 AC_CHECK_FUNCS([inet_aton])
594 AC_CHECK_FUNCS([inet_ntoa])
595 AC_CHECK_FUNCS([memset])
596 AC_CHECK_FUNCS([select])
597 AC_CHECK_FUNCS([setenv])
598 AC_CHECK_FUNCS([socket])
599 AC_CHECK_FUNCS([strerror])
600 AC_CHECK_FUNCS([strtol])
603 ########################
604 # Create output files. #
605 ########################
606 ALL_LINGUAS="zh_TW zh_CN uk sv ru ro pt_BR pl nl ms it hu fr es de cs bg"
607 AC_CONFIG_FILES([Makefile
611 kkconsui/include/Makefile
612 kkconsui/src/Makefile
615 kksystr/include/Makefile
619 libicq2000/libicq2000/Makefile
620 libicq2000/src/Makefile
637 Install prefix $prefix
641 Protocols and Clients:])
642 if test "x$build_icq" = "xyes"; then AC_MSG_RESULT([ ICQ]); fi
643 if test "x$build_yahoo" = "xyes"; then AC_MSG_RESULT([ Yahoo]); fi
644 if test "x$build_aim" = "xyes"; then AC_MSG_RESULT([ AIM]); fi
645 if test "x$build_jabber" = "xyes"; then AC_MSG_RESULT([ jabber]); fi
646 if test "x$build_gg" = "xyes"; then AC_MSG_RESULT([ Gadu-Gadu]); fi
647 if test "x$build_msn" = "xyes"; then AC_MSG_RESULT([ MSN Messenger]); fi
648 if test "x$build_rss" = "xyes"; then AC_MSG_RESULT([ RSS Reader]); fi
649 if test "x$build_lj" = "xyes"; then AC_MSG_RESULT([ LiveJournal client]); fi
650 if test "x$have_fribidi" = "xyes"; then AC_MSG_RESULT([ LiveJournal client]); fi
651 if test "x$with_ssl" = "xno"; then
653 WARNING: SSL disabled (This means no Google Talk)
656 if test "x$have_gpgme" = "xno"; then
658 WARNING: GPGME disabled (This means no encrypted messages between users)
660 if test "x$have_libotr" = "xyes"; then
662 WARNING: libotr enabled (OTR is not supported yet, use at your own risk)
664 if test "x$pthread" = "xno"; then
666 WARNING: pthreads disabled (No file-transfers in jabber)