X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=configure.in;h=fd1a4102f065306d3078efdbbc568dcbdc24d786;hp=4d3450efdbe6df52c109c934508be0c45df93860;hb=refs%2Fheads%2Fupstream;hpb=55978d1d1f9c468a0c0cce92fbe3ab958384761d diff --git a/configure.in b/configure.in index 4d3450e..fd1a410 100644 --- a/configure.in +++ b/configure.in @@ -41,8 +41,8 @@ ac_default_prefix=$unet_cv_prefix dnl Define the input and output configuration header file. AC_CONFIG_HEADER([config.h]) -dnl Demand at least version 2.50 of autoconf -AC_PREREQ(2.50) +dnl Demand at least version 2.59 of autoconf (for AS_HELP_STRING) +AC_PREREQ(2.59) dnl Find out what type of system we are AC_CANONICAL_HOST @@ -52,50 +52,6 @@ AC_PROG_CC dnl ANSIfy the C compiler whenever possible. AM_PROG_CC_STDC -dnl Use -O3 instead of -O2. -if test x"$CFLAGS" != x; then - CFLAGS=`echo "$CFLAGS" | sed -e 's/-O2/-O3/'` -fi -dnl Remove -pipe during configure -if test x"$CFLAGS" != x; then - CFLAGS=`echo "$CFLAGS" | sed -e 's/-pipe//g'` -fi -dnl Notice the -g flag and deal accordingly -if test x"$CFLAGS" != x; then - unet_old_cflags=$CFLAGS - CFLAGS=`echo "$CFLAGS" | sed -e 's/-g//g'` -fi -if test x"$CFLAGS" != x"$unet_old_cflags"; then - # If -g was already there, force symbols to be enabled - unet_cv_enable_symbols=yes -fi -dnl Notice the -pg flag and deal accordingly -if test x"$CFLAGS" != x; then - unet_old_cflags=$CFLAGS - CFLAGS=`echo "$CFLAGS" | sed -e 's/-pg//g'` -fi -if test x"$CFLAGS" != x"$unet_old_cflags"; then - # If -pg was already there, force profiling to be enabled - unet_cv_enable_profile=yes -fi -dnl Notice the -Wall flag and deal accordingly -if test x"$CFLAGS" != x; then - unet_old_cflags=$CFLAGS - CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wall//g'` -fi -if test x"$CFLAGS" != x"$unet_old_cflags"; then - # If -Wall was already there, force warnings to be enabled - unet_cv_enable_warnings=yes -fi -dnl Notice the -pedantic flag and deal accordingly -if test x"$CFLAGS" != x; then - unet_old_cflags=$CFLAGS - CFLAGS=`echo "$CFLAGS" | sed -e 's/-pedantic//g'` -fi -if test x"$CFLAGS" != x"$unet_old_cflags"; then - # If -pedantic was already there, force pedatic to be enabled - unet_cv_enable_pedantic=yes -fi dnl Checks for libraries. @@ -108,7 +64,7 @@ AC_LIBRARY_NET dnl Checks for header files. AC_HEADER_STDC -AC_CHECK_HEADERS(crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/socket.h) +AC_CHECK_HEADERS(crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/resource.h sys/socket.h) dnl Checks for typedefs, structures, and compiler characteristics dnl AC_C_CONST @@ -118,10 +74,35 @@ AC_HEADER_TIME AC_STRUCT_TM AC_TYPE_UID_T unet_CHECK_TYPE_SIZES -AC_CHECK_TYPE(socklen_t, unsigned int) AC_CHECK_TYPE(struct sockaddr_in6, [unet_have_sockaddr_in6="yes"], [unet_have_sockaddr_in6="no"], [#include #include ]) +dnl Check for socklen_t. In traditional BSD this is an int, but some +dnl OSes use a different type. Test until we find something that will +dnl work properly. Test borrowed from a patch submitted for Python. +AC_CHECK_TYPE([socklen_t], ,[ + AC_MSG_CHECKING([for socklen_t equivalent]) + AC_CACHE_VAL([curl_cv_socklen_t_equiv], + [ +dnl Systems have either "struct sockaddr*" or "void*" as second +dnl arg to getpeername. + curl_cv_socklen_t_equiv= + for arg2 in "struct sockaddr" void ; do + for t in int size_t unsigned long "unsigned long" ; do + AC_TRY_COMPILE([#include +#include +int getpeername (int $arg2 *, $t *);],[$t len; + getpeername(0, 0, &len);], [curl_cv_socklen_t_equiv="$t" + break]) + done + done + ]) + AC_MSG_RESULT($curl_cv_socklen_t_equiv) + AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined])], + [#include +#include]) + dnl Checks for library functions. AC_CHECK_FUNCS([kqueue setrlimit getrusage times]) @@ -142,35 +123,31 @@ AC_PATH_PROGS(SHPROG, sh, /bin/sh) dnl (F)LEX - needed for the new conf file parser AC_PROG_LEX -if test -x "$LEX" -then +dnl The autoconf docs say $LEX defaults to 'lex'. They lie. +if test "$LEX" = ":" ; then AC_MSG_ERROR([Cannot find flex.]) +elif echo "" | $LEX -V -v --version > /dev/null 2>&1 ; then + : +else + AC_MSG_ERROR([Cannot use $LEX as flex.]) fi -if test -z "$LEXLIB" -then - AC_MSG_FAILURE([ - Cannot find a library with yywrap() in, but flex was found. - It's possible the compiler you're using ($CC) is incompatible with the - installed library.]) -fi - -LIBS="$LEXLIB $LIBS" - dnl YACC - ditto AC_PROG_YACC -if test -z "$YACC" -then +dnl The autoconf docs say $YACC defaults to 'yacc'. This seems to be true, +dnl but judging from AC_PROG_LEX, it may not stay true. +if test "$YACC" = ":" ; then AC_MSG_ERROR([Cannot find yacc.]) +elif echo "" | $YACC -V -v --version > /dev/null 2>&1 ; then + : +else +dnl byacc does not seem to have any way to test for workingness, so only warn. + AC_MSG_WARN([$YACC may not work as yacc.]) fi - unet_NONBLOCKING unet_SIGNALS -dnl Add -pipe when possible -unet_PIPE_CFLAGS - dnl Check OS for os_dep files. AC_MSG_CHECKING(for OS-dependent information) case "$host" in @@ -186,6 +163,7 @@ case "$host" in else unet_poll_syscall=no fi + AC_DEFINE([IRCU_SOLARIS], 1, [Define if building on Solaris]) ;; *-sunos*) @@ -241,7 +219,7 @@ fi AC_MSG_RESULT([$unet_cv_enable_poll]) if test x"$unet_cv_enable_poll" = xyes; then - AC_DEFINE([USE_POLL], , [Specify whether or not to use poll()]) + AC_DEFINE([USE_POLL], 1, [Specify whether or not to use poll()]) ENGINE_C=engine_poll.c else ENGINE_C=engine_select.c @@ -258,7 +236,7 @@ AC_ARG_ENABLE([debug], AC_MSG_RESULT([$unet_cv_enable_debug]) if test x"$unet_cv_enable_debug" = xyes; then - AC_DEFINE([DEBUGMODE], , [Enable debugging code]) + AC_DEFINE([DEBUGMODE], 1, [Enable debugging code]) fi dnl Now look for --enable-leak-detect @@ -284,7 +262,7 @@ AC_ARG_WITH([ipv6], [ac_cv_use_ipv6=$unet_have_sockaddr_in6]) AC_CACHE_CHECK([whether to use IPv6], [ac_cv_use_ipv6], [ac_cv_use_ipv6=no]) if test x"$ac_cv_use_ipv6" != "xno" ; then - AC_DEFINE([IPV6], , [Enable IPv6 support]) + AC_DEFINE([IPV6], 1, [Enable IPv6 support]) fi dnl And now for --disable-asserts @@ -297,26 +275,13 @@ AC_ARG_ENABLE([asserts], AC_MSG_RESULT([$unet_cv_enable_asserts]) if test x"$unet_cv_enable_asserts" = xno; then - AC_DEFINE([NDEBUG], , [Disable assertions]) -fi - -dnl Check for --enable-symbols -AC_MSG_CHECKING([whether to enable debugging symbols]) -AC_ARG_ENABLE([symbols], -[ --disable-symbols Disable debugging symbols (remove -g from CFLAGS)], -[unet_cv_enable_symbols=$enable_symbols], -[AC_CACHE_VAL(unet_cv_enable_symbols, -[unet_cv_enable_symbols=yes])]) -AC_MSG_RESULT([$unet_cv_enable_symbols]) - -if test x"$unet_cv_enable_symbols" = xyes; then - CFLAGS="-g $CFLAGS" + AC_DEFINE([NDEBUG], 1, [Disable assertions]) fi dnl Now check for --enable-profile AC_MSG_CHECKING([whether to enable profiling support (gprof)]) AC_ARG_ENABLE([profile], -[ --enable-profile Enable profiling support (add -pg to CFLAGS)], +[ --enable-profile Enable profiling support (add -pg to CFLAGS and LDFLAGS)], [unet_cv_enable_profile=$enable_profile], [AC_CACHE_VAL(unet_cv_enable_profile, [unet_cv_enable_profile=no])]) @@ -324,6 +289,7 @@ AC_MSG_RESULT([$unet_cv_enable_profile]) if test x"$unet_cv_enable_profile" = xyes; then CFLAGS="-pg $CFLAGS" + LDFLAGS="-pg $LDFLAGS" fi dnl Now check for --enable-pedantic @@ -362,7 +328,7 @@ AC_ARG_ENABLE([inlines], AC_MSG_RESULT([$unet_cv_enable_inlines]) if test x"$unet_cv_enable_inlines" = xyes; then - AC_DEFINE([FORCEINLINE], , [Force inlining for a few critical functions]) + AC_DEFINE([FORCEINLINE], 1, [Force inlining for a few critical functions]) fi dnl --disable-devpoll check... @@ -380,7 +346,7 @@ fi AC_MSG_RESULT([$unet_cv_enable_devpoll]) if test x"$unet_cv_enable_devpoll" != xno; then - AC_DEFINE([USE_DEVPOLL], , [Define to enable the /dev/poll engine]) + AC_DEFINE([USE_DEVPOLL], 1, [Define to enable the /dev/poll engine]) ENGINE_C="engine_devpoll.c $ENGINE_C" fi @@ -399,7 +365,7 @@ fi AC_MSG_RESULT([$unet_cv_enable_kqueue]) if test x"$unet_cv_enable_kqueue" != xno; then - AC_DEFINE([USE_KQUEUE], , [Define to enable the kqueue engine]) + AC_DEFINE([USE_KQUEUE], 1, [Define to enable the kqueue engine]) ENGINE_C="engine_kqueue.c $ENGINE_C" fi @@ -424,8 +390,8 @@ if test x"$unet_cv_enable_epoll" != xno; then AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [epoll_create(10);])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]) - AC_DEFINE([EPOLL_NEED_BODY],,[Define to implement epoll system calls])]) - AC_DEFINE([USE_EPOLL], , [Define to enable the epoll engine]) + AC_DEFINE([EPOLL_NEED_BODY], 1, [Define to implement epoll system calls])]) + AC_DEFINE([USE_EPOLL], 1, [Define to enable the epoll engine]) ENGINE_C="engine_epoll.c $ENGINE_C" fi @@ -736,7 +702,12 @@ AC_ARG_WITH([maxcon], [unet_cv_with_maxcon=$unet_maxcon])]) if test x"$unet_cv_with_maxcon" = xyes -o x"$unet_cv_with_maxcon" = xno; then + if test "$unet_maxcon" -lt 32; then + AC_MSG_ERROR([Maximum connections (number of open files minus 4) must be at least 32.]) + fi unet_cv_with_maxcon=$unet_maxcon +elif test "$unet_cv_with_maxcon" -lt 32; then + AC_MSG_ERROR([Maximum connections (--with-maxcon) must be at least 32.]) fi AC_MSG_RESULT([$unet_cv_with_maxcon]) @@ -744,8 +715,55 @@ AC_MSG_RESULT([$unet_cv_with_maxcon]) AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $unet_cv_with_maxcon, [Maximum number of network connections]) +unet_cv_enable_gnutls="no" +unet_cv_enable_openssl="yes" + +AC_MSG_CHECKING([for GnuTLS]) +AC_ARG_ENABLE([gnutls], + [ --enable-gnutls Enables GnuTLS ssl backend.], + [unet_cv_enable_gnutls=$enable_gnutls], +) +AC_MSG_RESULT([$unet_cv_enable_gnutls]) + +AC_MSG_CHECKING([for OpenSSL]) +AC_ARG_ENABLE([openssl], + [ --enable-openssl Enables OpenSSL ssl backend.], + [unet_cv_enable_openssl=$enable_openssl], +) +AC_MSG_RESULT([$unet_cv_enable_openssl]) + +if test x"$unet_cv_enable_gnutls" = xyes; then + unet_cv_enable_gnutls="no"; + AC_CHECK_LIB(gnutls, gnutls_init, [ + AC_CHECK_HEADERS(gnutls/gnutls.h, [ + unet_cv_enable_gnutls="yes"; + ]) + ]) +fi + +if test x"$unet_cv_enable_openssl" = xyes; then + unet_cv_enable_openssl="no"; + AC_CHECK_LIB(ssl, SSL_read, [ + AC_CHECK_LIB(crypto, X509_new, [ + AC_CHECK_HEADERS(openssl/ssl.h openssl/err.h, [ + unet_cv_enable_openssl="yes"; + ]) + ]) + ]) +fi + +if test x"$unet_cv_enable_gnutls" = xyes; then + LIBS="$LIBS -lgnutls" + AC_DEFINE([HAVE_GNUTLS], 1, [Define if you are using GnuTLS]) +fi + +if test x"$unet_cv_enable_openssl" = xyes ; then + LIBS="$LIBS -lssl -lcrypto" + AC_DEFINE([HAVE_OPENSSL], 1, [Define if you are using OpenSSL]) +fi + dnl Finally really generate all output files: -AC_OUTPUT(Makefile ircd/Makefile doc/Makefile, [echo timestamp > stamp-h]) +AC_OUTPUT(Makefile ircd/Makefile ircd/test/Makefile, [echo timestamp > stamp-h]) dnl Report configuration AC_OUTPUT_COMMANDS([echo " @@ -759,6 +777,8 @@ ircu is now hopefully configured for your system. Profile: $unet_cv_enable_profile Owner/mode: $unet_cv_with_owner.$unet_cv_with_group ($unet_cv_with_mode) Chroot: $unet_cv_with_chroot + OpenSSL: $unet_cv_enable_openssl + GnuTLS: $unet_cv_enable_gnutls Domain: $unet_cv_with_domain DPath: $unet_cv_with_dpath