]> jfr.im git - solanum.git/blobdiff - configure.ac
Merge pull request #319 from edk0/invite-notify
[solanum.git] / configure.ac
index 333a793d83380fa0644f634a487cd8731dfe0cfe..e03c71575ab8fd5ab7adc4e5f913daf5040749bb 100644 (file)
@@ -4,7 +4,7 @@ dnl said functions need to be just about as complex as they already are.
 
 AC_PREREQ(2.60)
 
-AC_INIT([charybdis], [3.6.0-dev])
+AC_INIT([charybdis], [4.1.3-dev])
 
 AC_LANG(C)
 AC_USE_SYSTEM_EXTENSIONS
@@ -121,7 +121,8 @@ AS_IF([test "x$enable_fhs_paths" = "xyes"],
        pkglibexecdir='${libexecdir}/${PACKAGE_TARNAME}'
        rundir=${rundir-'${prefix}/run'}
        pkgrundir='${rundir}/${PACKAGE_TARNAME}'
-       pkglocalstatedir='${localstatedir}/${PACKAGE_TARNAME}'],
+       pkglocalstatedir='${localstatedir}/${PACKAGE_TARNAME}'
+       AC_DEFINE([ENABLE_FHS_PATHS], [1], [Uncomment if FHS pathnames are enabled])],
        [libexecdir='${bindir}'
        pkglibexecdir='${libexecdir}'
        rundir='${sysconfdir}'
@@ -167,9 +168,6 @@ if test x"$SUN" = xyes; then
        AC_SEARCH_LIBS(inet_ntoa, nsl,, [AC_MSG_ERROR([libnsl not found! Aborting.])])
 fi
 
-AC_ARG_ENABLE(ipv6,
-AC_HELP_STRING([--enable-ipv6],[Enable IPv6 support]),[ipv6=$enableval],[ipv6=no])
-
 AC_SEARCH_LIBS(crypt, [crypt descrypt],,)
 
 CRYPT_LIB=$ac_cv_search_crypt
@@ -188,34 +186,8 @@ 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_CHECK_FUNCS([strlcat strlcpy])
 
-AC_CHECK_TYPE([u_int32_t], [],
-[
-       AC_CHECK_TYPE([uint32_t],
-       [
-               AC_DEFINE(u_int32_t, [uint32_t], [If system does not define u_int32_t, define a reasonable substitute.])
-       ],
-       [
-               AC_MSG_WARN([system has no u_int32_t or uint32_t, default to unsigned long int])
-               AC_DEFINE(u_int32_t, [unsigned long int], [If system does not define u_int32_t, define to unsigned long int here.])
-       ])
-])
-
-AC_CHECK_TYPE([u_int16_t], [],
-[
-       AC_CHECK_TYPE([uint16_t],
-       [
-               AC_DEFINE(u_int16_t, [uint16_t], [If system does not define u_int16_t, define a usable substitute])
-       ],
-       [
-               AC_MSG_WARN([system has no u_int16_t or uint16_t, default to unsigned short int])
-               AC_DEFINE(u_int16_t, [unsigned short int], [If system does not define u_int16_t, define a usable substitute.])
-       ])
-])
-
-AC_CHECK_TYPE([in_port_t], [],
-[AC_DEFINE(in_port_t, [u_int16_t], [If system does not define in_port_t, define it to what it should be.])],
-[[#include <sys/types.h>
-#include <netinet/in.h>]])
+AC_TYPE_INT16_T
+AC_TYPE_INT32_T
 
 AC_CHECK_TYPE([sa_family_t], [],
 [AC_DEFINE(sa_family_t, [u_int16_t], [If system does not define sa_family_t, define it here.])],
@@ -348,6 +320,28 @@ dnl End OpenSSL detection
 dnl Specialized functions and libraries
 dnl ===================================
 
+AC_ARG_ENABLE(hyperscan,
+AC_HELP_STRING([--disable-hyperscan],[Disable hyperscan support]),
+[hyperscan=$enableval],[hyperscan=yes])
+
+AS_IF([test "$hyperscan" = yes], [
+       save_CPPFLAGS="$CPPFLAGS"
+       save_LIBS="$LIBS"
+       PKG_CHECK_MODULES([HS], [libhs >= 4], [], [hyperscan=no])
+       CPPFLAGS="$CPPFLAGS $HS_CFLAGS"
+       LIBS="$LIBS $HS_LIBS"
+       AC_CHECK_HEADER([hs_common.h], [], [hyperscan=no])
+       AC_CHECK_FUNC([hs_scan], [], [hyperscan=no])
+])
+
+AS_IF([test "$hyperscan" = no], [
+       CPPFLAGS="$save_CPPFLAGS"
+       LIBS="$save_LIBS"
+])
+
+AM_CONDITIONAL([HAVE_HYPERSCAN], [test "$hyperscan" = "yes"])
+
+
 AC_ARG_WITH(zlib-path,
 AC_HELP_STRING([--with-zlib-path=DIR],[Path to libz.so for ziplinks support.]),
 [LIBS="$LIBS -L$withval"],)
@@ -368,6 +362,26 @@ AC_CHECK_HEADER(zlib.h, [
 
 fi
 
+AC_ARG_WITH(sctp-path,
+AC_HELP_STRING([--with-sctp-path=DIR],[Path to libsctp.so for SCTP support.]),
+[LIBS="$LIBS -L$withval"],)
+
+AC_ARG_ENABLE(sctp,
+AC_HELP_STRING([--disable-sctp],[Disable SCTP support]),
+[sctp=$enableval],[sctp=yes])
+
+if test "$sctp" = yes; then
+
+AC_CHECK_HEADER(netinet/sctp.h, [
+       AC_CHECK_LIB(sctp, sctp_bindx,
+       [
+               AC_SUBST(LIBSCTP_LD, -lsctp)
+               AC_DEFINE(HAVE_LIBSCTP, 1, [Define to 1 if libsctp (-lsctp) is available.])
+       ], sctp=no)
+], sctp=no)
+
+fi
+
 dnl Check for shared sqlite
 dnl ======================
 AC_ARG_WITH(shared-sqlite,
@@ -603,6 +617,14 @@ AC_HELP_STRING([--with-topiclen=NUMBER],[Set the max topic length to NUMBER (def
 AC_DEFINE_UNQUOTED(TOPICLEN, ${TOPICLEN}, [Maximum topic length (<=390)])
 AC_DEFINE_UNQUOTED(NICKLEN, (${NICKLEN}+1), [Nickname length])
 
+
+AC_ARG_WITH(asan,
+AC_HELP_STRING([--with-asan],[Build with Address Sanitizer]),
+[
+    CFLAGS="$CFLAGS -fsanitize=address"
+    LDFLAGS="$LDFLAGS -fsanitize=address"
+])
+
 # rpath, for finding librb.so at run time
 hold_ldflags=$LDFLAGS
 AC_MSG_CHECKING(for the ld -rpath flag)
@@ -681,9 +703,11 @@ AC_CONFIG_FILES(                   \
        authd/Makefile                  \
        bandb/Makefile                  \
        ssld/Makefile                   \
+       wsockd/Makefile                 \
        extensions/Makefile             \
        ircd/Makefile                   \
        modules/Makefile                \
+       tests/Makefile                  \
        tools/Makefile                  \
        tools/genssl                    \
        doc/Makefile                    \
@@ -705,6 +729,7 @@ Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}:
 
        Ziplinks           : $zlib
        OpenSSL            : $openssl
+       SCTP               : $sctp
 
        Nickname length    : $NICKLEN
        Topic length       : $TOPICLEN