X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/d5ef3fd3b6f7865e60beca4cb1103b887042c1ed..35472d0f1f52c31213cf9f96b4d80da91d27a865:/configure.ac diff --git a/configure.ac b/configure.ac index 34de3d34..333a793d 100644 --- a/configure.ac +++ b/configure.ac @@ -7,16 +7,21 @@ AC_PREREQ(2.60) AC_INIT([charybdis], [3.6.0-dev]) AC_LANG(C) -AC_PROG_CC_C99 AC_USE_SYSTEM_EXTENSIONS 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]) +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]) @@ -29,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 @@ -116,6 +139,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]) @@ -136,19 +160,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]) @@ -207,22 +225,22 @@ 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 dnl Specialized functions checks dnl ============================ -dnl check for nanosleep +dnl check for nanosleep AC_CHECK_FUNC(nanosleep,,[AC_CHECK_LIB(rt,nanosleep, LIBS="${LIBS} -lrt", [AC_CHECK_LIB(posix4,nanosleep, LIBS="${LIBS} -lposix4" )])]) if test x$ac_cv_func_nanosleep = xno && test x$ac_cv_lib_posix4_nanosleep = xno && test x$ac_cv_lib_rt_nanosleep = xno -then +then AC_MSG_RESULT("nanosleep not found..using select for delay") -else +else AC_DEFINE([HAVE_NANOSLEEP], 1, [Define if nanosleep exists]) fi @@ -310,7 +328,7 @@ if test "$cf_enable_openssl" != no; then dnl Work around pmake/gmake conditional incompatibilities AC_SUBST(ENCSPEED, encspeed) - + dnl Do all the HAVE_LIBCRYPTO magic -- and check for ciphers CPPFLAGS="$CPPFLAGS $SSL_LIBS" AC_CHECK_LIB(crypto, RSA_free) @@ -387,7 +405,7 @@ dnl Check for --with-logdir dnl ********************************************************************** AC_MSG_CHECKING([whether to modify logdir]) -AC_ARG_WITH(logdir, +AC_ARG_WITH(logdir, AC_HELP_STRING([--with-logdir=DIR], [Directory where to write logfiles.]), [ logdir=`echo $withval | sed 's/\/$//'` @@ -404,7 +422,7 @@ dnl Check for --with-helpdir dnl ********************************************************************** AC_MSG_CHECKING([whether to modify helpdir]) -AC_ARG_WITH(helpdir, +AC_ARG_WITH(helpdir, AC_HELP_STRING([--with-helpdir=DIR], [Directory to install help files.]), [ helpdir=`echo $withval | sed 's/\/$//'` @@ -421,7 +439,7 @@ dnl Check for --with-moduledir dnl ********************************************************************** AC_MSG_CHECKING([whether to modify moduledir]) -AC_ARG_WITH(moduledir, +AC_ARG_WITH(moduledir, [AC_HELP_STRING([--with-moduledir=DIR], [Directory to install modules.])], [ moduledir=`echo $withval | sed 's/\/$//'` @@ -492,6 +510,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 ===================== @@ -508,19 +538,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]), @@ -558,9 +575,9 @@ AC_DEFINE([AWAY_HEAP_SIZE], 512, [Size of away heap.]) AC_ARG_WITH(nicklen, AC_HELP_STRING([--with-nicklen=LENGTH],[Set the upper-bound nick length to LENGTH (default 31, max 50)]), [ - if ! expr "$withval" + 0 >/dev/null 2>&1; then + if ! expr "$withval" + 0 >/dev/null 2>&1; then AC_ERROR([NICKLEN must be a numeric value]) - fi + fi if test $withval -gt 50; then NICKLEN=50 AC_MSG_WARN([NICKLEN has a hard limit of 50. Setting NICKLEN=50]) @@ -572,10 +589,10 @@ AC_HELP_STRING([--with-nicklen=LENGTH],[Set the upper-bound nick length to LENGT fi ], [NICKLEN=31]) -AC_ARG_WITH(topiclen, +AC_ARG_WITH(topiclen, AC_HELP_STRING([--with-topiclen=NUMBER],[Set the max topic length to NUMBER (default 390, max 390)]), [ - if test $withval -ge 390; then + if test $withval -gt 390; then TOPICLEN=390 AC_MSG_WARN([TOPICLEN has a hard limit of 390. Setting TOPICLEN=390]) else @@ -586,7 +603,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}" @@ -615,7 +632,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) @@ -646,7 +663,7 @@ AC_SUBST(IRC_CFLAGS) AC_SUBST(SEDOBJ) -if test "$prefix" = "NONE"; then +if test "$prefix" = "NONE"; then AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$ac_default_prefix", [Prefix where the ircd is installed.]) else @@ -656,7 +673,7 @@ dnl a custom prefix with a trailing slash prefix=`echo $prefix | sed 's/\/$//'` AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$prefix", [Prefix where the ircd is installed.]) - + fi AC_CONFIG_FILES( \