]> jfr.im git - solanum.git/blame - configure.ac
blacklist: clean up some of my old code
[solanum.git] / configure.ac
CommitLineData
212380e3
AC
1dnl TODO: clean up all the OpenSSL and shared module checking stuff;
2dnl the most major changes have already been made and it looks like
3dnl said functions need to be just about as complex as they already are.
4
eec2776c 5AC_PREREQ(2.60)
212380e3 6
f2621986 7AC_INIT([charybdis], [3.6.0-dev])
212380e3 8
eec2776c 9AC_LANG(C)
eec2776c
AJ
10AC_USE_SYSTEM_EXTENSIONS
11AC_GNU_SOURCE
12
9258de81
VI
13AC_PROG_CC_C99
14
15if test x"$ac_cv_prog_cc_c99" = "xno"; then
16 AC_ERROR([charybdis requires a C99 capable compiler])
17fi
18
c52df125 19AC_PREFIX_DEFAULT($HOME/ircd)
a5471f24 20AC_CONFIG_MACRO_DIR([m4])
212380e3 21AC_CONFIG_HEADER(include/setup.h)
c83f2f5e 22AC_CONFIG_SUBDIRS([librb])
c52df125 23AC_CONFIG_AUX_DIR([libltdl/config])
eec2776c
AJ
24
25AM_INIT_AUTOMAKE([subdir-objects])
c52df125
AC
26AM_SILENT_RULES([yes])
27AM_PROG_AR
28
29LT_INIT([dlopen disable-static])
f0718c93 30LT_CONFIG_LTDL_DIR([libltdl])
c52df125
AC
31LTDL_INIT
32
33build_ltdl=$with_included_ltdl
d8c4154d 34AM_CONDITIONAL([BUILD_LTDL], [test x"$build_ltdl" = x"yes"])
db137867 35
7585af0f 36if test "$ac_cv_c_compiler_gnu" = yes; then
eec2776c 37 IRC_CFLAGS="$IRC_CFLAGS -O0 -Wall"
212380e3
AC
38fi
39
40dnl If we support -g, use it!
41if test "$ac_cv_prog_cc_g" = yes; then
2a19fc3f 42 IRC_CFLAGS="$IRC_CFLAGS -g"
212380e3
AC
43fi
44
212380e3
AC
45dnl check for /dev/null so we can use it to hold evil fd's
46AC_MSG_CHECKING([for /dev/null])
47if test -c /dev/null ; then
48 AC_DEFINE(PATH_DEVNULL, "/dev/null", [Path to /dev/null])
49 AC_MSG_RESULT(yes)
50else
51 AC_DEFINE(PATH_DEVNULL, "devnull.log", [Path to /dev/null])
52 AC_MSG_RESULT(no - using devnull.log)
53fi
54
55dnl jdc -- If CFLAGS is defined, best use it everywhere...
56dnl NOTE: jv says it must be added to the *END*, because things like
57dnl "gcc -O9 -O2" will result in -O2 getting preference. How stupid.
58if test ! -z "$CFLAGS"; then
59 IRC_CFLAGS="$IRC_CFLAGS $CFLAGS"
60fi
61
62AC_ISC_POSIX
63AC_C_INLINE
212380e3
AC
64AC_PROG_MAKE_SET
65AC_PROG_INSTALL
66AC_PATH_PROG(RM, rm)
67AC_PATH_PROG(CP, cp)
68AC_PATH_PROG(MV, mv)
69AC_PATH_PROG(LN, ln)
70AC_PATH_PROG(SED, sed)
71AC_PATH_PROG(AR, ar)
72AC_PATH_PROG(LD, ld)
73AC_PATH_PROG(RANLIB, ranlib)
74AC_PATH_PROG(TOUCH, touch)
75
76AC_PROG_YACC
77
78dnl AC_PROG_YACC defaults to yacc unconditionally if nothing can be found
79if test "$YACC" = "yacc" -a -z "`which $YACC 2>/dev/null`"; then
80 AC_MSG_ERROR([could not locate a suitable parser generator; install bison, yacc, or byacc])
81fi
82
83AC_PROG_LEX
84
85if test "$LEX" = ":"; then
86 AC_MSG_ERROR([could not locate a suitable lexical generator, install flex or lex.])
87fi
88
c74836dc 89AC_ARG_ENABLE([fhs-paths],
6929cd01 90 [AS_HELP_STRING([--enable-fhs-paths], [Use more FHS-like pathnames (for packagers).])],
c74836dc
NPB
91 [],
92 [dnl detect if the user appears to want --enable-fhs-paths
93 AS_IF([test "$libexecdir" = '${exec_prefix}/libexec' && \
94 test "$localstatedir" = '${prefix}/var' && \
95 test "$libdir" = '${exec_prefix}/lib'],
96 [enable_fhs_paths=no],
97 [enable_fhs_paths=yes])
98 ])
212380e3 99dnl use directory structure of cached as default (hack)
c74836dc
NPB
100AS_IF([test "x$enable_fhs_paths" = "xyes"],
101 [dnl Avoid name collisions.
102 pkglibexecdir='${libexecdir}/${PACKAGE_TARNAME}'
103 rundir=${rundir-'${prefix}/run'}
104 pkgrundir='${rundir}/${PACKAGE_TARNAME}'
105 pkglocalstatedir='${localstatedir}/${PACKAGE_TARNAME}'],
106 [libexecdir='${bindir}'
107 pkglibexecdir='${libexecdir}'
108 rundir='${sysconfdir}'
109 pkgrundir='${rundir}'
212380e3 110 localstatedir='${prefix}'
c74836dc
NPB
111 pkglocalstatedir='${sysconfdir}'])
112pkglibdir='${libdir}/${PACKAGE_TARNAME}'
113AC_SUBST([pkglibdir])
114AC_SUBST([rundir])
115AC_SUBST([pkgrundir])
116AC_SUBST([pkglocalstatedir])
1870e06a 117AC_DEFINE_DIR([PKGLOCALSTATEDIR], [pkglocalstatedir], [[Directory in which to store state, such as ban database]])
c74836dc
NPB
118AC_SUBST([pkglibexecdir])
119AC_DEFINE_DIR([PKGLIBEXECDIR], [pkglibexecdir], [Directory where binaries the IRCd itself spawns live])
212380e3
AC
120
121dnl Checks for header files.
122AC_HEADER_STDC
123
124AC_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])
125
126dnl Stuff that the memory manager (imalloc) depends on
127dnl ==================================================
128
129AC_C_CONST
130if test "$ac_cv_header_machine_endian_h" = "no" ; then
131 AC_C_BIGENDIAN
132fi
133AC_TYPE_PID_T
134AC_TYPE_SIZE_T
135AC_CHECK_SIZEOF(short)
136AC_CHECK_SIZEOF(int)
137AC_CHECK_SIZEOF(long)
138AC_CHECK_SIZEOF(long long)
139
212380e3
AC
140dnl Networking Functions
141dnl ====================
142
143AC_SEARCH_LIBS(socket, socket, , [AC_MSG_ERROR([You have no socket()! Aborting.])])
144
145dnl SunOS/Solaris required libnsl for inet_ntoa()
146if test x"$SUN" = xyes; then
147 AC_SEARCH_LIBS(inet_ntoa, nsl,, [AC_MSG_ERROR([libnsl not found! Aborting.])])
148fi
149
212380e3
AC
150AC_CHECK_TYPE(socklen_t, ,
151[AC_DEFINE([socklen_t], [unsigned int],
152[If we don't have a real socklen_t, unsigned int is good enough.])],
153[#include <sys/types.h>
154#include <sys/socket.h>])
155
156AC_ARG_ENABLE(ipv6,
157AC_HELP_STRING([--enable-ipv6],[Enable IPv6 support]),[ipv6=$enableval],[ipv6=no])
158
212380e3
AC
159AC_SEARCH_LIBS(crypt, [crypt descrypt],,)
160
161CRYPT_LIB=$ac_cv_search_crypt
162
163if test "$CRYPT_LIB" = "none required"; then
164 unset CRYPT_LIB
165elif test "$CRYPT_LIB" = no; then
166 unset CRYPT_LIB
167fi
168
169AC_SUBST(CRYPT_LIB)
170
212380e3
AC
171AC_C_BIGENDIAN
172
173dnl Check for stdarg.h - if we can't find it, halt configure
ec86417c 174AC_CHECK_HEADER(stdarg.h, , [AC_MSG_ERROR([** stdarg.h could not be found - charybdis will not compile without it **])])
212380e3
AC
175AC_CHECK_FUNCS([strlcat strlcpy])
176
212380e3
AC
177AC_CHECK_TYPE([u_int32_t], [],
178[
179 AC_CHECK_TYPE([uint32_t],
180 [
181 AC_DEFINE(u_int32_t, [uint32_t], [If system does not define u_int32_t, define a reasonable substitute.])
182 ],
183 [
184 AC_MSG_WARN([system has no u_int32_t or uint32_t, default to unsigned long int])
185 AC_DEFINE(u_int32_t, [unsigned long int], [If system does not define u_int32_t, define to unsigned long int here.])
186 ])
187])
188
189AC_CHECK_TYPE([u_int16_t], [],
190[
191 AC_CHECK_TYPE([uint16_t],
192 [
193 AC_DEFINE(u_int16_t, [uint16_t], [If system does not define u_int16_t, define a usable substitute])
194 ],
195 [
196 AC_MSG_WARN([system has no u_int16_t or uint16_t, default to unsigned short int])
197 AC_DEFINE(u_int16_t, [unsigned short int], [If system does not define u_int16_t, define a usable substitute.])
198 ])
199])
200
201AC_CHECK_TYPE([in_port_t], [],
202[AC_DEFINE(in_port_t, [u_int16_t], [If system does not define in_port_t, define it to what it should be.])],
203[[#include <sys/types.h>
204#include <netinet/in.h>]])
205
206AC_CHECK_TYPE([sa_family_t], [],
207[AC_DEFINE(sa_family_t, [u_int16_t], [If system does not define sa_family_t, define it here.])],
208[[#include <sys/types.h>
209#include <sys/socket.h>]])
210
211AC_CHECK_TYPES([uintptr_t])
212
213dnl check for various functions...
5203cba5 214AC_CHECK_FUNCS([snprintf vsnprintf socketpair mmap gettimeofday strdup strndup ])
212380e3
AC
215
216AC_FUNC_ALLOCA
217
218dnl Specialized functions checks
219dnl ============================
220
b79edd3e 221dnl check for nanosleep
212380e3
AC
222AC_CHECK_FUNC(nanosleep,,[AC_CHECK_LIB(rt,nanosleep,
223 LIBS="${LIBS} -lrt",
224 [AC_CHECK_LIB(posix4,nanosleep, LIBS="${LIBS} -lposix4"
225 )])])
226if test x$ac_cv_func_nanosleep = xno && test x$ac_cv_lib_posix4_nanosleep = xno && test x$ac_cv_lib_rt_nanosleep = xno
b79edd3e 227then
212380e3 228 AC_MSG_RESULT("nanosleep not found..using select for delay")
b79edd3e 229else
212380e3
AC
230 AC_DEFINE([HAVE_NANOSLEEP], 1, [Define if nanosleep exists])
231fi
232
233dnl OpenSSL support
234AC_MSG_CHECKING(for OpenSSL)
235AC_ARG_ENABLE(openssl,
236[AC_HELP_STRING([--enable-openssl[=DIR]],[Enable OpenSSL support (DIR optional).])
237AC_HELP_STRING([--disable-openssl],[Disable OpenSSL support.])],
238[cf_enable_openssl=$enableval],
239[cf_enable_openssl="auto"])
240
241if test "$cf_enable_openssl" != "no" ; then
242 cf_openssl_basedir=""
243 if test "$cf_enable_openssl" != "auto" &&
244 test "$cf_enable_openssl" != "yes" ; then
245 dnl Support for --enable-openssl=/some/place
246 cf_openssl_basedir="`echo ${cf_enable_openssl} | sed 's/\/$//'`"
247 else
248 dnl Do the auto-probe here. Check some common directory paths.
249 for dirs in /usr/local/ssl /usr/pkg /usr/local \
250 /usr/local/openssl ; do
251 if test -f "${dirs}/include/openssl/opensslv.h" ; then
252 cf_openssl_basedir="${dirs}"
253 break
254 fi
255 done
256 unset dirs
257 fi
258 dnl Now check cf_openssl_found to see if we found anything.
259 if test ! -z "$cf_openssl_basedir"; then
260 if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" ; then
261 SSL_INCLUDES="-I${cf_openssl_basedir}/include"
262 SSL_LIBS="-L${cf_openssl_basedir}/lib"
263 else
264 dnl OpenSSL wasn't found in the directory specified. Naughty
265 dnl administrator...
266 cf_openssl_basedir=""
267 fi
268 else
269 dnl Check for stock FreeBSD 4.x and 5.x systems, since their files
270 dnl are in /usr/include and /usr/lib. In this case, we don't want to
271 dnl change INCLUDES or LIBS, but still want to enable OpenSSL.
272 dnl We can't do this check above, because some people want two versions
273 dnl of OpenSSL installed (stock FreeBSD 4.x/5.x and /usr/local/ssl)
274 dnl and they want /usr/local/ssl to have preference.
275 if test -f "/usr/include/openssl/opensslv.h" ; then
276 cf_openssl_basedir="/usr"
277 fi
278 fi
279
280 dnl If we have a basedir defined, then everything is okay. Otherwise,
281 dnl we have a problem.
282 if test ! -z "$cf_openssl_basedir"; then
283 AC_MSG_RESULT($cf_openssl_basedir)
284 cf_enable_openssl="yes"
285 else
286 AC_MSG_RESULT([not found. Specify a correct path?])
287 cf_enable_openssl="no"
288 fi
289 unset cf_openssl_basedir
290else
291 dnl If --disable-openssl was specified
292 AC_MSG_RESULT(disabled)
293fi
294
295save_CPPFLAGS="$CPPFLAGS"
296CPPFLAGS="$CPPFLAGS $SSL_INCLUDES"
297save_LIBS="$LIBS"
298LIBS="$LIBS $SSL_LIBS"
299if test "$cf_enable_openssl" != no; then
300 dnl Check OpenSSL version (must be 0.9.6 or above!)
301 AC_MSG_CHECKING(for OpenSSL 0.9.6 or above)
302 AC_RUN_IFELSE(
d5ef3fd3 303 [AC_LANG_PROGRAM(
212380e3
AC
304 [#include <openssl/opensslv.h>
305 #include <stdlib.h>],
306 [[if ( OPENSSL_VERSION_NUMBER >= 0x00906000)
d5ef3fd3 307 exit(0); else exit(1);]])],
212380e3
AC
308 cf_openssl_version_ok=yes,
309 cf_openssl_version_ok=no,
310 cf_openssl_version_ok=no)
311
312 if test "$cf_openssl_version_ok" = yes; then
313 AC_MSG_RESULT(found)
314
315 dnl Work around pmake/gmake conditional incompatibilities
316 AC_SUBST(ENCSPEED, encspeed)
b79edd3e 317
212380e3
AC
318 dnl Do all the HAVE_LIBCRYPTO magic -- and check for ciphers
319 CPPFLAGS="$CPPFLAGS $SSL_LIBS"
320 AC_CHECK_LIB(crypto, RSA_free)
321 SSL_LIBS="$SSL_LIBS -lcrypto"
322 SSL_SRCS_ENABLE='$(SSL_SRCS)'
323 else
324 AC_MSG_RESULT(no - OpenSSL support disabled)
325 fi
326fi
327
328CPPFLAGS="$save_CPPFLAGS"
329LIBS="$save_LIBS"
330
331dnl End OpenSSL detection
332
333
334dnl Specialized functions and libraries
335dnl ===================================
336
337AC_ARG_WITH(zlib-path,
338AC_HELP_STRING([--with-zlib-path=DIR],[Path to libz.so for ziplinks support.]),
339[LIBS="$LIBS -L$withval"],)
340
341AC_ARG_ENABLE(zlib,
342AC_HELP_STRING([--disable-zlib],[Disable ziplinks support]),
343[zlib=$enableval],[zlib=yes])
344
345if test "$zlib" = yes; then
346
347AC_CHECK_HEADER(zlib.h, [
348 AC_CHECK_LIB(z, zlibVersion,
349 [
350 AC_SUBST(ZLIB_LD, -lz)
351 AC_DEFINE(HAVE_LIBZ, 1, [Define to 1 if zlib (-lz) is available.])
352 ], zlib=no)
353], zlib=no)
354
355fi
356
cf1001a7
LS
357dnl Check for shared sqlite
358dnl ======================
a6ef3156
LS
359AC_ARG_WITH(shared-sqlite,
360AC_HELP_STRING([--with-shared-sqlite],[Use shared sqlite]),
361[shared_sqlite=$withval],[shared_sqlite=no])
497e30a0
LS
362
363if test "$shared_sqlite" = yes; then
a5471f24
LS
364 PKG_CHECK_MODULES(SQLITE, [sqlite3],
365 [
366 shared_sqlite=yes
cf1001a7 367 ], shared_sqlite=no)
497e30a0
LS
368fi
369
74ab6be0 370if test "$shared_sqlite" = no; then
c52df125 371 SQLITE_OBJ='sqlite3.$(OBJEXT)'
74ab6be0
LS
372fi
373
a5471f24
LS
374AC_SUBST(SQLITE_LD, "$SQLITE_LIBS")
375AC_SUBST(SQLITE_INCLUDES, "$SQLITE_CFLAGS")
c52df125 376AC_SUBST(SQLITE_OBJ)
cf1001a7 377
212380e3 378dnl **********************************************************************
634d4aad 379dnl Check for --with-confdir [deprecated, use --sysconfdir instead]
212380e3
AC
380dnl **********************************************************************
381
634d4aad
NPB
382AC_ARG_WITH([confdir],
383 [AC_HELP_STRING([--with-confdir=DIR],
384 [Directory to install config files [deprecated, use --sysconfdir instead].])],
385 [ sysconfdir=`echo $withval | sed 's/\/$//'` ],
386 [ confdir='${sysconfdir}' ])
387AC_DEFINE_DIR([ETC_DIR], [sysconfdir], [Prefix where config files are installed.])
212380e3
AC
388
389dnl **********************************************************************
390dnl Check for --with-logdir
391dnl **********************************************************************
392
393AC_MSG_CHECKING([whether to modify logdir])
b79edd3e 394AC_ARG_WITH(logdir,
212380e3
AC
395AC_HELP_STRING([--with-logdir=DIR],
396 [Directory where to write logfiles.]),
397 [ logdir=`echo $withval | sed 's/\/$//'`
c74836dc
NPB
398 AC_MSG_RESULT(yes)],
399 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
400 [logdir='${localstatedir}/log/${PACKAGE_TARNAME}'],
401 [logdir='${prefix}/logs'])
402 AC_MSG_RESULT(no)])
403AC_DEFINE_DIR([LOG_DIR], [logdir], [Prefix where to write logfiles.])
404AC_SUBST_DIR([logdir])
212380e3
AC
405
406dnl **********************************************************************
407dnl Check for --with-helpdir
408dnl **********************************************************************
409
410AC_MSG_CHECKING([whether to modify helpdir])
b79edd3e 411AC_ARG_WITH(helpdir,
212380e3
AC
412AC_HELP_STRING([--with-helpdir=DIR],
413 [Directory to install help files.]),
414 [ helpdir=`echo $withval | sed 's/\/$//'`
c74836dc
NPB
415 AC_MSG_RESULT(yes) ],
416 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
417 [helpdir='${datadir}/${PACKAGE_TARNAME}/help'],
418 [helpdir='${prefix}/help'])
419 AC_MSG_RESULT(no) ])
420AC_DEFINE_DIR([HELP_DIR], [helpdir], [Prefix where help files are installed.])
421AC_SUBST_DIR([helpdir])
212380e3
AC
422
423dnl **********************************************************************
424dnl Check for --with-moduledir
425dnl **********************************************************************
426
427AC_MSG_CHECKING([whether to modify moduledir])
b79edd3e 428AC_ARG_WITH(moduledir,
c74836dc
NPB
429 [AC_HELP_STRING([--with-moduledir=DIR],
430 [Directory to install modules.])],
212380e3 431 [ moduledir=`echo $withval | sed 's/\/$//'`
c74836dc
NPB
432 AC_MSG_RESULT(yes)],
433 [ AS_IF([test "x$enable_fhs_paths" = "xyes"],
434 [moduledir='${pkglibdir}/modules'],
435 [moduledir='${prefix}/modules'])
212380e3 436 AC_MSG_RESULT(no)
c74836dc
NPB
437 ])
438AC_DEFINE_DIR(MODULE_DIR, moduledir, [Prefix where modules are installed.])
439AC_SUBST_DIR([moduledir])
440
441dnl Check for --with-rundir
442
443AC_MSG_CHECKING([whether or modify rundir])
444AC_ARG_WITH([rundir],
445 [AC_HELP_STRING([--with-rundir=DIR],
446 [Directory in which to store pidfile.])],
447 [AC_MSG_RESULT([yes])
448 rundir=`echo $withval | sed 's/\/$//'`],
449 [AC_MSG_RESULT([no])
450 AS_IF([test "x$enable_fhs_paths" = "xyes"],
451 [rundir='${prefix}/run'],
452 [rundir='${sysconfdir}'])])
453AC_SUBST([rundir])
454AC_DEFINE_DIR([PKGRUNDIR], [pkgrundir], [Directory to store pidfile in.])
455
456dnl Installed utility program prefixes (does not affect binaries
457dnl installed into pkglibexecdir)
458AC_MSG_CHECKING([for program prefix])
459AC_ARG_WITH([program-prefix],
460 [AS_HELP_STRING([--with-program-prefix=], [If set, programs installed into PATH will be installed with names prefixed by this prefix.])],
461 [test "x$with_program_prefix" = "xno" && with_program_prefix=],
462 [with_program_prefix=])
463AC_MSG_RESULT(["$with_program_prefix"])
464PROGRAM_PREFIX="$with_program_prefix"
465AC_SUBST([PROGRAM_PREFIX])
466AC_DEFINE_UNQUOTED([PROGRAM_PREFIX], ["$with_program_prefix"], [String with which all programs intended to be in PATH are prefixed.])
212380e3 467
b6d0720c
AC
468dnl **********************************************************************
469dnl Branding
470dnl **********************************************************************
471
472AC_MSG_CHECKING([whether custom branding is requested])
473AC_ARG_WITH(custom-branding,
474AC_HELP_STRING([--with-custom-branding=NAME],
475 [Custom branding name.]),
476 [BRANDING_NAME=$withval
477 AC_MSG_RESULT([yes])],
478 [BRANDING_NAME=$PACKAGE_NAME
479 AC_MSG_RESULT([no])]
480)
481
482AC_MSG_CHECKING([whether a custom version is requested])
483AC_ARG_WITH(custom-version,
484AC_HELP_STRING([--with-custom-version=NAME],
485 [Custom version branding.]),
486 [BRANDING_VERSION=$withval
487 AC_MSG_RESULT([yes])],
488 [BRANDING_VERSION=$PACKAGE_VERSION
489 AC_MSG_RESULT([no])]
490)
491
492AC_DEFINE_UNQUOTED(BRANDING_NAME, ["$BRANDING_NAME"], [Custom branding name.])
493AC_DEFINE_UNQUOTED(BRANDING_VERSION, ["$BRANDING_VERSION"], [Custom branding name.])
494
f5493691
AC
495if test "x$BRANDING_NAME" != "x$PACKAGE_NAME"; then
496 AC_DEFINE(CUSTOM_BRANDING, 1, [Define if custom branding is enabled.])
497fi
498
212380e3
AC
499dnl Debug-related options
500dnl =====================
501
502AC_ARG_ENABLE(assert,
503AC_HELP_STRING([--enable-assert],[Enable assert(). Choose between soft(warnings) and hard(aborts the daemon)]),
504[assert=$enableval], [assert=no])
505
506if test "$assert" = no; then
507 AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
508elif test "$assert" = soft; then
509 AC_DEFINE(SOFT_ASSERT, 1, [Define this to enable soft asserts.])
510 AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
511elif test "$assert" = yes; then
512 assert = "hard";
513fi
514
212380e3
AC
515AC_MSG_CHECKING(if you want to do a profile build)
516AC_ARG_ENABLE(profile,
517AC_HELP_STRING([--enable-profile],[Enable profiling]),
518[profile=$enableval], [profile=no])
519
520if test "$profile" = yes; then
521 if test "$ac_cv_c_compiler_gnu" = yes; then
522 IRC_CFLAGS="$IRC_CFLAGS -pg"
523 AC_MSG_RESULT([yes, adding -pg])
524 AC_DEFINE(CHARYBDIS_PROFILE, 1, [Define this if you are profiling.])
525 else
526 AC_MSG_RESULT([no, profile builds only work with gcc])
527 fi
528else
529 AC_MSG_RESULT(no)
530fi
531
190a5970
AC
532AC_DEFINE([NICKNAMEHISTORYLENGTH], 15000, [Size of the WHOWAS array.])
533AC_DEFINE([CHANNEL_HEAP_SIZE], 8192, [Size of the channel heap.])
534AC_DEFINE([BAN_HEAP_SIZE], 4096, [Size of the ban heap.])
535AC_DEFINE([CLIENT_HEAP_SIZE], 8192, [Size of the client heap.])
536AC_DEFINE([LCLIENT_HEAP_SIZE], 1024, [Size of the local client heap.])
537AC_DEFINE([PCLIENT_HEAP_SIZE], 256, [Size of the pre-client heap.])
538AC_DEFINE([USER_HEAP_SIZE], 8192, [Size of the user heap.])
539AC_DEFINE([DNODE_HEAP_SIZE], 8192, [Size of the dlink_node heap.])
540AC_DEFINE([TOPIC_HEAP_SIZE], 4096, [Size of the topic heap.])
541AC_DEFINE([LINEBUF_HEAP_SIZE], 2048, [Size of the linebuf heap.])
542AC_DEFINE([MEMBER_HEAP_SIZE], 32768, [Sizeof member heap.])
543AC_DEFINE([ND_HEAP_SIZE], 512, [Size of the nick delay heap.])
544AC_DEFINE([CONFITEM_HEAP_SIZE], 256, [Size of the confitem heap.])
545AC_DEFINE([MONITOR_HEAP_SIZE], 1024, [Size of the monitor heap.])
546AC_DEFINE([FD_HEAP_SIZE], 1024, [Size of fd heap.])
547AC_DEFINE([AWAY_HEAP_SIZE], 512, [Size of away heap.])
212380e3
AC
548
549AC_ARG_WITH(nicklen,
b225bf93 550AC_HELP_STRING([--with-nicklen=LENGTH],[Set the upper-bound nick length to LENGTH (default 31, max 50)]),
212380e3 551[
b79edd3e 552 if ! expr "$withval" + 0 >/dev/null 2>&1; then
f173c7d8 553 AC_ERROR([NICKLEN must be a numeric value])
b79edd3e 554 fi
ca8ff483 555 if test $withval -gt 50; then
212380e3
AC
556 NICKLEN=50
557 AC_MSG_WARN([NICKLEN has a hard limit of 50. Setting NICKLEN=50])
ca8ff483
JT
558 elif test $withval -lt 9; then
559 NICKLEN=9
560 AC_MSG_WARN([NICKLEN has a lower limit of 9. Setting NICKLEN=9])
212380e3
AC
561 else
562 NICKLEN="$withval"
563 fi
b225bf93 564], [NICKLEN=31])
212380e3 565
b79edd3e 566AC_ARG_WITH(topiclen,
212380e3
AC
567AC_HELP_STRING([--with-topiclen=NUMBER],[Set the max topic length to NUMBER (default 390, max 390)]),
568[
173a2f4d 569 if test $withval -gt 390; then
212380e3
AC
570 TOPICLEN=390
571 AC_MSG_WARN([TOPICLEN has a hard limit of 390. Setting TOPICLEN=390])
572 else
573 TOPICLEN=$withval
574 fi
575], [TOPICLEN=390])
576
212380e3
AC
577AC_DEFINE_UNQUOTED(TOPICLEN, ${TOPICLEN}, [Maximum topic length (<=390)])
578AC_DEFINE_UNQUOTED(NICKLEN, (${NICKLEN}+1), [Nickname length])
212380e3 579
34dbd2d4 580# rpath, for finding librb.so at run time
794816af
JT
581hold_ldflags=$LDFLAGS
582AC_MSG_CHECKING(for the ld -rpath flag)
583LDFLAGS="${LDFLAGS} -Wl,-rpath=${libdir}"
d5ef3fd3 584AC_LINK_IFELSE([AC_LANG_PROGRAM([],[int i;])], found=yes, found=no)
794816af
JT
585LDFLAGS=$hold_ldflags
586AC_MSG_RESULT($found)
587if test "$found" = yes; then
588 LDFLAGS="${LDFLAGS} -Wl,-rpath=\${libdir}"
589fi
590
212380e3
AC
591# This must be down here, or it will mess up checks like the ones
592# for -Wl,-export-dynamic
593# -- jilles
97199fb3 594CWARNS=""
212380e3
AC
595AC_ARG_ENABLE(warnings,
596AC_HELP_STRING([--enable-warnings],[Enable all sorts of warnings for debugging.]),
597[
598IRC_CFLAGS="$IRC_CFLAGS -O0"
599CFLAGS="$IRC_CFLAGS"
600
601CHARYBDIS_C_GCC_TRY_FLAGS([-Wall], charybdis_cv_c_gcc_w_all)
602CHARYBDIS_C_GCC_TRY_FLAGS([-Wpointer-arith], charybdis_cv_c_gcc_w_pointer_arith)
603CHARYBDIS_C_GCC_TRY_FLAGS([-Wimplicit -Wnested-externs], charybdis_cv_c_gcc_w_implicit)
604CHARYBDIS_C_GCC_TRY_FLAGS([-Wcast-align], charybdis_cv_c_gcc_w_cast_align)
605CHARYBDIS_C_GCC_TRY_FLAGS([-Wcast-qual], charybdis_cv_c_gcc_w_cast_qual)
c0e90a8e
JT
606CHARYBDIS_C_GCC_TRY_FLAGS([-Wwrite-strings], charybdis_cv_c_gcc_w_write_strings)
607CHARYBDIS_C_GCC_TRY_FLAGS([-Werror-implicit-function-declaration], charybdis_cv_c_gcc_w_error_implicit_function_declaration)
212380e3
AC
608CHARYBDIS_C_GCC_TRY_FLAGS([-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations], charybdis_cv_c_gcc_prototypes)
609CHARYBDIS_C_GCC_TRY_FLAGS([-Wparenthesis], charybdis_cv_c_gcc_parenthesis)
610CHARYBDIS_C_GCC_TRY_FLAGS([-W -Wno-unused], charybdis_cv_c_gcc_w)
611CHARYBDIS_C_GCC_TRY_FLAGS([-Wextra], charybdis_cv_c_gcc_w_extra)
612CHARYBDIS_C_GCC_TRY_FLAGS([-Wshadow], charybdis_cv_c_gcc_w_shadow)
613CHARYBDIS_C_GCC_TRY_FLAGS([-Wmissing-noreturn], charybdis_cv_c_gcc_w_missing_noreturn)
614CHARYBDIS_C_GCC_TRY_FLAGS([-Wundef], charybdis_cv_c_gcc_w_undef)
615CHARYBDIS_C_GCC_TRY_FLAGS([-Wpacked], charybdis_cv_c_gcc_w_packed)
616CHARYBDIS_C_GCC_TRY_FLAGS([-Wnested-externs], charybdis_cv_c_gcc_w_nested_externs)
212380e3
AC
617CHARYBDIS_C_GCC_TRY_FLAGS([-Wunused-function -Wunused-label -Wunused-value -Wunused-variable], charybdis_cv_c_gcc_w_unused)
618CHARYBDIS_C_GCC_TRY_FLAGS([-Wredundant-decls], charybdis_cv_c_gcc_w_redundant_decls)
619CHARYBDIS_C_GCC_TRY_FLAGS([-Wfloat-equal], charybdis_cv_c_gcc_w_float_equal)
f9a9ffac 620CHARYBDIS_C_GCC_TRY_FLAGS([-Wformat -Wformat-y2k -Wno-format-security], charybdis_cv_c_gcc_w_format)
212380e3
AC
621
622IRC_CFLAGS="$CFLAGS"
623],[])
624
97199fb3
JT
625IRC_CFLAGS="$IRC_CFLAGS $CWARNS"
626
212380e3
AC
627AC_SUBST(MODULES_LIBS)
628AC_SUBST(MOD_TARGET)
629
630AC_SUBST(SSL_SRCS_ENABLE)
631AC_SUBST(SSL_INCLUDES)
632AC_SUBST(SSL_LIBS)
633
634AC_SUBST(LDFLAGS)
635AC_SUBST(PICFLAGS)
636AC_SUBST(IRC_CFLAGS)
637AC_SUBST(SEDOBJ)
638
639
b79edd3e 640if test "$prefix" = "NONE"; then
212380e3
AC
641 AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$ac_default_prefix", [Prefix where the ircd is installed.])
642
643else
644
645dnl Don't get bitten by Cygwin's stupidity if the user specified
646dnl a custom prefix with a trailing slash
647
648 prefix=`echo $prefix | sed 's/\/$//'`
649 AC_DEFINE_UNQUOTED(IRCD_PREFIX, "$prefix", [Prefix where the ircd is installed.])
b79edd3e 650
212380e3
AC
651fi
652
653AC_CONFIG_FILES( \
654 Makefile \
0d73e7db 655 authd/Makefile \
734ce253 656 bandb/Makefile \
d261b578 657 ssld/Makefile \
212380e3 658 extensions/Makefile \
46fded53 659 ircd/Makefile \
212380e3
AC
660 modules/Makefile \
661 tools/Makefile \
14048b96 662 tools/genssl \
212380e3
AC
663 doc/Makefile \
664 help/Makefile \
665)
14048b96 666AC_CONFIG_COMMANDS([tools/genssl_chmod], [chmod 755 tools/genssl])
212380e3
AC
667
668AC_OUTPUT
669
670if test "$cf_openssl_version_ok" = yes; then
671 openssl="yes"
672else
673 openssl="no"
674fi
675
212380e3 676echo "
b6d0720c 677Configuration of ${BRANDING_NAME}-${BRANDING_VERSION}:
212380e3
AC
678 Install directory : $prefix
679
680 Ziplinks : $zlib
681 OpenSSL : $openssl
212380e3
AC
682
683 Nickname length : $NICKLEN
684 Topic length : $TOPICLEN
685
b6d0720c 686Use (g)make to compile $BRANDING_NAME, then (g)make install to install it.
212380e3 687"