diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..cb32be3 --- /dev/null +++ b/configure.ac @@ -0,0 +1,191 @@ +# Inspired by work Copyright (C) 2006 Luca Filipozzi +# vim: set fdm=marker ts=2 sw=2 et: + +AC_REVISION([$Id$]) + +AC_PREREQ(2.69) +AC_INIT([ircd-hybrid], [8.0.0], [bugs@ircd-hybrid.org]) +AM_INIT_AUTOMAKE(1.12.4) +AM_MAINTAINER_MODE +AC_CONFIG_HEADER(config.h) +AC_CONFIG_SRCDIR(src/ircd.c) + +# Checks for programs. +AC_PROG_CC_C99 +AS_IF([test "$ac_cv_prog_cc_c99" = "no"], + [AC_MSG_ERROR([no suitable C99 compiler found. Aborting.])]) +AC_PROG_YACC +AM_PROG_LEX +AC_PROG_INSTALL + +# Initializing libtool. +LT_CONFIG_LTDL_DIR([libltdl]) +LT_INIT([dlopen disable-static]) +LTDL_INIT([recursive convenience]) +LIBTOOL="$LIBTOOL --silent" + +# Checks for libraries. +AX_CHECK_LIB_IPV4 +AX_CHECK_LIB_IPV6 + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_BIGENDIAN + +# Checks for library functions. +AC_CHECK_FUNCS_ONCE(mmap \ + strtok_r \ + usleep \ + strlcat \ + strlcpy) + +# Checks for header files. +AC_CHECK_HEADERS_ONCE(crypt.h \ + sys/resource.h \ + sys/param.h \ + types.h \ + socket.h \ + sys/wait.h \ + wait.h) + +AC_SEARCH_LIBS(crypt, crypt) + +AC_ARG_ENABLE(libpcre, + [AS_HELP_STRING([--disable-libpcre],[Disable PCRE support])], [], + [AC_CHECK_HEADER(pcre.h, + [AC_SEARCH_LIBS(pcre_study, pcre, + [AC_DEFINE(HAVE_LIBPCRE, 1, [Define to 1 if libpcre (-lpcre) is available.])])])], []) + +dnl Openssl checks +AC_ARG_ENABLE(openssl, +[ --enable-openssl[=DIR] Enable OpenSSL support (DIR optional). + --disable-openssl Disable OpenSSL support. ], +[ cf_enable_openssl=$enableval ], +[ cf_enable_openssl="auto" ]) +AC_MSG_CHECKING([for OpenSSL]) +if test "$cf_enable_openssl" != "no"; then + cf_openssl_basedir="" + if test "$cf_enable_openssl" != "auto" && + test "$cf_enable_openssl" != "yes"; then + dnl Support for --enable-openssl=/some/place + cf_openssl_basedir="${cf_enable_openssl}" + else + dnl Do the auto-probe here. Check some common directory paths. + for dirs in /usr/local/ssl /usr/pkg /usr/local /usr/lib /usr/lib/ssl\ + /opt /opt/openssl /usr/local/openssl; do + if test -f "${dirs}/include/openssl/opensslv.h"; then + cf_openssl_basedir="${dirs}" + break + fi + done + unset dirs + fi + + dnl Now check cf_openssl_found to see if we found anything. + if test ! -z "$cf_openssl_basedir"; then + if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h"; then + CPPFLAGS="-I${cf_openssl_basedir}/include $CPPFLAGS" + LDFLAGS="-L${cf_openssl_basedir}/lib $LDFLAGS" + else + dnl OpenSSL wasn't found in the directory specified. Naughty + dnl administrator... + cf_openssl_basedir="" + fi + else + dnl Check for stock FreeBSD 4.x and 5.x systems, since their files + dnl are in /usr/include and /usr/lib. In this case, we don't want to + dnl change INCLUDES or LIBS, but still want to enable OpenSSL. + dnl We can't do this check above, because some people want two versions + dnl of OpenSSL installed (stock FreeBSD 4.x/5.x and /usr/local/ssl) + dnl and they want /usr/local/ssl to have preference. + if test -f "/usr/include/openssl/opensslv.h"; then + cf_openssl_basedir="/usr" + fi + fi + + dnl If we have a basedir defined, then everything is okay. Otherwise, + dnl we have a problem. + if test ! -z "$cf_openssl_basedir"; then + AC_MSG_RESULT([$cf_openssl_basedir]) + cf_enable_openssl="yes" + else + AC_MSG_RESULT([not found. Please check your path.]) + cf_enable_openssl="no" + fi + unset cf_openssl_basedir +else + dnl If --disable-openssl was specified + AC_MSG_RESULT([disabled]) +fi + +AS_IF([test "$cf_enable_openssl" != "no"], + [AC_MSG_CHECKING(for OpenSSL 0.9.8 or above) + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([ + #include <openssl/opensslv.h> + #include <stdlib.h>], + [[ exit(!(OPENSSL_VERSION_NUMBER >= 0x00908000)); ]])], + [cf_openssl_version_ok=yes], + [cf_openssl_version_ok=no], + [cf_openssl_version_ok=no]) + + AS_IF([test "$cf_openssl_version_ok" = "yes"], + [AC_MSG_RESULT(found) + + AC_CHECK_LIB(crypto, RSA_free) + AS_IF([test "$ac_cv_lib_crypto_RSA_free" = "yes"], + [AC_CHECK_LIB(ssl, SSL_connect)]) + ],[AC_MSG_RESULT(no - OpenSSL support disabled) + cf_enable_openssl="no"])]) + +AM_CONDITIONAL(ENABLE_SSL, [test "$ac_cv_lib_ssl_SSL_connect" = yes]) + + +AC_ARG_ENABLE(assert, AS_HELP_STRING([--enable-assert], + [Enable assert() statements]), + [assert=$enableval], [assert=no]) + +AS_IF([test "$assert" = "no"], + [AC_DEFINE(NDEBUG, 1, [Define to disable assert() statements.])]) + + +AC_DEFINE([NICKNAMEHISTORYLENGTH], 16384, [Size of the WHOWAS array.]) +AC_DEFINE([CHANNEL_HEAP_SIZE], 1024, [Size of the channel heap.]) +AC_DEFINE([BAN_HEAP_SIZE], 1024, [Size of the ban heap.]) +AC_DEFINE([CLIENT_HEAP_SIZE], 1024, [Size of the client heap.]) +AC_DEFINE([LCLIENT_HEAP_SIZE], 512, [Size of the local client heap.]) +AC_DEFINE([DNODE_HEAP_SIZE], 1024, [Size of the dlink_node heap.]) +AC_DEFINE([DBUF_HEAP_SIZE], 512, [Size of the dbuf heap.]) +AC_DEFINE([AUTH_HEAP_SIZE], 256, [Size of the auth heap.]) +AC_DEFINE([DNS_HEAP_SIZE], 256, [Size of the dns heap.]) + + +# Argument processing. +AX_ARG_ENABLE_IOLOOP_MECHANISM +AX_ARG_WITH_NICKLEN +AX_ARG_WITH_TOPICLEN +AX_ARG_ENABLE_HALFOPS +AX_ARG_ENABLE_DEBUGGING +AX_ARG_ENABLE_WARNINGS + +AC_DEFINE_DIR([PREFIX],[prefix],[Set to prefix.]) +AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Set to sysconfdir.]) +AC_DEFINE_DIR([LIBDIR],[libdir],[Set to libdir.]) +AC_DEFINE_DIR([DATADIR],[datadir],[Set to datadir.]) +AC_DEFINE_DIR([LOCALSTATEDIR],[localstatedir],[Set to localstatedir.]) + +AC_CONFIG_FILES( \ + Makefile \ + contrib/Makefile \ + contrib/help/Makefile \ + src/Makefile \ + libltdl/Makefile \ + messages/Makefile \ + modules/Makefile \ + modules/core/Makefile \ + doc/Makefile \ + help/Makefile \ + help/opers/Makefile \ + help/users/Makefile \ + tools/Makefile) + +AC_OUTPUT |