X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/4efe9cf25d6e19a9f53675cb2f3f2df535a74c5a..d04ed5c53f54a506ca695d8da33c21bedb82b921:/configure.ac diff --git a/configure.ac b/configure.ac index cfa6e08e..96b6dfee 100644 --- a/configure.ac +++ b/configure.ac @@ -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-rc4]) +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) @@ -168,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 @@ -186,7 +183,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,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"],) @@ -343,26 +362,32 @@ AC_CHECK_HEADER(zlib.h, [ 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]) +AC_ARG_WITH(sctp-path, +AC_HELP_STRING([--with-sctp-path=DIR],[Path to libsctp.so for SCTP support.]), +[LIBS="$LIBS -L$withval"],) -if test "$shared_sqlite" = yes; then - PKG_CHECK_MODULES(SQLITE, [sqlite3], +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, [ - shared_sqlite=yes - ], shared_sqlite=no) -fi + AC_SUBST(LIBSCTP_LD, -lsctp) + AC_DEFINE(HAVE_LIBSCTP, 1, [Define to 1 if libsctp (-lsctp) is available.]) + ], sctp=no) +], sctp=no) -if test "$shared_sqlite" = no; then - SQLITE_OBJ='sqlite3.$(OBJEXT)' fi +dnl Check for shared sqlite +dnl ====================== +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 +547,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 +603,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 +632,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" ],[]) @@ -660,6 +693,7 @@ AC_CONFIG_FILES( \ extensions/Makefile \ ircd/Makefile \ modules/Makefile \ + tests/Makefile \ tools/Makefile \ tools/genssl \ doc/Makefile \ @@ -681,6 +715,7 @@ Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}: Ziplinks : $zlib OpenSSL : $openssl + SCTP : $sctp Nickname length : $NICKLEN Topic length : $TOPICLEN