Mercurial > pidgin.yaz
view configure.in @ 3752:b32474e522fa
[gaim-migrate @ 3890]
From: "William T. Mahan" <wtm2@duke.edu>
This patch, against CVS HEAD, fixes three bugs in Oscar File Transfer
support. I can split it up further if desired.
* Send a null checksum when initiating a file transfer, which fixes
"files don't match" warnings produced by some versions of WinAIM; add
a compile-time option to actually compute the checksum, which is
slow but necessary when sending to some Mac clients.
* Don't allow sending files to oneself, because it causes all kinds of
subtle problems and it's not useful.
* Don't crash when there is an error writing to the output file when
receiving.
From: "William T. Mahan" <wtm2@duke.edu>
This patch 2 of 3, which applies on top of the first, adds support for
reverse connections for Oscar File Transfer, the lack of which has
been the biggest complaint so far. Reverse connections are used by
newer AIM clients when there is difficulty verifying the IP of the
sender.
From: "William T. Mahan" <wtm2@duke.edu>
This patch 3 of 3, which applies on top of the first 2, removes the
alarm() and sigaction() calls that were added by my original FT patch
to detect transfer timeouts. Besides apparently not working on
Windows, they involved a lot of ugly code to handle a special case.
My new approach is to add destructors that can called when SNACs are
freed; a timeout is detected when a request SNAC is cleaned up before
the transfer is accepted. Although this touches several files, it is
more generic than the old method. I tried to implement this in an
unintrusive manner, so that there is little preformance penalty for
SNACs that do not use destructors.
My first two patches should work fine without this. If there are any
objections to the third patch, I ask that the first two patches be
applied, in which case I will set up a SourceForge page for this one.
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Sat, 19 Oct 2002 05:22:30 +0000 |
parents | 4fcd36091737 |
children | 9bcb42faccc0 |
line wrap: on
line source
dnl Process this file with autoconf to produce a configure script. AC_INIT(src/aim.c) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([gaim], [0.60cvs]) AC_PATH_PROG(sedpath, sed) dnl Checks for programs. AC_PROG_CC AC_DISABLE_STATIC AM_PROG_LIBTOOL LIBTOOL="$LIBTOOL --silent" AC_PROG_INSTALL ALL_LINGUAS="bg cs da de es fi fr hu it ja ko nl pl ro ru sk sv zh_CN zh_TW" AM_GNU_GETTEXT_VERSION(0.10.40) AM_GNU_GETTEXT AC_CYGWIN dnl Checks for header files. AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h locale.h signal.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_STRUCT_TM dnl Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_STRFTIME AC_CHECK_FUNCS(socket strdup strstr atexit getaddrinfo) dnl Checks for getopt in standard library AC_CHECK_FUNCS(getopt_long , , [LIBOBJS="$LIBOBJS getopt.o getopt1.o"] ) AC_SUBST(LIBOBJS) dnl Check for inet_aton AC_CHECK_FUNC(inet_aton, , [AC_CHECK_LIB(resolv, inet_aton, , [AC_ERROR(inet_aton not found)])]) dnl Check for socklen_t (in Unix98) AC_MSG_CHECKING(for socklen_t) AC_TRY_COMPILE([ #include <sys/types.h> #include <sys/socket.h> socklen_t x; ], [], [ AC_MSG_RESULT(yes) ], [ AC_TRY_COMPILE([ #include <sys/types.h> #include <sys/socket.h> int accept(int, struct sockaddr *, size_t *); ], [], [ AC_MSG_RESULT(size_t) AC_DEFINE(socklen_t, size_t, [socklen_t size]) ], [ AC_MSG_RESULT(int) AC_DEFINE(socklen_t, int, [socklen_t size]) ]) ]) dnl This is a bad, bad hack. I am a bad, bad man. CFLAGS="$CFLAGS -I/usr/local/include -I/opt/include -I\$(top_srcdir)" AC_ARG_ENABLE(distrib,,,enable_distrib=no) AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes") AC_ARG_ENABLE(multi, [ --disable-multi disable multiple connections],,enable_multi=yes) AC_ARG_ENABLE(prpls, [ --disable-prpls don't build dynamic protocol plugins],,enable_prpls=yes) AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="") if test "x$STATIC_PRPLS" = "xall" ; then STATIC_PRPLS="gg irc jabber msn napster oscar toc yahoo zephyr" fi AC_SUBST(STATIC_PRPLS) STATIC_LINK_LIBS= extern_init= load_proto= for i in $STATIC_PRPLS ; do STATIC_LINK_LIBS="$STATIC_LINK_LIBS protocols/$i/lib$i.a" extern_init="$extern_init extern void ${i}_init(struct prpl *);" load_proto="$load_proto load_protocol(${i}_init, sizeof(struct prpl));" case $i in gg) static_gg=yes ;; irc) static_irc=yes ;; jabber) static_jabber=yes ;; msn) static_msn=yes ;; napster) static_napster=yes ;; oscar) static_oscar=yes ;; toc) static_toc=yes ;; yahoo) static_yahoo=yes ;; zephyr) static_zephyr=yes ;; *) echo "Invalid static protocol $i!!" ; exit ;; esac done AM_CONDITIONAL(STATIC_GG, test "x$static_gg" = "xyes") AM_CONDITIONAL(STATIC_IRC, test "x$static_irc" = "xyes") AM_CONDITIONAL(STATIC_JABBER, test "x$static_jabber" = "xyes") AM_CONDITIONAL(STATIC_MSN, test "x$static_msn" = "xyes") AM_CONDITIONAL(STATIC_NAPSTER, test "x$static_napster" = "xyes") AM_CONDITIONAL(STATIC_OSCAR, test "x$static_oscar" = "xyes") AM_CONDITIONAL(STATIC_TOC, test "x$static_toc" = "xyes") AM_CONDITIONAL(STATIC_YAHOO, test "x$static_yahoo" = "xyes") AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes") AC_SUBST(STATIC_LINK_LIBS) AC_DEFINE_UNQUOTED(STATIC_PROTO_INIT, $extern_init void static_proto_init() { $load_proto }, [Loads static protocol plugin module initialization functions.]) AC_ARG_ENABLE(esd, [ --disable-esd Turn off ESD (default=auto)],,enable_esd=yes) AC_ARG_ENABLE(nas, [ --enable-nas Enable NAS (Network Audio System) support],,enable_nas=no) AC_ARG_ENABLE(artsc, [ --disable-artsc Turn off ArtsC (default=auto)],,enable_artsc=yes) AC_ARG_ENABLE(plugins, [ --disable-plugins compile without plugin support],,enable_plugins=yes) AC_ARG_ENABLE(perl, [ --disable-perl compile without perl scripting],,enable_perl=yes) AC_ARG_ENABLE(debug, [ --enable-debug compile with debugging support],,enable_debug=no) AC_ARG_ENABLE(screensaver, [ --disable-screensaver compile without X screensaver extension],,enable_xss=yes) AC_ARG_WITH(krb4, [ --with-krb4=PREFIX Compile Zephyr plugin with Kerberos 4 support],kerberos="$withval",kerberos="no") if test "$enable_debug" = yes ; then CFLAGS="$CFLAGS -Wall -g3" AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.]) fi AM_PATH_GLIB_2_0(2.0.0,,AC_MSG_ERROR([ *** GLib 2.0 is required to build Gaim; please make sure you have the GLib *** development headers installed. The latest version of GLib is *** always available at http://www.gtk.org/.])) AM_PATH_GTK_2_0(2.0.0,,AC_MSG_ERROR([ *** GTK+ 2.0 is required to build Gaim; please make sure you have the GTK+ *** development headers installed. The latest version of GTK+ is *** always available at http://www.gtk.org/.])) AC_PATH_PROG(gaimpath, gaim) CFLAGS="$CFLAGS $GTK_CFLAGS -DGTK_ENABLE_BROKEN" dnl Check for XScreenSaver if test "x$enable_xss" = "xyes" ; then AC_PATH_X old_LIBS="$LIBS" LIBS="$LIBS $GTK_LIBS -L$x_libraries" XSS_LIBS="no" XSS_HEADERS="no" AC_CHECK_LIB(Xext, XScreenSaverRegister,[XSS_LIBS="-L$x_libraries"],[],[-lX11 -lXext -lm]) AC_CHECK_LIB(Xss, XScreenSaverRegister,[XSS_LIBS="-L$x_libraries -lXss"],[],[-lX11 -lXext -lm]) if test \! "$XSS_LIBS" = "no"; then AC_TRY_COMPILE([ #include <X11/extensions/scrnsaver.h> ],[],[enable_xss=no],[ AC_DEFINE(USE_SCREENSAVER, 1, [Define if we're using XScreenSaver.]) ]) else XSS_LIBS="" enable_xss=no fi LIBS="$old_LIBS" else XSS_LIBS="" enable_xss=no fi AC_SUBST(XSS_LIBS) AC_DEFUN(GC_TM_GMTOFF, [AC_REQUIRE([AC_STRUCT_TM])dnl AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff, [AC_TRY_COMPILE([#include <sys/types.h> #include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_gmtoff;], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)]) if test "$ac_cv_struct_tm_gmtoff" = yes; then AC_DEFINE(HAVE_TM_GMTOFF, 1, [tm_gmtoff is available.]) fi ]) GC_TM_GMTOFF dnl This was taken straight from X-Chat. dnl X-Chat is the greatest application ever, not only dnl because it's a rocking IRC client but also because dnl it's very easy to learn from. if test "$enable_perl" = yes ; then AC_PATH_PROG(perlpath, perl) AC_MSG_CHECKING(for Perl compile flags) PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null` if test "_$PERL_CFLAGS" = _ ; then AC_MSG_RESULT([not found, building without perl.]) enable_perl = no else PERL_LIBS=`$perlpath -MExtUtils::Embed -e ldopts 2>/dev/null |$sedpath 's/-lgdbm //'` PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-ldb //'` PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lndbm //'` if test "$system" = "Linux"; then PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lnsl //'` PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lposix //'` fi PERL_LIBS=`echo $PERL_LIBS |$sedpath 's/-lc //'` AC_MSG_RESULT(ok) AC_SUBST(PERL_CFLAGS) AC_SUBST(PERL_LIBS) AC_DEFINE(USE_PERL, 1, [Define if Perl is enabled.]) AC_CHECK_FUNCS(Perl_eval_pv) fi fi if test "$enable_nas" = yes ; then AC_DEFINE(NAS_SOUND, 1, [Define if we have NAS sound support.]) SOUND_LIBS="-laudio -lXt" fi if test "$enable_esd" = yes ; then AM_PATH_GESD if test "$no_esd" != yes ; then old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $ESD_CFLAGS" AC_TRY_COMPILE(,[#include <esd.h>], [ AC_DEFINE(ESD_SOUND, 1, [Define if we have ESD sound support.]) SOUND_LIBS="$SOUND_LIBS $ESD_LIBS" ],[ enable_esd=no CFLAGS="$old_CFLAGS" ]) else enable_esd=no fi fi if test "x$enable_artsc" = "xyes"; then AM_PATH_ARTSC if test "x$no_artsc" != "xyes" ; then old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $ARTSC_CFLAGS" AC_TRY_COMPILE(,[#include <artsc.h>], [ AC_DEFINE(ARTSC_SOUND, 1, [Define if we have artsc sound support.]) SOUND_LIBS="$SOUND_LIBS $ARTSC_LIBS" ],[ enable_artsc=no CFLAGS="$old_CFLAGS" ]) else enable_artsc=no fi fi AC_SUBST(SOUND_LIBS) if test "$ac_cv_cygwin" = yes ; then LDADD="$LDADD -static" CFLAGS="$CFLAGS -Wall -g" AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.]) fi AC_SUBST(CFLAGS) AC_SUBST(LDADD) AC_SUBST(LIBS) if test "x$enable_multi" != "xyes" ; then AC_DEFINE(NO_MULTI, 1, [Define if multiple connections is disabled.]) enable_multi=no fi if test "x$enable_plugins" = "xyes" ; then AC_DEFINE(GAIM_PLUGINS, 1, [Define if plugins are enabled.]) AM_CONDITIONAL(PLUGINS, test "x$enable_plugins" = "xyes") else AM_CONDITIONAL(PLUGINS, false) enable_plugins=no enable_prpls=no fi if test "x$enable_prpls" = "xyes" ; then AM_CONDITIONAL(PRPLS, test "x$enable_plugins" = "xyes") else AM_CONDITIONAL(PRPLS, false) enable_prpls=no fi dnl checks for icqlib AC_CHECK_HEADERS(asm/byteorder.h byteswap.h endian.h machine/endian.h arpa/nameser_compat.h) AC_CHECK_FUNCS(bswap_32 bswap_16) AC_C_BIGENDIAN dnl checks for jabber dnl AC_CHECK_SIZEOF(short) AC_CHECK_FUNCS(snprintf connect) AC_CHECK_LIB(nsl, gethostent) dnl checks for zephyr AC_DEFINE(ZEPHYR_INT32, long, [Size of an int32.]) AC_SUBST(KRB4_CFLAGS) AC_SUBST(KRB4_LDFLAGS) AC_SUBST(KRB4_LIBS) if test "$kerberos" != "no" ; then if test "$kerberos" != "yes" ; then KRB4_CFLAGS="-I${kerberos}/include" if test -d "$kerberos/include/kerberosIV" ; then KRB4_CFLAGS="$KRB4_CFLAGS -I${kerberos}/include/kerberosIV" fi KRB4_LDFLAGS="-L${kerberos}/lib" elif test -d /usr/local/include/kerberosIV ; then KRB4_CFLAGS="-I/usr/local/include/kerberosIV" elif test -d /usr/include/kerberosIV ; then KRB4_CFLAGS="-I/usr/include/kerberosIV" fi AC_DEFINE(ZEPHYR_USES_KERBEROS, 1, [Define if kerberos should be used in Zephyr.]) orig_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $KRB4_LDFLAGS" AC_CHECK_LIB(krb4, krb_rd_req, [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"], [AC_CHECK_LIB(krb, krb_rd_req, [KRB4_LIBS="-lkrb -ldes"], [AC_ERROR(Kerberos 4 libraries not found)], -ldes)], -ldes425 -lkrb5 -lk5crypto -lcom_err) orig_LIBS="$LIBS" LIBS="$LIBS $KRB4_LIBS" AC_CHECK_FUNCS(krb_set_key krb_rd_req krb_get_lrealm) AC_CHECK_FUNCS(krb_get_err_text krb_log) LIBS="$orig_LIBS" LDFLAGS="$orig_LDFLAGS" fi AC_CHECK_FUNCS(gethostid lrand48) AC_CHECK_FUNCS(memcpy memmove random strchr strerror vprintf) AC_CHECK_HEADERS(malloc.h paths.h sgtty.h stdarg.h sys/cdefs.h) AC_CHECK_HEADERS(sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h) AC_CHECK_HEADERS(sys/select.h sys/uio.h sys/utsname.h sys/wait.h) AC_CHECK_HEADERS(termios.h) AC_VAR_TIMEZONE_EXTERNALS AC_OUTPUT([Makefile doc/Makefile intl/Makefile m4/Makefile pixmaps/Makefile pixmaps/protocols/Makefile pixmaps/protocols/msn/Makefile pixmaps/protocols/yahoo/Makefile pixmaps/protocols/oscar/Makefile pixmaps/protocols/napster/Makefile pixmaps/protocols/jabber/Makefile pixmaps/protocols/irc/Makefile pixmaps/protocols/icq/Makefile pixmaps/protocols/gg/Makefile plugins/Makefile plugins/docklet/Makefile plugins/ticker/Makefile po/Makefile.in sounds/Makefile src/Makefile src/protocols/Makefile src/protocols/gg/Makefile src/protocols/icq/Makefile src/protocols/irc/Makefile src/protocols/jabber/Makefile src/protocols/msn/Makefile src/protocols/napster/Makefile src/protocols/oscar/Makefile src/protocols/toc/Makefile src/protocols/yahoo/Makefile src/protocols/zephyr/Makefile gaim.spec ]) echo echo $PACKAGE $VERSION echo echo Allow Multiple Connections.... : $enable_multi echo Build Protocol Plugins........ : $enable_prpls echo Protocols to link statically.. : $STATIC_PRPLS echo echo UI Library.................... : GTK 2.0 echo echo Build with Plugin support..... : $enable_plugins echo Build with Perl support....... : $enable_perl echo echo Use XScreenSaver Extension.... : $enable_xss echo echo Build with ESD................ : $enable_esd echo Build with NAS................ : $enable_nas echo Build with ArtsC.............. : $enable_artsc echo echo Print debugging messages...... : $enable_debug echo eval eval echo Gaim will be installed in $bindir. if test "x$gaimpath" != "x" ; then echo Warning: You have an old copy of gaim at $gaimpath. fi echo echo configure complete, now type \'make\' echo