X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=configure.in;h=51841e7a862ac236c42867833b6ca7d736d724a7;hp=34cb1290533827175de66e5e473b37abe0db50e0;hb=f86ce17f1c9f066531d4da9ac344c13ee88f12d3;hpb=a29308802730068270e5032831ea56e2a4fac74b diff --git a/configure.in b/configure.in index 34cb1290..51841e7a 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ # (at your option) any later version. # Please read the file COPYING, README and AUTHORS for more information. # -# $Id: configure.in,v 1.117 2005/12/06 22:37:50 alex Exp $ +# $Id: configure.in,v 1.125 2006/12/26 16:00:45 alex Exp $ # # -- Initialisation -- @@ -53,32 +53,32 @@ AC_PROG_RANLIB AM_C_PROTOTYPES AC_C_CONST +AC_C_INLINE # -- Hard coded system and compiler dependencies/features/options ... -- -if test "$GCC" = "yes"; then - # We are using the GNU C compiler. Good! - CFLAGS="$CFLAGS -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes" -fi - - AC_DEFUN([GCC_STACK_PROTECT_CC],[ ssp_cc=yes - if test "X$CC" != "X"; then - AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector]) - ssp_old_cflags="$CFLAGS" - CFLAGS="$CFLAGS -fstack-protector" - AC_TRY_COMPILE(,,, ssp_cc=no) - echo $ssp_cc - if test "X$ssp_cc" = "Xno"; then - CFLAGS="$ssp_old_cflags" - else + # we use -fstack-protector-all for the test to enfoce the use of the guard variable + AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector]) + ssp_old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -fstack-protector-all" + AC_TRY_LINK(,,, ssp_cc=no) + echo $ssp_cc + CFLAGS="$ssp_old_cflags" + if test "X$ssp_cc" = "Xyes"; then + CFLAGS="$CFLAGS -fstack-protector" AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.]) - fi fi ]) -GCC_STACK_PROTECT_CC + +if test "$GCC" = "yes"; then + # We are using the GNU C compiler. Good! + CFLAGS="$CFLAGS -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes" + + GCC_STACK_PROTECT_CC +fi case "$target_os" in hpux*) @@ -138,17 +138,15 @@ AC_FUNC_STRFTIME AC_CHECK_FUNCS([ \ bind gethostbyaddr gethostbyname gethostname inet_ntoa malloc memmove \ - memset realloc setsid setsockopt socket strcasecmp strchr strerror \ + memset realloc setsid setsockopt socket strcasecmp strchr strcspn strerror \ strstr waitpid],,AC_MSG_ERROR([required function missing!])) AC_CHECK_FUNCS(inet_aton isdigit sigaction snprintf vsnprintf strdup strlcpy strlcat) -AC_CHECK_FUNCS(select,[AC_CHECK_HEADERS(sys/select.h)], - AC_MSG_ERROR([required function select() is missing!]) -) - # -- Configuration options -- +# use syslog? + x_syslog_on=no AC_ARG_WITH(syslog, [ --without-syslog disable syslog (autodetected by default)], @@ -174,6 +172,8 @@ if test "$x_syslog_on" = "yes"; then AC_CHECK_HEADERS(syslog.h,,AC_MSG_ERROR([required C header missing!])) fi +# use zlib compression? + x_zlib_on=no AC_ARG_WITH(zlib, [ --without-zlib disable zlib compression (autodetected by default)], @@ -198,44 +198,120 @@ if test "$x_zlib_on" = "yes"; then AC_CHECK_HEADERS(zlib.h,,AC_MSG_ERROR([required C header missing!])) fi +# detect which IO API to use: + +x_io_backend=none + +AC_ARG_WITH(select, + [ --without-select disable select IO support (autodetected by default)], + [ if test "$withval" != "no"; then + if test "$withval" != "yes"; then + CFLAGS="-I$withval/include $CFLAGS" + CPPFLAGS="-I$withval/include $CPPFLAGS" + LDFLAGS="-L$withval/lib $LDFLAGS" + fi + AC_CHECK_FUNCS(select, x_io_select=yes, + AC_MSG_ERROR([Can't enable select IO support!]) + ) + fi + ], + [ + AC_CHECK_FUNCS(select, x_io_select=yes) + ] +) + +AC_ARG_WITH(poll, + [ --without-poll disable poll support (autodetected by default)], + [ if test "$withval" != "no"; then + if test "$withval" != "yes"; then + CFLAGS="-I$withval/include $CFLAGS" + CPPFLAGS="-I$withval/include $CPPFLAGS" + LDFLAGS="-L$withval/lib $LDFLAGS" + fi + AC_CHECK_FUNCS(poll, x_io_backend=poll\(\), + AC_MSG_ERROR([Can't enable poll IO support!]) + ) + fi + ], + [ + AC_CHECK_FUNCS(poll, x_io_backend=poll\(\)) + ] +) + +AC_ARG_WITH(devpoll, + [ --without-devpoll disable /dev/poll IO support (autodetected by default)], + [ if test "$withval" != "no"; then + if test "$withval" != "yes"; then + CFLAGS="-I$withval/include $CFLAGS" + CPPFLAGS="-I$withval/include $CPPFLAGS" + LDFLAGS="-L$withval/lib $LDFLAGS" + fi + + AC_CHECK_HEADERS(sys/devpoll.h,,AC_MSG_ERROR([required C header missing!])) + fi + ], + [ + AC_CHECK_HEADERS(sys/devpoll.h, x_io_backend=/dev/poll) + ] +) -x_io_backend=select AC_ARG_WITH(epoll, - [ --without-epoll disable epoll support (autodetected by default)], + [ --without-epoll disable epoll IO support (autodetected by default)], [ if test "$withval" != "no"; then if test "$withval" != "yes"; then CFLAGS="-I$withval/include $CFLAGS" CPPFLAGS="-I$withval/include $CPPFLAGS" LDFLAGS="-L$withval/lib $LDFLAGS" fi - AC_CHECK_FUNCS(epoll_create, x_io_backend=epoll, - AC_MSG_ERROR([Can't enable epoll support!]) + AC_CHECK_FUNCS(epoll_create, x_io_epoll=yes, + AC_MSG_ERROR([Can't enable epoll IO support!]) ) fi ], [ - AC_CHECK_FUNCS(epoll_create, x_io_backend=epoll) + AC_CHECK_FUNCS(epoll_create, x_io_epoll=yes) ] ) AC_ARG_WITH(kqueue, - [ --without-kqueue disable kqueue support (autodetected by default)], + [ --without-kqueue disable kqueue IO support (autodetected by default)], [ if test "$withval" != "no"; then if test "$withval" != "yes"; then CFLAGS="-I$withval/include $CFLAGS" CPPFLAGS="-I$withval/include $CPPFLAGS" LDFLAGS="-L$withval/lib $LDFLAGS" fi - AC_CHECK_FUNCS(kqueue, x_io_backend=kqueue, - AC_MSG_ERROR([Can't enable kqueue support!]) + AC_CHECK_FUNCS(kqueue, x_io_backend=kqueue\(\), + AC_MSG_ERROR([Can't enable kqueue IO support!]) ) fi ], [ - AC_CHECK_FUNCS(kqueue, x_io_backend=kqueue) + AC_CHECK_FUNCS(kqueue, x_io_backend=kqueue\(\)) ] ) +if test "$x_io_epoll" = "yes" -a "$x_io_select" = "yes"; then + # when epoll() and select() are available, we'll use both! + x_io_backend="epoll(), select()" +else + if test "$x_io_epoll" = "yes"; then + # we prefere epoll() if it is available + x_io_backend="epoll()" + else + if test "$x_io_select" = "yes" -a "$x_io_backend" = "none"; then + # we'll use select, when available and no "better" + # interface has been detected ... + x_io_backend="select()" + fi + fi +fi + +if test "$x_io_backend" = "none"; then + AC_MSG_ERROR([No useabe IO API activated/found!?]) +fi + +# use TCP wrappers? x_tcpwrap_on=no AC_ARG_WITH(tcp-wrappers, @@ -266,6 +342,8 @@ int deny_severity = 0; ] ) +# include support for "zeroconf"? + x_zeroconf_on=no AC_ARG_WITH(zeroconf, [ --with-zeroconf enable support for "Zeroconf"], @@ -293,7 +371,8 @@ if test "$x_zeroconf_on" = "osx"; then fi if test "$x_zeroconf_on" = "howl"; then for dir in /usr/local/include /usr/local/include/howl* \ - /usr/include /usr/include/howl*; do + /usr/include /usr/include/howl* \ + /usr/local/include/avahi* /usr/include/avahi*; do test -d "$dir" || continue AC_MSG_CHECKING([for Howl headers in $dir]) if test -f "$dir/rendezvous/rendezvous.h"; then @@ -313,6 +392,8 @@ if test "$x_zeroconf_on" = "howl"; then AC_DEFINE(ZEROCONF, 1) fi +# do IDENT requests using libident? + x_identauth_on=no AC_ARG_WITH(ident, [ --with-ident enable "IDENT" ("AUTH") protocol support], @@ -334,6 +415,8 @@ if test "$x_identauth_on" = "yes"; then AC_CHECK_HEADERS(ident.h,,AC_MSG_ERROR([required C header missing!])) fi +# compile in IRC+ protocol support? + x_ircplus_on=yes AC_ARG_ENABLE(ircplus, [ --disable-ircplus disable IRC+ protocol], @@ -343,6 +426,8 @@ if test "$x_ircplus_on" = "yes"; then AC_DEFINE(IRCPLUS, 1) fi +# compile in IRC "sniffer"? + x_sniffer_on=no; x_debug_on=no AC_ARG_ENABLE(sniffer, [ --enable-sniffer enable IRC traffic sniffer (enables debug mode)], @@ -352,6 +437,8 @@ AC_ARG_ENABLE(sniffer, fi ) +# enable additional debugging code? + AC_ARG_ENABLE(debug, [ --enable-debug show additional debug output], if test "$enableval" = "yes"; then x_debug_on=yes; fi @@ -361,6 +448,8 @@ if test "$x_debug_on" = "yes"; then test "$GCC" = "yes" && CFLAGS="-pedantic $CFLAGS" fi +# enable "strict RFC rules"? + x_strict_rfc_on=no AC_ARG_ENABLE(strict-rfc, [ --enable-strict-rfc strict RFC conformance -- may break clients!], @@ -481,7 +570,7 @@ test "$x_identauth_on" = "yes" \ && echo $ECHO_N "yes $ECHO_C" \ || echo $ECHO_N "no $ECHO_C" echo $ECHO_N " I/O backend: $ECHO_C" - echo "\"$x_io_backend()\"" + echo "\"$x_io_backend\"" echo