# # Copyright (C) 2003-2020 Sébastien Helleu # Copyright (C) 2005 Benoit Papillault # Copyright (C) 2005-2006 Julien Louis # Copyright (C) 2005-2009 Emmanuel Bouthenot # # This file is part of WeeChat, the extensible chat client. # # WeeChat is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # WeeChat is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with WeeChat. If not, see . # # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.56) AC_INIT(WeeChat, m4_esyscmd([./version.sh devel-full | tr -d '\n']), flashcode@flashtux.org) AC_CONFIG_SRCDIR([configure.ac]) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([foreign]) LICENSE="GPL3" # Checks for programs AC_PROG_CC AC_PROG_CXX AC_PROG_MAKE_SET AC_GNU_SOURCE AC_PROG_LN_S AM_PROG_LIBTOOL PKG_PROG_PKG_CONFIG # Files to generate AC_CONFIG_FILES([weechat.pc]) AC_CONFIG_FILES([weechat-${VERSION}-1.cygport:weechat.cygport.in]) # Add some flags for some OS case "$host_os" in freebsd* | openbsd*) CFLAGS="$CFLAGS -I/usr/local/include" CXXFLAGS="$CXXFLAGS -I/usr/local/include" LDFLAGS="$LDFLAGS -L/usr/local/lib" ;; netbsd*) CFLAGS="$CFLAGS -I/usr/pkg/include" CXXFLAGS="$CXXFLAGS -I/usr/pkg/include" LDFLAGS="$LDFLAGS -L/usr/pkg/lib" ;; solaris*) LDFLAGS="$LDFLAGS -lsocket -lxnet" ;; darwin*) LDFLAGS="$LDFLAGS -lresolv" ;; esac # Gettext ALL_LINGUAS="cs de es fr hu it ja pl pt pt_BR ru tr" AM_GNU_GETTEXT AM_GNU_GETTEXT_VERSION([0.18]) # Checks for libraries AC_CHECK_LIB(ncurses, initscr, LIBNCURSES_FOUND=1, LIBNCURSES_FOUND=0) AC_CHECK_LIB(ncursesw, initscr, LIBNCURSESW_FOUND=1, LIBNCURSESW_FOUND=0) # Checks for header files AC_HEADER_STDC AC_CHECK_HEADERS([libintl.h sys/resource.h]) # Checks for typedefs, structures, and compiler characteristics AC_HEADER_TIME AC_STRUCT_TM AC_MSG_CHECKING([for socklen_t]) AC_CACHE_VAL(ac_cv_type_socklen_t, [AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include #include ]], [[ socklen_t t; ]])], [ ac_cv_type_socklen_t=yes ], [ ac_cv_type_socklen_t=no ], )]) if test $ac_cv_type_socklen_t = no; then AC_DEFINE(socklen_t, int, Define to 'int' if doesn't define.) fi AC_MSG_RESULT($ac_cv_type_socklen_t) # Checks for library functions. AC_FUNC_SELECT_ARGTYPES AC_TYPE_SIGNAL AC_CHECK_FUNCS([mallinfo]) # Variables in config.h AH_VERBATIM([PREFIX], [#undef PREFIX]) AH_VERBATIM([WEECHAT_LIBDIR], [#undef WEECHAT_LIBDIR]) AH_VERBATIM([WEECHAT_SHAREDIR], [#undef WEECHAT_SHAREDIR]) AH_VERBATIM([HAVE_GNUTLS], [#undef HAVE_GNUTLS]) AH_VERBATIM([HAVE_FLOCK], [#undef HAVE_FLOCK]) AH_VERBATIM([HAVE_EAT_NEWLINE_GLITCH], [#undef HAVE_EAT_NEWLINE_GLITCH]) AH_VERBATIM([HAVE_ASPELL_VERSION_STRING], [#undef HAVE_ASPELL_VERSION_STRING]) AH_VERBATIM([HAVE_ENCHANT_GET_VERSION], [#undef HAVE_ENCHANT_GET_VERSION]) AH_VERBATIM([HAVE_GUILE_GMP_MEMORY_FUNCTIONS], [#undef HAVE_GUILE_GMP_MEMORY_FUNCTIONS]) AH_VERBATIM([PLUGIN_ALIAS], [#undef PLUGIN_ALIAS]) AH_VERBATIM([PLUGIN_BUFLIST], [#undef PLUGIN_BUFLIST]) AH_VERBATIM([PLUGIN_CHARSET], [#undef PLUGIN_CHARSET]) AH_VERBATIM([PLUGIN_EXEC], [#undef PLUGIN_EXEC]) AH_VERBATIM([PLUGIN_FIFO], [#undef PLUGIN_FIFO]) AH_VERBATIM([PLUGIN_FSET], [#undef PLUGIN_FSET]) AH_VERBATIM([PLUGIN_IRC], [#undef PLUGIN_IRC]) AH_VERBATIM([PLUGIN_LOGGER], [#undef PLUGIN_LOGGER]) AH_VERBATIM([PLUGIN_RELAY], [#undef PLUGIN_RELAY]) AH_VERBATIM([PLUGIN_SCRIPT], [#undef PLUGIN_SCRIPT]) AH_VERBATIM([PLUGIN_PERL], [#undef PLUGIN_PERL]) AH_VERBATIM([PLUGIN_PYTHON], [#undef PLUGIN_PYTHON]) AH_VERBATIM([PLUGIN_RUBY], [#undef PLUGIN_RUBY]) AH_VERBATIM([PLUGIN_LUA], [#undef PLUGIN_LUA]) AH_VERBATIM([PLUGIN_PHP], [#undef PLUGIN_PHP]) AH_VERBATIM([PLUGIN_TCL], [#undef PLUGIN_TCL]) AH_VERBATIM([PLUGIN_GUILE], [#undef PLUGIN_GUILE]) AH_VERBATIM([PLUGIN_JAVASCRIPT], [#undef PLUGIN_JAVASCRIPT]) AH_VERBATIM([PLUGIN_SPELL], [#undef PLUGIN_SPELL]) AH_VERBATIM([PLUGIN_TRIGGER], [#undef PLUGIN_TRIGGER]) AH_VERBATIM([PLUGIN_XFER], [#undef PLUGIN_XFER]) AH_VERBATIM([TESTS], [#undef TESTS]) AH_VERBATIM([MAN], [#undef MAN]) AH_VERBATIM([DOC], [#undef DOC]) AH_VERBATIM([WEECHAT_HOME], [#define WEECHAT_HOME "~/.weechat"]) AH_VERBATIM([CA_FILE], [#define CA_FILE "/etc/ssl/certs/ca-certificates.crt"]) # Arguments for ./configure AC_ARG_ENABLE(ncurses, [ --disable-ncurses turn off ncurses interface (default=compiled if found)],enable_ncurses=$enableval,enable_ncurses=yes) AC_ARG_ENABLE(headless, [ --disable-headless turn off headless binary (default=compiled), this is required for tests],enable_headless=$enableval,enable_headless=yes) AC_ARG_ENABLE(gnutls, [ --disable-gnutls turn off gnutls support (default=compiled if found)],enable_gnutls=$enableval,enable_gnutls=yes) AC_ARG_ENABLE(largefile, [ --disable-largefile turn off Large File Support (default=on)],enable_largefile=$enableval,enable_largefile=yes) AC_ARG_ENABLE(alias, [ --disable-alias turn off Alias plugin (default=compiled)],enable_alias=$enableval,enable_alias=yes) AC_ARG_ENABLE(buflist, [ --disable-buflist turn off Buflist plugin (default=compiled)],enable_buflist=$enableval,enable_buflist=yes) AC_ARG_ENABLE(charset, [ --disable-charset turn off Charset plugin (default=compiled)],enable_charset=$enableval,enable_charset=yes) AC_ARG_ENABLE(exec, [ --disable-exec turn off Exec plugin (default=compiled)],enable_exec=$enableval,enable_exec=yes) AC_ARG_ENABLE(fifo, [ --disable-fifo turn off Fifo plugin (default=compiled)],enable_fifo=$enableval,enable_fifo=yes) AC_ARG_ENABLE(fset, [ --disable-fset turn off Fast Set plugin (default=compiled)],enable_fset=$enableval,enable_fset=yes) AC_ARG_ENABLE(irc, [ --disable-irc turn off IRC plugin (default=compiled)],enable_irc=$enableval,enable_irc=yes) AC_ARG_ENABLE(logger, [ --disable-logger turn off Logger plugin (default=compiled)],enable_logger=$enableval,enable_logger=yes) AC_ARG_ENABLE(relay, [ --disable-relay turn off Relay plugin (default=compiled)],enable_relay=$enableval,enable_relay=yes) AC_ARG_ENABLE(script, [ --disable-script turn off Script plugin (default=compiled)],enable_script=$enableval,enable_script=yes) AC_ARG_ENABLE(scripts, [ --disable-scripts turn off script plugins (perl, python, ...) (default=compiled if found)],enable_scripts=$enableval,enable_scripts=yes) AC_ARG_ENABLE(perl, [ --disable-perl turn off Perl script plugin (default=compiled if found)],enable_perl=$enableval,enable_perl=yes) AC_ARG_ENABLE(python, [ --disable-python turn off Python script plugin (default=compiled if found)],enable_python=$enableval,enable_python=yes) AC_ARG_ENABLE(python2, [ --enable-python2 use Python 2 instead of Python 3 (default=off)],enable_python2=$enableval,enable_python2=no) AC_ARG_ENABLE(ruby, [ --disable-ruby turn off Ruby script plugin (default=compiled if found)],enable_ruby=$enableval,enable_ruby=yes) AC_ARG_ENABLE(lua, [ --disable-lua turn off Lua script plugin (default=compiled if found)],enable_lua=$enableval,enable_lua=yes) AC_ARG_ENABLE(tcl, [ --disable-tcl turn off Tcl script plugin (default=compiled if found)],enable_tcl=$enableval,enable_tcl=yes) AC_ARG_ENABLE(guile, [ --disable-guile turn off Guile (scheme) script plugin (default=compiled if found)],enable_guile=$enableval,enable_guile=yes) AC_ARG_ENABLE(javascript, [ --disable-javascript turn off JavaScript script plugin (default=compiled if found)],enable_javascript=$enableval,enable_javascript=yes) AC_ARG_ENABLE(php, [ --disable-php turn off PHP script plugin (default=compiled if found)],enable_php=$enableval,enable_php=yes) AC_ARG_ENABLE(spell, [ --disable-spell turn off Spell checker plugin (default=compiled)],enable_spell=$enableval,enable_spell=yes) AC_ARG_ENABLE(enchant, [ --enable-enchant turn on Enchant lib for Spell checker plugin (default=off)],enable_enchant=$enableval,enable_enchant=no) AC_ARG_ENABLE(trigger, [ --disable-trigger turn off Trigger plugin (default=compiled)],enable_trigger=$enableval,enable_trigger=yes) AC_ARG_ENABLE(xfer, [ --disable-xfer turn off Xfer (file transfer) plugin (default=compiled)],enable_xfer=$enableval,enable_xfer=yes) AC_ARG_WITH(tclconfig, [ --with-tclconfig=DIR directory containing tcl configuration (tclConfig.sh)],tclconfig=$withval,tclconfig='') AC_ARG_WITH(debug, [ --with-debug debugging: 0=no debug, 1=debug compilation (default=1)],debug=$withval,debug=1) AC_ARG_ENABLE(tests, [ --enable-tests turn on build of tests (default=not built)],enable_tests=$enableval,enable_tests=no) AC_ARG_ENABLE(man, [ --enable-man turn on build of man page (default=not built)],enable_man=$enableval,enable_man=no) AC_ARG_ENABLE(doc, [ --enable-doc turn on build of documentation (default=not built)],enable_doc=$enableval,enable_doc=no) AC_ARG_VAR(WEECHAT_HOME, [WeeChat home directory for config, logs, scripts.. (default is "~/.weechat")]) AC_ARG_VAR(CA_FILE, [File containing the certificate authorities (default is "/etc/ssl/certs/ca-certificates.crt"). This is the default value of option "weechat.network.gnutls_ca_file".]) if test "x$WEECHAT_HOME" = "x" ; then WEECHAT_HOME="~/.weechat" fi AC_DEFINE_UNQUOTED(WEECHAT_HOME, "$WEECHAT_HOME") if test "x$CA_FILE" = "x" ; then CA_FILE="/etc/ssl/certs/ca-certificates.crt" fi AC_DEFINE_UNQUOTED(CA_FILE, "$CA_FILE") not_asked="" not_found="" if test "x$enable_headless" != "xyes" && test "x$enable_tests" = "xyes"; then AC_MSG_ERROR([*** Headless mode is required for tests.]) fi # ------------------------------------------------------------------------------ # pkg-config # ------------------------------------------------------------------------------ PKGCONFIG="" AC_CHECK_PROGS(PKGCONFIG, pkg-config) if test "x$PKGCONFIG" = "x"; then AC_MSG_ERROR([ *** "pkg-config" couldn't be found on your system. *** Try to install it with your software package manager.]) fi # ------------------------------------------------------------------------------ # dynamic loader # ------------------------------------------------------------------------------ PLUGINS_LFLAGS= AC_CHECK_FUNCS(dlopen, LIBDL_FOUND=yes, LIBDL_FOUND=no) if test "$LIBDL_FOUND" != "yes"; then AC_CHECK_LIB(dl, dlopen, [LIBDL_FOUND=yes; PLUGINS_LFLAGS=-ldl], LIBDL_FOUND=no) fi if test "$LIBDL_FOUND" != "yes"; then AC_MSG_ERROR([ *** "dl" library (dynamic library loader) couldn't be found on your system. *** Try to install it with your software package manager.]) fi AC_SUBST(PLUGINS_LFLAGS) # ------------------------------------------------------------------------------ # gui # ------------------------------------------------------------------------------ if test "x$enable_ncurses" = "xyes" ; then if test "$LIBNCURSESW_FOUND" = "0" ; then if test "$LIBNCURSES_FOUND" = "0" ; then AC_MSG_WARN([ *** ncurses library not found! *** WeeChat will be built without ncurses support.]) enable_ncurses="no" not_found="$not_found ncurses" else AC_MSG_WARN([ *** ncursesw library not found! Falling back to "ncurses" *** Be careful, UTF-8 display may not work properly if your locale is UTF-8.]) NCURSES_LFLAGS="-lncurses" fi else NCURSES_LFLAGS="-lncursesw" fi AC_CHECK_HEADERS([ncurses.h ncursesw/curses.h]) AC_SUBST(NCURSES_LFLAGS) else not_asked="$not_asked ncurses" fi # ------------------------------------------------------------------------------ # headless # ------------------------------------------------------------------------------ if test "x$enable_headless" != "xyes" ; then not_asked="$not_asked headless" fi # ------------------------------------------------------------------------------ # iconv # ------------------------------------------------------------------------------ ICONV_LFLAGS="" iconv_found="no" AC_CHECK_HEADER(iconv.h,ac_found_iconv_header="yes",ac_found_iconv_header="no") if test "x$ac_found_iconv_header" = "xyes" ; then AC_CHECK_LIB(iconv,iconv_open,ac_found_iconv_lib="yes",ac_found_iconv_lib="no") if test "x$ac_found_iconv_lib" = "xno" ; then AC_CHECK_LIB(iconv,libiconv_open,ac_found_iconv_lib="yes",ac_found_iconv_lib="no") fi if test "x$ac_found_iconv_lib" = "xyes" ; then ICONV_LFLAGS="-liconv" LIBS="$LIBS $ICONV_LFLAGS" fi AC_MSG_CHECKING(for iconv usability in programs) AC_TRY_RUN([ #include int main(int argc, char **argv) { iconv_t conv = iconv_open("ISO8859-1", "UTF-8"); if (conv != (iconv_t) -1) { return 0; } return 1; }],iconv_found="yes", iconv_found="no", iconv_found="assume-yes") if test "x$iconv_found" = "xno" ; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) fi fi if test "x$iconv_found" = "xno" ; then AC_MSG_ERROR([ *** Iconv headers and/or libraries couldn't be found on your system. *** Try to install them with your software package manager. *** WeeChat can't be built without Iconv support.]) fi # ------------------------------------------------------------------------------ # plugins # ------------------------------------------------------------------------------ if test "x$enable_scripts" = "xno" ; then enable_perl="no" enable_python="no" enable_ruby="no" enable_lua="no" enable_tcl="no" enable_guile="no" enable_javascript="no" enable_php="no" fi # ---------------------------------- alias ------------------------------------- if test "x$enable_alias" = "xyes" ; then ALIAS_CFLAGS="" ALIAS_LFLAGS="" AC_SUBST(ALIAS_CFLAGS) AC_SUBST(ALIAS_LFLAGS) AC_DEFINE(PLUGIN_ALIAS) else not_asked="$not_asked alias" fi # --------------------------------- buflist ------------------------------------ if test "x$enable_buflist" = "xyes" ; then AC_DEFINE(PLUGIN_BUFLIST) else not_asked="$not_asked buflist" fi # --------------------------------- charset ------------------------------------ if test "x$enable_charset" = "xyes" ; then CHARSET_CFLAGS="" CHARSET_LFLAGS="$ICONV_LFLAGS" AC_SUBST(CHARSET_CFLAGS) AC_SUBST(CHARSET_LFLAGS) AC_DEFINE(PLUGIN_CHARSET) else not_asked="$not_asked charset" fi # ---------------------------------- exec -------------------------------------- if test "x$enable_exec" = "xyes" ; then EXEC_CFLAGS="" EXEC_LFLAGS="" AC_SUBST(EXEC_CFLAGS) AC_SUBST(EXEC_LFLAGS) AC_DEFINE(PLUGIN_EXEC) else not_asked="$not_asked exec" fi # ---------------------------------- fifo -------------------------------------- if test "x$enable_fifo" = "xyes" ; then FIFO_CFLAGS="" FIFO_LFLAGS="" AC_SUBST(FIFO_CFLAGS) AC_SUBST(FIFO_LFLAGS) AC_DEFINE(PLUGIN_FIFO) else not_asked="$not_asked fifo" fi # --------------------------------- fset --------------------------------------- if test "x$enable_fset" = "xyes" ; then AC_DEFINE(PLUGIN_FSET) else not_asked="$not_asked fset" fi # ----------------------------------- irc -------------------------------------- if test "x$enable_irc" = "xyes" ; then AC_DEFINE(PLUGIN_IRC) else not_asked="$not_asked irc" fi # --------------------------------- logger ------------------------------------- if test "x$enable_logger" = "xyes" ; then LOGGER_CFLAGS="" LOGGER_LFLAGS="" AC_SUBST(LOGGER_CFLAGS) AC_SUBST(LOGGER_LFLAGS) AC_DEFINE(PLUGIN_LOGGER) else not_asked="$not_asked logger" fi # --------------------------------- relay -------------------------------------- if test "x$enable_relay" = "xyes" ; then RELAY_CFLAGS="" RELAY_LFLAGS="" AC_SUBST(RELAY_CFLAGS) AC_SUBST(RELAY_LFLAGS) AC_DEFINE(PLUGIN_RELAY) else not_asked="$not_asked relay" fi # --------------------------------- script ------------------------------------- if test "x$enable_script" = "xyes" ; then AC_DEFINE(PLUGIN_SCRIPT) else not_asked="$not_asked script" fi # ---------------------------------- perl -------------------------------------- PERL_VERSION= if test "x$enable_perl" = "xyes" ; then AC_PATH_PROGS(PERL, perl perl5) if test -z $PERL ; then AC_MSG_WARN([ *** Perl must be installed on your system but perl interpreter couldn't be found in path. *** Please check that perl is in path, or install it with your software package manager. *** WeeChat will be built without Perl support.]) enable_perl="no" not_found="$not_found perl" else PERL_VERSION=`perl -V:version | sed "s/version='\(.*\)';/\1/"` AC_MSG_CHECKING(for Perl headers files) PERL_HEADER_TEST=`PT=perltest.c ; echo "#include " > $PT; echo "#include " >> $PT; echo "#include " >> $PT ; echo "int main() { return 0; }" >> $PT ; $CC -Wall $PT -o $PT.out $($PERL -MExtUtils::Embed -e ccopts -e ldopts) 1>/dev/null 2>&1; echo $?; rm -f $PT $PT.out 1>/dev/null 2>&1` if test "x$PERL_HEADER_TEST" = "x0" ; then PERL_CFLAGS=`$PERL -MExtUtils::Embed -e ccopts` AC_MSG_RESULT(found) AC_MSG_CHECKING(for Perl library) PERL_LIB_TEST=`PT=perltest.c ; echo "int main() { return 0; }" > $PT ; $CC -Wall $PT -o $PT.out $($PERL -MExtUtils::Embed -e ldopts) 1>/dev/null 2>&1; echo $?; rm -f $PT $PT.out 1>/dev/null 2>&1` if test "x$PERL_LIB_TEST" = "x0" ; then PERL_LFLAGS=`$PERL -MExtUtils::Embed -e ldopts` AC_MSG_RESULT(found) else AC_MSG_WARN([ *** Perl library couldn't be found on your system. *** Try to install it with your software package manager. *** WeeChat will be built without Perl support.]) enable_perl="no" not_found="$not_found perl" fi else AC_MSG_WARN([ *** Perl headers couldn't be found on your system. *** Try to install it with your software package manager. *** WeeChat will be built without Perl support.]) enable_perl="no" not_found="$not_found perl" fi fi else not_asked="$not_asked perl" fi if test "x$enable_perl" = "xyes" ; then AC_SUBST(PERL_CFLAGS) AC_SUBST(PERL_LFLAGS) AC_DEFINE(PLUGIN_PERL) fi # --------------------------------- python ------------------------------------- PYTHON_VERSION= if test "x$enable_python" = "xyes" ; then if test "x$enable_python2" = "xyes" ; then PKG_CHECK_MODULES(PYTHON, [python2], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python2`], [PYTHON_FOUND=no]) else PKG_CHECK_MODULES(PYTHON, [python3-embed], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3-embed`], [PYTHON_FOUND=no]) if test "x$PYTHON_FOUND" != "xyes"; then PKG_CHECK_MODULES(PYTHON, [python3], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3`], [PYTHON_FOUND=no]) fi fi if test "x$PYTHON_FOUND" != "xyes" ; then AC_MSG_WARN([ *** Python must be installed on your system but python interpreter couldn't be found in path. *** Please check that python is in path, or install it with your software package manager. *** WeeChat will be built without Python support.]) enable_python="no" not_found="$not_found python" fi else not_asked="$not_asked python" fi if test "x$enable_python" = "xyes" ; then AC_SUBST(PYTHON_CFLAGS) AC_SUBST(PYTHON_LIBS) AC_SUBST(PYTHON_VERSION) AC_DEFINE(PLUGIN_PYTHON) fi # ---------------------------------- ruby -------------------------------------- RUBY_VERSION= if test "x$enable_ruby" = "xyes" ; then RUBY_CFLAGS="" RUBY_LFLAGS="" for v in "2.7" "2.6" "2.5" "2.4" "2.3" "2.2" "2.1" "2.0" "1.9" "1.8" ; do pkgconfig_ruby_found=`$PKGCONFIG --exists ruby-$v 2>/dev/null` if test "x$?" = "x0" ; then RUBY_VERSION=`$PKGCONFIG --modversion ruby-$v` RUBY_CFLAGS=`$PKGCONFIG --cflags ruby-$v` RUBY_LFLAGS=`$PKGCONFIG --libs ruby-$v` break fi done # detect old Ruby versions if test "x$RUBY_CFLAGS" = "x" -o "x$RUBY_LFLAGS" = "x" ; then AC_PATH_PROGS(RUBY, ruby1.9.3 ruby1.9.2 ruby1.9.1 ruby1.9 ruby) if test -z $RUBY ; then AC_MSG_WARN([ *** Ruby must be installed on your system but ruby interpreter couldn't be found in path. *** Please check that ruby is in path, or install it with your software package manager. *** WeeChat will be built without Ruby support.]) enable_ruby="no" not_found="$not_found ruby" else RUBY_VERSION=`$RUBY -rrbconfig -e "puts RbConfig::CONFIG[['MAJOR']] + '.' + RbConfig::CONFIG[['MINOR']] + '.' + RbConfig::CONFIG[['TEENY']]"` RUBY_INCLUDE=`$RUBY -rrbconfig -e "puts RbConfig::CONFIG[['rubyhdrdir']] || RbConfig::CONFIG[['archdir']]"` RUBY_ARCH=`$RUBY -rrbconfig -e 'print RbConfig::CONFIG[["arch"]]'` AC_MSG_CHECKING(for Ruby header files) if test -d "$RUBY_INCLUDE/"; then RUBY_CFLAGS="-I$RUBY_INCLUDE/ -I$RUBY_INCLUDE/$RUBY_ARCH" else AC_MSG_WARN([ *** Ruby header files couldn't be found on your system. *** Try to install them with your software package manager. *** WeeChat will be built without Ruby support.]) enable_ruby="no" not_found="$not_found ruby" fi AC_MSG_RESULT(found) RUBY_LFLAGS=`$RUBY -rrbconfig -e "puts RbConfig::CONFIG[['LIBRUBYARG_SHARED']]"` fi fi else not_asked="$not_asked ruby" fi if test "x$enable_ruby" = "xyes" ; then AC_SUBST(RUBY_CFLAGS) AC_SUBST(RUBY_LFLAGS) AC_DEFINE(PLUGIN_RUBY) fi # ---------------------------------- lua -------------------------------------- LUA_VERSION= if test "x$enable_lua" = "xyes" ; then ac_save_CXXFLAGS="$CXXFLAGS" ac_save_CFLAGS="$CFLAGS" ac_save_LDFLAGS="$LDFLAGS" LUA_CFLAGS="" LUA_LFLAGS="" if test -n "$lua_inc"; then CFLAGS="$CFLAGS -I$lua_inc" CXXFLAGS="$CXXFLAGS -I$lua_inc" fi if test -n "$lua_lib"; then LDFLAGS="$LDFLAGS -L$lua_lib" fi if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then AC_MSG_CHECKING(for Lua headers and libraries with pkg-config) echo for l in "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do pkgconfig_lua_found=`$PKGCONFIG --exists lua$l 2>/dev/null` if test "x$?" = "x0" ; then LUA_VERSION=`$PKGCONFIG --modversion lua$l` LUA_CFLAGS="$LUA_CFLAGS "`$PKGCONFIG --cflags lua$l` LUA_LFLAGS="$LUA_LFLAGS "`$PKGCONFIG --libs lua$l` pkgconfig_lualib_found=`$PKGCONFIG --exists lualib$l 2>/dev/null` if test "x$?" = "x0"; then LUA_CFLAGS="$LUA_CFLAGS "`$PKGCONFIG --cflags lualib$l` LUA_LFLAGS="$LUA_LFLAGS "`$PKGCONFIG --libs lualib$l` fi break fi done fi if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then LUACONFIG="" AC_CHECK_PROGS(LUACONFIG, lua-config53 lua-config5.3 lua-config52 lua-config5.2 lua-config51 lua-config5.1 lua-config50 lua-config5.0 lua-config) if test "x$LUACONFIG" != "x" ; then AC_MSG_CHECKING(for Lua headers and libraries with lua-config) echo LUA_CFLAGS=`$LUACONFIG --include` LUA_LFLAGS=`$LUACONFIG --libs` LUA_VERSION="5.0.x" fi fi if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then AC_MSG_CHECKING(for Lua headers and libraries) echo AC_CHECK_HEADER(lua.h,ac_found_lua_header="yes",ac_found_lua_header="no") AC_CHECK_HEADER(lualib.h,ac_found_liblua_header="yes",ac_found_liblua_header="no") if test "x$ac_found_lua_header" = "xyes" -a "x$ac_found_liblua_header" = "xyes"; then LUA_CFLAGS="$CFLAGS" fi for l in "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do AC_CHECK_LIB(lua$l,lua_call,ac_found_lua_lib="yes",ac_found_lua_lib="no") if test "x$ac_found_lua_lib" = "xyes" ; then LUA_VERSION=">=5.1.0" LUA_LFLAGS="$LDFLAGS -llua$l -lm" ac2_save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -llua$l -lm" if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then LDFLAGS="$LDFLAGS -ldl" fi AC_CHECK_LIB(lualib$l,luaL_openlib,ac_found_liblua_lib="yes",ac_found_liblua_lib="no") if test "x$ac_found_liblua_lib" = "xyes" ; then LUA_VERSION="5.0.x" LUA_LFLAGS="$LUA_LFLAGS -llualib$l" if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then LUA_LFLAGS="$LUA_LFLAGS -ldl" fi fi LDFLAGS="$ac2_save_LDFLAGS" break fi done fi AC_MSG_CHECKING(for Lua compiling and linking) LUA_TEST=`LT=luatest.c ; echo "#include " > $LT; echo "#include " >> $LT; echo "int main() { luaopen_base((lua_State *)lua_open()); return 0; }" >> $LT ; $CC -Wall $LT -o $LT.out $LUA_CFLAGS $LUA_LFLAGS $CFLAGS $LDFLAGS 1>/dev/null 2>&1 ; echo $?; rm -f $LT $LT.out 1>/dev/null 2>&1` if test "x$LUA_TEST" != "x0" ; then LUA52_TEST=`LT=luatest.c ; echo "#include " > $LT; echo "#include " >> $LT; echo "int main() { luaopen_base((lua_State *)luaL_newstate()); return 0; }" >> $LT ; $CC -Wall $LT -o $LT.out $LUA_CFLAGS $LUA_LFLAGS $CFLAGS $LDFLAGS 1>/dev/null 2>&1 ; echo $?; rm -f $LT $LT.out 1>/dev/null 2>&1` if test "x$LUA52_TEST" != "x0" ; then AC_MSG_RESULT(no) AC_MSG_WARN([ *** Lua (>=5.0) headers and/or libraries couldn't be found on your system. *** Try to install liblua, liblualib and liblua-dev with your software package manager. *** WeeChat will be built without Lua support.]) enable_lua="no" not_found="$not_found lua" else AC_MSG_RESULT(yes) fi else AC_MSG_RESULT(yes) fi CFLAGS="$ac_save_CFLAGS" CXXFLAGS="$ac_save_CXXFLAGS" LDFLAGS="$ac_save_LDFLAGS" else not_asked="$not_asked lua" fi if test "x$enable_lua" = "xyes" ; then AC_SUBST(LUA_CFLAGS) AC_SUBST(LUA_LFLAGS) AC_DEFINE(PLUGIN_LUA) fi # --------------------------------- tcl ------------------------------------- TCL_VERSION= if test "x$enable_tcl" = "xyes" ; then enable_plugins="yes" AC_MSG_CHECKING(for tclConfig.sh) tcl_found="no" tcl_dirs="/usr/lib/tcl8.6 /usr/lib64/tcl8.6 /usr/lib/tcl8.5 /usr/lib64/tcl8.5 /lib /lib64 /usr/lib /usr/lib64 /usr/tcl/lib /usr/tcl/lib64 /usr/local/tcl-8.6/lib /usr/local/tcl-8.6/lib64 /usr/local/tcl-8.5/lib /usr/local/tcl-8.5/lib64 /usr/local/lib /usr/local/lib64 /usr/local/tcl/lib /usr/local/tcl/lib64 /opt/lib /opt/lib64" if test "x$tclconfig" != "x" ; then tcl_dirs="${tclconfig} ${tcl_dirs}" fi for tcl_dir in $tcl_dirs ; do if test -f ${tcl_dir}/tclConfig.sh ; then . ${tcl_dir}/tclConfig.sh TCL_CFLAGS="-I${TCL_PREFIX}/include $TCL_INCLUDE_SPEC" TCL_LFLAGS="$TCL_LIB_SPEC $TCL_LIBS" tcl_found="yes" AC_MSG_RESULT(${tcl_dir}/tclConfig.sh) break fi done if test "x$tcl_found" = "xno" ; then AC_MSG_WARN([ *** Script tclConfig.sh couldn't be found on your system. *** WeeChat will be built without Tcl support.]) enable_tcl="no" not_found="$not_found tcl" fi else not_asked="$not_asked tcl" fi if test "x$enable_tcl" = "xyes" ; then AC_SUBST(TCL_CFLAGS) AC_SUBST(TCL_LFLAGS) AC_DEFINE(PLUGIN_TCL) fi # --------------------------------- guile ------------------------------------- GUILE_VERSION= if test "x$enable_guile" = "xyes" ; then enable_plugins="yes" guile_found="no" AC_MSG_CHECKING(for Guile headers and libraries) echo for v in "3.0" "2.2" "2.0" ; do pkgconfig_guile_found=`$PKGCONFIG --exists guile-$v 2>/dev/null` if test "x$?" = "x0" ; then GUILE_VERSION=`$PKGCONFIG --modversion guile-$v` GUILE_CFLAGS=`$PKGCONFIG --cflags guile-$v` GUILE_LFLAGS=`$PKGCONFIG --libs guile-$v` guile_found="yes" break fi done if test "x$guile_found" = "xyes" ; then # check if variable "scm_install_gmp_memory_functions" exists ac_save_CFLAGS="$CFLAGS" ac_save_LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS $GUILE_CFLAGS" LDFLAGS="$LDFLAGS $GUILE_LFLAGS" AC_CACHE_CHECK([for variable scm_install_gmp_memory_functions], ac_cv_have_guile_gmp_memory_functions, [ AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include ]], [[ scm_install_gmp_memory_functions = 0; ]])], [ ac_have_guile_gmp_memory_functions="yes" ], [ ac_have_guile_gmp_memory_functions="no" ])]) CFLAGS="$ac_save_CFLAGS" LDFLAGS="$ac_save_LDFLAGS" if test "x$ac_have_guile_gmp_memory_functions" = "xyes"; then AC_DEFINE(HAVE_GUILE_GMP_MEMORY_FUNCTIONS) fi else AC_MSG_WARN([ *** Guile >= 2.0 couldn't be found on your system. *** WeeChat will be built without Guile (scheme) support.]) enable_guile="no" not_found="$not_found guile" fi else not_asked="$not_asked guile" fi if test "x$enable_guile" = "xyes" ; then AC_SUBST(GUILE_CFLAGS) AC_SUBST(GUILE_LFLAGS) AC_DEFINE(PLUGIN_GUILE) fi # ------------------------------ javascript ----------------------------------- AC_LANG_PUSH([C++]) if test "x$enable_javascript" = "xyes" ; then enable_plugins="yes" v8_found="no" AC_CHECK_HEADER(v8.h,ac_found_v8_header="yes",ac_found_v8_header="no") if test "x$ac_found_v8_header" = "xyes" ; then #AC_CHECK_LIB(v8,v8,ac_found_v8_lib="yes",ac_found_v8_lib="no") ac_save_LIBS="$LIBS" LIBS="$LIBS -lv8 -lpthread" AC_MSG_CHECKING(for v8 usability in programs) AC_TRY_RUN([ #include using namespace v8; int main(int argc, char **argv) { const char *version = V8::GetVersion(); return 0; }],ac_found_v8_lib="yes", ac_found_v8_lib="no", ac_found_v8_lib="assume-yes") LIBS="$ac_save_LIBS" if test "x$ac_found_v8_lib" = "xyes" ; then AC_MSG_RESULT(yes) v8_found="yes" V8_CFLAGS="" V8_LFLAGS="-lv8 -lpthread" else AC_MSG_RESULT(no) AC_MSG_WARN([ *** V8 library couldn't be found on your system. *** WeeChat will be built without JavaScript support.]) enable_javascript="no" not_found="$not_found javascript/v8" fi else AC_MSG_WARN([ *** V8 header files couldn't be found on your system. *** WeeChat will be built without JavaScript support.]) enable_javascript="no" not_found="$not_found javascript/v8" fi else not_asked="$not_asked javascript" fi if test "x$enable_javascript" = "xyes" ; then AC_SUBST(V8_CFLAGS) AC_SUBST(V8_LFLAGS) AC_DEFINE(PLUGIN_JAVASCRIPT) fi AC_LANG_POP # ---------------------------------- php -------------------------------------- PHP_VERSION= if test "x$enable_php" = "xyes" ; then ac_save_CXXFLAGS="$CXXFLAGS" ac_save_CFLAGS="$CFLAGS" ac_save_LDFLAGS="$LDFLAGS" PHP_CFLAGS="" PHP_LFLAGS="" if test -n "$php_inc"; then CFLAGS="$CFLAGS -I$php_inc" CXXFLAGS="$CXXFLAGS -I$php_inc" fi if test -n "$php_lib"; then LDFLAGS="$LDFLAGS -L$php_lib" fi if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then AC_MSG_CHECKING(for PHP headers and libraries with pkg-config) echo for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do pkgconfig_php_found=`$PKGCONFIG --exists php$l 2>/dev/null` if test "x$?" = "x0" ; then pkgconfig_php_found=`$PKGCONFIG --atleast-version=7 php$l 2>/dev/null` if test "x$?" = "x0" ; then PHP_VERSION=`$PKGCONFIG --modversion php$l` PHP_CFLAGS="$PHP_CFLAGS "`$PKGCONFIG --cflags php$l` PHP_LFLAGS="$PHP_LFLAGS "`$PKGCONFIG --libs php$l` break fi fi done fi if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then PHPCONFIG="" AC_MSG_CHECKING(for PHP headers and libraries with php-config) for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do AC_CHECK_PROG(PHPCONFIG, "php-config$l", "php-config$l") if test "x$PHPCONFIG" != "x" ; then php_config_version=`$PHPCONFIG --version` if test "x${php_config_version#7}" != "x${php_config_version}" ; then PHP_VERSION=$php_config_version PHP_CFLAGS=`$PHPCONFIG --includes` PHP_LFLAGS="-L$($PHPCONFIG --prefix)/lib/ $($PHPCONFIG --libs) -lphp$l" break fi fi done fi if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then AC_MSG_CHECKING(for PHP headers and libraries) echo AC_CHECK_HEADER(php.h,ac_found_php_header="yes",ac_found_php_header="no") if test "x$ac_found_php_header" = "xyes" ; then PHP_CFLAGS="$CFLAGS" fi for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do AC_CHECK_LIB(php$l,php_execute_script,ac_found_php_lib="yes",ac_found_php_lib="no") if test "x$ac_found_php_lib" = "xyes" ; then PHP_VERSION=">=7.0.0" PHP_LFLAGS="$LDFLAGS -lphp7 -lm" ac2_save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -lphp7 -lm" if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then LDFLAGS="$LDFLAGS -ldl" fi LDFLAGS="$ac2_save_LDFLAGS" break fi done fi AC_MSG_CHECKING(for PHP compiling and linking) PHP_TEST=`LT=phptest.c ; echo "#include " > $LT; echo "int main() { php_embed_init(0, NULL); php_embed_shutdown(); return 0; }" >> $LT ; $CC -Wall $LT -o $LT.out $PHP_CFLAGS $PHP_LFLAGS $CFLAGS $LDFLAGS 1>/dev/null 2>&1 ; echo $?; rm -f $LT $LT.out 1>/dev/null 2>&1` if test "x$PHP_TEST" != "x0" ; then AC_MSG_RESULT(no) AC_MSG_WARN([ *** PHP (>=7.0) headers and/or libraries couldn't be found on your system. *** Try to install libphp-embed with your software package manager. *** WeeChat will be built without PHP support.]) enable_php="no" not_found="$not_found php" else AC_MSG_RESULT(yes) fi CFLAGS="$ac_save_CFLAGS" CXXFLAGS="$ac_save_CXXFLAGS" LDFLAGS="$ac_save_LDFLAGS" else not_asked="$not_asked php" fi if test "x$enable_php" = "xyes" ; then AC_SUBST(PHP_CFLAGS) AC_SUBST(PHP_LFLAGS) AC_DEFINE(PLUGIN_PHP) fi # ----------------------------------- spell ------------------------------------ if test "x$enable_spell" = "xyes" ; then ac_found_enchant_lib="no" if test "x$enable_enchant" = "xyes" ; then PKG_CHECK_MODULES(ENCHANT, [enchant], ac_found_enchant_lib="yes", ac_found_enchant_lib="no") fi if test "x$ac_found_enchant_lib" = "xyes" ; then CFLAGS="$CFLAGS -DUSE_ENCHANT" SPELL_LIB_USED="enchant" # check if function enchant_get_version() exists ac_save_CFLAGS="$CFLAGS" ac_save_LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS $ENCHANT_CFLAGS" LDFLAGS="$LDFLAGS $ENCHANT_LIBS" AC_CACHE_CHECK([for enchant_get_version() support], ac_cv_have_enchant_get_version, [ AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include ]], [[ const char *version = enchant_get_version(); ]])], [ ac_have_enchant_get_version="yes" ], [ ac_have_enchant_get_version="no" ])]) CFLAGS="$ac_save_CFLAGS" LDFLAGS="$ac_save_LDFLAGS" if test "x$ac_have_enchant_get_version" = "xyes"; then AC_DEFINE(HAVE_ENCHANT_GET_VERSION) fi else ASPELL_CFLAGS="" ASPELL_LFLAGS="" AC_CHECK_HEADER(aspell.h,ac_found_aspell_header="yes",ac_found_aspell_header="no") AC_CHECK_LIB(aspell,new_aspell_speller,ac_found_aspell_lib="yes",ac_found_aspell_lib="no") AC_MSG_CHECKING(for aspell headers and libraries) if test "x$ac_found_aspell_header" = "xno" -o "x$ac_found_aspell_lib" = "xno" ; then AC_MSG_RESULT(no) AC_MSG_WARN([ *** Aspell headers and/or libraries couldn't be found on your system. *** Try to install them with your software package manager. *** WeeChat will be built without Aspell support.]) enable_spell="no" not_found="$not_found spell" else AC_MSG_RESULT(yes) ASPELL_LFLAGS="$ASPELL_LFLAGS -laspell" SPELL_LIB_USED="aspell" # check if function aspell_version_string() exists ac_save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $ASPELL_LFLAGS" AC_CACHE_CHECK([for aspell_version_string() support], ac_cv_have_aspell_version_string, [ AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include ]], [[ const char *version = aspell_version_string(); ]])], [ ac_have_aspell_version_string="yes" ], [ ac_have_aspell_version_string="no" ])]) LDFLAGS="$ac_save_LDFLAGS" if test "x$ac_have_aspell_version_string" = "xyes"; then AC_DEFINE(HAVE_ASPELL_VERSION_STRING) fi fi fi else not_asked="$not_asked spell" fi if test "x$enable_spell" = "xyes" ; then AC_SUBST(ASPELL_CFLAGS) AC_SUBST(ASPELL_LFLAGS) AC_DEFINE(PLUGIN_SPELL) fi # --------------------------------- trigger ------------------------------------ if test "x$enable_trigger" = "xyes" ; then TRIGGER_CFLAGS="" TRIGGER_LFLAGS="" AC_SUBST(TRIGGER_CFLAGS) AC_SUBST(TRIGGER_LFLAGS) AC_DEFINE(PLUGIN_TRIGGER) else not_asked="$not_asked trigger" fi # ---------------------------------- xfer -------------------------------------- if test "x$enable_xfer" = "xyes" ; then XFER_CFLAGS="" XFER_LFLAGS="" AC_SUBST(XFER_CFLAGS) AC_SUBST(XFER_LFLAGS) AC_DEFINE(PLUGIN_XFER) else not_asked="$not_asked xfer" fi # ------------------------------------------------------------------------------ # gcrypt # ------------------------------------------------------------------------------ AC_CHECK_HEADER(gcrypt.h,ac_found_gcrypt_header="yes",ac_found_gcrypt_header="no") AC_CHECK_LIB(gcrypt,gcry_check_version,ac_found_gcrypt_lib="yes",ac_found_gcrypt_lib="no") AC_MSG_CHECKING(for gcrypt headers and libraries) if test "x$ac_found_gcrypt_header" = "xno" -o "x$ac_found_gcrypt_lib" = "xno" ; then AC_MSG_RESULT(no) AC_MSG_ERROR([ *** libgcrypt was not found. You may want to get it from ftp://ftp.gnupg.org/gcrypt/libgcrypt/ *** or try to install libgcrypt-dev with your software package manager.]) else AC_MSG_RESULT(yes) GCRYPT_CFLAGS=`libgcrypt-config --cflags` GCRYPT_LFLAGS=`libgcrypt-config --libs` AC_SUBST(GCRYPT_CFLAGS) AC_SUBST(GCRYPT_LFLAGS) fi # ------------------------------------------------------------------------------ # gnutls # ------------------------------------------------------------------------------ if test "x$enable_gnutls" = "xyes" ; then AC_CHECK_HEADER(gnutls/gnutls.h,ac_found_gnutls_header="yes",ac_found_gnutls_header="no") AC_CHECK_LIB(gnutls,gnutls_global_init,ac_found_gnutls_lib="yes",ac_found_gnutls_lib="no") AC_MSG_CHECKING(for gnutls headers and libraries) if test "x$ac_found_gnutls_header" = "xno" -o "x$ac_found_gnutls_lib" = "xno" ; then AC_MSG_RESULT(no) AC_MSG_WARN([ *** libgnutls was not found. You may want to get it from ftp://ftp.gnutls.org/pub/gnutls/ *** WeeChat will be built without GnuTLS support.]) enable_gnutls="no" not_found="$not_found gnutls" else AC_MSG_RESULT(yes) GNUTLS_CFLAGS=`pkg-config gnutls --cflags` GNUTLS_LFLAGS=`pkg-config gnutls --libs` AC_SUBST(GNUTLS_CFLAGS) AC_SUBST(GNUTLS_LFLAGS) AC_DEFINE(HAVE_GNUTLS) CFLAGS="$CFLAGS -DHAVE_GNUTLS" fi else not_asked="$not_asked gnutls" fi # ------------------------------------------------------------------------------ # flock # ------------------------------------------------------------------------------ enable_flock="no" AC_CACHE_CHECK([for flock() support], ac_cv_have_flock, [ AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include ]], [[ flock(0, LOCK_SH); ]])], [ ac_cv_have_flock="yes" ], [ ac_cv_have_flock="no" ])]) if test "x$ac_cv_have_flock" = "xyes"; then enable_flock="yes" AC_DEFINE(HAVE_FLOCK) else not_found="$not_found flock" fi # ------------------------------------------------------------------------------ # large file support # ------------------------------------------------------------------------------ if test "x$enable_largefile" = "xyes" ; then CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_LARGE_FILES" CXXFLAGS="$CXXFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_LARGE_FILES" else not_asked="$not_asked largefile" fi # ------------------------------------------------------------------------------ # backtrace # ------------------------------------------------------------------------------ enable_backtrace="no" if test "x$debug" != "x0" ; then AC_CACHE_CHECK([for execinfo.h and backtrace], ac_cv_have_backtrace, [ AC_LINK_IFELSE([AC_LANG_PROGRAM( [[ #include ]], [[ void *trace[128]; int n = backtrace(trace, 128); ]])], [ ac_cv_have_backtrace="yes" ], [ ac_cv_have_backtrace="no" ])]) if test "x$ac_cv_have_backtrace" = "xyes"; then enable_backtrace="yes" AC_DEFINE(HAVE_BACKTRACE,1,[glibc backtrace function]) else not_found="$not_found backtrace" fi fi # ------------------------------------------------------------------------------ # eat_newline_glitch # ------------------------------------------------------------------------------ enable_eatnewlineglitch="no" AC_CACHE_CHECK([for eat_newline_glitch support], ac_cv_have_eatnewlineglitch, [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[ #include ]], [[ eat_newline_glitch = 0; ]])], [ ac_cv_have_eatnewlineglitch="yes" ], [ ac_cv_have_eatnewlineglitch="no" ])]) if test "x$ac_cv_have_eatnewlineglitch" = "xyes"; then enable_eatnewlineglitch="yes" AC_DEFINE(HAVE_EAT_NEWLINE_GLITCH) else not_found="$not_found eat_newline_glitch" fi # ------------------------------------------------------------------------------ # zlib # ------------------------------------------------------------------------------ AC_CHECK_HEADER(zlib.h,ac_found_zlib_header="yes",ac_found_zlib_header="no") AC_CHECK_LIB(z,compress2,ac_found_zlib_lib="yes",ac_found_zlib_lib="no") AC_MSG_CHECKING(for zlib headers and libraries) if test "x$ac_found_zlib_header" = "xno" -o "x$ac_found_zlib_lib" = "xno" ; then AC_MSG_RESULT(no) AC_MSG_ERROR([ *** zlib was not found. You may want to get it from https://zlib.net/ *** or try to install zlib1g-dev with your software package manager.]) else AC_MSG_RESULT(yes) ZLIB_CFLAGS=`pkg-config zlib --cflags` ZLIB_LFLAGS=`pkg-config zlib --libs` AC_SUBST(ZLIB_CFLAGS) AC_SUBST(ZLIB_LFLAGS) fi # ------------------------------------------------------------------------------ # curl # ------------------------------------------------------------------------------ AC_PATH_PROG(CURL_CONFIG, curl-config) if test "x$CURL_CONFIG" = "x" ; then AC_MSG_ERROR([ *** "curl-config" couldn't be found on your system. *** Try to install libcurl-dev with your software package manager.]) fi CURL_CFLAGS=`$CURL_CONFIG --cflags` CURL_LFLAGS=`$CURL_CONFIG --libs` AC_SUBST(CURL_CFLAGS) AC_SUBST(CURL_LFLAGS) # ------------------------------------------------------------------------------ # tests # ------------------------------------------------------------------------------ if test "x$enable_tests" = "xyes" ; then cpputest_found="no" AC_MSG_CHECKING(for CppUTest headers and libraries) echo pkgconfig_cpputest_found=`$PKGCONFIG --exists cpputest 2>/dev/null` if test "x$?" = "x0" ; then CPPUTEST_VERSION=`$PKGCONFIG --modversion cpputest` CPPUTEST_CFLAGS=`$PKGCONFIG --cflags cpputest` CPPUTEST_LFLAGS=`$PKGCONFIG --libs cpputest` else AC_MSG_WARN([ *** CppUTest couldn't be found on your system. *** WeeChat will be built without tests.]) enable_tests="no" not_found="$not_found tests" fi else not_asked="$not_asked tests" fi if test "x$enable_tests" = "xyes" ; then AC_SUBST(CPPUTEST_CFLAGS) AC_SUBST(CPPUTEST_LFLAGS) AC_DEFINE(TESTS) fi # ------------------------------------------------------------------------------ # man page / documentation # ------------------------------------------------------------------------------ msg_man="" msg_doc="" if test "x$enable_man" = "xno"; then not_asked="$not_asked man" fi if test "x$enable_doc" = "xno"; then not_asked="$not_asked doc" fi if test "x$enable_man" = "xyes" -o "x$enable_doc" = "xyes"; then AC_CHECK_PROGS(ASCIIDOCTOR, [asciidoctor]) if test -n "$ASCIIDOCTOR"; then AC_MSG_CHECKING([for asciidoctor version]) asciidoctor_version=`$ASCIIDOCTOR --version 2>/dev/null | head -n 1 | cut -d" " -f2` case "${asciidoctor_version}" in Asciidoctor' '0.*|Asciidoctor' '1.5.[0-3]*) AC_MSG_RESULT([${asciidoctor_version} (too old)]) not_found="$not_found asciidoctor" enable_man="no" enable_doc="no" ;; *) AC_MSG_RESULT([${asciidoctor_version}]) if test "x$enable_man" = "xyes"; then msg_man="asciidoctor(${asciidoctor_version}) $msg_man" AC_DEFINE(MAN) fi if test "x$enable_doc" = "xyes"; then msg_doc="asciidoctor(${asciidoctor_version}) $msg_doc" AC_DEFINE(DOC) fi ;; esac else not_found="$not_found asciidoctor" enable_man="no" enable_doc="no" fi AC_SUBST(ASCIIDOCTOR) fi # ------------------------------------------------------------------------------ # general vars # ------------------------------------------------------------------------------ if test "x$prefix" = "xNONE" ; then prefix="$ac_default_prefix" fi if test "x$exec_prefix" = "xNONE" ; then exec_prefix="$prefix" fi AC_DEFINE_UNQUOTED(PREFIX, "${prefix}") WEECHAT_LIBDIR=`eval eval echo ${libdir}/weechat` AC_DEFINE_UNQUOTED(WEECHAT_LIBDIR, "$WEECHAT_LIBDIR") WEECHAT_SHAREDIR=`eval eval echo ${datadir}/weechat` AC_DEFINE_UNQUOTED(WEECHAT_SHAREDIR, "$WEECHAT_SHAREDIR") weechat_libdir=${libdir}/weechat AC_SUBST(weechat_libdir) COMMON_CFLAGS="-fsigned-char -Wall -Wextra -Werror-implicit-function-declaration" COMMON_CXXFLAGS="-fsigned-char -Wall -Wextra" AC_MSG_CHECKING([whether we have GNU assembler]) GAS=`as --version < /dev/null 2>/dev/null | grep GNU` if test "$GAS"; then COMMON_CFLAGS="${COMMON_CFLAGS} -pipe" COMMON_CXXFLAGS="${COMMON_CXXFLAGS} -pipe" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi CFLAGS=`echo $CFLAGS | sed 's/ -g / /g'` CFLAGS=`echo $CFLAGS | sed 's/^-g //g'` CFLAGS=`echo $CFLAGS | sed 's/ -g$//g'` CFLAGS=`echo $CFLAGS | sed 's/^-g$//g'` CXXFLAGS=`echo $CXXFLAGS | sed 's/ -g / /g'` CXXFLAGS=`echo $CXXFLAGS | sed 's/^-g //g'` CXXFLAGS=`echo $CXXFLAGS | sed 's/ -g$//g'` CXXFLAGS=`echo $CXXFLAGS | sed 's/^-g$//g'` if test "x$debug" = "x0" ; then CFLAGS="$COMMON_CFLAGS $CFLAGS" CXXFLAGS="$COMMON_CXXFLAGS $CXXFLAGS" else CFLAGS="$COMMON_CFLAGS $CFLAGS -g -O0" CXXFLAGS="$COMMON_CXXFLAGS $CXXFLAGS -g -O0" fi LIBS="$LIBS $INTLLIBS" case "$host_os" in freebsd*) if test "x$enable_perl" = "xyes" -o "x$enable_python" = "xyes" ; then CFLAGS="$CFLAGS -pthread" fi CFLAGS="$CFLAGS $CXXFLAGS" ;; openbsd*) if test "x$enable_python" = "xyes" ; then CFLAGS="$CFLAGS -pthread" fi ;; netbsd*) if test "x$enable_perl" = "xyes" -o "x$enable_python" = "xyes" ; then CFLAGS="$CFLAGS -pthread" fi CFLAGS="$CFLAGS $CXXFLAGS" ;; gnu*) LDFLAGS="$LDFLAGS -lpthread" ;; haiku*) LDFLAGS="$LDFLAGS -lnetwork" ;; *) ;; esac CFLAGS="$CFLAGS -DWEECHAT_VERSION=\\\"$VERSION\\\" -DWEECHAT_LICENSE=\\\"$LICENSE\\\"" CXXFLAGS="$CXXFLAGS -DWEECHAT_VERSION=\\\"$VERSION\\\" -DWEECHAT_LICENSE=\\\"$LICENSE\\\"" # ------------------------------------------------------------------------------ # output Makefiles # ------------------------------------------------------------------------------ AM_CONDITIONAL(HAVE_GNUTLS, test "$enable_gnutls" = "yes") AM_CONDITIONAL(HAVE_FLOCK, test "$enable_flock" = "yes") AM_CONDITIONAL(HAVE_EAT_NEWLINE_GLITCH, test "$enable_eatnewlineglitch" = "yes") AM_CONDITIONAL(GUI_NCURSES, test "$enable_ncurses" = "yes") AM_CONDITIONAL(HEADLESS, test "$enable_headless" = "yes") AM_CONDITIONAL(PLUGIN_ALIAS, test "$enable_alias" = "yes") AM_CONDITIONAL(PLUGIN_BUFLIST, test "$enable_buflist" = "yes") AM_CONDITIONAL(PLUGIN_CHARSET, test "$enable_charset" = "yes") AM_CONDITIONAL(PLUGIN_EXEC, test "$enable_exec" = "yes") AM_CONDITIONAL(PLUGIN_FIFO, test "$enable_fifo" = "yes") AM_CONDITIONAL(PLUGIN_FSET, test "$enable_fset" = "yes") AM_CONDITIONAL(PLUGIN_IRC, test "$enable_irc" = "yes") AM_CONDITIONAL(PLUGIN_LOGGER, test "$enable_logger" = "yes") AM_CONDITIONAL(PLUGIN_RELAY, test "$enable_relay" = "yes") AM_CONDITIONAL(PLUGIN_SCRIPT, test "$enable_script" = "yes") AM_CONDITIONAL(PLUGIN_PERL, test "$enable_perl" = "yes") AM_CONDITIONAL(PLUGIN_PYTHON, test "$enable_python" = "yes") AM_CONDITIONAL(PLUGIN_RUBY, test "$enable_ruby" = "yes") AM_CONDITIONAL(PLUGIN_LUA, test "$enable_lua" = "yes") AM_CONDITIONAL(PLUGIN_TCL, test "$enable_tcl" = "yes") AM_CONDITIONAL(PLUGIN_GUILE, test "$enable_guile" = "yes") AM_CONDITIONAL(PLUGIN_JAVASCRIPT, test "$enable_javascript" = "yes") AM_CONDITIONAL(PLUGIN_PHP, test "$enable_php" = "yes") AM_CONDITIONAL(PLUGIN_SPELL, test "$enable_spell" = "yes") AM_CONDITIONAL(PLUGIN_TRIGGER, test "$enable_trigger" = "yes") AM_CONDITIONAL(PLUGIN_XFER, test "$enable_xfer" = "yes") AM_CONDITIONAL(TESTS, test "$enable_tests" = "yes") AM_CONDITIONAL(MAN, test "$enable_man" = "yes") AM_CONDITIONAL(DOC, test "$enable_doc" = "yes") AC_OUTPUT([Makefile icons/Makefile doc/Makefile doc/en/Makefile doc/fr/Makefile doc/it/Makefile doc/de/Makefile doc/pl/Makefile doc/es/Makefile doc/ru/Makefile doc/ja/Makefile doc/cs/Makefile src/Makefile src/core/Makefile src/plugins/Makefile src/plugins/alias/Makefile src/plugins/buflist/Makefile src/plugins/charset/Makefile src/plugins/exec/Makefile src/plugins/fifo/Makefile src/plugins/fset/Makefile src/plugins/irc/Makefile src/plugins/logger/Makefile src/plugins/relay/Makefile src/plugins/script/Makefile src/plugins/perl/Makefile src/plugins/python/Makefile src/plugins/ruby/Makefile src/plugins/lua/Makefile src/plugins/tcl/Makefile src/plugins/guile/Makefile src/plugins/javascript/Makefile src/plugins/php/Makefile src/plugins/spell/Makefile src/plugins/trigger/Makefile src/plugins/xfer/Makefile src/gui/Makefile src/gui/curses/Makefile src/gui/curses/normal/Makefile src/gui/curses/headless/Makefile tests/Makefile intl/Makefile po/Makefile.in]) # ------------------------------------------------------------------------------ # end message # ------------------------------------------------------------------------------ listgui="" if test "x$enable_ncurses" = "xyes" ; then listgui="$listgui ncurses" fi if test "x$enable_headless" = "xyes" ; then listgui="$listgui headless" fi if test "x$listgui" = "x" ; then AC_MSG_ERROR([ *** No interface specified... *** Please enable at least ncurses or headless.]) fi listplugins="" if test "x$enable_alias" = "xyes"; then listplugins="$listplugins alias" fi if test "x$enable_buflist" = "xyes"; then listplugins="$listplugins buflist" fi if test "x$enable_charset" = "xyes"; then listplugins="$listplugins charset" fi if test "x$enable_exec" = "xyes"; then listplugins="$listplugins exec" fi if test "x$enable_fifo" = "xyes"; then listplugins="$listplugins fifo" fi if test "x$enable_fset" = "xyes"; then listplugins="$listplugins fset" fi if test "x$enable_irc" = "xyes" ; then listplugins="$listplugins irc" fi if test "x$enable_logger" = "xyes"; then listplugins="$listplugins logger" fi if test "x$enable_relay" = "xyes"; then listplugins="$listplugins relay" fi if test "x$enable_script" = "xyes"; then listplugins="$listplugins script" fi if test "x$enable_perl" = "xyes"; then listplugins="$listplugins perl($PERL_VERSION)" fi if test "x$enable_python" = "xyes"; then listplugins="$listplugins python($PYTHON_VERSION)" fi if test "x$enable_ruby" = "xyes"; then listplugins="$listplugins ruby($RUBY_VERSION)" fi if test "x$enable_lua" = "xyes"; then listplugins="$listplugins lua($LUA_VERSION)" fi if test "x$enable_tcl" = "xyes"; then listplugins="$listplugins tcl($TCL_VERSION)" fi if test "x$enable_guile" = "xyes"; then listplugins="$listplugins guile($GUILE_VERSION)" fi if test "x$enable_javascript" = "xyes"; then listplugins="$listplugins javascript/v8" fi if test "x$enable_php" = "xyes"; then listplugins="$listplugins php($PHP_VERSION)" fi if test "x$enable_spell" = "xyes"; then listplugins="$listplugins spell($SPELL_LIB_USED)" fi if test "x$enable_trigger" = "xyes"; then listplugins="$listplugins trigger" fi if test "x$enable_xfer" = "xyes"; then listplugins="$listplugins xfer" fi listoptional="" if test "x$enable_gnutls" = "xyes"; then listoptional="$listoptional gnutls" fi if test "x$enable_flock" = "xyes"; then listoptional="$listoptional flock" fi if test "x$enable_largefile" = "xyes"; then listoptional="$listoptional largefile" fi if test "x$enable_backtrace" = "xyes"; then listoptional="$listoptional backtrace" fi msg_debug="no" if test "x$debug" != "x0"; then msg_debug="yes" fi msg_tests="no" if test "x$enable_tests" = "xyes"; then msg_tests="yes" fi if test "x$msg_man" = "x"; then msg_man="no" else msg_man="yes: $msg_man" fi if test "x$msg_doc" = "x"; then msg_doc="no" else msg_doc="yes: $msg_doc" fi echo "" echo "Enabled features:" echo " Interfaces............. :$listgui" echo " Plugins................ :$listplugins" echo " Optional features...... :$listoptional" echo " Compile with debug..... : $msg_debug" echo " Compile tests.......... : $msg_tests" echo " Man page............... : $msg_man" echo " Documentation.......... : $msg_doc" echo " Certificate authorities : ${CA_FILE}" if test "x$not_asked" != "x" || test "x$not_found" != "x"; then echo "" echo "Disabled features:" if test "x$not_asked" != "x"; then echo " - not asked:$not_asked" fi if test "x$not_found" != "x"; then echo " - not found:$not_found" fi fi echo "" echo "WeeChat home directory is ${WEECHAT_HOME}" echo "" eval echo "WeeChat will be installed in $bindir" echo "" echo "configure complete, now type 'make' to build WeeChat $VERSION" echo ""