]> jfr.im git - solanum.git/blobdiff - configure.ac
extensions/helpops: implement DEHELPER command
[solanum.git] / configure.ac
index 44caf3ee017ac1c1e561db88a728b10ff4894282..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.
 
-AC_PREREQ(2.57)
+AC_PREREQ(2.60)
 
 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_CONFIG_SUBDIRS([libratbox])
 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])
-
-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"])
 
-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
-       IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall -std=gnu99"
+       IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall"
 fi
 
 dnl If we support -g, use it!
@@ -66,7 +57,6 @@ fi
 
 AC_ISC_POSIX
 AC_C_INLINE
-AC_PROG_GCC_TRADITIONAL
 AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_PATH_PROG(RM, rm)
@@ -174,83 +164,12 @@ fi
 
 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 **])])
-
-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])
 
-fi
-
 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)
 
-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 **********************************************************************
@@ -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
 
-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 =====================
 
@@ -772,56 +538,22 @@ else
        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)]),
@@ -929,6 +661,7 @@ fi
 
 AC_CONFIG_FILES(                       \
        Makefile                        \
+       authd/Makefile                  \
        bandb/Makefile                  \
        ssld/Makefile                   \
        extensions/Makefile             \
@@ -955,9 +688,6 @@ Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}:
 
        Ziplinks           : $zlib
        OpenSSL            : $openssl
-       Socket Engine      : $SELECT_TYPE
-       Small network      : $small_net
-       Block allocator    : $balloc
 
        Nickname length    : $NICKLEN
        Topic length       : $TOPICLEN