]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - configure.ac
Remove redundant prototypes in src/ircd_lexer.l.
[irc/rqf/shadowircd.git] / configure.ac
index 3f36efac2251517fa4dd71169ca28e9bfc2327e1..c5219ee181a2a95d8e21da2ebc087cc3e63e2c1d 100644 (file)
@@ -10,7 +10,7 @@ AC_PREREQ(2.57)
 dnl Sneaky way to get an Id tag into the configure script
 AC_COPYRIGHT([$Id: configure.ac 3516 2007-06-10 16:14:03Z jilles $])
 
 dnl Sneaky way to get an Id tag into the configure script
 AC_COPYRIGHT([$Id: configure.ac 3516 2007-06-10 16:14:03Z jilles $])
 
-AC_INIT([charybdis],[2.3.0])
+AC_INIT([shadowircd],[6.2.0])
 
 AC_CONFIG_HEADER(include/setup.h)
 
 
 AC_CONFIG_HEADER(include/setup.h)
 
@@ -81,7 +81,7 @@ esac
 
 fi
 
 
 fi
 
-AC_MSG_CHECKING([uname -s for Cygwin, Solaris, AIX or HPUX])
+AC_MSG_CHECKING([uname -s for Solaris, AIX or HPUX])
 OSNAME=`uname -s`
 case "$OSNAME" in
         HP-UX*)
 OSNAME=`uname -s`
 case "$OSNAME" in
         HP-UX*)
@@ -96,10 +96,6 @@ case "$OSNAME" in
                        AC_MSG_RESULT(already using newer HPUX)
                fi
        ;;
                        AC_MSG_RESULT(already using newer HPUX)
                fi
        ;;
-       CYGWIN*)
-               AC_MSG_RESULT(Cygwin)
-               CYGWIN=yes
-       ;;
        SunOS*)
                AC_MSG_RESULT(SunOS or Solaris)
                AC_DEFINE(__EXTENSIONS__, 1, [This is needed to use strtok_r on Solaris.])
        SunOS*)
                AC_MSG_RESULT(SunOS or Solaris)
                AC_DEFINE(__EXTENSIONS__, 1, [This is needed to use strtok_r on Solaris.])
@@ -128,7 +124,7 @@ if test "$ac_cv_c_compiler_gnu" = yes; then
        ;;
        esac
 
        ;;
        esac
 
-       IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall"
+       IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall -std=gnu99"
 fi
 
 dnl If we support -g, use it!
 fi
 
 dnl If we support -g, use it!
@@ -255,44 +251,6 @@ AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
 
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
 
-dnl Memory manager
-dnl ==============
-
-AC_MSG_CHECKING([the system's memory page size])
-pagesize="no"
-AC_TRY_RUN([
-#include <stdio.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-int main(void) {
-    FILE *fp = fopen("conftest.malloc", "w");
-
-    if (fp != NULL) {
-        fprintf(fp, "%d\n", getpagesize());
-        fclose(fp);
-    } else
-        exit(1);
-    exit(0);
-}],[
-if test -f "conftest.malloc" ; then
-    pagesize=`cat conftest.malloc`
-fi
-])
-if test "$pagesize" != "no" ; then
-    AC_MSG_RESULT($pagesize)
-else
-    if test "$ac_cv_sizeof_int" = "4" ; then
-        pagesize=4096
-    else
-        pagesize=8192
-    fi
-    AC_MSG_RESULT([$pagesize (guessing)])
-fi
-AC_DEFINE_UNQUOTED(MALLOC_PAGESIZE, $pagesize,
-    [the system's memory page size])
-
 dnl Networking Functions
 dnl ====================
 
 dnl Networking Functions
 dnl ====================
 
@@ -303,11 +261,6 @@ if test x"$SUN" = xyes; then
        AC_SEARCH_LIBS(inet_ntoa, nsl,, [AC_MSG_ERROR([libnsl not found! Aborting.])])
 fi
 
        AC_SEARCH_LIBS(inet_ntoa, nsl,, [AC_MSG_ERROR([libnsl not found! Aborting.])])
 fi
 
-AC_CHECK_MEMBER([struct sockaddr.sa_len], [AC_DEFINE(SOCKADDR_IN_HAS_LEN, 1, [Define to 1 if sockaddr has a 'sa_len'
-member.])],,[[#include <sys/types.h>
-#include <sys/socket.h>
-]])
-
 AC_CHECK_TYPE(socklen_t, ,
 [AC_DEFINE([socklen_t], [unsigned int],
 [If we don't have a real socklen_t, unsigned int is good enough.])],
 AC_CHECK_TYPE(socklen_t, ,
 [AC_DEFINE([socklen_t], [unsigned int],
 [If we don't have a real socklen_t, unsigned int is good enough.])],
@@ -317,50 +270,6 @@ AC_CHECK_TYPE(socklen_t, ,
 AC_ARG_ENABLE(ipv6,
 AC_HELP_STRING([--enable-ipv6],[Enable IPv6 support]),[ipv6=$enableval],[ipv6=no])
 
 AC_ARG_ENABLE(ipv6,
 AC_HELP_STRING([--enable-ipv6],[Enable IPv6 support]),[ipv6=$enableval],[ipv6=no])
 
-if test $ipv6 != yes; then
-       have_v6="no"
-else
-AC_MSG_CHECKING([for core IPv6 support])
-
-AC_COMPILE_IFELSE(
-[AC_LANG_PROGRAM(
-       [[#define IN_AUTOCONF
-       #include <sys/types.h>
-       #include <sys/socket.h>
-       #include <netinet/in.h>]],
-       [[struct sockaddr_in6 s; 
-         s.sin6_family = 0;]]
-       )],
-[
-       if test "$CYGWIN" = "yes"; then
-               AC_MSG_RESULT([no, Cygwin's IPv6 is incomplete])
-               have_v6=no
-       else
-               have_v6=yes
-               AC_DEFINE(IPV6, 1, [Define if IPv6 support is present and available.])
-               AC_MSG_RESULT(yes)
-               AC_MSG_CHECKING([for struct in6addr_any])
-               AC_COMPILE_IFELSE(
-                       [AC_LANG_PROGRAM(
-                               [[#define IN_AUTOCONF
-                               #include <sys/types.h>
-                               #include <sys/socket.h>
-                               #include <netinet/in.h>]],
-                               [[struct in6_addr a = in6addr_any;]]
-                       )],
-                       [AC_MSG_RESULT(yes)],
-                       [
-                               AC_MSG_RESULT(no)
-                               AC_DEFINE(NO_IN6ADDR_ANY, 1, [Define to 1 if your system has no in6addr_any.])
-                               inet_misc=1
-                       ]
-               )
-       fi
-],
-[AC_MSG_RESULT(no)
-have_v6="no"])
-fi
-
 AC_SEARCH_LIBS(crypt, [crypt descrypt],,)
 
 CRYPT_LIB=$ac_cv_search_crypt
 AC_SEARCH_LIBS(crypt, [crypt descrypt],,)
 
 CRYPT_LIB=$ac_cv_search_crypt
@@ -402,7 +311,7 @@ fi
 AC_C_BIGENDIAN
 
 dnl Check for stdarg.h - if we can't find it, halt configure
 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 - ircd-ratbox will not compile without it **])])
+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.
 
 dnl Checks for the existence of strlcat, strlcpy, basename...
 dnl This more reliable test only works with gcc though.
@@ -910,8 +819,8 @@ if test "$balloc" = no; then
 fi
 
 AC_ARG_ENABLE(small-net,
 fi
 
 AC_ARG_ENABLE(small-net,
-AC_HELP_STRING([--enable-small-net],[Enable small network support.]),
-[small_net=$enableval], [small_net=no])
+AC_HELP_STRING([--disable-small-net],[Disable small network support.]),
+[small_net=$enableval], [small_net=yes])
 
 if test "$small_net" = yes; then
 dnl    AC_DEFINE([HASHSIZE], 4096, [Max number of buckets in hash tables.])
 
 if test "$small_net" = yes; then
 dnl    AC_DEFINE([HASHSIZE], 4096, [Max number of buckets in hash tables.])
@@ -929,6 +838,7 @@ dnl AC_DEFINE([HASHSIZE], 4096, [Max number of buckets in hash tables.])
        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([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
        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
@@ -947,19 +857,23 @@ dnl so enable small net unless you really need this much support
         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([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_ARG_WITH(nicklen,
        AC_DEFINE([AWAY_HEAP_SIZE], 512, [Size of away heap.])
 fi
 
 AC_ARG_WITH(nicklen,
-AC_HELP_STRING([--with-nicklen=LENGTH],[Set the nick length to LENGTH (default 15, max 50)]),
+AC_HELP_STRING([--with-nicklen=LENGTH],[Set the nick length to LENGTH (default 31, max 50)]),
 [
 [
+  if ! expr "$withval" + 0 >/dev/null 2>&1; then 
+       AC_ERROR([NICKLEN must be a numeric value])
+  fi 
   if test $withval -ge 50; then
        NICKLEN=50
        AC_MSG_WARN([NICKLEN has a hard limit of 50. Setting NICKLEN=50])
   else
        NICKLEN="$withval"
   fi
   if test $withval -ge 50; then
        NICKLEN=50
        AC_MSG_WARN([NICKLEN has a hard limit of 50. Setting NICKLEN=50])
   else
        NICKLEN="$withval"
   fi
-], [NICKLEN=15])
+], [NICKLEN=31])
 
 AC_ARG_WITH(topiclen,           
 AC_HELP_STRING([--with-topiclen=NUMBER],[Set the max topic length to NUMBER (default 390, max 390)]),
 
 AC_ARG_WITH(topiclen,           
 AC_HELP_STRING([--with-topiclen=NUMBER],[Set the max topic length to NUMBER (default 390, max 390)]),
@@ -978,12 +892,6 @@ AC_DEFINE_UNQUOTED(NICKLEN, (${NICKLEN}+1), [Nickname length])
 shared_modules="yes"
 dnl Some first-stage sanity checks.
 if test "$shared_modules" = yes; then
 shared_modules="yes"
 dnl Some first-stage sanity checks.
 if test "$shared_modules" = yes; then
-       
-       if test "$CYGWIN" = yes; then
-               AC_MSG_WARN([disabling shared modules; Cygwin is at present unable to build them.])
-               shared_modules="no"
-       fi
-
        dnl TenDRA's cc is called tcc too.
        if test "$CC" = tcc -a "$TenDRA" = "no"; then
                AC_MSG_WARN([disabling shared modules: Tiny C Compiler can't create PIC])
        dnl TenDRA's cc is called tcc too.
        if test "$CC" = tcc -a "$TenDRA" = "no"; then
                AC_MSG_WARN([disabling shared modules: Tiny C Compiler can't create PIC])
@@ -1105,9 +1013,21 @@ if test "$shared_modules" = yes; then
        fi
 fi
 
        fi
 fi
 
+# rpath, for finding libratbox.so at run time
+hold_ldflags=$LDFLAGS
+AC_MSG_CHECKING(for the ld -rpath flag)
+LDFLAGS="${LDFLAGS} -Wl,-rpath=${libdir}"
+AC_LINK_IFELSE(AC_LANG_PROGRAM([],[int i;]), found=yes, found=no)
+LDFLAGS=$hold_ldflags
+AC_MSG_RESULT($found)
+if test "$found" = yes; then
+       LDFLAGS="${LDFLAGS} -Wl,-rpath=\${libdir}"
+fi
+
 # This must be down here, or it will mess up checks like the ones
 # for -Wl,-export-dynamic
 # -- jilles
 # This must be down here, or it will mess up checks like the ones
 # for -Wl,-export-dynamic
 # -- jilles
+CWARNS=""
 AC_ARG_ENABLE(warnings,
 AC_HELP_STRING([--enable-warnings],[Enable all sorts of warnings for debugging.]),
 [
 AC_ARG_ENABLE(warnings,
 AC_HELP_STRING([--enable-warnings],[Enable all sorts of warnings for debugging.]),
 [
@@ -1119,6 +1039,8 @@ CHARYBDIS_C_GCC_TRY_FLAGS([-Wpointer-arith], charybdis_cv_c_gcc_w_pointer_arith)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wimplicit -Wnested-externs], charybdis_cv_c_gcc_w_implicit)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wcast-align], charybdis_cv_c_gcc_w_cast_align)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wcast-qual], charybdis_cv_c_gcc_w_cast_qual)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wimplicit -Wnested-externs], charybdis_cv_c_gcc_w_implicit)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wcast-align], charybdis_cv_c_gcc_w_cast_align)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wcast-qual], charybdis_cv_c_gcc_w_cast_qual)
+CHARYBDIS_C_GCC_TRY_FLAGS([-Wwrite-strings], charybdis_cv_c_gcc_w_write_strings)
+CHARYBDIS_C_GCC_TRY_FLAGS([-Werror-implicit-function-declaration], charybdis_cv_c_gcc_w_error_implicit_function_declaration)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations], charybdis_cv_c_gcc_prototypes)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wparenthesis], charybdis_cv_c_gcc_parenthesis)
 CHARYBDIS_C_GCC_TRY_FLAGS([-W -Wno-unused], charybdis_cv_c_gcc_w)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations], charybdis_cv_c_gcc_prototypes)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wparenthesis], charybdis_cv_c_gcc_parenthesis)
 CHARYBDIS_C_GCC_TRY_FLAGS([-W -Wno-unused], charybdis_cv_c_gcc_w)
@@ -1128,12 +1050,10 @@ CHARYBDIS_C_GCC_TRY_FLAGS([-Wmissing-noreturn], charybdis_cv_c_gcc_w_missing_nor
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wundef], charybdis_cv_c_gcc_w_undef)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wpacked], charybdis_cv_c_gcc_w_packed)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wnested-externs], charybdis_cv_c_gcc_w_nested_externs)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wundef], charybdis_cv_c_gcc_w_undef)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wpacked], charybdis_cv_c_gcc_w_packed)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wnested-externs], charybdis_cv_c_gcc_w_nested_externs)
-CHARYBDIS_C_GCC_TRY_FLAGS([-Wbad-function-cast], charybdis_cv_c_gcc_w_bad_function_cast)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wunused-function -Wunused-label -Wunused-value -Wunused-variable], charybdis_cv_c_gcc_w_unused)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wredundant-decls], charybdis_cv_c_gcc_w_redundant_decls)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wfloat-equal], charybdis_cv_c_gcc_w_float_equal)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wunused-function -Wunused-label -Wunused-value -Wunused-variable], charybdis_cv_c_gcc_w_unused)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wredundant-decls], charybdis_cv_c_gcc_w_redundant_decls)
 CHARYBDIS_C_GCC_TRY_FLAGS([-Wfloat-equal], charybdis_cv_c_gcc_w_float_equal)
-CHARYBDIS_C_GCC_TRY_FLAGS([-Wformat=2], charybdis_cv_c_gcc_w_format)
-CHARYBDIS_C_GCC_TRY_FLAGS([-pedantic], charybdis_cv_c_gcc_pedantic)
+CHARYBDIS_C_GCC_TRY_FLAGS([-Wformat -Wformat-y2k -Wno-format-security], charybdis_cv_c_gcc_w_format)
 
 IRC_CFLAGS="$CFLAGS"
 ],[])
 
 IRC_CFLAGS="$CFLAGS"
 ],[])
@@ -1207,6 +1127,8 @@ EOF
        fi
 fi
 
        fi
 fi
 
+IRC_CFLAGS="$IRC_CFLAGS $CWARNS"
+
 AC_SUBST(MODULES_LIBS)
 AC_SUBST(MOD_TARGET)
 
 AC_SUBST(MODULES_LIBS)
 AC_SUBST(MOD_TARGET)
 
@@ -1235,7 +1157,8 @@ fi
 
 AC_CONFIG_FILES(                       \
        Makefile                        \
 
 AC_CONFIG_FILES(                       \
        Makefile                        \
-       servlink/Makefile               \
+       bandb/Makefile                  \
+       ssld/Makefile                   \
        extensions/Makefile             \
        unsupported/Makefile            \
        src/Makefile                    \
        extensions/Makefile             \
        unsupported/Makefile            \
        src/Makefile                    \
@@ -1265,7 +1188,6 @@ Configuration:
 
        Ziplinks           : $zlib
        OpenSSL            : $openssl
 
        Ziplinks           : $zlib
        OpenSSL            : $openssl
-       IPv6 support       : $have_v6
        Socket Engine      : $SELECT_TYPE
        Small network      : $small_net
        Block allocator    : $balloc
        Socket Engine      : $SELECT_TYPE
        Small network      : $small_net
        Block allocator    : $balloc
@@ -1273,5 +1195,5 @@ Configuration:
        Nickname length    : $NICKLEN
        Topic length       : $TOPICLEN
 
        Nickname length    : $NICKLEN
        Topic length       : $TOPICLEN
 
-Use make to compile Charybdis, then make install to install it.
+Use (g)make to compile ShadowIRCd, then (g)make install to install it.
 "
 "