mirror of
https://github.com/irssi/irssi.git
synced 2024-12-04 14:46:39 -05:00
76605ad0ae
Changed configure.in's functionality so that you could tell what modules you want to build in main irssi binary and it will create automatically the .c files that need to call the module_init()/deinit() functions. Fixed several minor things.. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@230 dbcabf3a-b0e7-0310-adc4-f8d773084564
405 lines
10 KiB
Plaintext
405 lines
10 KiB
Plaintext
AC_INIT(src)
|
|
|
|
AM_CONFIG_HEADER(config.h)
|
|
AM_INIT_AUTOMAKE(irssi, 0.7.90)
|
|
|
|
AM_MAINTAINER_MODE
|
|
|
|
AC_ISC_POSIX
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AC_STDC_HEADERS
|
|
AC_ARG_PROGRAM
|
|
AM_PROG_LIBTOOL
|
|
|
|
AC_CHECK_HEADERS(string.h stdlib.h unistd.h dirent.h sys/ioctl.h libintl.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(mysql,
|
|
[ --with-mysql Build MySQL plugin],
|
|
if test x$withval = xyes; then
|
|
want_mysql=yes
|
|
MYSQL_LIBS="-L/usr/lib/mysql -lmysqlclient"
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_mysql=no
|
|
else
|
|
want_mysql=yes
|
|
MYSQL_LIBS="-L$withval/lib/mysql -lmysqlclient"
|
|
fi
|
|
fi,
|
|
want_mysql=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=yes)
|
|
|
|
AC_ARG_WITH(plugins,
|
|
[ --with-plugins Build plugins],
|
|
if test x$withval = xyes; then
|
|
want_plugins=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_plugins=no
|
|
else
|
|
want_plugins=yes
|
|
fi
|
|
fi,
|
|
want_plugins=yes)
|
|
|
|
AC_ARG_ENABLE(perl,
|
|
[ --enable-perl Enable Perl scripting],
|
|
if test x$enableval = xyes; then
|
|
want_perl=yes
|
|
else
|
|
if test "x$enableval" = xno; then
|
|
want_perl=no
|
|
else
|
|
want_perl=yes
|
|
fi
|
|
fi,
|
|
want_perl=yes)
|
|
|
|
AC_ARG_WITH(servertest,
|
|
[ --with-servertest Build servertest],
|
|
if test x$withval = xyes; then
|
|
want_servertest=yes
|
|
else
|
|
if test "x$withval" = xno; then
|
|
want_servertest=no
|
|
else
|
|
want_servertest=yes
|
|
fi
|
|
fi,
|
|
want_servertest=no)
|
|
|
|
AC_ARG_ENABLE(memdebug,
|
|
[ --enable-memdebug Enable memory debugging],
|
|
if test x$enableval = xyes; then
|
|
want_memdebug=yes
|
|
else
|
|
if test "x$enableval" = xno; then
|
|
want_memdebug=no
|
|
else
|
|
want_memdebug=yes
|
|
fi
|
|
fi,
|
|
want_memdebug=no)
|
|
|
|
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 ** just some generic stuff...
|
|
dnl **
|
|
|
|
AC_CHECK_FUNCS(mkfifo fcntl)
|
|
|
|
AC_CHECK_LIB(socket, socket, [
|
|
PROG_LIBS="$PROG_LIBS -lsocket"
|
|
])
|
|
|
|
AC_CHECK_LIB(nsl, inet_addr, [
|
|
PROG_LIBS="$PROG_LIBS -lnsl"
|
|
], -lsocket)
|
|
|
|
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/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 **
|
|
dnl ** check for socks
|
|
dnl **
|
|
|
|
if test "x$want_socks" = "xyes"; then
|
|
AC_CHECK_LIB(socks, connect, [
|
|
PROG_LIBS="$PROG_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 **
|
|
|
|
AM_PATH_GLIB(1.2.0,,, gmodule)
|
|
|
|
PROG_LIBS="$PROG_LIBS $GLIB_LIBS"
|
|
AC_SUBST(PROG_LIBS)
|
|
|
|
dnl **
|
|
dnl ** curses checks
|
|
dnl **
|
|
|
|
if test "x$want_textui" = "xyes"; then
|
|
AC_CHECK_CURSES
|
|
|
|
if test "x$has_ncurses" != "x"; then
|
|
AC_CHECK_LIB(ncurses, use_default_colors, [
|
|
AC_DEFINE(HAVE_NCURSES_USE_DEFAULT_COLORS)
|
|
],, $CURSES_LIBS)
|
|
AC_CHECK_LIB(ncurses, idcok, [
|
|
AC_DEFINE(HAVE_CURSES_IDCOK)
|
|
],, $CURSES_LIBS)
|
|
AC_CHECK_LIB(ncurses, resizeterm, [
|
|
AC_DEFINE(HAVE_CURSES_RESIZETERM)
|
|
],, $CURSES_LIBS)
|
|
else
|
|
AC_CHECK_LIB(curses, idcok, [
|
|
AC_DEFINE(HAVE_CURSES_IDCOK)
|
|
],, $CURSES_LIBS)
|
|
AC_CHECK_LIB(curses, resizeterm, [
|
|
AC_DEFINE(HAVE_CURSES_RESIZETERM)
|
|
],, $CURSES_LIBS)
|
|
fi
|
|
|
|
if test "$has_curses" != "true"; then
|
|
want_textui=no;
|
|
fi
|
|
else
|
|
has_curses=false
|
|
fi
|
|
|
|
AC_PATH_PROG(sedpath, sed)
|
|
if test "$want_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 "x$PERL_CFLAGS" = "x"; then
|
|
AC_MSG_RESULT([not found, building without perl.])
|
|
want_perl=no
|
|
else
|
|
PERL_LDFLAGS=`$perlpath -MExtUtils::Embed -e ldopts |$sedpath 's/-lgdbm //'`
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-ldb //'`
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lndbm //'`
|
|
if test "$system" = "Linux"; then
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lnsl //'`
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lposix //'`
|
|
fi
|
|
PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lc //'`
|
|
AC_MSG_RESULT(ok)
|
|
|
|
AC_SUBST(PERL_CFLAGS)
|
|
AC_SUBST(PERL_LDFLAGS)
|
|
AC_DEFINE(HAVE_PERL)
|
|
fi
|
|
|
|
dnl ** building from objdir..
|
|
if test ! -d plugins/perl/xs; then
|
|
mkdir -p plugins/perl/xs
|
|
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_PLUGINS, test "$want_plugins" = "yes")
|
|
AM_CONDITIONAL(BUILD_SERVERTEST, test "$want_servertest" = "yes")
|
|
AM_CONDITIONAL(HAVE_MYSQL, test "$want_mysql" = "yes")
|
|
AM_CONDITIONAL(HAVE_PERL, test "$want_perl" = "yes")
|
|
|
|
AC_SUBST(MYSQL_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"
|
|
|
|
dnl ****************************************
|
|
|
|
AC_SUBST(CHAT_MODULES)
|
|
AC_SUBST(irc_MODULES)
|
|
|
|
CORE_LIBS="../core/libcore.la ../lib-config/libirssi_config.la ../lib-popt/libpopt.la"
|
|
if test "$want_perl" = "yes"; then
|
|
PERL_LIBS="../perl/libperl.la"
|
|
else
|
|
PERL_LIBS=""
|
|
fi
|
|
FE_COMMON_LIBS="../fe-common/core/libfe_common_core.la"
|
|
|
|
CHAT_LIBS=""
|
|
for c in $CHAT_MODULES; do
|
|
CHAT_LIBS="$CHAT_LIBS ../$c/lib$c.la ../$c/core/lib${c}_core.la"
|
|
FE_COMMON_LIBS="$FE_COMMON_LIBS ../fe-common/$c/libfe_common_$c.la"
|
|
for s in `eval echo \\$${c}_MODULES`; do
|
|
CHAT_LIBS="$CHAT_LIBS ../$c/$s/lib${c}_$s.la"
|
|
module_inits="$module_inits ${c}_${s}_init();"
|
|
module_deinits="${c}_${s}_deinit(); $module_deinits"
|
|
if test -d $srcdir/src/fe-common/$c/$s; then
|
|
FE_COMMON_LIBS="$FE_COMMON_LIBS ../fe-common/$c/$s/libfe_common_${c}_$s.la"
|
|
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
|
|
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
|
|
echo "void ${c}_init(void) { ${c}_core_init(); $module_inits }" >> $file
|
|
echo "void ${c}_deinit(void) { $module_deinits ${c}_core_deinit(); }" >> $file
|
|
|
|
file="$srcdir/src/fe-common/$c/${c}-modules.c"
|
|
echo "/* this file is automatically generated by configure - don't change */" > $file
|
|
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
|
|
echo "void fe_${c}_modules_init(void) { $fe_module_inits }" >> $file
|
|
echo "void fe_${c}_modules_deinit(void) { $fe_module_deinits }" >> $file
|
|
done
|
|
|
|
dnl ** common libraries needed by frontends
|
|
COMMON_NOUI_LIBS="$PERL_LIBS $CHAT_LIBS $CORE_LIBS $INTLLIBS"
|
|
COMMON_LIBS="$FE_COMMON_LIBS $COMMON_NOUI_LIBS"
|
|
AC_SUBST(COMMON_NOUI_LIBS)
|
|
AC_SUBST(COMMON_LIBS)
|
|
|
|
dnl **
|
|
dnl ** memory debugging
|
|
dnl **
|
|
|
|
if test "x$want_memdebug" = "xyes"; then
|
|
AC_DEFINE(MEM_DEBUG)
|
|
fi
|
|
AM_CONDITIONAL(BUILD_MEMDEBUG, test "x$want_memdebug" = "xyes")
|
|
|
|
dnl **
|
|
dnl ** IPv6 support
|
|
dnl **
|
|
|
|
if test "x$want_ipv6" = "xyes"; then
|
|
AC_DEFINE(HAVE_IPV6)
|
|
fi
|
|
|
|
dnl **
|
|
dnl ** internationalization support
|
|
dnl **
|
|
|
|
ALL_LINGUAS="pl fi pt_BR fr de"
|
|
AM_GNU_GETTEXT
|
|
|
|
AC_OUTPUT(
|
|
Makefile
|
|
po/Makefile.in
|
|
intl/Makefile
|
|
src/Makefile
|
|
src/core/Makefile
|
|
src/irc/Makefile
|
|
src/irc/core/Makefile
|
|
src/irc/bot/Makefile
|
|
src/irc/dcc/Makefile
|
|
src/irc/notifylist/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/flood/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/xs/Makefile.PL
|
|
servertest/Makefile
|
|
scripts/Makefile
|
|
docs/Makefile
|
|
docs/help/Makefile
|
|
stamp.h
|
|
irssi.spec
|
|
irssi-config)
|
|
|
|
dnl ** for building from objdir
|
|
if test "x$want_perl" = "xyes"; then
|
|
old_dir=`pwd` && cd $srcdir && whole_dir=`pwd` && cd $old_dir
|
|
|
|
if test "x$old_dir" != "x$whole_dir"; then
|
|
ln -sf $whole_dir/src/perl/xs/typemap src/perl/xs/typemap
|
|
ln -sf $whole_dir/src/perl/xs/Irssi.xs src/perl/xs/Irssi.xs
|
|
ln -sf $whole_dir/src/perl/xs/Irssi.pm src/perl/xs/Irssi.pm
|
|
fi
|
|
fi
|
|
|
|
echo
|
|
|
|
echo Building text frontend ..... : $want_textui
|
|
echo Building irssi-bot ......... : $want_irssibot
|
|
echo Building with IPv6 support . : $want_ipv6
|
|
echo Building with Perl support . : $want_perl
|
|
echo Install prefix ............. : $prefix
|
|
|