1 dnl TODO: clean up all the OpenSSL and shared module checking stuff;
2 dnl the most major changes have already been made and it looks like
3 dnl said functions need to be just about as complex as they already are.
7 AC_INIT([solanum], [1.0-dev])
10 AC_USE_SYSTEM_EXTENSIONS
15 if test x"$ac_cv_prog_cc_c99" = "xno"; then
16 AC_ERROR([solanum requires a C99 capable compiler])
19 AC_PREFIX_DEFAULT($HOME/ircd)
20 AC_CONFIG_MACRO_DIR([m4])
21 AC_CONFIG_HEADER(include/setup.h)
23 AC_CONFIG_SUBDIRS([librb])
24 AC_CONFIG_AUX_DIR([libltdl/config])
26 AM_INIT_AUTOMAKE([subdir-objects])
27 AM_SILENT_RULES([yes])
30 LT_INIT([dlopen disable-static])
31 LT_CONFIG_LTDL_DIR([libltdl])
34 build_ltdl=$with_included_ltdl
35 AM_CONDITIONAL([BUILD_LTDL], [test x"$build_ltdl" = x"yes"])
39 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
40 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
43 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
44 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
45 AC_CHECK_HEADER(winsock2.h, , [AC_MSG_ERROR([** MinGW and no winsock2.h. I give up.])])
46 LIBS="$LIBS -lws2_32 -liphlpapi"
53 AM_CONDITIONAL([MINGW], [test "$is_mingw" = "yes"])
55 if test "$ac_cv_c_compiler_gnu" = yes; then
56 IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall"
59 dnl If we support -g, use it!
60 if test "$ac_cv_prog_cc_g" = yes; then
61 IRC_CFLAGS="$IRC_CFLAGS -g"
64 dnl check for /dev/null so we can use it to hold evil fd's
65 AC_MSG_CHECKING([for /dev/null])
66 if test -c /dev/null ; then
67 AC_DEFINE(PATH_DEVNULL, "/dev/null", [Path to /dev/null])
70 AC_DEFINE(PATH_DEVNULL, "devnull.log", [Path to /dev/null])
71 AC_MSG_RESULT(no - using devnull.log)
74 dnl jdc -- If CFLAGS is defined, best use it everywhere...
75 dnl NOTE: jv says it must be added to the *END*, because things like
76 dnl "gcc -O9 -O2" will result in -O2 getting preference. How stupid.
77 if test ! -z "$CFLAGS"; then
78 IRC_CFLAGS="$IRC_CFLAGS $CFLAGS"
89 AC_PATH_PROG(SED, sed)
92 AC_PATH_PROG(RANLIB, ranlib)
93 AC_PATH_PROG(TOUCH, touch)
97 dnl AC_PROG_YACC defaults to yacc unconditionally if nothing can be found
98 if test "$YACC" = "yacc" -a -z "`which $YACC 2>/dev/null`"; then
99 AC_MSG_ERROR([could not locate a suitable parser generator; install bison, yacc, or byacc])
104 if test "$LEX" = ":"; then
105 AC_MSG_ERROR([could not locate a suitable lexical generator, install flex or lex.])
108 AC_ARG_ENABLE([fhs-paths],
109 [AS_HELP_STRING([--enable-fhs-paths], [Use more FHS-like pathnames (for packagers).])],
111 [dnl detect if the user appears to want --enable-fhs-paths
112 AS_IF([test "$libexecdir" = '${exec_prefix}/libexec' && \
113 test "$localstatedir" = '${prefix}/var' && \
114 test "$libdir" = '${exec_prefix}/lib'],
115 [enable_fhs_paths=no],
116 [enable_fhs_paths=yes])
118 dnl use directory structure of cached as default (hack)
119 AS_IF([test "x$enable_fhs_paths" = "xyes"],
120 [dnl Avoid name collisions.
121 pkglibexecdir='${libexecdir}/${PACKAGE_TARNAME}'
122 rundir=${rundir-'${prefix}/run'}
123 pkgrundir='${rundir}/${PACKAGE_TARNAME}'
124 pkglocalstatedir='${localstatedir}/${PACKAGE_TARNAME}'
125 AC_DEFINE([ENABLE_FHS_PATHS], [1], [Uncomment if FHS pathnames are enabled])],
126 [libexecdir='${bindir}'
127 pkglibexecdir='${libexecdir}'
128 rundir='${sysconfdir}'
129 pkgrundir='${rundir}'
130 localstatedir='${prefix}'
131 pkglocalstatedir='${sysconfdir}'])
132 pkglibdir='${libdir}/${PACKAGE_TARNAME}'
133 AC_SUBST([pkglibdir])
135 AC_SUBST([pkgrundir])
136 AC_SUBST([pkglocalstatedir])
137 AC_DEFINE_DIR([PKGLOCALSTATEDIR], [pkglocalstatedir], [[Directory in which to store state, such as ban database]])
138 AC_SUBST([pkglibexecdir])
139 AC_DEFINE_DIR([PKGLIBEXECDIR], [pkglibexecdir], [Directory where binaries the IRCd itself spawns live])
141 dnl Checks for header files.
145 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])
147 dnl Stuff that the memory manager (imalloc) depends on
148 dnl ==================================================
151 if test "$ac_cv_header_machine_endian_h" = "no" ; then
156 AC_CHECK_SIZEOF(short)
158 AC_CHECK_SIZEOF(long)
159 AC_CHECK_SIZEOF(long long)
161 dnl Networking Functions
162 dnl ====================
164 AC_SEARCH_LIBS(socket, [socket ws2_32], , [AC_MSG_ERROR([You have no socket()! Aborting.])])
166 dnl SunOS/Solaris required libnsl for inet_ntoa()
167 if test x"$SUN" = xyes; then
168 AC_SEARCH_LIBS(inet_ntoa, nsl,, [AC_MSG_ERROR([libnsl not found! Aborting.])])
171 AC_SEARCH_LIBS(crypt, [crypt descrypt],,)
173 CRYPT_LIB=$ac_cv_search_crypt
175 if test "$CRYPT_LIB" = "none required"; then
177 elif test "$CRYPT_LIB" = no; then
185 dnl Check for stdarg.h - if we can't find it, halt configure
186 AC_CHECK_HEADER(stdarg.h, , [AC_MSG_ERROR([** stdarg.h could not be found - solanum will not compile without it **])])
187 AC_CHECK_FUNCS([strlcat strlcpy])
192 AC_CHECK_TYPE([sa_family_t], [],
193 [AC_DEFINE(sa_family_t, [u_int16_t], [If system does not define sa_family_t, define it here.])],
194 [[#include <sys/types.h>
195 #include <sys/socket.h>]])
197 AC_CHECK_TYPES([uintptr_t])
199 dnl check for various functions...
200 AC_CHECK_FUNCS([snprintf vsnprintf socketpair mmap gettimeofday strdup strndup ])
204 dnl Specialized functions checks
205 dnl ============================
207 dnl check for nanosleep
208 AC_CHECK_FUNC(nanosleep,,[AC_CHECK_LIB(rt,nanosleep,
210 [AC_CHECK_LIB(posix4,nanosleep, LIBS="${LIBS} -lposix4"
212 if test x$ac_cv_func_nanosleep = xno && test x$ac_cv_lib_posix4_nanosleep = xno && test x$ac_cv_lib_rt_nanosleep = xno
214 AC_MSG_RESULT("nanosleep not found..using select for delay")
216 AC_DEFINE([HAVE_NANOSLEEP], 1, [Define if nanosleep exists])
220 AC_MSG_CHECKING(for OpenSSL)
221 AC_ARG_ENABLE(openssl,
222 [AC_HELP_STRING([--enable-openssl[=DIR]],[Enable OpenSSL support (DIR optional).])
223 AC_HELP_STRING([--disable-openssl],[Disable OpenSSL support.])],
224 [cf_enable_openssl=$enableval],
225 [cf_enable_openssl="auto"])
227 if test "$cf_enable_openssl" != "no" ; then
228 cf_openssl_basedir=""
229 if test "$cf_enable_openssl" != "auto" &&
230 test "$cf_enable_openssl" != "yes" ; then
231 dnl Support for --enable-openssl=/some/place
232 cf_openssl_basedir="`echo ${cf_enable_openssl} | sed 's/\/$//'`"
234 dnl Do the auto-probe here. Check some common directory paths.
235 for dirs in /usr/local/ssl /usr/pkg /usr/local \
236 /usr/local/openssl ; do
237 if test -f "${dirs}/include/openssl/opensslv.h" ; then
238 cf_openssl_basedir="${dirs}"
244 dnl Now check cf_openssl_found to see if we found anything.
245 if test ! -z "$cf_openssl_basedir"; then
246 if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" ; then
247 SSL_INCLUDES="-I${cf_openssl_basedir}/include"
248 SSL_LIBS="-L${cf_openssl_basedir}/lib"
250 dnl OpenSSL wasn't found in the directory specified. Naughty
252 cf_openssl_basedir=""
255 dnl Check for stock FreeBSD 4.x and 5.x systems, since their files
256 dnl are in /usr/include and /usr/lib. In this case, we don't want to
257 dnl change INCLUDES or LIBS, but still want to enable OpenSSL.
258 dnl We can't do this check above, because some people want two versions
259 dnl of OpenSSL installed (stock FreeBSD 4.x/5.x and /usr/local/ssl)
260 dnl and they want /usr/local/ssl to have preference.
261 if test -f "/usr/include/openssl/opensslv.h" ; then
262 cf_openssl_basedir="/usr"
266 dnl If we have a basedir defined, then everything is okay. Otherwise,
267 dnl we have a problem.
268 if test ! -z "$cf_openssl_basedir"; then
269 AC_MSG_RESULT($cf_openssl_basedir)
270 cf_enable_openssl="yes"
272 AC_MSG_RESULT([not found. Specify a correct path?])
273 cf_enable_openssl="no"
275 unset cf_openssl_basedir
277 dnl If --disable-openssl was specified
278 AC_MSG_RESULT(disabled)
281 save_CPPFLAGS="$CPPFLAGS"
282 CPPFLAGS="$CPPFLAGS $SSL_INCLUDES"
284 LIBS="$LIBS $SSL_LIBS"
285 if test "$cf_enable_openssl" != no; then
286 dnl Check OpenSSL version (must be 0.9.6 or above!)
287 AC_MSG_CHECKING(for OpenSSL 0.9.6 or above)
290 [#include <openssl/opensslv.h>
291 #include <stdlib.h>],
292 [[if ( OPENSSL_VERSION_NUMBER >= 0x00906000)
293 exit(0); else exit(1);]])],
294 cf_openssl_version_ok=yes,
295 cf_openssl_version_ok=no,
296 cf_openssl_version_ok=no)
298 if test "$cf_openssl_version_ok" = yes; then
301 dnl Work around pmake/gmake conditional incompatibilities
302 AC_SUBST(ENCSPEED, encspeed)
304 dnl Do all the HAVE_LIBCRYPTO magic -- and check for ciphers
305 CPPFLAGS="$CPPFLAGS $SSL_LIBS"
306 AC_CHECK_LIB(crypto, RSA_free)
307 SSL_LIBS="$SSL_LIBS -lcrypto"
308 SSL_SRCS_ENABLE='$(SSL_SRCS)'
310 AC_MSG_RESULT(no - OpenSSL support disabled)
314 CPPFLAGS="$save_CPPFLAGS"
317 dnl End OpenSSL detection
320 dnl Specialized functions and libraries
321 dnl ===================================
323 AC_ARG_ENABLE(hyperscan,
324 AC_HELP_STRING([--disable-hyperscan],[Disable hyperscan support]),
325 [hyperscan=$enableval],[hyperscan=yes])
327 AS_IF([test "$hyperscan" = yes], [
328 save_CPPFLAGS="$CPPFLAGS"
330 PKG_CHECK_MODULES([HS], [libhs >= 4], [], [hyperscan=no])
331 CPPFLAGS="$CPPFLAGS $HS_CFLAGS"
332 LIBS="$LIBS $HS_LIBS"
333 AC_CHECK_HEADER([hs_common.h], [], [hyperscan=no])
334 AC_CHECK_FUNC([hs_scan], [], [hyperscan=no])
337 AS_IF([test "$hyperscan" = no], [
338 CPPFLAGS="$save_CPPFLAGS"
342 AM_CONDITIONAL([HAVE_HYPERSCAN], [test "$hyperscan" = "yes"])
345 AC_ARG_WITH(zlib-path,
346 AC_HELP_STRING([--with-zlib-path=DIR],[Path to libz.so for ziplinks support.]),
347 [LIBS="$LIBS -L$withval"],)
350 AC_HELP_STRING([--disable-zlib],[Disable ziplinks support]),
351 [zlib=$enableval],[zlib=yes])
353 if test "$zlib" = yes; then
355 AC_CHECK_HEADER(zlib.h, [
356 AC_CHECK_LIB(z, zlibVersion,
358 AC_SUBST(ZLIB_LD, -lz)
359 AC_DEFINE(HAVE_LIBZ, 1, [Define to 1 if zlib (-lz) is available.])
365 AC_ARG_WITH(sctp-path,
366 AC_HELP_STRING([--with-sctp-path=DIR],[Path to libsctp.so for SCTP support.]),
367 [LIBS="$LIBS -L$withval"],)
370 AC_HELP_STRING([--disable-sctp],[Disable SCTP support]),
371 [sctp=$enableval],[sctp=yes])
373 if test "$sctp" = yes; then
375 AC_CHECK_HEADER(netinet/sctp.h, [
376 AC_CHECK_LIB(sctp, sctp_bindx,
378 AC_SUBST(LIBSCTP_LD, -lsctp)
379 AC_DEFINE(HAVE_LIBSCTP, 1, [Define to 1 if libsctp (-lsctp) is available.])
385 dnl Check for shared sqlite
386 dnl ======================
387 AC_ARG_WITH(shared-sqlite,
388 AC_HELP_STRING([--with-shared-sqlite],[Use shared sqlite]),
389 [shared_sqlite=$withval],[shared_sqlite=no])
391 if test "$shared_sqlite" = yes; then
392 PKG_CHECK_MODULES(SQLITE, [sqlite3],
398 if test "$shared_sqlite" = no; then
399 SQLITE_OBJ='sqlite3.$(OBJEXT)'
402 AC_SUBST(SQLITE_LD, "$SQLITE_LIBS")
403 AC_SUBST(SQLITE_INCLUDES, "$SQLITE_CFLAGS")
406 dnl **********************************************************************
407 dnl Check for --with-confdir [deprecated, use --sysconfdir instead]
408 dnl **********************************************************************
410 AC_ARG_WITH([confdir],
411 [AC_HELP_STRING([--with-confdir=DIR],
412 [Directory to install config files [deprecated, use --sysconfdir instead].])],
413 [ sysconfdir=`echo $withval | sed 's/\/$//'` ],
414 [ confdir='${sysconfdir}' ])
415 AC_DEFINE_DIR([ETC_DIR], [sysconfdir], [Prefix where config files are installed.])
417 dnl **********************************************************************
418 dnl Check for --with-logdir
419 dnl **********************************************************************
421 AC_MSG_CHECKING([whether to modify logdir])
423 AC_HELP_STRING([--with-logdir=DIR],
424 [Directory where to write logfiles.]),
425 [ logdir=`echo $withval | sed 's/\/$//'`
427 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
428 [logdir='${localstatedir}/log/${PACKAGE_TARNAME}'],
429 [logdir='${prefix}/logs'])
431 AC_DEFINE_DIR([LOG_DIR], [logdir], [Prefix where to write logfiles.])
432 AC_SUBST_DIR([logdir])
434 dnl **********************************************************************
435 dnl Check for --with-helpdir
436 dnl **********************************************************************
438 AC_MSG_CHECKING([whether to modify helpdir])
440 AC_HELP_STRING([--with-helpdir=DIR],
441 [Directory to install help files.]),
442 [ helpdir=`echo $withval | sed 's/\/$//'`
443 AC_MSG_RESULT(yes) ],
444 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
445 [helpdir='${datadir}/${PACKAGE_TARNAME}/help'],
446 [helpdir='${prefix}/help'])
448 AC_DEFINE_DIR([HELP_DIR], [helpdir], [Prefix where help files are installed.])
449 AC_SUBST_DIR([helpdir])
451 dnl **********************************************************************
452 dnl Check for --with-moduledir
453 dnl **********************************************************************
455 AC_MSG_CHECKING([whether to modify moduledir])
456 AC_ARG_WITH(moduledir,
457 [AC_HELP_STRING([--with-moduledir=DIR],
458 [Directory to install modules.])],
459 [ moduledir=`echo $withval | sed 's/\/$//'`
461 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
462 [moduledir='${pkglibdir}/modules'],
463 [moduledir='${prefix}/modules'])
466 AC_DEFINE_DIR(MODULE_DIR, moduledir, [Prefix where modules are installed.])
467 AC_SUBST_DIR([moduledir])
469 dnl Check for --with-rundir
471 AC_MSG_CHECKING([whether or modify rundir])
472 AC_ARG_WITH([rundir],
473 [AC_HELP_STRING([--with-rundir=DIR],
474 [Directory in which to store pidfile.])],
475 [AC_MSG_RESULT([yes])
476 rundir=`echo $withval | sed 's/\/$//'`],
478 AS_IF([test "x$enable_fhs_paths" = "xyes"],
479 [rundir='${prefix}/run'],
480 [rundir='${sysconfdir}'])])
482 AC_DEFINE_DIR([PKGRUNDIR], [pkgrundir], [Directory to store pidfile in.])
484 dnl Installed utility program prefixes (does not affect binaries
485 dnl installed into pkglibexecdir)
486 AC_MSG_CHECKING([for program prefix])
487 AC_ARG_WITH([program-prefix],
488 [AS_HELP_STRING([--with-program-prefix=], [If set, programs installed into PATH will be installed with names prefixed by this prefix.])],
489 [test "x$with_program_prefix" = "xno" && with_program_prefix=],
490 [with_program_prefix=])
491 AC_MSG_RESULT(["$with_program_prefix"])
492 PROGRAM_PREFIX="$with_program_prefix"
493 AC_SUBST([PROGRAM_PREFIX])
494 AC_DEFINE_UNQUOTED([PROGRAM_PREFIX], ["$with_program_prefix"], [String with which all programs intended to be in PATH are prefixed.])
496 dnl **********************************************************************
498 dnl **********************************************************************
500 AC_MSG_CHECKING([whether custom branding is requested])
501 AC_ARG_WITH(custom-branding,
502 AC_HELP_STRING([--with-custom-branding=NAME],
503 [Custom branding name.]),
504 [BRANDING_NAME=$withval
505 AC_MSG_RESULT([yes])],
506 [BRANDING_NAME=$PACKAGE_NAME
510 AC_MSG_CHECKING([whether a custom version is requested])
511 AC_ARG_WITH(custom-version,
512 AC_HELP_STRING([--with-custom-version=NAME],
513 [Custom version branding.]),
514 [BRANDING_VERSION=$withval
515 AC_MSG_RESULT([yes])],
516 [BRANDING_VERSION=$PACKAGE_VERSION
520 AC_DEFINE_UNQUOTED(BRANDING_NAME, ["$BRANDING_NAME"], [Custom branding name.])
521 AC_DEFINE_UNQUOTED(BRANDING_VERSION, ["$BRANDING_VERSION"], [Custom branding name.])
523 if test "x$BRANDING_NAME" != "x$PACKAGE_NAME"; then
524 AC_DEFINE(CUSTOM_BRANDING, 1, [Define if custom branding is enabled.])
527 dnl **********************************************************************
528 dnl Enable oper chghost
529 dnl **********************************************************************
531 AC_ARG_ENABLE(oper-chghost,
532 AC_HELP_STRING([--enable-oper-chghost],[Enable opers to use the CHGHOST command]),
533 [operchghost=$enableval],[operchghost=no])
535 if test "$operchghost" = yes; then
536 AC_DEFINE(ENABLE_OPER_CHGHOST, 1, [Define this to enable opers to use the CHGHOST command.])
539 dnl Debug-related options
540 dnl =====================
542 AC_ARG_ENABLE(assert,
543 AC_HELP_STRING([--enable-assert],[Enable assert(). Choose between soft(warnings) and hard(aborts the daemon)]),
544 [assert=$enableval], [assert=no])
546 if test "$assert" = no; then
547 AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
548 elif test "$assert" = soft; then
549 AC_DEFINE(SOFT_ASSERT, 1, [Define this to enable soft asserts.])
550 AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
551 elif test "$assert" = yes; then
555 AC_MSG_CHECKING(if you want to do a profile build)
556 AC_ARG_ENABLE(profile,
557 AC_HELP_STRING([--enable-profile],[Enable profiling]),
558 [profile=$enableval], [profile=no])
560 if test "$profile" = yes; then
561 if test "$ac_cv_c_compiler_gnu" = yes; then
562 IRC_CFLAGS="$IRC_CFLAGS -pg"
563 AC_MSG_RESULT([yes, adding -pg])
564 AC_DEFINE(SOLANUM_PROFILE, 1, [Define this if you are profiling.])
566 AC_MSG_RESULT([no, profile builds only work with gcc])
572 AC_DEFINE([NICKNAMEHISTORYLENGTH], 15000, [Size of the WHOWAS array.])
573 AC_DEFINE([CHANNEL_HEAP_SIZE], 8192, [Size of the channel heap.])
574 AC_DEFINE([BAN_HEAP_SIZE], 4096, [Size of the ban heap.])
575 AC_DEFINE([CLIENT_HEAP_SIZE], 8192, [Size of the client heap.])
576 AC_DEFINE([LCLIENT_HEAP_SIZE], 1024, [Size of the local client heap.])
577 AC_DEFINE([PCLIENT_HEAP_SIZE], 256, [Size of the pre-client heap.])
578 AC_DEFINE([USER_HEAP_SIZE], 8192, [Size of the user heap.])
579 AC_DEFINE([DNODE_HEAP_SIZE], 8192, [Size of the dlink_node heap.])
580 AC_DEFINE([TOPIC_HEAP_SIZE], 4096, [Size of the topic heap.])
581 AC_DEFINE([LINEBUF_HEAP_SIZE], 2048, [Size of the linebuf heap.])
582 AC_DEFINE([MEMBER_HEAP_SIZE], 32768, [Sizeof member heap.])
583 AC_DEFINE([ND_HEAP_SIZE], 512, [Size of the nick delay heap.])
584 AC_DEFINE([CONFITEM_HEAP_SIZE], 256, [Size of the confitem heap.])
585 AC_DEFINE([MONITOR_HEAP_SIZE], 1024, [Size of the monitor heap.])
586 AC_DEFINE([FD_HEAP_SIZE], 1024, [Size of fd heap.])
587 AC_DEFINE([AWAY_HEAP_SIZE], 512, [Size of away heap.])
590 AC_HELP_STRING([--with-nicklen=LENGTH],[Set the upper-bound nick length to LENGTH (default 31, max 50)]),
592 if ! expr "$withval" + 0 >/dev/null 2>&1; then
593 AC_ERROR([NICKLEN must be a numeric value])
595 if test $withval -gt 50; then
597 AC_MSG_WARN([NICKLEN has a hard limit of 50. Setting NICKLEN=50])
598 elif test $withval -lt 9; then
600 AC_MSG_WARN([NICKLEN has a lower limit of 9. Setting NICKLEN=9])
606 AC_ARG_WITH(topiclen,
607 AC_HELP_STRING([--with-topiclen=NUMBER],[Set the max topic length to NUMBER (default 390, max 390)]),
609 if test $withval -gt 390; then
611 AC_MSG_WARN([TOPICLEN has a hard limit of 390. Setting TOPICLEN=390])
617 AC_DEFINE_UNQUOTED(TOPICLEN, ${TOPICLEN}, [Maximum topic length (<=390)])
618 AC_DEFINE_UNQUOTED(NICKLEN, (${NICKLEN}+1), [Nickname length])
622 AC_HELP_STRING([--with-asan],[Build with Address Sanitizer]),
624 CFLAGS="$CFLAGS -fsanitize=address"
625 LDFLAGS="$LDFLAGS -fsanitize=address"
628 # rpath, for finding librb.so at run time
629 hold_ldflags=$LDFLAGS
630 AC_MSG_CHECKING(for the ld -rpath flag)
631 LDFLAGS="${LDFLAGS} -Wl,-rpath=${libdir}"
632 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[int i;])], found=yes, found=no)
633 LDFLAGS=$hold_ldflags
634 AC_MSG_RESULT($found)
635 if test "$found" = yes; then
636 LDFLAGS="${LDFLAGS} -Wl,-rpath=\${libdir}"
639 # This must be down here, or it will mess up checks like the ones
640 # for -Wl,-export-dynamic
643 AC_ARG_ENABLE(warnings,
644 AC_HELP_STRING([--enable-warnings],[Enable all sorts of warnings for debugging.]),
646 IRC_CFLAGS="$IRC_CFLAGS -O0"
649 SOLANUM_C_GCC_TRY_FLAGS([-Wall], solanum_cv_c_gcc_w_all)
650 SOLANUM_C_GCC_TRY_FLAGS([-Wpointer-arith], solanum_cv_c_gcc_w_pointer_arith)
651 SOLANUM_C_GCC_TRY_FLAGS([-Wimplicit -Wnested-externs], solanum_cv_c_gcc_w_implicit)
652 SOLANUM_C_GCC_TRY_FLAGS([-Wcast-align], solanum_cv_c_gcc_w_cast_align)
653 SOLANUM_C_GCC_TRY_FLAGS([-Wcast-qual], solanum_cv_c_gcc_w_cast_qual)
654 SOLANUM_C_GCC_TRY_FLAGS([-Wwrite-strings], solanum_cv_c_gcc_w_write_strings)
655 SOLANUM_C_GCC_TRY_FLAGS([-Werror-implicit-function-declaration], solanum_cv_c_gcc_w_error_implicit_function_declaration)
656 SOLANUM_C_GCC_TRY_FLAGS([-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations], solanum_cv_c_gcc_prototypes)
657 SOLANUM_C_GCC_TRY_FLAGS([-Wparentheses], solanum_cv_c_gcc_parentheses)
658 SOLANUM_C_GCC_TRY_FLAGS([-W -Wno-unused], solanum_cv_c_gcc_w)
659 SOLANUM_C_GCC_TRY_FLAGS([-Wextra], solanum_cv_c_gcc_w_extra)
660 SOLANUM_C_GCC_TRY_FLAGS([-Wshadow], solanum_cv_c_gcc_w_shadow)
661 SOLANUM_C_GCC_TRY_FLAGS([-Wmissing-noreturn], solanum_cv_c_gcc_w_missing_noreturn)
662 SOLANUM_C_GCC_TRY_FLAGS([-Wundef], solanum_cv_c_gcc_w_undef)
663 SOLANUM_C_GCC_TRY_FLAGS([-Wpacked], solanum_cv_c_gcc_w_packed)
664 SOLANUM_C_GCC_TRY_FLAGS([-Wnested-externs], solanum_cv_c_gcc_w_nested_externs)
665 SOLANUM_C_GCC_TRY_FLAGS([-Wunused-function -Wunused-label -Wunused-value -Wunused-variable], solanum_cv_c_gcc_w_unused)
666 SOLANUM_C_GCC_TRY_FLAGS([-Wredundant-decls], solanum_cv_c_gcc_w_redundant_decls)
667 SOLANUM_C_GCC_TRY_FLAGS([-Wfloat-equal], solanum_cv_c_gcc_w_float_equal)
668 SOLANUM_C_GCC_TRY_FLAGS([-Wformat -Wformat-y2k -Wno-format-security], solanum_cv_c_gcc_w_format)
673 IRC_CFLAGS="$IRC_CFLAGS $CWARNS"
675 AC_SUBST(MODULES_LIBS)
678 AC_SUBST(SSL_SRCS_ENABLE)
679 AC_SUBST(SSL_INCLUDES)
688 if test "$prefix" = "NONE"; then
689 AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$ac_default_prefix", [Prefix where the ircd is installed.])
693 dnl Don't get bitten by Cygwin's stupidity if the user specified
694 dnl a custom prefix with a trailing slash
696 prefix=`echo $prefix | sed 's/\/$//'`
697 AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$prefix", [Prefix where the ircd is installed.])
707 extensions/Makefile \
716 AC_CONFIG_COMMANDS([tools/genssl_chmod], [chmod 755 tools/genssl])
720 if test "$cf_openssl_version_ok" = yes; then
727 Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}:
728 Install directory : $prefix
734 Nickname length : $NICKLEN
735 Topic length : $TOPICLEN
737 Use (g)make to compile $BRANDING_NAME, then (g)make install to install it.