mirror of
https://github.com/irssi/irssi.git
synced 2024-10-27 05:20:20 -04:00
dc8bd638e3
a few changes to DCC so that it should be possible to send >4GB files. DCC protocol uses 32bit "n bytes transferred" notifications, so I had to bend the protocol a bit to allow 64bit files by truncating the value to lowest 32bits. I'm not sure how other clients handle those notifications, but irssi uses it only to figure out when the DCC SEND transfer is complete, so it's quite safe to assume that if we've managed to write() all the bytes and we receive the last 32bit of file size, it means the total file size instead of the total - (n+1)*4GB. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3018 dbcabf3a-b0e7-0310-adc4-f8d773084564
1011 lines
28 KiB
Plaintext
1011 lines
28 KiB
Plaintext
AC_INIT(src)
|
|
|
|
# we don't want VERSION in our config.h
|
|
if test -n "`grep '^#undef VERSION' config.h.in`"; then
|
|
grep -v '^#undef VERSION' config.h.in > config.h.in.temp
|
|
mv -f config.h.in.temp config.h.in
|
|
fi
|
|
|
|
AM_CONFIG_HEADER(config.h)
|
|
AM_INIT_AUTOMAKE(irssi, 0.8.6.CVS)
|
|
|
|
AM_MAINTAINER_MODE
|
|
|
|
AC_ISC_POSIX
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AC_STDC_HEADERS
|
|
AC_ARG_PROGRAM
|
|
AM_PROG_LIBTOOL
|
|
|
|
AC_PATH_PROG(sedpath, sed)
|
|
AC_PATH_PROG(perlpath, perl)
|
|
|
|
dnl * --disable-static isn't a good idea, complain if it's used
|
|
if test "x$enable_static" = "xno"; then
|
|
AC_ERROR([Don't give --disable-static option to configure])
|
|
fi
|
|
|
|
AC_CHECK_HEADERS(string.h stdlib.h unistd.h dirent.h sys/ioctl.h sys/resource.h)
|
|
|
|
# check posix headers..
|
|
AC_CHECK_HEADERS(sys/time.h sys/utsname.h regex.h)
|
|
|
|
AC_ARG_WITH(socks,
|
|
[ --with-socks Build with socks support],
|
|
if test x$withval = xyes; then
|
|
want_socks=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_socks=no
|
|
else
|
|
want_socks=yes
|
|
fi
|
|
fi,
|
|
want_socks=no)
|
|
|
|
AC_ARG_WITH(textui,
|
|
[ --with-textui Build text frontend],
|
|
if test x$withval = xyes; then
|
|
want_textui=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_textui=no
|
|
else
|
|
want_textui=yes
|
|
fi
|
|
fi,
|
|
want_textui=yes)
|
|
|
|
AC_ARG_WITH(bot,
|
|
[ --with-bot Build irssi-bot],
|
|
if test x$withval = xyes; then
|
|
want_irssibot=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_irssibot=no
|
|
else
|
|
want_irssibot=yes
|
|
fi
|
|
fi,
|
|
want_irssibot=no)
|
|
|
|
AC_ARG_WITH(proxy,
|
|
[ --with-proxy Build irssi-proxy],
|
|
if test x$withval = xyes; then
|
|
want_irssiproxy=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_irssiproxy=no
|
|
else
|
|
want_irssiproxy=yes
|
|
fi
|
|
fi,
|
|
want_irssiproxy=no)
|
|
|
|
AC_ARG_WITH(terminfo,
|
|
[ --with-terminfo Use terminfo directly instead of curses],
|
|
if test x$withval = xyes; then
|
|
want_terminfo=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_terminfo=no
|
|
else
|
|
want_terminfo=yes
|
|
fi
|
|
fi,
|
|
want_terminfo=yes)
|
|
|
|
AC_ARG_WITH(modules,
|
|
[ --with-modules Specify what modules to build in binary],
|
|
if test x$withval != xyes -a x$withval != xno; then
|
|
build_modules="$withval"
|
|
fi)
|
|
|
|
if test "x$prefix" != "xNONE"; then
|
|
prefix=`eval echo $prefix`
|
|
PERL_MM_PARAMS="INSTALLDIRS=perl PREFIX=$prefix"
|
|
perl_library_dir="PERL_USE_LIB"
|
|
perl_set_use_lib=yes
|
|
|
|
perl_prefix_note=yes
|
|
fi
|
|
|
|
AC_ARG_WITH(tests,
|
|
[ --with-glib2 Use GLIB 2.0 instead of 1.2],
|
|
if test x$withval = xyes; then
|
|
want_glib2=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_glib2=no
|
|
else
|
|
want_glib2=yes
|
|
fi
|
|
fi,
|
|
want_glib2=yes)
|
|
|
|
AC_ARG_WITH(perl-staticlib,
|
|
[ --with-perl-staticlib Specify that we want to link perl libraries
|
|
statically in irssi, default is no],
|
|
if test x$withval = xyes; then
|
|
want_staticperllib=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_staticperllib=no
|
|
else
|
|
want_staticperllib=yes
|
|
fi
|
|
fi,
|
|
want_staticperllib=no)
|
|
|
|
|
|
AC_ARG_WITH(perl-lib,
|
|
[ --with-perl-lib=[site|vendor|DIR] Specify where to install the
|
|
Perl libraries for irssi, default is site],
|
|
if test "x$withval" = xyes; then
|
|
want_perl=yes
|
|
elif test "x$withval" = xno; then
|
|
want_perl=no
|
|
elif test "x$withval" = xsite; then
|
|
want_perl=yes
|
|
perl_prefix_note=no
|
|
PERL_MM_PARAMS=""
|
|
elif test "x$withval" = xvendor; then
|
|
want_perl=yes
|
|
perl_prefix_note=no
|
|
if test -z "`$perlpath -v|grep '5\.0'`"; then
|
|
PERL_MM_PARAMS="INSTALLDIRS=vendor"
|
|
else
|
|
PERL_MM_PARAMS="INSTALLDIRS=perl PREFIX=`perl -e 'use Config; print $Config{prefix}'`"
|
|
fi
|
|
perl_library_dir="(vendor default - `$perlpath -e 'use Config; print $Config{archlib}'`)"
|
|
else
|
|
want_perl=yes
|
|
perl_prefix_note=no
|
|
PERL_MM_PARAMS="INSTALLDIRS=perl LIB=$withval"
|
|
perl_library_dir="PERL_USE_LIB"
|
|
perl_set_use_lib=yes
|
|
fi,
|
|
want_perl=yes)
|
|
|
|
AC_ARG_WITH(perl,
|
|
[ --with-perl[=yes|no|module] Build with Perl support - also specifies
|
|
if it should be built into main irssi binary
|
|
(static, default) or as module],
|
|
if test x$withval = xyes; then
|
|
want_perl=static
|
|
elif test x$withval = xstatic; then
|
|
want_perl=static
|
|
elif test x$withval = xmodule; then
|
|
want_perl=module
|
|
else
|
|
want_perl=no
|
|
fi,
|
|
want_perl=static)
|
|
|
|
AC_ARG_WITH(file-offset-size,
|
|
[ --with-file-offset-size=BITS Set size of file offsets. Usually 32 or 64.
|
|
(default: 64 if available)],
|
|
preferred_off_t_bits=$withval,
|
|
preferred_off_t_bits=64)
|
|
|
|
AC_ARG_ENABLE(ipv6,
|
|
[ --enable-ipv6 Enable IPv6 support],
|
|
if test x$enableval = xyes; then
|
|
want_ipv6=yes
|
|
else
|
|
if test "x$enableval" = xno; then
|
|
want_ipv6=no
|
|
else
|
|
want_ipv6=yes
|
|
fi
|
|
fi,
|
|
want_ipv6=no)
|
|
|
|
dnl **
|
|
dnl ** SSL Library checks (OpenSSL)
|
|
dnl **
|
|
|
|
AC_ARG_ENABLE(ssl,
|
|
[ --disable-ssl Disable Secure Sockets Layer support],,
|
|
enable_ssl=yes)
|
|
|
|
AC_ARG_WITH(openssl-includes,
|
|
[ --with-openssl-includes Specify location of OpenSSL header files],
|
|
[openssl_inc_prefix=-I$withval])
|
|
|
|
AC_ARG_WITH(openssl-libs,
|
|
[ --with-openssl-libs Specify location of OpenSSL libs],
|
|
[openssl_prefix=$withval],
|
|
[openssl_prefix=/usr/lib])
|
|
|
|
dnl **
|
|
dnl ** just some generic stuff...
|
|
dnl **
|
|
|
|
dnl * OS specific options
|
|
case "$host_os" in
|
|
hpux*)
|
|
CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
|
|
AC_CHECK_FUNCS(mkfifo fcntl nl_langinfo)
|
|
|
|
AC_CHECK_FUNC(socket, [], [
|
|
AC_CHECK_LIB(socket, socket, [
|
|
LIBS="$LIBS -lsocket"
|
|
])
|
|
])
|
|
|
|
AC_CHECK_FUNC(inet_addr, [], [
|
|
AC_CHECK_LIB(nsl, inet_addr, [
|
|
LIBS="$LIBS -lnsl"
|
|
])
|
|
])
|
|
|
|
dnl * gcc specific options
|
|
if test "x$ac_cv_prog_gcc" = "xyes"; then
|
|
CFLAGS="$CFLAGS -Wall"
|
|
fi
|
|
|
|
dnl * socklen_t - AC_CHECK_TYPE() would be _really_ useful if it only would
|
|
dnl * accept header files where to find the typedef..
|
|
AC_MSG_CHECKING([for socklen_t])
|
|
AC_CACHE_VAL(irssi_cv_type_socklen_t,
|
|
[AC_TRY_COMPILE([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>],
|
|
[socklen_t t;],
|
|
irssi_cv_type_socklen_t=yes,
|
|
irssi_cv_type_socklen_t=no,
|
|
)])
|
|
if test $irssi_cv_type_socklen_t = no; then
|
|
AC_DEFINE(socklen_t, int, Define to 'int' if <sys/socket.h> doesn't define.)
|
|
fi
|
|
AC_MSG_RESULT($irssi_cv_type_socklen_t)
|
|
|
|
dnl * off_t checks, try to make it 64bit
|
|
AC_DEFINE_UNQUOTED(_FILE_OFFSET_BITS, $preferred_off_t_bits)
|
|
|
|
AC_CHECK_SIZEOF(int)
|
|
AC_CHECK_SIZEOF(long)
|
|
AC_CHECK_SIZEOF(long long)
|
|
|
|
dnl * older autoconfs don't include sys/types.h, so do it manually
|
|
AC_MSG_CHECKING([size of off_t])
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
int main() {
|
|
FILE *f=fopen("conftestval", "w");
|
|
if (!f) exit(1);
|
|
fprintf(f, "%d\n", sizeof(off_t));
|
|
return 0;
|
|
}
|
|
], [
|
|
sizeof_off_t=`cat conftestval`
|
|
rm -f conftestval
|
|
], [
|
|
AC_ERROR([Unsupported off_t size])
|
|
])
|
|
AC_MSG_RESULT($sizeof_off_t)
|
|
|
|
if test $sizeof_off_t = 8; then
|
|
offt_64bit=yes
|
|
else
|
|
offt_64bit=no
|
|
fi
|
|
|
|
if test x$sizeof_off_t = x$ac_cv_sizeof_long; then
|
|
# try to use unsigned long always first
|
|
AC_DEFINE_UNQUOTED(PRIuUOFF_T, "lu")
|
|
AC_DEFINE(UOFF_T_LONG)
|
|
elif test x$sizeof_off_t = x$ac_cv_sizeof_int; then
|
|
# next try int
|
|
AC_DEFINE_UNQUOTED(PRIuUOFF_T, "u")
|
|
AC_DEFINE(UOFF_T_INT)
|
|
elif test x$sizeof_off_t = x$ac_cv_sizeof_long_long; then
|
|
# and finally long long
|
|
AC_DEFINE_UNQUOTED(PRIuUOFF_T, "llu")
|
|
AC_DEFINE(UOFF_T_LONG_LONG)
|
|
else
|
|
AC_ERROR([Couldn't find integer type for off_t])
|
|
fi
|
|
|
|
dnl **
|
|
dnl ** check for socks
|
|
dnl **
|
|
|
|
if test "x$want_socks" = "xyes"; then
|
|
AC_CHECK_LIB(socks, connect, [
|
|
LIBS="$LIBS -lsocks"
|
|
AC_CHECK_HEADER(socks.h, [
|
|
AC_DEFINE(HAVE_SOCKS_H)
|
|
CFLAGS="$CFLAGS -DSOCKS"
|
|
AC_MSG_RESULT(["socks5 library found, building with it"])
|
|
], [
|
|
AC_MSG_RESULT(["socks4 library found, building with it"])
|
|
CFLAGS="$CFLAGS -Dconnect=Rconnect -Dgetsockname=Rgetsockname -Dgetpeername=Rgetpeername -Dbind=Rbind -Daccept=Raccept -Dlisten=Rlisten -Dselect=Rselect"
|
|
])
|
|
])
|
|
fi
|
|
|
|
dnl **
|
|
dnl ** fe-text checks
|
|
dnl **
|
|
|
|
AC_DEFUN(AC_CHECK_GLIBDIR,[
|
|
AC_MSG_CHECKING([whether GLib is unpacked to irssi dir])
|
|
|
|
GLIB_DIR=`for d in *; do test -f $d/glib.h && echo $d; done`
|
|
if test -n "$GLIB_DIR"; then
|
|
dnl * glib in irssi directory, use it
|
|
AC_MSG_RESULT([yes, using it])
|
|
|
|
dnl * we have to do this at this point so we know what libs gmodule needs
|
|
if test ! -f $GLIB_DIR/.libs/libglib.a; then
|
|
echo
|
|
echo "configuring GLib ..."
|
|
echo
|
|
cd $GLIB_DIR
|
|
if test ! -f glib-config; then
|
|
./configure
|
|
fi
|
|
${MAKE-make}
|
|
cd ..
|
|
echo
|
|
fi
|
|
|
|
GLIB_LDEXTRA=`$GLIB_DIR/glib-config --libs gmodule|$sedpath -e 's/-lglib//' -e 's/-lgmodule//' -e 's,-L/usr/local/lib ,,'|$sedpath 's/ \+/ /g'`
|
|
full_glib_dir="`pwd`/$GLIB_DIR"
|
|
GLIB_CFLAGS="-I$full_glib_dir -I$full_glib_dir/gmodule"
|
|
if test -f $full_glib_dir/.libs/libglib.a; then
|
|
GLIB_LIBS="$full_glib_dir/.libs/libglib.a $GLIB_LDEXTRA"
|
|
if test -f $full_glib_dir/gmodule/.libs/libgmodule.a; then
|
|
GLIB_LIBS="$GLIB_LIBS $full_glib_dir/gmodule/.libs/libgmodule.a"
|
|
AC_DEFINE(HAVE_GMODULE)
|
|
have_gmodule=yes
|
|
fi
|
|
else
|
|
GLIB_LIBS="$full_glib_dir/libglib.a $GLIB_LDEXTRA"
|
|
if test -f $full_glib_dir/gmodule/libgmodule.a; then
|
|
GLIB_LIBS="$GLIB_LIBS $full_glib_dir/gmodule/libgmodule.a"
|
|
AC_DEFINE(HAVE_GMODULE)
|
|
have_gmodule=yes
|
|
fi
|
|
fi
|
|
AC_SUBST(GLIB_CFLAGS)
|
|
AC_SUBST(GLIB_LIBS)
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
])
|
|
|
|
AC_CHECK_GLIBDIR
|
|
|
|
if test -z "$GLIB_DIR"; then
|
|
if test "x$with_glib2" = "xyes"; then
|
|
dnl * check only for glib2
|
|
checks="3 4"
|
|
else
|
|
dnl * check glib1 then glib2
|
|
checks="1 2 3 4"
|
|
fi
|
|
|
|
for try in $checks; do
|
|
glib_config_args=
|
|
if test $try = 1 -o $try = 3; then
|
|
glib_modules=gmodule
|
|
else
|
|
echo "*** trying without -lgmodule"
|
|
glib_modules=
|
|
fi
|
|
if test $try = 1 -o $try = 2; then
|
|
AM_PATH_GLIB(1.2.0,,, $glib_modules)
|
|
else
|
|
AM_PATH_GLIB_2_0(2.0.0,,, $glib_modules)
|
|
fi
|
|
if test "$GLIB_LIBS"; then
|
|
if test $glib_modules = gmodule; then
|
|
AC_DEFINE(HAVE_GMODULE)
|
|
have_gmodule=yes
|
|
fi
|
|
break
|
|
fi
|
|
done
|
|
|
|
if test -z "$GLIB_LIBS"; then
|
|
echo
|
|
echo "*** If you don't have GLIB, you can get it from ftp://ftp.gtk.org"
|
|
echo "*** If you can't install GLIB anywhere or if you don't want to,"
|
|
echo "*** you can just unpack it to Irssi's source directory and"
|
|
echo "*** Irssi will automatically compile and use it."
|
|
echo
|
|
|
|
dnl * I think it's pretty safe to assume GLib 1.2.9 since the next
|
|
dnl * will be 2.0 (or 1.4?) and it's not sure if irssi compiles
|
|
dnl * with it (yea, just a few weeks after I put this text for 1.2.8
|
|
dnl * the 1.2.9 came :) .. and then .10
|
|
glib_file=glib-1.2.10.tar.gz
|
|
|
|
dlcmd=
|
|
if test -n "`ncftpget 2>/dev/null|grep -i ncftp`"; then
|
|
dlcmd="ncftpget ftp://ftp.gtk.org/pub/gtk/v1.2/$glib_file"
|
|
fi
|
|
if test -n "`wget 2>/dev/null|grep -i wget`"; then
|
|
dlcmd="wget http://irssi.org/files/$glib_file"
|
|
fi
|
|
if test -n "$dlcmd"; then
|
|
echo "*** I can download GLib for you now. If you don't want to, press CTRL-C now."
|
|
echo
|
|
echo "*** Press ENTER to continue"
|
|
read answer
|
|
eval $dlcmd
|
|
if `gunzip $glib_file`; then
|
|
glib_file=`echo $glib_file|$sedpath s/\.gz$//`
|
|
if `tar xf $glib_file`; then
|
|
rm -f $glib_file
|
|
AC_CHECK_GLIBDIR
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test -z "$GLIB_LIBS"; then
|
|
AC_ERROR([GLIB is required to build irssi.])
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
LIBS="$LIBS $GLIB_LIBS"
|
|
|
|
dnl * make sure glib2 + ssl isn't tried to be used, it won't work
|
|
if test "x$enable_ssl" = xyes; then
|
|
###
|
|
### Check for OpenSSL
|
|
###
|
|
save_CFLAGS=$CFLAGS;
|
|
CFLAGS="-lcrypto";
|
|
|
|
enable_openssl="no";
|
|
OPENSSL_LDFLAGS="";
|
|
AC_CHECK_LIB(ssl, SSL_read, [
|
|
AC_CHECK_LIB(crypto, X509_new, [
|
|
AC_CHECK_HEADERS(openssl/ssl.h openssl/err.h, [
|
|
enable_openssl="yes";
|
|
OPENSSL_LDFLAGS="-lssl -lcrypto"
|
|
])
|
|
])
|
|
])
|
|
CFLAGS=$save_CFLAGS
|
|
|
|
if test "x$enable_openssl" = xyes; then
|
|
AC_DEFINE(HAVE_OPENSSL)
|
|
|
|
LIBS="$LIBS -L$openssl_prefix $OPENSSL_LDFLAGS"
|
|
CFLAGS="$CFLAGS $openssl_inc_prefix"
|
|
fi
|
|
else
|
|
enable_openssl="no"
|
|
fi
|
|
|
|
dnl **
|
|
dnl ** check if we can link dynamic libraries to modules
|
|
dnl ** also checks if libraries are built to .libs dir
|
|
dnl **
|
|
|
|
AC_MSG_CHECKING([if we can link dynamic libraries with modules])
|
|
DYNLIB_MODULES=no
|
|
|
|
dnl ** compile object file
|
|
cat > conftest.c <<EOF
|
|
#include <math.h>
|
|
int modfunc(){return (int)floor(1.2);}
|
|
EOF
|
|
|
|
./libtool --mode=compile $CC $CFLAGS -c conftest.c 2> /dev/null > /dev/null
|
|
if test ! -s conftest.lo; then
|
|
AC_ERROR([error compiling test module])
|
|
fi
|
|
|
|
dnl ** link to library
|
|
./libtool --mode=link $CC $CFLAGS $LDFLAGS -rpath /usr/lib conftest.lo -lm -o libconftest.la > /dev/null
|
|
if test ! -s .libs/libconftest.a; then
|
|
AC_ERROR([error, can't even find .a library])
|
|
fi
|
|
|
|
dnl ** check if dynamic linking worked
|
|
libfile=`grep '^library_names' libconftest.la|$sedpath "s/library_names='\(.*\)'.*/\1/"|$sedpath 's/.* \([[^ ]]*\)$/\1/'`
|
|
if test ! -s .libs/$libfile; then
|
|
AC_MSG_RESULT([no, error linking test module])
|
|
else
|
|
cat > conftest.c <<EOF
|
|
#include <gmodule.h>
|
|
main() {
|
|
GModule *m; int (*modfunc)(void);
|
|
m = g_module_open(".libs/$libfile", 0);
|
|
if (!m) g_print("error loading: %s", g_module_error());
|
|
else if (!g_module_symbol(m, "modfunc", (gpointer *) &modfunc))
|
|
g_print("modfunc() symbol not found from module");
|
|
else if (modfunc() == 1) g_print("ok"); else g_print("wrong result?! 1 vs %d", modfunc());
|
|
return 0; }
|
|
EOF
|
|
$CC $CFLAGS $LDFLAGS conftest.c -o conftest $GLIB_CFLAGS $GLIB_LIBS 2> /dev/null > /dev/null
|
|
if test ! -s conftest; then
|
|
AC_MSG_RESULT([no, error compiling test program])
|
|
else
|
|
status="`./conftest`"
|
|
if test "x$status" = "xok"; then
|
|
DYNLIB_MODULES=yes
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no, error running: $status])
|
|
fi
|
|
fi
|
|
fi
|
|
rm -rf conftest conftest.* libconftest.* .libs
|
|
|
|
dnl **
|
|
dnl ** curses checks
|
|
dnl **
|
|
|
|
if test "x$want_textui" = "xyes"; then
|
|
AC_CHECK_CURSES
|
|
|
|
TEXTUI_LIBS="$CURSES_LIBS"
|
|
if test "x$has_curses" = "xtrue"; then
|
|
old_libs=$LIBS
|
|
LIBS="$LIBS $CURSES_LIBS"
|
|
AC_CHECK_FUNC(use_default_colors, AC_DEFINE(HAVE_NCURSES_USE_DEFAULT_COLORS))
|
|
AC_CHECK_FUNC(idcok, AC_DEFINE(HAVE_CURSES_IDCOK))
|
|
AC_CHECK_FUNC(resizeterm, AC_DEFINE(HAVE_CURSES_RESIZETERM))
|
|
AC_CHECK_FUNC(wresize, AC_DEFINE(HAVE_CURSES_WRESIZE))
|
|
AC_CHECK_FUNC(setupterm,, [
|
|
want_termcap=yes
|
|
])
|
|
LIBS=$old_libs
|
|
else
|
|
AC_CHECK_LIB(tinfo, setupterm, [
|
|
TEXTUI_LIBS="-ltinfo"
|
|
want_terminfo=yes
|
|
], AC_CHECK_LIB(termlib, tgetent, [
|
|
TEXTUI_LIBS="-ltermlib"
|
|
want_termcap=yes
|
|
], AC_CHECK_LIB(termcap, tgetent, [
|
|
TEXTUI_LIBS="-ltermcap"
|
|
want_termcap=yes
|
|
], [
|
|
AC_ERROR(Terminfo/termcap not found - install ncurses-devel package)
|
|
want_textui=no
|
|
])))
|
|
fi
|
|
AC_SUBST(TEXTUI_LIBS)
|
|
|
|
if test "x$want_termcap" = "xyes"; then
|
|
AC_CHECK_FUNC(tparm,, need_tparm=yes)
|
|
else
|
|
AC_DEFINE(HAVE_TERMINFO)
|
|
fi
|
|
fi
|
|
|
|
dnl **
|
|
dnl ** perl checks
|
|
dnl **
|
|
|
|
if test "$want_perl" != "no"; then
|
|
AC_MSG_CHECKING(for working Perl support)
|
|
|
|
if test -z "$perlpath"; then
|
|
perl_check_error="perl binary not found"
|
|
else
|
|
PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null`
|
|
fi
|
|
|
|
if test "x$ac_cv_prog_gcc" = "xyes" -a -z "`echo $host_os|grep 'bsd\|linux'`"; then
|
|
dnl * several systems have Perl compiled with native compiler
|
|
dnl * but irssi is being compiled with GCC. Here we try to
|
|
dnl * fix those command line options a bit so GCC won't
|
|
dnl * complain about them. Normally there's only few options
|
|
dnl * that we want to keep:
|
|
dnl * -Ddefine -Uundef -I/path -fopt -mopt
|
|
PERL_CFLAGS=`echo $PERL_CFLAGS | $perlpath -pe 's/^(.* )?-[^DUIfm][^ ]+/\1/g; s/^(.* )?\+[^ ]+/\1/g'`
|
|
|
|
PERL_EXTRA_OPTS="CCCDLFLAGS=\"-fPIC\""
|
|
AC_SUBST(PERL_EXTRA_OPTS)
|
|
fi
|
|
|
|
if test -z "$PERL_CFLAGS"; then
|
|
if test -n "$perl_check_error"; then
|
|
perl_check_error="Error getting perl CFLAGS"
|
|
fi
|
|
AC_MSG_RESULT([not found, building without Perl])
|
|
want_perl=no
|
|
else
|
|
PERL_LDFLAGS=`$perlpath -MExtUtils::Embed -e ldopts 2>/dev/null`
|
|
|
|
dnl * Perl 5.004 and older use perl_xxx variables while
|
|
dnl * later use PL_perl_xxx variables ..
|
|
have_pl_perl=`$perlpath -e 'print $] < 5.005 ? "no" : "yes";'`
|
|
if test "x$have_pl_perl" = "xyes"; then
|
|
AC_DEFINE(HAVE_PL_PERL)
|
|
fi
|
|
|
|
if test "x$DYNLIB_MODULES" = "xno" -a "$want_perl" != "static"; then
|
|
dnl * wanted perl as module, won't get it.
|
|
want_perl=static
|
|
perl_mod_error="Dynamic library dependencies don't work with modules"
|
|
fi
|
|
|
|
if test "$want_perl" != "static"; then
|
|
dnl * dynaloader.a -> libperl_dynaloader.la
|
|
DYNALOADER_A=`echo $PERL_LDFLAGS | $perlpath -pe 's/^(.* )*([[^ ]]*DynaLoader\.a).*/\2/'`
|
|
fi
|
|
|
|
dnl * don't check libperl.a if dynaloader.a wasn't found..
|
|
if test -n "$DYNALOADER_A"; then
|
|
dnl * find either libperl.a or libperl.so
|
|
LIBPERL_A=`echo "$PERL_LDFLAGS -L/usr/lib"|$perlpath -e 'foreach (split(/ /, <STDIN>)) { if (/^-L(.*)/) { my $dir=$1; if (\`ls $dir/libperl.so* 2>/dev/null\`) { print "-lperl"; last; }; if (-e "$dir/libperl.a") { print "$dir/libperl.a"; last } } };'`
|
|
if test -z "$LIBPERL_A"; then
|
|
perl_mod_error="Didn't find location of -lperl"
|
|
DYNALOADER_A=
|
|
elif test "$LIBPERL_A" = "-lperl"; then
|
|
LIBPERL_A=
|
|
fi
|
|
fi
|
|
|
|
dnl * remove all database stuffs
|
|
dnl * nsl is already in ldflags
|
|
dnl * libc is of course linked without needing -lc
|
|
dnl * -rdynamic must not be in LIBADD line
|
|
for word in -ldb -ldbm -lndbm -lgdbm -lc -rdynamic; do
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e "s/$word //" -e "s/$word$//"`
|
|
done
|
|
|
|
case "$host_os" in
|
|
linux*)
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e 's/-lposix //' -e 's/-lposix$//'`
|
|
;;
|
|
hpux*)
|
|
if test "x$ac_cv_prog_gcc" = "xyes"; then
|
|
PERL_CFLAGS=`echo $PERL_CFLAGS | $sedpath -e 's/-Ae //' -e 's/-Ae$//'`
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e 's/-Ae //' -e 's/-Ae$//'`
|
|
fi
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
dnl * check that perl's ldflags actually work
|
|
echo "main(){perl_alloc(); return 0;}" > conftest.c
|
|
$CC $CFLAGS conftest.c -o conftest $LDFLAGS $PERL_LDFLAGS 2> perl.error.tmp > /dev/null
|
|
if test ! -s conftest; then
|
|
perl_check_error="Error linking with perl libraries: $PERL_LDFLAGS: `cat perl.error.tmp`"
|
|
AC_MSG_RESULT([error linking with perl libraries, building without Perl])
|
|
want_perl=no
|
|
fi
|
|
|
|
rm -f perl.error.tmp
|
|
fi
|
|
|
|
if test "x$want_perl" != "xno"; then
|
|
if test "x$want_perl" = "xstatic"; then
|
|
AC_MSG_RESULT(ok)
|
|
elif test -z "$DYNALOADER_A"; then
|
|
AC_MSG_RESULT([error parsing ldopts, building Perl into irssi binary instead of as module])
|
|
want_perl=static
|
|
else
|
|
AC_MSG_RESULT(ok)
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $perlpath -pe 's/^(.* )*[[^ ]]*DynaLoader\.a/\1libperl_dynaloader.la/'`
|
|
if test -n "$LIBPERL_A"; then
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e 's/-lperl /libperl_orig.la /' -e 's/-lperl$/libperl_orig.la$/'`
|
|
fi
|
|
AC_SUBST(LIBPERL_A)
|
|
AC_SUBST(DYNALOADER_A)
|
|
fi
|
|
|
|
if test "x$want_perl" = "xstatic"; then
|
|
dnl * building with static perl support
|
|
dnl * all PERL_LDFLAGS linking is done in fe-text
|
|
PERL_LINK_FLAGS="$PERL_LDFLAGS"
|
|
PERL_LINK_LIBS="../perl/libperl_core_static.la"
|
|
PERL_FE_LINK_LIBS="../perl/libfe_perl_static.la"
|
|
PERL_LDFLAGS=
|
|
AC_DEFINE(HAVE_STATIC_PERL)
|
|
|
|
dnl * build only static library of perl module
|
|
perl_module_lib=
|
|
perl_module_fe_lib=
|
|
perl_static_lib=libperl_core_static.la
|
|
perl_static_fe_lib=libfe_perl_static.la
|
|
PERL_LIBTOOL='$(SHELL) $(top_builddir)/libtool'
|
|
else
|
|
dnl * build dynamic library of perl module
|
|
perl_module_lib=libperl_core.la
|
|
perl_module_fe_lib=libfe_perl.la
|
|
perl_static_lib=
|
|
perl_static_fe_lib=
|
|
PERL_LIBTOOL='$(SHELL) $(top_builddir)/libtool'
|
|
fi
|
|
|
|
if test "x$want_staticperllib" = "xyes"; then
|
|
PERL_MM_PARAMS="$PERL_MM_PARAMS LINKTYPE=static"
|
|
PERL_LINK_LIBS="$PERL_LINK_LIBS ../perl/common/blib/arch/auto/Irssi/Irssi.a ../perl/irc/blib/arch/auto/Irssi/Irc/Irc.a ../perl/ui/blib/arch/auto/Irssi/UI/UI.a ../perl/textui/blib/arch/auto/Irssi/TextUI/TextUI.a"
|
|
PERL_STATIC_LIBS=1
|
|
else
|
|
PERL_STATIC_LIBS=0
|
|
fi
|
|
|
|
# figure out the correct @INC path - we'll need to do this
|
|
# through MakeMaker since it's difficult to get it right
|
|
# otherwise.
|
|
if test "x$perl_set_use_lib" = "xyes"; then
|
|
perl -e 'use ExtUtils::MakeMaker; WriteMakefile("NAME" => "test", "MAKEFILE" => "Makefile.test");' $PERL_MM_PARAMS >/dev/null
|
|
PERL_USE_LIB=`perl -e 'open(F, "Makefile.test"); while (<F>) { chomp; if (/^(\w+) = (.*$)/) { $keys{$1} = $2; } }; $key = $keys{INSTALLARCHLIB}; while ($key =~ /\\$\((\w+)\)/) { $value = $keys{$1}; $key =~ s/\\$\($1\)/$value/; }; print $key;'`
|
|
rm -f Makefile.test
|
|
fi
|
|
|
|
AC_SUBST(perl_module_lib)
|
|
AC_SUBST(perl_static_lib)
|
|
AC_SUBST(perl_module_fe_lib)
|
|
AC_SUBST(perl_static_fe_lib)
|
|
AC_SUBST(PERL_LIBTOOL)
|
|
|
|
AC_SUBST(PERL_LINK_FLAGS)
|
|
AC_SUBST(PERL_LINK_LIBS)
|
|
AC_SUBST(PERL_FE_LINK_LIBS)
|
|
|
|
AC_SUBST(PERL_LDFLAGS)
|
|
AC_SUBST(PERL_CFLAGS)
|
|
|
|
AC_SUBST(PERL_USE_LIB)
|
|
AC_SUBST(PERL_MM_PARAMS)
|
|
AC_SUBST(PERL_STATIC_LIBS)
|
|
fi
|
|
fi
|
|
|
|
dnl ** check what we want to build
|
|
AM_CONDITIONAL(BUILD_TEXTUI, test "$want_textui" = "yes")
|
|
AM_CONDITIONAL(BUILD_IRSSIBOT, test "$want_irssibot" = "yes")
|
|
AM_CONDITIONAL(BUILD_IRSSIPROXY, test "$want_irssiproxy" = "yes")
|
|
AM_CONDITIONAL(BUILD_PLUGINS, test "$want_plugins" = "yes")
|
|
AM_CONDITIONAL(HAVE_PERL, test "$want_perl" != "no")
|
|
AM_CONDITIONAL(HAVE_STATIC_PERL, test "$want_perl" = "static")
|
|
AM_CONDITIONAL(NEED_TPARM, test "$need_tparm" = "yes")
|
|
AM_CONDITIONAL(USE_CURSES, test "$want_terminfo" != "yes" -a "$want_termcap" != "yes")
|
|
|
|
# move LIBS to PROG_LIBS so they're not tried to be used when linking eg. perl libraries
|
|
PROG_LIBS=$LIBS
|
|
LIBS=
|
|
AC_SUBST(PROG_LIBS)
|
|
|
|
dnl **
|
|
dnl ** Keep all the libraries here so each frontend doesn't need to
|
|
dnl ** keep track of them all
|
|
dnl **
|
|
dnl ** (these could be made configurable)
|
|
|
|
CHAT_MODULES="irc"
|
|
irc_MODULES="dcc flood notifylist"
|
|
if test -n "$build_modules"; then
|
|
irc_MODULES="$irc_MODULES $build_modules"
|
|
fi
|
|
|
|
dnl ****************************************
|
|
|
|
AC_SUBST(CHAT_MODULES)
|
|
AC_SUBST(irc_MODULES)
|
|
|
|
CORE_LIBS="../core/libcore.a ../lib-config/libirssi_config.a ../lib-popt/libpopt.a"
|
|
FE_COMMON_LIBS=""
|
|
|
|
CHAT_LIBS=""
|
|
for c in $CHAT_MODULES; do
|
|
module_inits=""
|
|
module_deinits=""
|
|
fe_module_inits=""
|
|
fe_module_deinits=""
|
|
CHAT_LIBS="$CHAT_LIBS ../$c/lib$c.a ../$c/core/lib${c}_core.a"
|
|
if test -f $srcdir/src/fe-common/$c/module.h; then
|
|
FE_COMMON_LIBS="$FE_COMMON_LIBS../fe-common/$c/libfe_common_$c.a "
|
|
fi
|
|
for s in `eval echo \\$${c}_MODULES`; do
|
|
CHAT_LIBS="$CHAT_LIBS ../$c/$s/lib${c}_$s.a"
|
|
module_inits="$module_inits ${c}_${s}_init();"
|
|
module_deinits="${c}_${s}_deinit(); $module_deinits"
|
|
if test -f $srcdir/src/fe-common/$c/$s/module.h; then
|
|
FE_COMMON_LIBS="$FE_COMMON_LIBS../fe-common/$c/$s/libfe_${c}_$s.a "
|
|
fe_module_inits="$fe_module_inits fe_${c}_${s}_init();"
|
|
fe_module_deinits="fe_${c}_${s}_deinit(); $fe_module_deinits"
|
|
fi
|
|
done
|
|
|
|
file="$srcdir/src/$c/$c.c"
|
|
echo "/* this file is automatically generated by configure - don't change */" > $file
|
|
echo "void ${c}_core_init(void); void ${c}_core_deinit(void);" >> $file
|
|
if test -n "$module_inits"; then
|
|
echo "$module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file
|
|
echo "$module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file
|
|
fi
|
|
echo "void ${c}_init(void) { ${c}_core_init(); $module_inits }" >> $file
|
|
echo "void ${c}_deinit(void) { $module_deinits ${c}_core_deinit(); }" >> $file
|
|
|
|
if test -f $srcdir/src/fe-common/$c/module.h; then
|
|
file="$srcdir/src/fe-common/$c/${c}-modules.c"
|
|
echo "/* this file is automatically generated by configure - don't change */" > $file
|
|
if test -n "$fe_module_inits"; then
|
|
echo "$fe_module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file
|
|
echo "$fe_module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file
|
|
fi
|
|
echo "void fe_${c}_modules_init(void) { $fe_module_inits }" >> $file
|
|
echo "void fe_${c}_modules_deinit(void) { $fe_module_deinits }" >> $file
|
|
fi
|
|
done
|
|
|
|
FE_COMMON_LIBS="$FE_COMMON_LIBS../fe-common/core/libfe_common_core.a"
|
|
|
|
dnl ** common libraries needed by frontends
|
|
COMMON_NOUI_LIBS="$CHAT_LIBS $CORE_LIBS"
|
|
COMMON_LIBS="$FE_COMMON_LIBS $COMMON_NOUI_LIBS"
|
|
AC_SUBST(COMMON_NOUI_LIBS)
|
|
AC_SUBST(COMMON_LIBS)
|
|
|
|
dnl **
|
|
dnl ** IPv6 support
|
|
dnl **
|
|
|
|
if test "x$want_ipv6" = "xyes"; then
|
|
AC_MSG_CHECKING([for IPv6])
|
|
AC_CACHE_VAL(irssi_cv_type_in6_addr,
|
|
[AC_TRY_COMPILE([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <netdb.h>
|
|
#include <arpa/inet.h>],
|
|
[struct in6_addr i;],
|
|
irssi_cv_type_in6_addr=yes,
|
|
irssi_cv_type_in6_addr=no,
|
|
)])
|
|
if test $irssi_cv_type_in6_addr = yes; then
|
|
AC_DEFINE(HAVE_IPV6)
|
|
fi
|
|
AC_MSG_RESULT($irssi_cv_type_in6_addr)
|
|
fi
|
|
|
|
dnl **
|
|
dnl ** IRSSI_VERSION_DATE and IRSSI_VERSION_TIME
|
|
dnl **
|
|
VERSION_DATE=`head -1 $srcdir/ChangeLog|sed 's/^\(....\)-\(..\)-\(..\).*/\1\2\3/'`
|
|
VERSION_TIME=`head -1 $srcdir/ChangeLog|sed -e 's/^[[^ ]]* \(..\):\(..\).*/\1\2/' -e 's/^0*//'`
|
|
AC_SUBST(VERSION_DATE)
|
|
AC_SUBST(VERSION_TIME)
|
|
|
|
AC_OUTPUT(
|
|
Makefile
|
|
src/Makefile
|
|
src/core/Makefile
|
|
src/irc/Makefile
|
|
src/irc/core/Makefile
|
|
src/irc/dcc/Makefile
|
|
src/irc/notifylist/Makefile
|
|
src/irc/proxy/Makefile
|
|
src/irc/flood/Makefile
|
|
src/fe-common/Makefile
|
|
src/fe-common/core/Makefile
|
|
src/fe-common/irc/Makefile
|
|
src/fe-common/irc/dcc/Makefile
|
|
src/fe-common/irc/notifylist/Makefile
|
|
src/fe-none/Makefile
|
|
src/fe-text/Makefile
|
|
src/lib-config/Makefile
|
|
src/lib-popt/Makefile
|
|
src/perl/Makefile
|
|
src/perl/common/Makefile.PL
|
|
src/perl/irc/Makefile.PL
|
|
src/perl/ui/Makefile.PL
|
|
src/perl/textui/Makefile.PL
|
|
scripts/Makefile
|
|
scripts/examples/Makefile
|
|
docs/Makefile
|
|
docs/help/Makefile
|
|
docs/help/in/Makefile
|
|
irssi-version.h
|
|
stamp.h
|
|
irssi.spec
|
|
irssi-config)
|
|
|
|
dnl ** for building from objdir
|
|
old_dir=`pwd` && cd $srcdir && whole_dir=`pwd` && cd $old_dir
|
|
if test "x$old_dir" != "x$whole_dir"; then
|
|
$LN_S $srcdir/irssi-version.h irssi-version.h
|
|
|
|
if test "x$want_perl" != "xno"; then
|
|
subdirfiles=""
|
|
for i in $whole_dir/src/perl/common $whole_dir/src/perl/irc $whole_dir/src/perl/ui $whole_dir/src/perl/textui; do
|
|
subdirfiles=`echo $subdirfiles $i/typemap $i/module.h $i/*.pm $i/*.xs`
|
|
done
|
|
for file in $whole_dir/src/perl/*.[[ch]] $whole_dir/src/perl/libperl_orig.la $whole_dir/src/perl/libperl_dynaloader.la $subdirfiles; do
|
|
link=`echo $file|$sedpath "s?$whole_dir/??"`
|
|
rm -f $link
|
|
$LN_S $file $link
|
|
done
|
|
fi
|
|
fi
|
|
|
|
echo
|
|
|
|
if test "x$want_textui" = "xno"; then
|
|
text=no
|
|
elif test "x$want_termcap" = "xyes"; then
|
|
text="yes, using termcap"
|
|
elif test "x$want_terminfo" = "xyes"; then
|
|
text="yes, using terminfo"
|
|
else
|
|
text="yes, using curses"
|
|
fi
|
|
echo "Building text frontend ........... : $text"
|
|
echo "Building irssi bot ............... : $want_irssibot"
|
|
echo "Building irssi proxy ............. : $want_irssiproxy"
|
|
if test "x$have_gmodule" = "xyes"; then
|
|
echo "Building with module support ..... : yes"
|
|
else
|
|
echo "Building with module support : NO!! /LOAD will not work!"
|
|
echo " - You're missing gmodule (comes with glib) for some reason,"
|
|
echo " or it doesn't work in your system."
|
|
fi
|
|
|
|
if test "x$want_perl" = "xstatic"; then
|
|
echo "Building with Perl support ....... : static (in irssi binary)"
|
|
elif test "x$want_perl" = "xmodule"; then
|
|
echo "Building with Perl support ....... : module"
|
|
else
|
|
if test -z "$perl_check_error"; then
|
|
echo "Building with Perl support ....... : no"
|
|
else
|
|
echo "Building with Perl support ....... : NO!"
|
|
echo " - $perl_check_error"
|
|
fi
|
|
fi
|
|
|
|
if test "x$want_perl" != "xno" -a "x$perl_mod_error" != "x"; then
|
|
echo " - NOTE: Perl support will be compiled statically to irssi, not as"
|
|
echo " a module as requested. Reason:"
|
|
echo " $perl_mod_error"
|
|
|
|
if test -f /etc/debian_version; then
|
|
echo " - Try: apt-get install libperl-dev"
|
|
fi
|
|
fi
|
|
|
|
if test "x$want_perl" != "xno"; then
|
|
if test "$perl_library_dir" = "PERL_USE_LIB"; then
|
|
perl_library_dir=$PERL_USE_LIB
|
|
fi
|
|
if test -z "$perl_library_dir"; then
|
|
perl_library_dir="(site default - `$perlpath -e 'use Config; print $Config{sitearch}'`)"
|
|
fi
|
|
echo "Perl library directory ........... : $perl_library_dir"
|
|
if test "x$perl_prefix_note" = "xyes"; then
|
|
echo " - NOTE: This was automatically set to the same directory you gave with"
|
|
echo " --prefix. If you want the perl libraries to install to their 'correct'"
|
|
echo " path, you'll need to give --with-perl-lib=site option to configure."
|
|
echo " Anyway, installing perl to this directory should work just as well."
|
|
fi
|
|
fi
|
|
echo "Install prefix ................... : $prefix"
|
|
|
|
echo
|
|
|
|
echo "Building with IPv6 support ....... : $want_ipv6"
|
|
echo "Building with SSL support ........ : ${enable_openssl}"
|
|
echo "Building with 64bit DCC support .. : $offt_64bit"
|
|
if test "x$enable_openssl" = "xno" -a "x$ssl_error" != "x"; then
|
|
echo " - $ssl_error"
|
|
fi
|
|
|
|
echo
|
|
echo "If there was any problems, read the INSTALL file."
|