X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/9258de810ba264a2286df7eef48ea35de81ed19d..b068a4b51855e82f547fd7d52386e3617e016827:/configure.ac diff --git a/configure.ac b/configure.ac index 4c6406d3..b2ceb9b3 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], [3.6.0-dev]) +AC_INIT([charybdis], [4.1.2-dev]) AC_LANG(C) AC_USE_SYSTEM_EXTENSIONS @@ -19,9 +19,9 @@ fi AC_PREFIX_DEFAULT($HOME/ircd) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADER(include/setup.h) -AC_CONFIG_SUBDIRS([libratbox]) + +AC_CONFIG_SUBDIRS([librb]) AC_CONFIG_AUX_DIR([libltdl/config]) -AC_CONFIG_MACRO_DIR([libltdl/m4]) AM_INIT_AUTOMAKE([subdir-objects]) AM_SILENT_RULES([yes]) @@ -34,6 +34,24 @@ 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 @@ -103,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}' @@ -121,6 +140,7 @@ AC_DEFINE_DIR([PKGLIBEXECDIR], [pkglibexecdir], [Directory where binaries the IR dnl Checks for header files. AC_HEADER_STDC +AC_HEADER_STDBOOL AC_CHECK_HEADERS([crypt.h sys/resource.h sys/param.h errno.h sys/syslog.h stddef.h sys/wait.h wait.h sys/epoll.h sys/uio.h machine/endian.h]) @@ -141,22 +161,13 @@ AC_CHECK_SIZEOF(long long) dnl Networking Functions dnl ==================== -AC_SEARCH_LIBS(socket, socket, , [AC_MSG_ERROR([You have no socket()! Aborting.])]) +AC_SEARCH_LIBS(socket, [socket ws2_32], , [AC_MSG_ERROR([You have no socket()! Aborting.])]) dnl SunOS/Solaris required libnsl for inet_ntoa() if test x"$SUN" = xyes; then AC_SEARCH_LIBS(inet_ntoa, nsl,, [AC_MSG_ERROR([libnsl not found! Aborting.])]) fi -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.])], -[#include -#include ]) - -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 @@ -175,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 -#include ]]) +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.])], @@ -212,7 +197,7 @@ AC_CHECK_TYPE([sa_family_t], [], AC_CHECK_TYPES([uintptr_t]) dnl check for various functions... -AC_CHECK_FUNCS([socketpair vsnprintf mmap gettimeofday strdup strndup ]) +AC_CHECK_FUNCS([snprintf vsnprintf socketpair mmap gettimeofday strdup strndup ]) AC_FUNC_ALLOCA @@ -355,6 +340,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, @@ -497,6 +502,18 @@ if test "x$BRANDING_NAME" != "x$PACKAGE_NAME"; then AC_DEFINE(CUSTOM_BRANDING, 1, [Define if custom branding is enabled.]) fi +dnl ********************************************************************** +dnl Enable oper chghost +dnl ********************************************************************** + +AC_ARG_ENABLE(oper-chghost, +AC_HELP_STRING([--enable-oper-chghost],[Enable opers to use the CHGHOST command]), +[operchghost=$enableval],[operchghost=no]) + +if test "$operchghost" = yes; then + AC_DEFINE(ENABLE_OPER_CHGHOST, 1, [Define this to enable opers to use the CHGHOST command.]) +fi + dnl Debug-related options dnl ===================== @@ -513,19 +530,6 @@ elif test "$assert" = yes; then assert = "hard"; fi -AC_MSG_CHECKING(if you want IO Debugging hooks) -AC_ARG_ENABLE(iodebug, -AC_HELP_STRING([--enable-iodebug],[Enable IO Debugging hooks]), -[iodebug=$enableval], [iodebug=no]) - -if test "$iodebug" = yes; then - AC_DEFINE(USE_IODEBUG_HOOKS, 1, [Define this to enable IO Debug hooks.]) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - - AC_MSG_CHECKING(if you want to do a profile build) AC_ARG_ENABLE(profile, AC_HELP_STRING([--enable-profile],[Enable profiling]), @@ -591,7 +595,7 @@ 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]) -# rpath, for finding libratbox.so at run time +# rpath, for finding librb.so at run time hold_ldflags=$LDFLAGS AC_MSG_CHECKING(for the ld -rpath flag) LDFLAGS="${LDFLAGS} -Wl,-rpath=${libdir}" @@ -620,7 +624,7 @@ 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([-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) @@ -669,9 +673,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 \ @@ -693,6 +699,7 @@ Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}: Ziplinks : $zlib OpenSSL : $openssl + SCTP : $sctp Nickname length : $NICKLEN Topic length : $TOPICLEN