1 dnl Prefered emacs editing mode: -*- shell-script -*-
3 dnl Process this file with autoconf to produce a configure script.
5 dnl Copyright (c) 1997, by Carlo Wood <carlo@runaway.xs4all.nl>
6 dnl Copyright (C) 2001 Kevin L. Mitchell <klmitch@mit.edu>
8 dnl This program is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 1, or (at your option)
11 dnl any later version.
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 dnl GNU General Public License for more details.
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; if not, write to the Free Software
20 dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 dnl Make sure we are in the correct directory (someone could have run
25 dnl 'configure' with a wrong '--srcdir').
28 dnl Set the default prefix
29 AC_PREFIX_DEFAULT([$HOME])
30 AC_MSG_CHECKING([for installation prefix])
31 AC_CACHE_VAL(unet_cv_prefix, [unet_cv_prefix=$HOME])
32 if test x"$prefix" != xNONE; then
33 unet_cv_prefix=$prefix
35 AC_MSG_RESULT([$unet_cv_prefix])
36 dnl HACK WARNING: We are referencing an autoconf internal variable. This is
37 dnl the only way to force the prefix to be retrieved from the config.cache
39 ac_default_prefix=$unet_cv_prefix
41 dnl Define the input and output configuration header file.
42 AC_CONFIG_HEADER([config.h])
44 dnl Demand at least version 2.59 of autoconf (for AS_HELP_STRING)
47 dnl Find out what type of system we are
50 dnl This should be done early.
53 dnl ANSIfy the C compiler whenever possible.
56 dnl Checks for libraries.
58 dnl Locate the library containing crypt
59 AC_SEARCH_LIBS(crypt, descrypt crypt, ,
60 [AC_MSG_ERROR([Unable to find library containing crypt()])])
62 dnl Do all the checks necessary to figure out -lnsl / -lsocket stuff
65 dnl Checks for header files.
67 AC_CHECK_HEADERS(crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/resource.h sys/socket.h)
69 dnl Checks for typedefs, structures, and compiler characteristics
77 AC_CHECK_TYPE(struct sockaddr_in6, [unet_have_sockaddr_in6="yes"], [unet_have_sockaddr_in6="no"], [#include <sys/types.h>
78 #include <netinet/in.h>])
80 dnl Check for socklen_t. In traditional BSD this is an int, but some
81 dnl OSes use a different type. Test until we find something that will
82 dnl work properly. Test borrowed from a patch submitted for Python.
83 AC_CHECK_TYPE([socklen_t], ,[
84 AC_MSG_CHECKING([for socklen_t equivalent])
85 AC_CACHE_VAL([curl_cv_socklen_t_equiv],
87 dnl Systems have either "struct sockaddr*" or "void*" as second
88 dnl arg to getpeername.
89 curl_cv_socklen_t_equiv=
90 for arg2 in "struct sockaddr" void ; do
91 for t in int size_t unsigned long "unsigned long" ; do
92 AC_TRY_COMPILE([#include <sys/types.h>
93 #include <sys/socket.h>
94 int getpeername (int $arg2 *, $t *);],[$t len;
95 getpeername(0, 0, &len);], [curl_cv_socklen_t_equiv="$t"
100 AC_MSG_RESULT($curl_cv_socklen_t_equiv)
101 AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv,
102 [type to use in place of socklen_t if not defined])],
103 [#include <sys/types.h>
104 #include<sys/socket.h>])
106 dnl Checks for library functions.
107 AC_CHECK_FUNCS([kqueue setrlimit getrusage times])
109 dnl Do we have restarting syscalls ?
110 AC_SYS_RESTARTABLE_SYSCALLS
112 dnl Check for required features for admins?
113 AC_MSG_CHECKING([for donuts])
116 dnl Test for programs
121 AC_PATH_PROGS(RMPROG, rm, /bin/rm)
122 AC_PATH_PROGS(SHPROG, sh, /bin/sh)
124 dnl (F)LEX - needed for the new conf file parser
126 dnl The autoconf docs say $LEX defaults to 'lex'. They lie.
127 if test "$LEX" = ":" ; then
128 AC_MSG_ERROR([Cannot find flex.])
129 elif echo "" | $LEX -V -v --version > /dev/null 2>&1 ; then
132 AC_MSG_ERROR([Cannot use $LEX as flex.])
135 if test -z "$LEXLIB" ; then
136 AC_MSG_FAILURE([Cannot find a library with yywrap() in, but flex was found.
137 It's possible the compiler you're using ($CC) is incompatible with the
145 dnl The autoconf docs say $YACC defaults to 'yacc'. This seems to be true,
146 dnl but judging from AC_PROG_LEX, it may not stay true.
147 if test "$YACC" = ":" ; then
148 AC_MSG_ERROR([Cannot find yacc.])
149 elif echo "" | $YACC -V -v --version > /dev/null 2>&1 ; then
152 dnl byacc does not seem to have any way to test for workingness, so only warn.
153 AC_MSG_WARN([$YACC may not work as yacc.])
159 dnl Check OS for os_dep files.
160 AC_MSG_CHECKING(for OS-dependent information)
163 AC_MSG_RESULT([Linux ($host) found.])
164 unet_poll_syscall=yes
168 AC_MSG_RESULT([Solaris ($host) found.])
169 if test x"$ac_cv_header_poll_h" = xyes; then
170 unet_poll_syscall=yes
177 AC_MSG_RESULT([Solaris ($host) found.])
182 AC_MSG_RESULT([OpenBSD ($host) found.])
183 if test x"$ac_cv_header_poll_h" = xyes; then
184 unet_poll_syscall=yes
191 AC_MSG_RESULT([Generic BSD ($host) found.])
192 if test x"$ac_cv_header_poll_h" = xyes; then
193 unet_poll_syscall=yes
200 AC_MSG_RESULT([Darwin (Mac OS X) ($host) found.])
205 AC_MSG_RESULT([Unknown system type $host found.])
206 AC_MSG_WARN([Unknown OS type; using generic routines.])
211 dnl Check user configuration options
212 dnl Start with --enable-poll
213 AC_MSG_CHECKING([whether to enable use of poll()])
214 AC_ARG_ENABLE([poll],
215 [ --enable-poll Force poll to be used regardless of whether or not
216 it is a system call],
217 [unet_cv_enable_poll=$enable_poll],
218 [AC_CACHE_VAL(unet_cv_enable_poll,
219 [unet_cv_enable_poll=$unet_poll_syscall])])
221 # Force poll to be disabled if there is no poll.h
222 if test x"$ac_cv_header_poll_h" != xyes; then
223 unet_cv_enable_poll=no
226 AC_MSG_RESULT([$unet_cv_enable_poll])
228 if test x"$unet_cv_enable_poll" = xyes; then
229 AC_DEFINE([USE_POLL], 1, [Specify whether or not to use poll()])
230 ENGINE_C=engine_poll.c
232 ENGINE_C=engine_select.c
236 dnl Now look for --enable-debug
237 AC_MSG_CHECKING([whether to enable debug mode])
238 AC_ARG_ENABLE([debug],
239 [ --enable-debug Turn on debugging mode],
240 [unet_cv_enable_debug=$enable_debug],
241 [AC_CACHE_VAL(unet_cv_enable_debug,
242 [unet_cv_enable_debug=no])])
243 AC_MSG_RESULT([$unet_cv_enable_debug])
245 if test x"$unet_cv_enable_debug" = xyes; then
246 AC_DEFINE([DEBUGMODE], 1, [Enable debugging code])
249 dnl Now look for --enable-leak-detect
250 AC_MSG_CHECKING([whether to enable leak detection])
251 AC_ARG_WITH([leak-detect],
252 [ --with-leak-detect Turn on the leak detector(requires patched boehm)],
253 [unet_cv_with_leak_detect=$with_leak_detect],
254 [AC_CACHE_VAL(unet_cv_with_leak_detect,
255 [unet_cv_with_leak_detect=no])])
256 AC_MSG_RESULT([$unet_cv_enable_leak_detect])
258 if test x"$unet_cv_with_leak_detect" != xno; then
260 CFLAGS="-DMDEBUG $CFLAGS"
261 if test x"$unet_cv_with_leak_detect" != xyes; then
262 LIBS="-L$unet_cv_with_leak_detect $LIBS"
267 AS_HELP_STRING([--without-ipv6], [disable IPv6 support (default is autodetect)]),
268 [ac_cv_use_ipv6=$withval],
269 [ac_cv_use_ipv6=$unet_have_sockaddr_in6])
270 AC_CACHE_CHECK([whether to use IPv6], [ac_cv_use_ipv6], [ac_cv_use_ipv6=no])
271 if test x"$ac_cv_use_ipv6" != "xno" ; then
272 AC_DEFINE([IPV6], 1, [Enable IPv6 support])
275 dnl And now for --disable-asserts
276 AC_MSG_CHECKING([whether to enable asserts])
277 AC_ARG_ENABLE([asserts],
278 [ --disable-asserts Disable assertion checking],
279 [unet_cv_enable_asserts=$enable_asserts],
280 [AC_CACHE_VAL(unet_cv_enable_asserts,
281 [unet_cv_enable_asserts=yes])])
282 AC_MSG_RESULT([$unet_cv_enable_asserts])
284 if test x"$unet_cv_enable_asserts" = xno; then
285 AC_DEFINE([NDEBUG], 1, [Disable assertions])
288 dnl Now check for --enable-profile
289 AC_MSG_CHECKING([whether to enable profiling support (gprof)])
290 AC_ARG_ENABLE([profile],
291 [ --enable-profile Enable profiling support (add -pg to CFLAGS and LDFLAGS)],
292 [unet_cv_enable_profile=$enable_profile],
293 [AC_CACHE_VAL(unet_cv_enable_profile,
294 [unet_cv_enable_profile=no])])
295 AC_MSG_RESULT([$unet_cv_enable_profile])
297 if test x"$unet_cv_enable_profile" = xyes; then
299 LDFLAGS="-pg $LDFLAGS"
302 dnl Now check for --enable-pedantic
303 AC_MSG_CHECKING([whether to enable pedantic compiler warnings])
304 AC_ARG_ENABLE([pedantic],
305 [ --enable-pedantic Enable pedantic warnings (add -pedantic to CFLAGS)],
306 [unet_cv_enable_pedantic=$enable_pedantic],
307 [AC_CACHE_VAL(unet_cv_enable_pedantic,
308 [unet_cv_enable_pedantic=no])])
309 AC_MSG_RESULT([$unet_cv_enable_pedantic])
311 if test x"$unet_cv_enable_pedantic" = xyes; then
312 CFLAGS="-pedantic $CFLAGS"
315 dnl Now check for --enable-warnings
316 AC_MSG_CHECKING([whether to enable compiler warnings])
317 AC_ARG_ENABLE([warnings],
318 [ --enable-warnings Enable warnings (add -Wall to CFLAGS)],
319 [unet_cv_enable_warnings=$enable_warnings],
320 [AC_CACHE_VAL(unet_cv_enable_warnings,
321 [unet_cv_enable_warnings=no])])
322 AC_MSG_RESULT([$unet_cv_enable_warnings])
324 if test x"$unet_cv_enable_warnings" = xyes; then
325 CFLAGS="-Wall $CFLAGS"
328 dnl --disable-inlines check...
329 AC_MSG_CHECKING([whether to enable inlining for a few critical functions])
330 AC_ARG_ENABLE([inlines],
331 [ --disable-inlines Disable inlining for a few critical functions],
332 [unet_cv_enable_inlines=$enable_inlines],
333 [AC_CACHE_VAL(unet_cv_enable_inlines,
334 [unet_cv_enable_inlines=yes])])
335 AC_MSG_RESULT([$unet_cv_enable_inlines])
337 if test x"$unet_cv_enable_inlines" = xyes; then
338 AC_DEFINE([FORCEINLINE], 1, [Force inlining for a few critical functions])
341 dnl --disable-devpoll check...
342 AC_MSG_CHECKING([whether to enable the /dev/poll event engine])
343 AC_ARG_ENABLE([devpoll],
344 [ --disable-devpoll Disable the /dev/poll-based engine],
345 [unet_cv_enable_devpoll=$enable_devpoll],
346 [AC_CACHE_VAL(unet_cv_enable_devpoll,
347 [unet_cv_enable_devpoll=yes])])
349 if test x"$ac_cv_header_sys_devpoll_h" = xno; then
350 unet_cv_enable_devpoll=no
353 AC_MSG_RESULT([$unet_cv_enable_devpoll])
355 if test x"$unet_cv_enable_devpoll" != xno; then
356 AC_DEFINE([USE_DEVPOLL], 1, [Define to enable the /dev/poll engine])
357 ENGINE_C="engine_devpoll.c $ENGINE_C"
360 dnl --disable-kqueue check...
361 AC_MSG_CHECKING([whether to enable the kqueue event engine])
362 AC_ARG_ENABLE([kqueue],
363 [ --disable-kqueue Disable the kqueue-based engine],
364 [unet_cv_enable_kqueue=$enable_kqueue],
365 [AC_CACHE_VAL(unet_cv_enable_kqueue,
366 [unet_cv_enable_kqueue=yes])])
368 if test x"$ac_cv_header_sys_event_h" = xno -o x"$ac_cv_func_kqueue" = xno; then
369 unet_cv_enable_kqueue=no
372 AC_MSG_RESULT([$unet_cv_enable_kqueue])
374 if test x"$unet_cv_enable_kqueue" != xno; then
375 AC_DEFINE([USE_KQUEUE], 1, [Define to enable the kqueue engine])
376 ENGINE_C="engine_kqueue.c $ENGINE_C"
379 dnl --disable-epoll check
380 AC_MSG_CHECKING([whether to enable the epoll event engine])
381 AC_ARG_ENABLE([epoll],
382 [ --disable-epoll Disable the epoll-based engine],
383 [unet_cv_enable_epoll=$enable_epoll],
384 [AC_CACHE_VAL(unet_cv_enable_epoll,
385 [unet_cv_enable_epoll=yes])])
387 if test x"$ac_cv_header_sys_epoll_h" = xno -o x"$ac_cv_func_epoll" = xno; then
388 unet_cv_enable_epoll=no
391 AC_MSG_RESULT([$unet_cv_enable_epoll])
393 dnl If we have the header and user has not refused epoll, we still need
394 dnl to check whether the functions are properly defined.
395 if test x"$unet_cv_enable_epoll" != xno; then
396 AC_MSG_CHECKING([whether epoll functions are properly defined])
397 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/epoll.h>], [epoll_create(10);])],
398 [AC_MSG_RESULT([yes])],
400 AC_DEFINE([EPOLL_NEED_BODY], 1, [Define to implement epoll system calls])])
401 AC_DEFINE([USE_EPOLL], 1, [Define to enable the epoll engine])
402 ENGINE_C="engine_epoll.c $ENGINE_C"
405 dnl How to copy one va_list to another?
406 AC_CACHE_CHECK([for va_copy], unet_cv_c_va_copy, [AC_LINK_IFELSE(
407 [AC_LANG_PROGRAM([#include <stdarg.h>], [va_list ap1, ap2; va_copy(ap1, ap2);])],
408 [unet_cv_c_va_copy="yes"],
409 [unet_cv_c_va_copy="no"]
411 if test "$unet_cv_c_va_copy" = "yes" ; then
412 AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
415 AC_CACHE_CHECK([for __va_copy], unet_cv_c___va_copy, [AC_LINK_IFELSE(
416 [AC_LANG_PROGRAM([#include <stdarg.h>], [va_list ap1, ap2; __va_copy(ap1, ap2);])],
417 [unet_cv_c___va_copy="yes"],
418 [unet_cv_c___va_copy="no"]
420 if test "$unet_cv_c___va_copy" = "yes" ; then
421 AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
424 dnl --with-symlink lets us set the name of the symlink; defaults to "ircd"
425 AC_MSG_CHECKING([what name to give the symlink])
426 AC_ARG_WITH([symlink],
427 [ --with-symlink=name Name to give the symlink; if name is "no," no
428 symlink will be created.],
429 [unet_cv_with_symlink=$with_symlink],
430 [AC_CACHE_VAL(unet_cv_with_symlink,
431 [unet_cv_with_symlink="ircd"])])
433 if test x"$unet_cv_with_symlink" = xyes; then
434 unet_cv_with_symlink="ircd"
437 AC_MSG_RESULT([$unet_cv_with_symlink])
439 if test x"$unet_cv_with_symlink" = xno; then
440 INSTALL_RULE=install-no-symlink
443 INSTALL_RULE=install-with-symlink
444 SYMLINK=$unet_cv_with_symlink
446 AC_SUBST(INSTALL_RULE)
449 dnl --with-mode lets us set the permissions on the binary
450 AC_MSG_CHECKING([what permissions to set on the installed binary])
452 [ --with-mode=mode Permissions (in octal) to give the binary],
453 [unet_cv_with_mode=$with_mode],
454 [AC_CACHE_VAL(unet_cv_with_mode,
455 [unet_cv_with_mode=711])])
457 if test x"$unet_cv_with_mode" = xyes -o x"$unet_cv_with_mode" = xno; then
458 unet_cv_with_mode=711
461 AC_MSG_RESULT([$unet_cv_with_mode])
463 IRCDMODE=$unet_cv_with_mode
466 dnl --with-owner lets us set the owner of the binary
468 unet_uid=`id | sed -e 's/.*uid=[0-9]*(//' -e 's/).*//' 2> /dev/null`
470 AC_MSG_CHECKING([which user should own the installed binary])
472 [ --with-owner=owner Specify owner of the installed binary],
473 [unet_cv_with_owner=$with_owner],
474 [AC_CACHE_VAL(unet_cv_with_owner,
475 [unet_cv_with_owner=$unet_uid])])
477 if test x"$unet_cv_with_owner" = xyes -o x"$unet_cv_with_owner" = xno; then
478 unet_cv_with_owner=$unet_uid
481 AC_MSG_RESULT([$unet_cv_with_owner])
483 IRCDOWN=$unet_cv_with_owner
486 dnl --with-group lets us set the group owner of the binary
488 unet_gid=`id | sed -e 's/.*gid=[0-9]*(//' -e 's/).*//' 2> /dev/null`
490 AC_MSG_CHECKING([which group should own the installed binary])
492 [ --with-group=group Specify group owner of the installed binary],
493 [unet_cv_with_group=$with_group],
494 [AC_CACHE_VAL(unet_cv_with_group,
495 [unet_cv_with_group=$unet_gid])])
497 if test x"$unet_cv_with_group" = xyes -o x"$unet_cv_with_group" = xno; then
498 unet_cv_with_group=$unet_gid
501 AC_MSG_RESULT([$unet_cv_with_group])
503 IRCDGRP=$unet_cv_with_group
506 dnl --with-domain lets us set the domain name for some statistics-gathering
508 if test -f /etc/resolv.conf; then
509 unet_domain=`awk '/^domain/ { print $2; exit }' /etc/resolv.conf`
510 if test x"$unet_domain" = x; then
511 unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf`
514 AC_MSG_CHECKING([for site domain name])
515 AC_ARG_WITH([domain],
516 [ --with-domain=domain Domain name to use in local statistics gathering],
517 [unet_cv_with_domain=$with_domain],
518 [AC_CACHE_VAL(unet_cv_with_domain,
519 [unet_cv_with_domain=$unet_domain])])
521 if test x"$unet_cv_with_domain" = xyes -o x"$unet_cv_with_domain" = xno; then
522 unet_cv_with_domain=$unet_domain
524 if test x"$unet_cv_with_domain" = xno; then
525 AC_MSG_ERROR([Unable to determine server DNS domain; use --with-domain to set it])
528 AC_MSG_RESULT([$unet_cv_with_domain])
530 AC_DEFINE_UNQUOTED(DOMAINNAME, "*$unet_cv_with_domain",
531 [Domain name to be used for some statistics gathering])
533 dnl --with-chroot lets us define a directory that we are going to be using
534 dnl as the root of our filesystem
535 AC_MSG_CHECKING([if chroot operation is desired])
536 AC_ARG_WITH([chroot],
537 [ --with-chroot=dir Specify that the server will be operated under
538 a different root directory given by dir. See
539 doc/readme.chroot for more information.],
540 [unet_cv_with_chroot=$with_chroot],
541 [AC_CACHE_VAL(unet_cv_with_chroot,
542 [unet_cv_with_chroot=no])])
544 if test x"$unet_cv_with_chroot" = xyes; then
545 AC_MSG_ERROR([--with-chroot given with no directory. See doc/readme.chroot.])
548 # Ensure there are no trailing /'s to mess us up
549 unet_cv_with_chroot=`echo "$unet_cv_with_chroot" | sed 's%/*$%%'`
551 AC_MSG_RESULT([$unet_cv_with_chroot])
553 dnl Determine some default directory names
555 dnl HACK WARNING: We are referencing an autoconf internal variable. This is
556 dnl the only way to figure out what value $prefix will have when we go to do
557 dnl the install--and the only way we can stick that value in our definitions
559 # Deal with the annoying value "NONE" here
560 unet_save_prefix=$prefix
561 if test x"$prefix" = xNONE; then
562 prefix=$ac_default_prefix
567 unet_save_exec_prefix=$exec_prefix
568 if test x"$exec_prefix" = xNONE; then
571 exec_prefix=$exec_prefix
574 # Obtain the actual interesting directories
575 unet_bindir=`eval echo "$bindir"`
576 unet_libdir=`eval echo "$libdir"`
578 # Restore the original settings of $prefix and $exec_prefix
579 prefix=$unet_save_prefix
580 exec_prefix=$unet_save_exec_prefix
582 dnl Now compute the name of the binary and verify that it will work under
584 AC_MSG_CHECKING([where the binary will be for /restart])
585 if test x"$unet_cv_with_symlink" = xno; then
586 unet_spath="$unet_bindir/ircd"
588 unet_spath="$unet_bindir/$unet_cv_with_symlink"
590 AC_MSG_RESULT([$unet_spath])
592 if test x"$unet_cv_with_chroot" != xno; then
593 if echo "$unet_spath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
594 unet_spath=`echo "$unet_spath" | sed "s%^$unet_cv_with_chroot%%"`
596 AC_MSG_WARN([Binary $unet_spath not relative to root directory $unet_cv_with_chroot; restarts will probably fail])
600 AC_DEFINE_UNQUOTED(SPATH, "$unet_spath", [Path to executable for restarts])
602 dnl --with-dpath sets the all-important DPATH
603 AC_MSG_CHECKING([what the data directory should be])
605 [ --with-dpath=dir Directory for all server data files],
606 [unet_cv_with_dpath=$with_dpath],
607 [AC_CACHE_VAL(unet_cv_with_dpath,
608 [unet_cv_with_dpath=$unet_libdir])])
610 if test x"$unet_cv_with_dpath" = xyes -o x"$unet_cv_with_dpath" = xno; then
611 unet_cv_with_dpath=$unet_libdir
614 # Ensure there are no trailing /'s to mess us up
615 unet_cv_with_dpath=`echo "$unet_cv_with_dpath" | sed 's%/*$%%'`
617 AC_MSG_RESULT([$unet_cv_with_dpath])
619 if test x"$unet_cv_with_chroot" != xno; then
620 if echo "$unet_cv_with_dpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
621 unet_dpath=`echo "$unet_cv_with_dpath" | sed "s%^$unet_cv_with_chroot%%"`
623 AC_MSG_ERROR([Data directory $unet_cv_with_dpath not relative to root directory $unet_cv_with_chroot])
626 unet_dpath=$unet_cv_with_dpath
629 AC_DEFINE_UNQUOTED(DPATH, "$unet_dpath", [Path to data directory])
631 DPATH=$unet_cv_with_dpath
634 dnl --with-cpath allows us to specify the configuration file
635 AC_MSG_CHECKING([where the default configuration file resides])
637 [ --with-cpath=file Set server configuration file],
638 [unet_cv_with_cpath=$with_cpath],
639 [AC_CACHE_VAL(unet_cv_with_cpath,
640 [unet_cv_with_cpath="ircd.conf"])])
642 if test x"$unet_cv_with_cpath" = xyes -o x"$unet_cv_with_cpath" = xno; then
643 unet_cv_with_cpath="ircd.conf"
646 AC_MSG_RESULT([$unet_cv_with_cpath])
648 if echo "$unet_cv_with_cpath" | grep '^/' > /dev/null 2>&1; then
649 # Absolute path; check against chroot stuff
650 if test x"$unet_cv_with_chroot" != xno; then
651 if echo "$unet_cv_with_cpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
652 unet_cpath=`echo "$unet_cv_with_cpath" | sed "s%^$unet_cv_with_chroot%%"`
654 AC_MSG_ERROR([Configuration file $unet_cv_with_cpath not relative to root directory $unet_cv_with_chroot])
657 unet_cpath=$unet_cv_with_cpath
660 unet_cpath=$unet_cv_with_cpath
663 AC_DEFINE_UNQUOTED(CPATH, "$unet_cpath", [Configuration file name])
665 dnl --with-lpath allows us to specify the default debugging log file
666 AC_MSG_CHECKING([where to put the debugging log if debugging enabled])
668 [ --with-lpath=file Set the debugging log file],
669 [unet_cv_with_lpath=$with_lpath],
670 [AC_CACHE_VAL(unet_cv_with_lpath,
671 [unet_cv_with_lpath="ircd.log"])])
673 if test x"$unet_cv_with_lpath" = xyes -o x"$unet_cv_with_lpath" = xno; then
674 unet_cv_with_lpath="ircd.log"
677 AC_MSG_RESULT([$unet_cv_with_lpath])
679 if echo "$unet_cv_with_lpath" | grep '^/' > /dev/null 2>&1; then
680 # Absolute path; check against chroot stuff
681 if test x"$unet_cv_with_chroot" != xno; then
682 if echo "$unet_cv_with_lpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
683 unet_lpath=`echo "$unet_cv_with_lpath" | sed "s%^$unet_cv_with_chroot%%"`
685 AC_MSG_WARN([Log file $unet_cv_with_lpath not relative to root directory $unet_cv_with_chroot; using default ircd.log instead])
686 unet_cv_with_lpath="ircd.log"
687 unet_lpath="ircd.log"
690 unet_lpath=$unet_cv_with_lpath
693 unet_lpath=$unet_cv_with_lpath
696 AC_DEFINE_UNQUOTED(LPATH, "$unet_lpath", [Path to debugging log file])
698 dnl --with-maxcon allows us to set the maximum connections
699 unet_maxcon=`ulimit -Hn`
700 if test x"$unet_maxcon" = xunlimited; then
701 unet_maxcon=`ulimit -Sn`
703 unet_maxcon=`expr $unet_maxcon - 4`
704 AC_MSG_CHECKING([max connections])
705 AC_ARG_WITH([maxcon],
706 [ --with-maxcon=maxcon Maximum number of connections server will accept],
707 [unet_cv_with_maxcon=$with_maxcon],
708 [AC_CACHE_VAL(unet_cv_with_maxcon,
709 [unet_cv_with_maxcon=$unet_maxcon])])
711 if test x"$unet_cv_with_maxcon" = xyes -o x"$unet_cv_with_maxcon" = xno; then
712 unet_cv_with_maxcon=$unet_maxcon
715 AC_MSG_RESULT([$unet_cv_with_maxcon])
717 AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $unet_cv_with_maxcon,
718 [Maximum number of network connections])
720 dnl Finally really generate all output files:
721 AC_OUTPUT(Makefile ircd/Makefile ircd/test/Makefile doc/Makefile, [echo timestamp > stamp-h])
723 dnl Report configuration
724 AC_OUTPUT_COMMANDS([echo "
725 ircu is now hopefully configured for your system.
727 Host system: $host_os
729 Asserts: $unet_cv_enable_asserts
730 Warnings: $unet_cv_enable_warnings
731 Debug: $unet_cv_enable_debug
732 Profile: $unet_cv_enable_profile
733 Owner/mode: $unet_cv_with_owner.$unet_cv_with_group ($unet_cv_with_mode)
734 Chroot: $unet_cv_with_chroot
736 Domain: $unet_cv_with_domain
737 DPath: $unet_cv_with_dpath
738 CPath: $unet_cv_with_cpath
739 LPath: $unet_cv_with_lpath
740 Maximum connections: $unet_cv_with_maxcon
742 poll() engine: $unet_cv_enable_poll
743 kqueue() engine: $unet_cv_enable_kqueue
744 /dev/poll engine: $unet_cv_enable_devpoll
745 epoll() engine: $unet_cv_enable_epoll