X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/8fad94219393dae596b6b95e3911e6f32c5fe257..d04ed5c53f54a506ca695d8da33c21bedb82b921:/configure.ac diff --git a/configure.ac b/configure.ac index f337f475..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.1]) +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) @@ -183,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 @@ -320,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"],) @@ -362,24 +384,10 @@ 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] @@ -539,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 @@ -595,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) @@ -616,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" ],[])