]> jfr.im git - solanum.git/blob - configure.ac
set version back to -dev
[solanum.git] / configure.ac
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.
4
5 AC_PREREQ(2.60)
6
7 AC_INIT([charybdis], [4.1-dev])
8
9 AC_LANG(C)
10 AC_USE_SYSTEM_EXTENSIONS
11 AC_GNU_SOURCE
12
13 AC_PROG_CC_C99
14
15 if test x"$ac_cv_prog_cc_c99" = "xno"; then
16 AC_ERROR([charybdis requires a C99 capable compiler])
17 fi
18
19 AC_PREFIX_DEFAULT($HOME/ircd)
20 AC_CONFIG_MACRO_DIR([m4])
21 AC_CONFIG_HEADER(include/setup.h)
22
23 AC_CONFIG_SUBDIRS([librb])
24 AC_CONFIG_AUX_DIR([libltdl/config])
25
26 AM_INIT_AUTOMAKE([subdir-objects])
27 AM_SILENT_RULES([yes])
28 AM_PROG_AR
29
30 LT_INIT([dlopen disable-static])
31 LT_CONFIG_LTDL_DIR([libltdl])
32 LTDL_INIT
33
34 build_ltdl=$with_included_ltdl
35 AM_CONDITIONAL([BUILD_LTDL], [test x"$build_ltdl" = x"yes"])
36
37 case "$host_os" in
38 *cygwin*)
39 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
40 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
41 ;;
42 *mingw* | *msys*)
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"
47 is_mingw="yes"
48 ;;
49 *)
50 ;;
51 esac
52
53 AM_CONDITIONAL([MINGW], [test "$is_mingw" = "yes"])
54
55 if test "$ac_cv_c_compiler_gnu" = yes; then
56 IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall"
57 fi
58
59 dnl If we support -g, use it!
60 if test "$ac_cv_prog_cc_g" = yes; then
61 IRC_CFLAGS="$IRC_CFLAGS -g"
62 fi
63
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])
68 AC_MSG_RESULT(yes)
69 else
70 AC_DEFINE(PATH_DEVNULL, "devnull.log", [Path to /dev/null])
71 AC_MSG_RESULT(no - using devnull.log)
72 fi
73
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"
79 fi
80
81 AC_ISC_POSIX
82 AC_C_INLINE
83 AC_PROG_MAKE_SET
84 AC_PROG_INSTALL
85 AC_PATH_PROG(RM, rm)
86 AC_PATH_PROG(CP, cp)
87 AC_PATH_PROG(MV, mv)
88 AC_PATH_PROG(LN, ln)
89 AC_PATH_PROG(SED, sed)
90 AC_PATH_PROG(AR, ar)
91 AC_PATH_PROG(LD, ld)
92 AC_PATH_PROG(RANLIB, ranlib)
93 AC_PATH_PROG(TOUCH, touch)
94
95 AC_PROG_YACC
96
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])
100 fi
101
102 AC_PROG_LEX
103
104 if test "$LEX" = ":"; then
105 AC_MSG_ERROR([could not locate a suitable lexical generator, install flex or lex.])
106 fi
107
108 AC_ARG_ENABLE([fhs-paths],
109 [AS_HELP_STRING([--enable-fhs-paths], [Use more FHS-like pathnames (for packagers).])],
110 [],
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])
117 ])
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])
134 AC_SUBST([rundir])
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])
140
141 dnl Checks for header files.
142 AC_HEADER_STDC
143 AC_HEADER_STDBOOL
144
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])
146
147 dnl Stuff that the memory manager (imalloc) depends on
148 dnl ==================================================
149
150 AC_C_CONST
151 if test "$ac_cv_header_machine_endian_h" = "no" ; then
152 AC_C_BIGENDIAN
153 fi
154 AC_TYPE_PID_T
155 AC_TYPE_SIZE_T
156 AC_CHECK_SIZEOF(short)
157 AC_CHECK_SIZEOF(int)
158 AC_CHECK_SIZEOF(long)
159 AC_CHECK_SIZEOF(long long)
160
161 dnl Networking Functions
162 dnl ====================
163
164 AC_SEARCH_LIBS(socket, [socket ws2_32], , [AC_MSG_ERROR([You have no socket()! Aborting.])])
165
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.])])
169 fi
170
171 AC_SEARCH_LIBS(crypt, [crypt descrypt],,)
172
173 CRYPT_LIB=$ac_cv_search_crypt
174
175 if test "$CRYPT_LIB" = "none required"; then
176 unset CRYPT_LIB
177 elif test "$CRYPT_LIB" = no; then
178 unset CRYPT_LIB
179 fi
180
181 AC_SUBST(CRYPT_LIB)
182
183 AC_C_BIGENDIAN
184
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 - charybdis will not compile without it **])])
187 AC_CHECK_FUNCS([strlcat strlcpy])
188
189 AC_TYPE_INT16_T
190 AC_TYPE_INT32_T
191
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>]])
196
197 AC_CHECK_TYPES([uintptr_t])
198
199 dnl check for various functions...
200 AC_CHECK_FUNCS([snprintf vsnprintf socketpair mmap gettimeofday strdup strndup ])
201
202 AC_FUNC_ALLOCA
203
204 dnl Specialized functions checks
205 dnl ============================
206
207 dnl check for nanosleep
208 AC_CHECK_FUNC(nanosleep,,[AC_CHECK_LIB(rt,nanosleep,
209 LIBS="${LIBS} -lrt",
210 [AC_CHECK_LIB(posix4,nanosleep, LIBS="${LIBS} -lposix4"
211 )])])
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
213 then
214 AC_MSG_RESULT("nanosleep not found..using select for delay")
215 else
216 AC_DEFINE([HAVE_NANOSLEEP], 1, [Define if nanosleep exists])
217 fi
218
219 dnl OpenSSL support
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"])
226
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/\/$//'`"
233 else
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}"
239 break
240 fi
241 done
242 unset dirs
243 fi
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"
249 else
250 dnl OpenSSL wasn't found in the directory specified. Naughty
251 dnl administrator...
252 cf_openssl_basedir=""
253 fi
254 else
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"
263 fi
264 fi
265
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"
271 else
272 AC_MSG_RESULT([not found. Specify a correct path?])
273 cf_enable_openssl="no"
274 fi
275 unset cf_openssl_basedir
276 else
277 dnl If --disable-openssl was specified
278 AC_MSG_RESULT(disabled)
279 fi
280
281 save_CPPFLAGS="$CPPFLAGS"
282 CPPFLAGS="$CPPFLAGS $SSL_INCLUDES"
283 save_LIBS="$LIBS"
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)
288 AC_RUN_IFELSE(
289 [AC_LANG_PROGRAM(
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)
297
298 if test "$cf_openssl_version_ok" = yes; then
299 AC_MSG_RESULT(found)
300
301 dnl Work around pmake/gmake conditional incompatibilities
302 AC_SUBST(ENCSPEED, encspeed)
303
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)'
309 else
310 AC_MSG_RESULT(no - OpenSSL support disabled)
311 fi
312 fi
313
314 CPPFLAGS="$save_CPPFLAGS"
315 LIBS="$save_LIBS"
316
317 dnl End OpenSSL detection
318
319
320 dnl Specialized functions and libraries
321 dnl ===================================
322
323 AC_ARG_WITH(zlib-path,
324 AC_HELP_STRING([--with-zlib-path=DIR],[Path to libz.so for ziplinks support.]),
325 [LIBS="$LIBS -L$withval"],)
326
327 AC_ARG_ENABLE(zlib,
328 AC_HELP_STRING([--disable-zlib],[Disable ziplinks support]),
329 [zlib=$enableval],[zlib=yes])
330
331 if test "$zlib" = yes; then
332
333 AC_CHECK_HEADER(zlib.h, [
334 AC_CHECK_LIB(z, zlibVersion,
335 [
336 AC_SUBST(ZLIB_LD, -lz)
337 AC_DEFINE(HAVE_LIBZ, 1, [Define to 1 if zlib (-lz) is available.])
338 ], zlib=no)
339 ], zlib=no)
340
341 fi
342
343 AC_ARG_WITH(sctp-path,
344 AC_HELP_STRING([--with-sctp-path=DIR],[Path to libsctp.so for SCTP support.]),
345 [LIBS="$LIBS -L$withval"],)
346
347 AC_ARG_ENABLE(sctp,
348 AC_HELP_STRING([--disable-sctp],[Disable SCTP support]),
349 [sctp=$enableval],[sctp=yes])
350
351 if test "$sctp" = yes; then
352
353 AC_CHECK_HEADER(netinet/sctp.h, [
354 AC_CHECK_LIB(sctp, sctp_bindx,
355 [
356 AC_SUBST(LIBSCTP_LD, -lsctp)
357 AC_DEFINE(HAVE_LIBSCTP, 1, [Define to 1 if libsctp (-lsctp) is available.])
358 ], sctp=no)
359 ], sctp=no)
360
361 fi
362
363 dnl Check for shared sqlite
364 dnl ======================
365 AC_ARG_WITH(shared-sqlite,
366 AC_HELP_STRING([--with-shared-sqlite],[Use shared sqlite]),
367 [shared_sqlite=$withval],[shared_sqlite=no])
368
369 if test "$shared_sqlite" = yes; then
370 PKG_CHECK_MODULES(SQLITE, [sqlite3],
371 [
372 shared_sqlite=yes
373 ], shared_sqlite=no)
374 fi
375
376 if test "$shared_sqlite" = no; then
377 SQLITE_OBJ='sqlite3.$(OBJEXT)'
378 fi
379
380 AC_SUBST(SQLITE_LD, "$SQLITE_LIBS")
381 AC_SUBST(SQLITE_INCLUDES, "$SQLITE_CFLAGS")
382 AC_SUBST(SQLITE_OBJ)
383
384 dnl **********************************************************************
385 dnl Check for --with-confdir [deprecated, use --sysconfdir instead]
386 dnl **********************************************************************
387
388 AC_ARG_WITH([confdir],
389 [AC_HELP_STRING([--with-confdir=DIR],
390 [Directory to install config files [deprecated, use --sysconfdir instead].])],
391 [ sysconfdir=`echo $withval | sed 's/\/$//'` ],
392 [ confdir='${sysconfdir}' ])
393 AC_DEFINE_DIR([ETC_DIR], [sysconfdir], [Prefix where config files are installed.])
394
395 dnl **********************************************************************
396 dnl Check for --with-logdir
397 dnl **********************************************************************
398
399 AC_MSG_CHECKING([whether to modify logdir])
400 AC_ARG_WITH(logdir,
401 AC_HELP_STRING([--with-logdir=DIR],
402 [Directory where to write logfiles.]),
403 [ logdir=`echo $withval | sed 's/\/$//'`
404 AC_MSG_RESULT(yes)],
405 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
406 [logdir='${localstatedir}/log/${PACKAGE_TARNAME}'],
407 [logdir='${prefix}/logs'])
408 AC_MSG_RESULT(no)])
409 AC_DEFINE_DIR([LOG_DIR], [logdir], [Prefix where to write logfiles.])
410 AC_SUBST_DIR([logdir])
411
412 dnl **********************************************************************
413 dnl Check for --with-helpdir
414 dnl **********************************************************************
415
416 AC_MSG_CHECKING([whether to modify helpdir])
417 AC_ARG_WITH(helpdir,
418 AC_HELP_STRING([--with-helpdir=DIR],
419 [Directory to install help files.]),
420 [ helpdir=`echo $withval | sed 's/\/$//'`
421 AC_MSG_RESULT(yes) ],
422 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
423 [helpdir='${datadir}/${PACKAGE_TARNAME}/help'],
424 [helpdir='${prefix}/help'])
425 AC_MSG_RESULT(no) ])
426 AC_DEFINE_DIR([HELP_DIR], [helpdir], [Prefix where help files are installed.])
427 AC_SUBST_DIR([helpdir])
428
429 dnl **********************************************************************
430 dnl Check for --with-moduledir
431 dnl **********************************************************************
432
433 AC_MSG_CHECKING([whether to modify moduledir])
434 AC_ARG_WITH(moduledir,
435 [AC_HELP_STRING([--with-moduledir=DIR],
436 [Directory to install modules.])],
437 [ moduledir=`echo $withval | sed 's/\/$//'`
438 AC_MSG_RESULT(yes)],
439 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
440 [moduledir='${pkglibdir}/modules'],
441 [moduledir='${prefix}/modules'])
442 AC_MSG_RESULT(no)
443 ])
444 AC_DEFINE_DIR(MODULE_DIR, moduledir, [Prefix where modules are installed.])
445 AC_SUBST_DIR([moduledir])
446
447 dnl Check for --with-rundir
448
449 AC_MSG_CHECKING([whether or modify rundir])
450 AC_ARG_WITH([rundir],
451 [AC_HELP_STRING([--with-rundir=DIR],
452 [Directory in which to store pidfile.])],
453 [AC_MSG_RESULT([yes])
454 rundir=`echo $withval | sed 's/\/$//'`],
455 [AC_MSG_RESULT([no])
456 AS_IF([test "x$enable_fhs_paths" = "xyes"],
457 [rundir='${prefix}/run'],
458 [rundir='${sysconfdir}'])])
459 AC_SUBST([rundir])
460 AC_DEFINE_DIR([PKGRUNDIR], [pkgrundir], [Directory to store pidfile in.])
461
462 dnl Installed utility program prefixes (does not affect binaries
463 dnl installed into pkglibexecdir)
464 AC_MSG_CHECKING([for program prefix])
465 AC_ARG_WITH([program-prefix],
466 [AS_HELP_STRING([--with-program-prefix=], [If set, programs installed into PATH will be installed with names prefixed by this prefix.])],
467 [test "x$with_program_prefix" = "xno" && with_program_prefix=],
468 [with_program_prefix=])
469 AC_MSG_RESULT(["$with_program_prefix"])
470 PROGRAM_PREFIX="$with_program_prefix"
471 AC_SUBST([PROGRAM_PREFIX])
472 AC_DEFINE_UNQUOTED([PROGRAM_PREFIX], ["$with_program_prefix"], [String with which all programs intended to be in PATH are prefixed.])
473
474 dnl **********************************************************************
475 dnl Branding
476 dnl **********************************************************************
477
478 AC_MSG_CHECKING([whether custom branding is requested])
479 AC_ARG_WITH(custom-branding,
480 AC_HELP_STRING([--with-custom-branding=NAME],
481 [Custom branding name.]),
482 [BRANDING_NAME=$withval
483 AC_MSG_RESULT([yes])],
484 [BRANDING_NAME=$PACKAGE_NAME
485 AC_MSG_RESULT([no])]
486 )
487
488 AC_MSG_CHECKING([whether a custom version is requested])
489 AC_ARG_WITH(custom-version,
490 AC_HELP_STRING([--with-custom-version=NAME],
491 [Custom version branding.]),
492 [BRANDING_VERSION=$withval
493 AC_MSG_RESULT([yes])],
494 [BRANDING_VERSION=$PACKAGE_VERSION
495 AC_MSG_RESULT([no])]
496 )
497
498 AC_DEFINE_UNQUOTED(BRANDING_NAME, ["$BRANDING_NAME"], [Custom branding name.])
499 AC_DEFINE_UNQUOTED(BRANDING_VERSION, ["$BRANDING_VERSION"], [Custom branding name.])
500
501 if test "x$BRANDING_NAME" != "x$PACKAGE_NAME"; then
502 AC_DEFINE(CUSTOM_BRANDING, 1, [Define if custom branding is enabled.])
503 fi
504
505 dnl **********************************************************************
506 dnl Enable oper chghost
507 dnl **********************************************************************
508
509 AC_ARG_ENABLE(oper-chghost,
510 AC_HELP_STRING([--enable-oper-chghost],[Enable opers to use the CHGHOST command]),
511 [operchghost=$enableval],[operchghost=no])
512
513 if test "$operchghost" = yes; then
514 AC_DEFINE(ENABLE_OPER_CHGHOST, 1, [Define this to enable opers to use the CHGHOST command.])
515 fi
516
517 dnl Debug-related options
518 dnl =====================
519
520 AC_ARG_ENABLE(assert,
521 AC_HELP_STRING([--enable-assert],[Enable assert(). Choose between soft(warnings) and hard(aborts the daemon)]),
522 [assert=$enableval], [assert=no])
523
524 if test "$assert" = no; then
525 AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
526 elif test "$assert" = soft; then
527 AC_DEFINE(SOFT_ASSERT, 1, [Define this to enable soft asserts.])
528 AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
529 elif test "$assert" = yes; then
530 assert = "hard";
531 fi
532
533 AC_MSG_CHECKING(if you want to do a profile build)
534 AC_ARG_ENABLE(profile,
535 AC_HELP_STRING([--enable-profile],[Enable profiling]),
536 [profile=$enableval], [profile=no])
537
538 if test "$profile" = yes; then
539 if test "$ac_cv_c_compiler_gnu" = yes; then
540 IRC_CFLAGS="$IRC_CFLAGS -pg"
541 AC_MSG_RESULT([yes, adding -pg])
542 AC_DEFINE(CHARYBDIS_PROFILE, 1, [Define this if you are profiling.])
543 else
544 AC_MSG_RESULT([no, profile builds only work with gcc])
545 fi
546 else
547 AC_MSG_RESULT(no)
548 fi
549
550 AC_DEFINE([NICKNAMEHISTORYLENGTH], 15000, [Size of the WHOWAS array.])
551 AC_DEFINE([CHANNEL_HEAP_SIZE], 8192, [Size of the channel heap.])
552 AC_DEFINE([BAN_HEAP_SIZE], 4096, [Size of the ban heap.])
553 AC_DEFINE([CLIENT_HEAP_SIZE], 8192, [Size of the client heap.])
554 AC_DEFINE([LCLIENT_HEAP_SIZE], 1024, [Size of the local client heap.])
555 AC_DEFINE([PCLIENT_HEAP_SIZE], 256, [Size of the pre-client heap.])
556 AC_DEFINE([USER_HEAP_SIZE], 8192, [Size of the user heap.])
557 AC_DEFINE([DNODE_HEAP_SIZE], 8192, [Size of the dlink_node heap.])
558 AC_DEFINE([TOPIC_HEAP_SIZE], 4096, [Size of the topic heap.])
559 AC_DEFINE([LINEBUF_HEAP_SIZE], 2048, [Size of the linebuf heap.])
560 AC_DEFINE([MEMBER_HEAP_SIZE], 32768, [Sizeof member heap.])
561 AC_DEFINE([ND_HEAP_SIZE], 512, [Size of the nick delay heap.])
562 AC_DEFINE([CONFITEM_HEAP_SIZE], 256, [Size of the confitem heap.])
563 AC_DEFINE([MONITOR_HEAP_SIZE], 1024, [Size of the monitor heap.])
564 AC_DEFINE([FD_HEAP_SIZE], 1024, [Size of fd heap.])
565 AC_DEFINE([AWAY_HEAP_SIZE], 512, [Size of away heap.])
566
567 AC_ARG_WITH(nicklen,
568 AC_HELP_STRING([--with-nicklen=LENGTH],[Set the upper-bound nick length to LENGTH (default 31, max 50)]),
569 [
570 if ! expr "$withval" + 0 >/dev/null 2>&1; then
571 AC_ERROR([NICKLEN must be a numeric value])
572 fi
573 if test $withval -gt 50; then
574 NICKLEN=50
575 AC_MSG_WARN([NICKLEN has a hard limit of 50. Setting NICKLEN=50])
576 elif test $withval -lt 9; then
577 NICKLEN=9
578 AC_MSG_WARN([NICKLEN has a lower limit of 9. Setting NICKLEN=9])
579 else
580 NICKLEN="$withval"
581 fi
582 ], [NICKLEN=31])
583
584 AC_ARG_WITH(topiclen,
585 AC_HELP_STRING([--with-topiclen=NUMBER],[Set the max topic length to NUMBER (default 390, max 390)]),
586 [
587 if test $withval -gt 390; then
588 TOPICLEN=390
589 AC_MSG_WARN([TOPICLEN has a hard limit of 390. Setting TOPICLEN=390])
590 else
591 TOPICLEN=$withval
592 fi
593 ], [TOPICLEN=390])
594
595 AC_DEFINE_UNQUOTED(TOPICLEN, ${TOPICLEN}, [Maximum topic length (<=390)])
596 AC_DEFINE_UNQUOTED(NICKLEN, (${NICKLEN}+1), [Nickname length])
597
598 # rpath, for finding librb.so at run time
599 hold_ldflags=$LDFLAGS
600 AC_MSG_CHECKING(for the ld -rpath flag)
601 LDFLAGS="${LDFLAGS} -Wl,-rpath=${libdir}"
602 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[int i;])], found=yes, found=no)
603 LDFLAGS=$hold_ldflags
604 AC_MSG_RESULT($found)
605 if test "$found" = yes; then
606 LDFLAGS="${LDFLAGS} -Wl,-rpath=\${libdir}"
607 fi
608
609 # This must be down here, or it will mess up checks like the ones
610 # for -Wl,-export-dynamic
611 # -- jilles
612 CWARNS=""
613 AC_ARG_ENABLE(warnings,
614 AC_HELP_STRING([--enable-warnings],[Enable all sorts of warnings for debugging.]),
615 [
616 IRC_CFLAGS="$IRC_CFLAGS -O0"
617 CFLAGS="$IRC_CFLAGS"
618
619 CHARYBDIS_C_GCC_TRY_FLAGS([-Wall], charybdis_cv_c_gcc_w_all)
620 CHARYBDIS_C_GCC_TRY_FLAGS([-Wpointer-arith], charybdis_cv_c_gcc_w_pointer_arith)
621 CHARYBDIS_C_GCC_TRY_FLAGS([-Wimplicit -Wnested-externs], charybdis_cv_c_gcc_w_implicit)
622 CHARYBDIS_C_GCC_TRY_FLAGS([-Wcast-align], charybdis_cv_c_gcc_w_cast_align)
623 CHARYBDIS_C_GCC_TRY_FLAGS([-Wcast-qual], charybdis_cv_c_gcc_w_cast_qual)
624 CHARYBDIS_C_GCC_TRY_FLAGS([-Wwrite-strings], charybdis_cv_c_gcc_w_write_strings)
625 CHARYBDIS_C_GCC_TRY_FLAGS([-Werror-implicit-function-declaration], charybdis_cv_c_gcc_w_error_implicit_function_declaration)
626 CHARYBDIS_C_GCC_TRY_FLAGS([-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations], charybdis_cv_c_gcc_prototypes)
627 CHARYBDIS_C_GCC_TRY_FLAGS([-Wparentheses], charybdis_cv_c_gcc_parentheses)
628 CHARYBDIS_C_GCC_TRY_FLAGS([-W -Wno-unused], charybdis_cv_c_gcc_w)
629 CHARYBDIS_C_GCC_TRY_FLAGS([-Wextra], charybdis_cv_c_gcc_w_extra)
630 CHARYBDIS_C_GCC_TRY_FLAGS([-Wshadow], charybdis_cv_c_gcc_w_shadow)
631 CHARYBDIS_C_GCC_TRY_FLAGS([-Wmissing-noreturn], charybdis_cv_c_gcc_w_missing_noreturn)
632 CHARYBDIS_C_GCC_TRY_FLAGS([-Wundef], charybdis_cv_c_gcc_w_undef)
633 CHARYBDIS_C_GCC_TRY_FLAGS([-Wpacked], charybdis_cv_c_gcc_w_packed)
634 CHARYBDIS_C_GCC_TRY_FLAGS([-Wnested-externs], charybdis_cv_c_gcc_w_nested_externs)
635 CHARYBDIS_C_GCC_TRY_FLAGS([-Wunused-function -Wunused-label -Wunused-value -Wunused-variable], charybdis_cv_c_gcc_w_unused)
636 CHARYBDIS_C_GCC_TRY_FLAGS([-Wredundant-decls], charybdis_cv_c_gcc_w_redundant_decls)
637 CHARYBDIS_C_GCC_TRY_FLAGS([-Wfloat-equal], charybdis_cv_c_gcc_w_float_equal)
638 CHARYBDIS_C_GCC_TRY_FLAGS([-Wformat -Wformat-y2k -Wno-format-security], charybdis_cv_c_gcc_w_format)
639
640 IRC_CFLAGS="$CFLAGS"
641 ],[])
642
643 IRC_CFLAGS="$IRC_CFLAGS $CWARNS"
644
645 AC_SUBST(MODULES_LIBS)
646 AC_SUBST(MOD_TARGET)
647
648 AC_SUBST(SSL_SRCS_ENABLE)
649 AC_SUBST(SSL_INCLUDES)
650 AC_SUBST(SSL_LIBS)
651
652 AC_SUBST(LDFLAGS)
653 AC_SUBST(PICFLAGS)
654 AC_SUBST(IRC_CFLAGS)
655 AC_SUBST(SEDOBJ)
656
657
658 if test "$prefix" = "NONE"; then
659 AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$ac_default_prefix", [Prefix where the ircd is installed.])
660
661 else
662
663 dnl Don't get bitten by Cygwin's stupidity if the user specified
664 dnl a custom prefix with a trailing slash
665
666 prefix=`echo $prefix | sed 's/\/$//'`
667 AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$prefix", [Prefix where the ircd is installed.])
668
669 fi
670
671 AC_CONFIG_FILES( \
672 Makefile \
673 authd/Makefile \
674 bandb/Makefile \
675 ssld/Makefile \
676 wsockd/Makefile \
677 extensions/Makefile \
678 ircd/Makefile \
679 modules/Makefile \
680 tests/Makefile \
681 tools/Makefile \
682 tools/genssl \
683 doc/Makefile \
684 help/Makefile \
685 )
686 AC_CONFIG_COMMANDS([tools/genssl_chmod], [chmod 755 tools/genssl])
687
688 AC_OUTPUT
689
690 if test "$cf_openssl_version_ok" = yes; then
691 openssl="yes"
692 else
693 openssl="no"
694 fi
695
696 echo "
697 Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}:
698 Install directory : $prefix
699
700 Ziplinks : $zlib
701 OpenSSL : $openssl
702 SCTP : $sctp
703
704 Nickname length : $NICKLEN
705 Topic length : $TOPICLEN
706
707 Use (g)make to compile $BRANDING_NAME, then (g)make install to install it.
708 "