]> jfr.im git - solanum.git/blobdiff - configure.ac
WHOIS: Make hide_opers_in_whois not affect opers doing whois.
[solanum.git] / configure.ac
index b0fb72657c85b967eee111083bebdd7bda656d95..6f826a0e8bcb321eacdae2c1ae70a03d208a6d00 100644 (file)
@@ -2,44 +2,35 @@ dnl TODO: clean up all the OpenSSL and shared module checking stuff;
 dnl the most major changes have already been made and it looks like
 dnl said functions need to be just about as complex as they already are.
 
 dnl the most major changes have already been made and it looks like
 dnl said functions need to be just about as complex as they already are.
 
-AC_PREREQ(2.57)
+AC_PREREQ(2.60)
 
 AC_INIT([charybdis], [3.6.0-dev])
 
 
 AC_INIT([charybdis], [3.6.0-dev])
 
+AC_LANG(C)
+AC_PROG_CC_C99
+AC_USE_SYSTEM_EXTENSIONS
+AC_GNU_SOURCE
+
 AC_PREFIX_DEFAULT($HOME/ircd)
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADER(include/setup.h)
 AC_PREFIX_DEFAULT($HOME/ircd)
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADER(include/setup.h)
-
+AC_CONFIG_SUBDIRS([libratbox])
 AC_CONFIG_AUX_DIR([libltdl/config])
 AC_CONFIG_MACRO_DIR([libltdl/m4])
 AC_CONFIG_AUX_DIR([libltdl/config])
 AC_CONFIG_MACRO_DIR([libltdl/m4])
-AM_INIT_AUTOMAKE([])
+
+AM_INIT_AUTOMAKE([subdir-objects])
 AM_SILENT_RULES([yes])
 AM_PROG_AR
 
 LT_INIT([dlopen disable-static])
 AM_SILENT_RULES([yes])
 AM_PROG_AR
 
 LT_INIT([dlopen disable-static])
-
-LT_CONFIG_LTDL_DIR([extra/libltdl])
+LT_CONFIG_LTDL_DIR([libltdl])
 LTDL_INIT
 
 build_ltdl=$with_included_ltdl
 AM_CONDITIONAL([BUILD_LTDL], [test x"$build_ltdl" = x"yes"])
 
 LTDL_INIT
 
 build_ltdl=$with_included_ltdl
 AM_CONDITIONAL([BUILD_LTDL], [test x"$build_ltdl" = x"yes"])
 
-AC_PROG_CC_C99([], [AC_MSG_ERROR(charybdis requires a C99 capable compiler)])
-
-AC_GNU_SOURCE
-
-OLD_CFLAGS="$CFLAGS"
-dnl Checks for programs.
-AC_PROG_CC
-AC_LANG(C)
-
-dnl Make sure autoconf doesn't interfere with cflags -jmallett
-CFLAGS="$OLD_CFLAGS"
-
-AC_CONFIG_SUBDIRS(libratbox)
-
 if test "$ac_cv_c_compiler_gnu" = yes; then
 if test "$ac_cv_c_compiler_gnu" = yes; then
-       IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall -std=gnu99"
+       IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall"
 fi
 
 dnl If we support -g, use it!
 fi
 
 dnl If we support -g, use it!
@@ -66,7 +57,6 @@ fi
 
 AC_ISC_POSIX
 AC_C_INLINE
 
 AC_ISC_POSIX
 AC_C_INLINE
-AC_PROG_GCC_TRADITIONAL
 AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_PATH_PROG(RM, rm)
 AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_PATH_PROG(RM, rm)
@@ -174,83 +164,12 @@ fi
 
 AC_SUBST(CRYPT_LIB)
 
 
 AC_SUBST(CRYPT_LIB)
 
-if test "$ac_cv_header_sys_wait_h" = yes -o "$ac_cv_header_wait_h" = yes; then
-       VICONF=viconf
-       dnl We need one of the above to build viconf. Just a sanity check,
-       dnl we don't want to stop people from building the rest of ircd
-       dnl just because they can't build viconf.
-else
-       VICONF=""
-fi
-
-AC_SUBST(VICONF)
-
-dnl See whether we can include both string.h and strings.h.
-AC_CACHE_CHECK([whether string.h and strings.h may both be included],
-gcc_cv_header_string,
-[
-       AC_COMPILE_IFELSE(
-       [#include <string.h>
-       #include <strings.h>], 
-       [gcc_cv_header_string=yes],
-       [gcc_cv_header_string=no])
-])
-
-if test "$gcc_cv_header_string" = "yes"; then
-       AC_DEFINE(STRING_WITH_STRINGS, 1, [Define to 1 if string.h may be included along with strings.h])
-fi
-
 AC_C_BIGENDIAN
 
 dnl Check for stdarg.h - if we can't find it, halt configure
 AC_CHECK_HEADER(stdarg.h, , [AC_MSG_ERROR([** stdarg.h could not be found - charybdis will not compile without it **])])
 AC_C_BIGENDIAN
 
 dnl Check for stdarg.h - if we can't find it, halt configure
 AC_CHECK_HEADER(stdarg.h, , [AC_MSG_ERROR([** stdarg.h could not be found - charybdis will not compile without it **])])
-
-dnl Checks for the existence of strlcat, strlcpy, basename...
-dnl This more reliable test only works with gcc though.
-
-if test "$ac_cv_c_compiler_gnu" = yes; then
-
-AC_MSG_CHECKING(for strlcpy)
-save_CFLAGS=$CFLAGS
-CFLAGS="$CFLAGS -Wimplicit -Werror"
-
-AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-               [[#include <string.h>
-               #include <stdlib.h>]],
-               [[char *a = malloc(6);
-               strlcpy(a, "hello", 6);]]
-       )],
-       [AC_MSG_RESULT(yes)
-       AC_DEFINE(HAVE_STRLCPY, 1, [Define if strlcpy is available (most BSDs.)])],
-       [AC_MSG_RESULT(no)]
-)
-
-AC_MSG_CHECKING(for strlcat)
-AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-               [[#include <string.h>
-               #include <stdlib.h>]],
-               [[char *a = malloc(6);
-               a[0] = '\0';
-               strlcat(a, "hello", 6);]]
-       )],
-       [AC_MSG_RESULT(yes)
-       AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available (most BSDs.)])],
-       [AC_MSG_RESULT(no)]
-)
-
-CFLAGS=$save_CFLAGS
-
-else
-
-dnl Better than nothing. The more complicated test above probably fixes powerpc,
-dnl so who cares.
-
 AC_CHECK_FUNCS([strlcat strlcpy])
 
 AC_CHECK_FUNCS([strlcat strlcpy])
 
-fi
-
 AC_CHECK_TYPE([u_int32_t], [],
 [
        AC_CHECK_TYPE([uint32_t],
 AC_CHECK_TYPE([u_int32_t], [],
 [
        AC_CHECK_TYPE([uint32_t],
@@ -452,50 +371,6 @@ AC_SUBST(SQLITE_LD, "$SQLITE_LIBS")
 AC_SUBST(SQLITE_INCLUDES, "$SQLITE_CFLAGS")
 AC_SUBST(SQLITE_OBJ)
 
 AC_SUBST(SQLITE_INCLUDES, "$SQLITE_CFLAGS")
 AC_SUBST(SQLITE_OBJ)
 
-dnl IO Loop Selection
-dnl =================
-
-AC_ARG_ENABLE(ports, AC_HELP_STRING([--enable-ports],[Force solaris I/O ports subsystem usage.]),
-[ if test $enableval = yes; then 
-       SELECT_TYPE_EXPLICIT="ports"
-  else
-       use_ports=no
-  fi
-],)
-
-AC_ARG_ENABLE(poll, AC_HELP_STRING([--enable-poll],[Force poll() usage.]),
-[ if test $enableval = yes; then 
-       SELECT_TYPE_EXPLICIT="poll"
-  else
-       use_poll=no
-  fi
-],)
-
-AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select],[Force select() usage.]),
-[ if test $enableval = yes; then 
-       SELECT_TYPE_EXPLICIT="select" 
-  else
-       use_select=no
-  fi
-],)
-
-AC_ARG_ENABLE(kqueue, AC_HELP_STRING([--enable-kqueue],[Force kqueue() usage.]),
-[ if test $enableval = yes; then 
-       SELECT_TYPE_EXPLICIT="kqueue"
-  else
-       use_kqueue=no
-  fi
-],)
-
-AC_ARG_ENABLE(epoll, AC_HELP_STRING([--enable-epoll],[Force sys_epoll usage (Linux only).]),
-[ if test $enableval = yes; then 
-       SELECT_TYPE_EXPLICIT="epoll"
-       AC_CHECK_FUNCS(epoll_ctl, [haveepoll=yes], [haveepoll=no])
-  else
-       use_epoll=no
-  fi
-],)
-
 dnl **********************************************************************
 dnl Check for --with-confdir [deprecated, use --sysconfdir instead]
 dnl **********************************************************************
 dnl **********************************************************************
 dnl Check for --with-confdir [deprecated, use --sysconfdir instead]
 dnl **********************************************************************
@@ -617,115 +492,6 @@ if test "x$BRANDING_NAME" != "x$PACKAGE_NAME"; then
        AC_DEFINE(CUSTOM_BRANDING, 1, [Define if custom branding is enabled.])
 fi
 
        AC_DEFINE(CUSTOM_BRANDING, 1, [Define if custom branding is enabled.])
 fi
 
-if test ! -z "$SELECT_TYPE_EXPLICIT"; then
-       SELECT_TYPE="$SELECT_TYPE_EXPLICIT";
-       echo "Forcing $SELECT_TYPE to be enabled"
-else
-
-if test ! "x$use_ports" = "xno"; then
-       AC_CHECK_FUNCS(port_getn, [haveports=yes], [haveports=no])
-       if test "x$haveports" = "xyes" ; then
-               SELECT_TYPE="ports"
-       fi
-fi
-
-if test ! "x$use_select" = "xno"; then
-       AC_CHECK_FUNCS(select, [haveselect=yes], [haveselect=no])
-       if test "x$haveselect" = "xyes" ; then
-               SELECT_TYPE="select"
-       fi
-fi
-
-if test ! "x$use_poll" = "xno"; then
-       AC_CHECK_FUNCS(poll, [havepoll=yes], [havepoll=no])
-       if test "x$havepoll" = "xyes" ; then
-               SELECT_TYPE="poll"
-       fi
-fi
-
-if test ! "x$use_kqueue" = "xno"; then
-       AC_CHECK_FUNCS(kevent, [havekqueue=yes], [havekqueue=no])
-       if test "x$havekqueue" = "xyes" ; then
-               SELECT_TYPE="kqueue"
-       fi
-fi
-
-if test ! "x$use_epoll" = "xno"; then
-       AC_CHECK_FUNCS(epoll_ctl, [haveepoll=yes], [haveepoll=no])
-       if test "x$ac_cv_header_sys_epoll_h" = "xyes"; then
-               if test "x$haveepoll" = "xyes" ; then
-                       AC_MSG_CHECKING(for epoll support in kernel)
-                       AC_TRY_RUN(
-#include <stdint.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/epoll.h>
-#include <sys/syscall.h>
-#include <unistd.h>     
-
-int
-main(int argc, char **argv)
-{
-        int epfd;
-
-        epfd = epoll_create(256);
-        return (epfd == -1 ? 1 : 0);
-}, [AC_MSG_RESULT(yes)
-           AC_DEFINE(HAVE_EPOLL, 1,
-               [Define if your system supports the epoll system calls])
-           SELECT_TYPE="epoll"], 
-           AC_MSG_RESULT(no), AC_MSG_RESULT(no))
-               fi
-       fi
-
-haveepollsyscall=no
-
-if test "x$ac_cv_header_sys_epoll_h" = "xyes"; then
-       if test "x$haveepoll" = "xno" ; then
-                AC_MSG_CHECKING(for epoll system call)
-                AC_TRY_RUN(
-#include <stdint.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/epoll.h>
-#include <sys/syscall.h>
-#include <unistd.h>     
-
-int
-epoll_create(int size)
-{
-        return (syscall(__NR_epoll_create, size));
-}
-int
-main(int argc, char **argv)
-{
-        int epfd;
-
-        epfd = epoll_create(256);
-        exit (epfd == -1 ? 1 : 0);
-}, [AC_MSG_RESULT(yes)
-    AC_DEFINE(HAVE_EPOLL, 1,
-        [Define if your system supports the epoll system calls])
-    SELECT_TYPE="epoll"], 
-    AC_MSG_RESULT(no), AC_MSG_RESULT(no))
-       fi
-fi
-
-fi
-
-fi
-
-if test -z "$SELECT_TYPE"; then
-       AC_MSG_ERROR([Unable to find a usable IO interface],)
-fi
-
-echo "Using $SELECT_TYPE for select loop."
-
-AC_DEFINE_UNQUOTED(SELECT_TYPE, "$SELECT_TYPE", [This is the type of IO loop we are using])
-AC_SUBST(SELECT_TYPE)
-
-
 dnl Debug-related options
 dnl =====================
 
 dnl Debug-related options
 dnl =====================
 
@@ -772,56 +538,22 @@ else
        AC_MSG_RESULT(no)
 fi
 
        AC_MSG_RESULT(no)
 fi
 
-AC_ARG_ENABLE(balloc,
-AC_HELP_STRING([--disable-balloc],[Disable the block allocator.]),
-[balloc=$enableval], [balloc=yes])
-
-if test "$balloc" = no; then
-       AC_DEFINE([NOBALLOC], 1, [Define to 1 if you wish to disable the block allocator.])
-fi
-
-AC_ARG_ENABLE(small-net,
-AC_HELP_STRING([--enable-small-net],[Enable small network support.]),
-[small_net=$enableval], [small_net=no])
-
-if test "$small_net" = yes; then
-dnl    AC_DEFINE([HASHSIZE], 4096, [Max number of buckets in hash tables.])
-       AC_DEFINE([NICKNAMEHISTORYLENGTH], 1500, [Size of the WHOWAS array.])
-       AC_DEFINE([CHANNEL_HEAP_SIZE], 256, [Size of the channel heap.])
-       AC_DEFINE([BAN_HEAP_SIZE], 128, [Size of the ban heap.])
-       AC_DEFINE([CLIENT_HEAP_SIZE], 256, [Size of the client heap.])
-       AC_DEFINE([LCLIENT_HEAP_SIZE], 128, [Size of the local client heap.])
-       AC_DEFINE([PCLIENT_HEAP_SIZE], 32, [Size of the pre-client heap.])
-       AC_DEFINE([USER_HEAP_SIZE], 128, [Size of the user heap.])
-       AC_DEFINE([DNODE_HEAP_SIZE], 256, [Size of the dlink_node heap.])
-       AC_DEFINE([TOPIC_HEAP_SIZE], 256, [Size of the topic heap.])
-       AC_DEFINE([LINEBUF_HEAP_SIZE], 128, [Size of the linebuf heap.])
-       AC_DEFINE([MEMBER_HEAP_SIZE], 256, [Sizeof member heap.])
-       AC_DEFINE([ND_HEAP_SIZE], 128, [Size of the nick delay heap.])
-       AC_DEFINE([CONFITEM_HEAP_SIZE], 128, [Size of the confitem heap.])
-       AC_DEFINE([MONITOR_HEAP_SIZE], 128, [Size of the monitor heap.])
-       AC_DEFINE([FD_HEAP_SIZE], 128, [Size of fd heap.])
-       AC_DEFINE([AWAY_HEAP_SIZE], 128, [Size of away heap.])
-else
-dnl These settings are for a large network like efnet..they will use lots of memory
-dnl so enable small net unless you really need this much support
-        AC_DEFINE([NICKNAMEHISTORYLENGTH], 15000, [Size of the WHOWAS array.])
-        AC_DEFINE([CHANNEL_HEAP_SIZE], 8192, [Size of the channel heap.])
-        AC_DEFINE([BAN_HEAP_SIZE], 4096, [Size of the ban heap.])
-        AC_DEFINE([CLIENT_HEAP_SIZE], 8192, [Size of the client heap.])
-        AC_DEFINE([LCLIENT_HEAP_SIZE], 1024, [Size of the local client heap.])
-       AC_DEFINE([PCLIENT_HEAP_SIZE], 256, [Size of the pre-client heap.])
-        AC_DEFINE([USER_HEAP_SIZE], 8192, [Size of the user heap.])
-        AC_DEFINE([DNODE_HEAP_SIZE], 8192, [Size of the dlink_node heap.])
-        AC_DEFINE([TOPIC_HEAP_SIZE], 4096, [Size of the topic heap.])
-        AC_DEFINE([LINEBUF_HEAP_SIZE], 2048, [Size of the linebuf heap.])
-        AC_DEFINE([MEMBER_HEAP_SIZE], 32768, [Sizeof member heap.])
-        AC_DEFINE([ND_HEAP_SIZE], 512, [Size of the nick delay heap.])
-        AC_DEFINE([CONFITEM_HEAP_SIZE], 256, [Size of the confitem heap.])
-       AC_DEFINE([MONITOR_HEAP_SIZE], 1024, [Size of the monitor heap.])
-       AC_DEFINE([FD_HEAP_SIZE], 1024, [Size of fd heap.])
-       AC_DEFINE([AWAY_HEAP_SIZE], 512, [Size of away heap.])
-fi
+AC_DEFINE([NICKNAMEHISTORYLENGTH], 15000, [Size of the WHOWAS array.])
+AC_DEFINE([CHANNEL_HEAP_SIZE], 8192, [Size of the channel heap.])
+AC_DEFINE([BAN_HEAP_SIZE], 4096, [Size of the ban heap.])
+AC_DEFINE([CLIENT_HEAP_SIZE], 8192, [Size of the client heap.])
+AC_DEFINE([LCLIENT_HEAP_SIZE], 1024, [Size of the local client heap.])
+AC_DEFINE([PCLIENT_HEAP_SIZE], 256, [Size of the pre-client heap.])
+AC_DEFINE([USER_HEAP_SIZE], 8192, [Size of the user heap.])
+AC_DEFINE([DNODE_HEAP_SIZE], 8192, [Size of the dlink_node heap.])
+AC_DEFINE([TOPIC_HEAP_SIZE], 4096, [Size of the topic heap.])
+AC_DEFINE([LINEBUF_HEAP_SIZE], 2048, [Size of the linebuf heap.])
+AC_DEFINE([MEMBER_HEAP_SIZE], 32768, [Sizeof member heap.])
+AC_DEFINE([ND_HEAP_SIZE], 512, [Size of the nick delay heap.])
+AC_DEFINE([CONFITEM_HEAP_SIZE], 256, [Size of the confitem heap.])
+AC_DEFINE([MONITOR_HEAP_SIZE], 1024, [Size of the monitor heap.])
+AC_DEFINE([FD_HEAP_SIZE], 1024, [Size of fd heap.])
+AC_DEFINE([AWAY_HEAP_SIZE], 512, [Size of away heap.])
 
 AC_ARG_WITH(nicklen,
 AC_HELP_STRING([--with-nicklen=LENGTH],[Set the upper-bound nick length to LENGTH (default 31, max 50)]),
 
 AC_ARG_WITH(nicklen,
 AC_HELP_STRING([--with-nicklen=LENGTH],[Set the upper-bound nick length to LENGTH (default 31, max 50)]),
@@ -956,9 +688,6 @@ Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}:
 
        Ziplinks           : $zlib
        OpenSSL            : $openssl
 
        Ziplinks           : $zlib
        OpenSSL            : $openssl
-       Socket Engine      : $SELECT_TYPE
-       Small network      : $small_net
-       Block allocator    : $balloc
 
        Nickname length    : $NICKLEN
        Topic length       : $TOPICLEN
 
        Nickname length    : $NICKLEN
        Topic length       : $TOPICLEN