]> jfr.im git - solanum.git/blobdiff - configure.ac
Test some edge cases of valid_temp_time
[solanum.git] / configure.ac
index 0f42b7d6d8eb4c8bcf1571b5550576e9e3371e7b..4906ff6fc6bc3b1608e6e33a9209c83f7beacfc6 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], [4-rc1])
+AC_INIT([solanum], [1.0-dev])
 
 AC_LANG(C)
 AC_USE_SYSTEM_EXTENSIONS
@@ -13,7 +13,7 @@ AC_GNU_SOURCE
 AC_PROG_CC_C99
 
 if test x"$ac_cv_prog_cc_c99" = "xno"; then
-       AC_ERROR([charybdis requires a C99 capable compiler])
+       AC_ERROR([solanum requires a C99 capable compiler])
 fi
 
 AC_PREFIX_DEFAULT($HOME/ircd)
@@ -34,24 +34,6 @@ LTDL_INIT
 build_ltdl=$with_included_ltdl
 AM_CONDITIONAL([BUILD_LTDL], [test x"$build_ltdl" = x"yes"])
 
-case "$host_os" in
-*cygwin*)
-     AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
-     AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
-     ;;
-*mingw* | *msys*)
-     AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
-     AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
-     AC_CHECK_HEADER(winsock2.h, , [AC_MSG_ERROR([** MinGW and no winsock2.h.  I give up.])])
-     LIBS="$LIBS -lws2_32 -liphlpapi"
-     is_mingw="yes"
-     ;;
-*)
-     ;;
-esac
-
-AM_CONDITIONAL([MINGW], [test "$is_mingw" = "yes"])
-
 if test "$ac_cv_c_compiler_gnu" = yes; then
        IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall"
 fi
@@ -168,9 +150,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
@@ -186,7 +165,7 @@ AC_SUBST(CRYPT_LIB)
 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_CHECK_HEADER(stdarg.h, , [AC_MSG_ERROR([** stdarg.h could not be found - solanum will not compile without it **])])
 AC_CHECK_FUNCS([strlcat strlcpy])
 
 AC_TYPE_INT16_T
@@ -323,46 +302,54 @@ dnl End OpenSSL detection
 dnl Specialized functions and libraries
 dnl ===================================
 
-AC_ARG_WITH(zlib-path,
-AC_HELP_STRING([--with-zlib-path=DIR],[Path to libz.so for ziplinks support.]),
+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(sctp-path,
+AC_HELP_STRING([--with-sctp-path=DIR],[Path to libsctp.so for SCTP support.]),
 [LIBS="$LIBS -L$withval"],)
 
-AC_ARG_ENABLE(zlib,
-AC_HELP_STRING([--disable-zlib],[Disable ziplinks support]),
-[zlib=$enableval],[zlib=yes])
+AC_ARG_ENABLE(sctp,
+AC_HELP_STRING([--disable-sctp],[Disable SCTP support]),
+[sctp=$enableval],[sctp=yes])
 
-if test "$zlib" = yes; then
+if test "$sctp" = yes; then
 
-AC_CHECK_HEADER(zlib.h, [
-       AC_CHECK_LIB(z, zlibVersion,
+AC_CHECK_HEADER(netinet/sctp.h, [
+       AC_CHECK_LIB(sctp, sctp_bindx,
        [
-               AC_SUBST(ZLIB_LD, -lz)
-               AC_DEFINE(HAVE_LIBZ, 1, [Define to 1 if zlib (-lz) is available.])
-       ], zlib=no)
-], zlib=no)
+               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,
-AC_HELP_STRING([--with-shared-sqlite],[Use shared sqlite]),
-[shared_sqlite=$withval],[shared_sqlite=no])
-
-if test "$shared_sqlite" = yes; then
-       PKG_CHECK_MODULES(SQLITE, [sqlite3],
-       [
-               shared_sqlite=yes
-       ], shared_sqlite=no)
-fi
-
-if test "$shared_sqlite" = no; then
-       SQLITE_OBJ='sqlite3.$(OBJEXT)'
-fi
+PKG_CHECK_MODULES(SQLITE, [sqlite3], [], AC_ERROR([sqlite3 is required]))
 
 AC_SUBST(SQLITE_LD, "$SQLITE_LIBS")
 AC_SUBST(SQLITE_INCLUDES, "$SQLITE_CFLAGS")
-AC_SUBST(SQLITE_OBJ)
 
 dnl **********************************************************************
 dnl Check for --with-confdir [deprecated, use --sysconfdir instead]
@@ -522,7 +509,7 @@ if test "$profile" = yes; then
        if test "$ac_cv_c_compiler_gnu" = yes; then
                IRC_CFLAGS="$IRC_CFLAGS -pg"
                AC_MSG_RESULT([yes, adding -pg])
-               AC_DEFINE(CHARYBDIS_PROFILE, 1, [Define this if you are profiling.])
+               AC_DEFINE(SOLANUM_PROFILE, 1, [Define this if you are profiling.])
        else
                AC_MSG_RESULT([no, profile builds only work with gcc])
        fi
@@ -578,6 +565,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)
@@ -599,26 +594,26 @@ AC_HELP_STRING([--enable-warnings],[Enable all sorts of warnings for debugging.]
 IRC_CFLAGS="$IRC_CFLAGS -O0"
 CFLAGS="$IRC_CFLAGS"
 
-CHARYBDIS_C_GCC_TRY_FLAGS([-Wall], charybdis_cv_c_gcc_w_all)
-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([-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([-Wparentheses], charybdis_cv_c_gcc_parentheses)
-CHARYBDIS_C_GCC_TRY_FLAGS([-W -Wno-unused], charybdis_cv_c_gcc_w)
-CHARYBDIS_C_GCC_TRY_FLAGS([-Wextra], charybdis_cv_c_gcc_w_extra)
-CHARYBDIS_C_GCC_TRY_FLAGS([-Wshadow], charybdis_cv_c_gcc_w_shadow)
-CHARYBDIS_C_GCC_TRY_FLAGS([-Wmissing-noreturn], charybdis_cv_c_gcc_w_missing_noreturn)
-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([-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 -Wformat-y2k -Wno-format-security], charybdis_cv_c_gcc_w_format)
+SOLANUM_C_GCC_TRY_FLAGS([-Wall], solanum_cv_c_gcc_w_all)
+SOLANUM_C_GCC_TRY_FLAGS([-Wpointer-arith], solanum_cv_c_gcc_w_pointer_arith)
+SOLANUM_C_GCC_TRY_FLAGS([-Wimplicit -Wnested-externs], solanum_cv_c_gcc_w_implicit)
+SOLANUM_C_GCC_TRY_FLAGS([-Wcast-align], solanum_cv_c_gcc_w_cast_align)
+SOLANUM_C_GCC_TRY_FLAGS([-Wcast-qual], solanum_cv_c_gcc_w_cast_qual)
+SOLANUM_C_GCC_TRY_FLAGS([-Wwrite-strings], solanum_cv_c_gcc_w_write_strings)
+SOLANUM_C_GCC_TRY_FLAGS([-Werror-implicit-function-declaration], solanum_cv_c_gcc_w_error_implicit_function_declaration)
+SOLANUM_C_GCC_TRY_FLAGS([-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations], solanum_cv_c_gcc_prototypes)
+SOLANUM_C_GCC_TRY_FLAGS([-Wparentheses], solanum_cv_c_gcc_parentheses)
+SOLANUM_C_GCC_TRY_FLAGS([-W -Wno-unused], solanum_cv_c_gcc_w)
+SOLANUM_C_GCC_TRY_FLAGS([-Wextra], solanum_cv_c_gcc_w_extra)
+SOLANUM_C_GCC_TRY_FLAGS([-Wshadow], solanum_cv_c_gcc_w_shadow)
+SOLANUM_C_GCC_TRY_FLAGS([-Wmissing-noreturn], solanum_cv_c_gcc_w_missing_noreturn)
+SOLANUM_C_GCC_TRY_FLAGS([-Wundef], solanum_cv_c_gcc_w_undef)
+SOLANUM_C_GCC_TRY_FLAGS([-Wpacked], solanum_cv_c_gcc_w_packed)
+SOLANUM_C_GCC_TRY_FLAGS([-Wnested-externs], solanum_cv_c_gcc_w_nested_externs)
+SOLANUM_C_GCC_TRY_FLAGS([-Wunused-function -Wunused-label -Wunused-value -Wunused-variable], solanum_cv_c_gcc_w_unused)
+SOLANUM_C_GCC_TRY_FLAGS([-Wredundant-decls], solanum_cv_c_gcc_w_redundant_decls)
+SOLANUM_C_GCC_TRY_FLAGS([-Wfloat-equal], solanum_cv_c_gcc_w_float_equal)
+SOLANUM_C_GCC_TRY_FLAGS([-Wformat -Wformat-y2k -Wno-format-security], solanum_cv_c_gcc_w_format)
 
 IRC_CFLAGS="$CFLAGS"
 ],[])
@@ -640,15 +635,10 @@ AC_SUBST(SEDOBJ)
 
 if test "$prefix" = "NONE"; then
        AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$ac_default_prefix", [Prefix where the ircd is installed.])
-
 else
-
-dnl Don't get bitten by Cygwin's stupidity if the user specified
-dnl a custom prefix with a trailing slash
-
+       dnl Strip trailing slashes to prevent a path of '//'
        prefix=`echo $prefix | sed 's/\/$//'`
        AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$prefix", [Prefix where the ircd is installed.])
-
 fi
 
 AC_CONFIG_FILES(                       \
@@ -660,6 +650,7 @@ AC_CONFIG_FILES(                    \
        extensions/Makefile             \
        ircd/Makefile                   \
        modules/Makefile                \
+       tests/Makefile                  \
        tools/Makefile                  \
        tools/genssl                    \
        doc/Makefile                    \
@@ -679,8 +670,8 @@ echo "
 Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}:
        Install directory  : $prefix
 
-       Ziplinks           : $zlib
        OpenSSL            : $openssl
+       SCTP               : $sctp
 
        Nickname length    : $NICKLEN
        Topic length       : $TOPICLEN