Author: Kev <klmitch@mit.edu>
[ircu2.10.12-pk.git] / configure.in
1 dnl Prefered emacs editing mode: -*- shell-script -*-
2 dnl
3 dnl Process this file with autoconf to produce a configure script.
4 dnl
5 dnl Copyright (c) 1997, by Carlo Wood <carlo@runaway.xs4all.nl>
6 dnl Copyright (C) 2001  Kevin L. Mitchell <klmitch@mit.edu>
7 dnl
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.
12 dnl
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.
17 dnl
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.
21 dnl
22 dnl $Id$
23
24 dnl Make sure we are in the correct directory (someone could have run
25 dnl 'configure' with a wrong '--srcdir').
26 AC_INIT(ircd/ircd.c)
27
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
34 fi
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
38 dnl file!
39 ac_default_prefix=$unet_cv_prefix
40
41 dnl Define the input and output configuration header file.
42 AC_CONFIG_HEADER([config.h])
43
44 dnl Demand at least version 2.13 of autoconf
45 AC_PREREQ(2.13)
46
47 dnl Find out what type of system we are
48 AC_CANONICAL_HOST
49
50 dnl This should be done early.
51 AC_PROG_CC
52
53 dnl ANSIfy the C compiler whenever possible.
54 AM_PROG_CC_STDC
55 dnl Use -O3 instead of -O2.
56 if test x"$CFLAGS" != x; then
57     CFLAGS=`echo "$CFLAGS" | sed -e 's/-O2/-O3/'`
58 fi
59 dnl Remove -pipe during configure
60 if test x"$CFLAGS" != x; then
61     CFLAGS=`echo "$CFLAGS" | sed -e 's/-pipe//g'`
62 fi
63 dnl Notice the -g flag and deal accordingly
64 if test x"$CFLAGS" != x; then
65     unet_old_cflags=$CFLAGS
66     CFLAGS=`echo "$CFLAGS" | sed -e 's/-g//g'`
67 fi
68 if test x"$CFLAGS" != x"$unet_old_cflags"; then
69     # If -g was already there, force symbols to be enabled
70     unet_cv_enable_symbols=yes
71 fi
72 dnl Notice the -pg flag and deal accordingly
73 if test x"$CFLAGS" != x; then
74     unet_old_cflags=$CFLAGS
75     CFLAGS=`echo "$CFLAGS" | sed -e 's/-pg//g'`
76 fi
77 if test x"$CFLAGS" != x"$unet_old_cflags"; then
78     # If -pg was already there, force profiling to be enabled
79     unet_cv_enable_profile=yes
80 fi
81 dnl Notice the -Wall flag and deal accordingly
82 if test x"$CFLAGS" != x; then
83     unet_old_cflags=$CFLAGS
84     CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wall//g'`
85 fi
86 if test x"$CFLAGS" != x"$unet_old_cflags"; then
87     # If -Wall was already there, force warnings to be enabled
88     unet_cv_enable_warnings=yes
89 fi
90 dnl Notice the -pedantic flag and deal accordingly
91 if test x"$CFLAGS" != x; then
92     unet_old_cflags=$CFLAGS
93     CFLAGS=`echo "$CFLAGS" | sed -e 's/-pedantic//g'`
94 fi
95 if test x"$CFLAGS" != x"$unet_old_cflags"; then
96     # If -pedantic was already there, force pedatic to be enabled
97     unet_cv_enable_pedantic=yes
98 fi
99
100 dnl Checks for libraries.
101
102 dnl Locate the library containing crypt
103 AC_SEARCH_LIBS(crypt, descrypt crypt, ,
104 [AC_MSG_ERROR([Unable to find library containing crypt()])])
105
106 dnl Do all the checks necessary to figure out -lnsl / -lsocket stuff
107 AC_LIBRARY_NET
108
109 dnl Look for res_mkquery.  Done after AC_LIBRARY_NET in case res_mkquery
110 dnl is in one of those libraries somewhere.
111 AC_SEARCH_LIBS(res_mkquery, resolv, ,
112 [AC_MSG_ERROR([Unable to find library containing res_mkquery()])])
113
114 dnl Checks for header files.
115 AC_HEADER_STDC
116 AC_CHECK_HEADERS(poll.h sys/devpoll.h sys/event.h)
117
118 dnl Checks for typedefs, structures, and compiler characteristics
119 dnl AC_C_CONST
120 AC_C_BIGENDIAN
121 AC_TYPE_SIZE_T
122 AC_HEADER_TIME
123 AC_STRUCT_TM
124 AC_TYPE_UID_T
125 unet_CHECK_TYPE_SIZES
126
127 dnl Checks for library functions.
128 AC_CHECK_FUNC(kqueue)
129
130 dnl Do we have restarting syscalls ?
131 AC_SYS_RESTARTABLE_SYSCALLS
132
133 dnl Check for required features for admins?
134 AC_MSG_CHECKING([for donuts])
135 AC_MSG_RESULT([yes])
136
137 dnl Test for programs
138 AC_PROG_AWK
139 AC_PROG_MAKE_SET
140 AC_PROG_INSTALL
141 AC_PROG_LN_S
142 AC_PATH_PROGS(RMPROG, rm, /bin/rm)
143 AC_PATH_PROGS(SHPROG, sh, /bin/sh)
144
145 unet_NONBLOCKING
146 unet_SIGNALS
147
148 dnl Add -pipe when possible
149 unet_PIPE_CFLAGS
150
151 dnl Check OS for os_dep files.
152 AC_MSG_CHECKING(for OS-dependent information)
153 case "$host" in
154     *-linux*)
155         AC_MSG_RESULT([Linux ($host) found.])
156         unet_poll_syscall=yes
157         OSDEP_C=os_linux.c
158         ;;
159
160     *-solaris*)
161         AC_MSG_RESULT([Solaris ($host) found.])
162         if test x"$ac_cv_header_poll_h" = xyes; then
163             unet_poll_syscall=yes
164         else
165             unet_poll_syscall=no
166         fi
167         OSDEP_C=os_solaris.c
168         ;;
169
170     *-sunos*)
171         AC_MSG_RESULT([Solaris ($host) found.])
172         unet_poll_syscall=no
173         OSDEP_C=os_solaris.c
174         ;;
175
176     *-openbsd*)
177         AC_MSG_RESULT([OpenBSD ($host) found.])
178         if test x"$ac_cv_header_poll_h" = xyes; then
179             unet_poll_syscall=yes
180         else
181             unet_poll_syscall=no
182         fi
183         OSDEP_C=os_openbsd.c
184         ;;
185
186     *-*bsd*)
187         AC_MSG_RESULT([Generic BSD ($host) found.])
188         if test x"$ac_cv_header_poll_h" = xyes; then
189             unet_poll_syscall=yes
190         else
191             unet_poll_syscall=no
192         fi
193         OSDEP_C=os_bsd.c
194         ;;
195
196     *)
197         AC_MSG_RESULT([Unknown system type $host found.])
198         AC_MSG_WARN([Unknown OS type; using generic routines.])
199         unet_poll_syscall=no
200         OSDEP_C=os_generic.c
201         ;;
202 esac
203 AC_SUBST(OSDEP_C)
204
205 dnl Check user configuration options
206 dnl Start with --enable-poll
207 AC_MSG_CHECKING([whether to enable use of poll()])
208 AC_ARG_ENABLE([poll],
209 [  --enable-poll           Force poll to be used regardless of whether or not
210                           it is a system call],
211 [unet_cv_enable_poll=$enable_poll],
212 [AC_CACHE_VAL(unet_cv_enable_poll,
213 [unet_cv_enable_poll=$unet_poll_syscall])])
214
215 # Force poll to be disabled if there is no poll.h
216 if test x"$ac_cv_header_poll_h" != xyes; then
217     unet_cv_enable_poll=no
218 fi
219
220 AC_MSG_RESULT([$unet_cv_enable_poll])
221
222 if test x"$unet_cv_enable_poll" = xyes; then
223     AC_DEFINE([USE_POLL], , [Specify whether or not to use poll()])
224     ENGINE_C=engine_poll.c
225 else
226     ENGINE_C=engine_select.c
227 fi
228 AC_SUBST(ENGINE_C)
229
230 dnl Now look for --enable-debug
231 AC_MSG_CHECKING([whether to enable debug mode])
232 AC_ARG_ENABLE([debug],
233 [  --enable-debug          Turn on debugging mode],
234 [unet_cv_enable_debug=$enable_debug],
235 [AC_CACHE_VAL(unet_cv_enable_debug,
236 [unet_cv_enable_debug=no])])
237 AC_MSG_RESULT([$unet_cv_enable_debug])
238
239 if test x"$unet_cv_enable_debug" = xyes; then
240     AC_DEFINE([DEBUGMODE], , [Enable debugging code])
241 fi
242
243 dnl And now for --enable-asserts
244 AC_MSG_CHECKING([whether to enable asserts])
245 AC_ARG_ENABLE([asserts],
246 [  --enable-asserts        Enable asserts],
247 [unet_cv_enable_asserts=$enable_asserts],
248 [AC_CACHE_VAL(unet_cv_enable_asserts,
249 [unet_cv_enable_asserts=no])])
250 AC_MSG_RESULT([$unet_cv_enable_asserts])
251
252 if test x"$unet_cv_enable_asserts" = xno; then
253     AC_DEFINE([NDEBUG], , [Disable assertions])
254 fi
255
256 dnl Check for --enable-symbols
257 AC_MSG_CHECKING([whether to enable debugging symbols])
258 AC_ARG_ENABLE([symbols],
259 [  --disable-symbols       Disable debugging symbols (remove -g from CFLAGS)],
260 [unet_cv_enable_symbols=$enable_symbols],
261 [AC_CACHE_VAL(unet_cv_enable_symbols,
262 [unet_cv_enable_symbols=yes])])
263 AC_MSG_RESULT([$unet_cv_enable_symbols])
264
265 if test x"$unet_cv_enable_symbols" = xyes; then
266     CFLAGS="-g $CFLAGS"
267 fi
268
269 dnl Now check for --enable-profile
270 AC_MSG_CHECKING([whether to enable profiling support (gprof)])
271 AC_ARG_ENABLE([profile],
272 [  --enable-profile        Enable profiling support (add -pg to CFLAGS)],
273 [unet_cv_enable_profile=$enable_profile],
274 [AC_CACHE_VAL(unet_cv_enable_profile,
275 [unet_cv_enable_profile=no])])
276 AC_MSG_RESULT([$unet_cv_enable_profile])
277
278 if test x"$unet_cv_enable_profile" = xyes; then
279     CFLAGS="-pg $CFLAGS"
280 fi
281
282 dnl Now check for --enable-pedantic
283 AC_MSG_CHECKING([whether to enable pedantic compiler warnings])
284 AC_ARG_ENABLE([pedantic],
285 [  --enable-pedantic       Enable pedantic warnings (add -pedantic to CFLAGS)],
286 [unet_cv_enable_pedantic=$enable_pedantic],
287 [AC_CACHE_VAL(unet_cv_enable_pedantic,
288 [unet_cv_enable_pedantic=no])])
289 AC_MSG_RESULT([$unet_cv_enable_pedantic])
290
291 if test x"$unet_cv_enable_pedantic" = xyes; then
292     CFLAGS="-pedantic $CFLAGS"
293 fi
294
295 dnl Now check for --enable-warnings
296 AC_MSG_CHECKING([whether to enable compiler warnings])
297 AC_ARG_ENABLE([warnings],
298 [  --enable-warnings       Enable warnings (add -Wall to CFLAGS)],
299 [unet_cv_enable_warnings=$enable_warnings],
300 [AC_CACHE_VAL(unet_cv_enable_warnings,
301 [unet_cv_enable_warnings=no])])
302 AC_MSG_RESULT([$unet_cv_enable_warnings])
303
304 if test x"$unet_cv_enable_warnings" = xyes; then
305     CFLAGS="-Wall $CFLAGS"
306 fi
307
308 dnl --disable-inlines check...
309 AC_MSG_CHECKING([whether to enable inlining for a few critical functions])
310 AC_ARG_ENABLE([inlines],
311 [  --disable-inlines       Disable inlining for a few critical functions],
312 [unet_cv_enable_inlines=$enable_inlines],
313 [AC_CACHE_VAL(unet_cv_enable_inlines,
314 [unet_cv_enable_inlines=yes])])
315 AC_MSG_RESULT([$unet_cv_enable_inlines])
316
317 if test x"$unet_cv_enable_inlines" = xyes; then
318     AC_DEFINE([FORCEINLINE], , [Force inlining for a few critical functions])
319 fi
320
321 dnl --disable-devpoll check...
322 AC_MSG_CHECKING([whether to enable the /dev/poll event engine])
323 AC_ARG_ENABLE([devpoll],
324 [  --disable-devpoll       Enable the /dev/poll-based engine],
325 [unet_cv_enable_devpoll=$enable_devpoll],
326 [AC_CACHE_VAL(unet_cv_enable_devpoll,
327 [unet_cv_enable_devpoll=yes])])
328
329 if test x"$ac_cv_header_sys_devpoll_h" = xno; then
330     unet_cv_enable_devpoll=no
331 fi
332
333 AC_MSG_RESULT([$unet_cv_enable_devpoll])
334
335 if test x"$unet_cv_enable_devpoll" != xno; then
336     AC_DEFINE([USE_DEVPOLL], , [Define to enable the /dev/poll engine])
337     ENGINE_C="engine_devpoll.c $ENGINE_C"
338 fi
339
340 dnl --disable-kqueue check...
341 AC_MSG_CHECKING([whether to enable the kqueue event engine])
342 AC_ARG_ENABLE([kqueue],
343 [  --disable-kqueue        Enable the kqueue-based engine],
344 [unet_cv_enable_kqueue=$enable_kqueue],
345 [AC_CACHE_VAL(unet_cv_enable_kqueue,
346 [unet_cv_enable_kqueue=yes])])
347
348 if test x"$ac_cv_header_sys_event_h" = xno -o x"$ac_cv_func_kqueue" = xno; then
349     unet_cv_enable_kqueue=no
350 fi
351
352 AC_MSG_RESULT([$unet_cv_enable_kqueue])
353
354 if test x"$unet_cv_enable_kqueue" != xno; then
355     AC_DEFINE([USE_KQUEUE], , [Define to enable the kqueue engine])
356     ENGINE_C="engine_kqueue.c $ENGINE_C"
357 fi
358
359 dnl --with-symlink lets us set the name of the symlink; defaults to "ircd"
360 AC_MSG_CHECKING([what name to give the symlink])
361 AC_ARG_WITH([symlink],
362 [  --with-symlink=name     Name to give the symlink; if name is "no," no
363                           symlink will be created.],
364 [unet_cv_with_symlink=$with_symlink],
365 [AC_CACHE_VAL(unet_cv_with_symlink,
366 [unet_cv_with_symlink="ircd"])])
367
368 if test x"$unet_cv_with_symlink" = xyes; then
369     unet_cv_with_symlink="ircd"
370 fi
371
372 AC_MSG_RESULT([$unet_cv_with_symlink])
373
374 if test x"$unet_cv_with_symlink" = xno; then
375     INSTALL_RULE=install-no-symlink
376     SYMLINK=
377 else
378     INSTALL_RULE=install-with-symlink
379     SYMLINK=$unet_cv_with_symlink
380 fi
381 AC_SUBST(INSTALL_RULE)
382 AC_SUBST(SYMLINK)
383
384 dnl --with-mode lets us set the permissions on the binary
385 AC_MSG_CHECKING([what permissions to set on the installed binary])
386 AC_ARG_WITH([mode],
387 [  --with-mode=mode        Permissions (in octal) to give the binary],
388 [unet_cv_with_mode=$with_mode],
389 [AC_CACHE_VAL(unet_cv_with_mode,
390 [unet_cv_with_mode=711])])
391
392 if test x"$unet_cv_with_mode" = xyes -o x"$unet_cv_with_mode" = xno; then
393     unet_cv_with_mode=711
394 fi
395
396 AC_MSG_RESULT([$unet_cv_with_mode])
397
398 IRCDMODE=$unet_cv_with_mode
399 AC_SUBST(IRCDMODE)
400
401 dnl --with-owner lets us set the owner of the binary
402 changequote(,)dnl
403 unet_uid=`id | sed -e 's/.*uid=[0-9]*(//' -e 's/).*//' 2> /dev/null`
404 changequote([,])dnl
405 AC_MSG_CHECKING([which user should own the installed binary])
406 AC_ARG_WITH([owner],
407 [  --with-owner=owner      Specify owner of the installed binary],
408 [unet_cv_with_owner=$with_owner],
409 [AC_CACHE_VAL(unet_cv_with_owner,
410 [unet_cv_with_owner=$unet_uid])])
411
412 if test x"$unet_cv_with_owner" = xyes -o x"$unet_cv_with_owner" = xno; then
413     unet_cv_with_owner=$unet_uid
414 fi
415
416 AC_MSG_RESULT([$unet_cv_with_owner])
417
418 IRCDOWN=$unet_cv_with_owner
419 AC_SUBST(IRCDOWN)
420
421 dnl --with-group lets us set the group owner of the binary
422 changequote(,)dnl
423 unet_gid=`id | sed -e 's/.*gid=[0-9]*(//' -e 's/).*//' 2> /dev/null`
424 changequote([,])dnl
425 AC_MSG_CHECKING([which group should own the installed binary])
426 AC_ARG_WITH([group],
427 [  --with-group=group      Specify group owner of the installed binary],
428 [unet_cv_with_group=$with_group],
429 [AC_CACHE_VAL(unet_cv_with_group,
430 [unet_cv_with_group=$unet_gid])])
431
432 if test x"$unet_cv_with_group" = xyes -o x"$unet_cv_with_group" = xno; then
433     unet_cv_with_group=$unet_gid
434 fi
435
436 AC_MSG_RESULT([$unet_cv_with_group])
437
438 IRCDGRP=$unet_cv_with_group
439 AC_SUBST(IRCDGRP)
440
441 dnl --with-domain lets us set the domain name for some statistics-gathering
442 unet_domain=
443 if test -f /etc/resolv.conf; then
444     unet_domain=`awk '/^domain/ { print $2; exit }' /etc/resolv.conf`
445     if test x"$unet_domain" = x; then
446         unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf`
447     fi
448 fi
449 AC_MSG_CHECKING([for site domain name])
450 AC_ARG_WITH([domain],
451 [  --with-domain=domain    Domain name to use in local statistics gathering],
452 [unet_cv_with_domain=$with_domain],
453 [AC_CACHE_VAL(unet_cv_with_domain,
454 [unet_cv_with_domain=$unet_domain])])
455
456 if test x"$unet_cv_with_domain" = xyes -o x"$unet_cv_with_domain" = xno; then
457     unet_cv_with_domain=$unet_domain
458 fi
459 if test x"$unet_cv_with_domain" = xno; then
460     AC_MSG_ERROR([Unable to determine server DNS domain; use --with-domain to set it])
461 fi
462
463 AC_MSG_RESULT([$unet_cv_with_domain])
464
465 AC_DEFINE_UNQUOTED(DOMAINNAME, "*$unet_cv_with_domain",
466 [Domain name to be used for some statistics gathering])
467
468 dnl --with-chroot lets us define a directory that we are going to be using
469 dnl as the root of our filesystem
470 AC_MSG_CHECKING([if chroot operation is desired])
471 AC_ARG_WITH([chroot],
472 [  --with-chroot=dir       Specify that the server will be operated under
473                           a different root directory given by dir.  See
474                           doc/readme.chroot for more information.],
475 [unet_cv_with_chroot=$with_chroot],
476 [AC_CACHE_VAL(unet_cv_with_chroot,
477 [unet_cv_with_chroot=no])])
478
479 if test x"$unet_cv_with_chroot" = xyes; then
480     AC_MSG_ERROR([--with-chroot given with no directory.  See doc/readme.chroot.])
481 fi
482
483 # Ensure there are no trailing /'s to mess us up
484 unet_cv_with_chroot=`echo "$unet_cv_with_chroot" | sed 's%/*$%%'`
485
486 AC_MSG_RESULT([$unet_cv_with_chroot])
487
488 dnl Determine some default directory names
489 dnl
490 dnl HACK WARNING: We are referencing an autoconf internal variable.  This is
491 dnl the only way to figure out what value $prefix will have when we go to do
492 dnl the install--and the only way we can stick that value in our definitions
493 dnl of SPATH, etc.
494 # Deal with the annoying value "NONE" here
495 unet_save_prefix=$prefix
496 if test x"$prefix" = xNONE; then
497     prefix=$ac_default_prefix
498 else
499     prefix=$prefix
500 fi
501
502 unet_save_exec_prefix=$exec_prefix
503 if test x"$exec_prefix" = xNONE; then
504     exec_prefix=$prefix
505 else
506     exec_prefix=$exec_prefix
507 fi
508
509 # Obtain the actual interesting directories
510 unet_bindir=`eval echo "$bindir"`
511 unet_libdir=`eval echo "$libdir"`
512
513 # Restore the original settings of $prefix and $exec_prefix
514 prefix=$unet_save_prefix
515 exec_prefix=$unet_save_exec_prefix
516
517 dnl Now compute the name of the binary and verify that it will work under
518 dnl chroot operation
519 AC_MSG_CHECKING([where the binary will be for /restart])
520 if test x"$unet_cv_with_symlink" = xno; then
521     unet_spath="$unet_bindir/ircd"
522 else
523     unet_spath="$unet_bindir/$unet_cv_with_symlink"
524 fi
525 AC_MSG_RESULT([$unet_spath])
526
527 if test x"$unet_cv_with_chroot" != xno; then
528     if echo "$unet_spath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
529         unet_spath=`echo "$unet_spath" | sed "s%^$unet_cv_with_chroot%%"`
530     else
531         AC_MSG_WARN([Binary $unet_spath not relative to root directory $unet_cv_with_chroot; restarts will probably fail])
532     fi
533 fi
534
535 AC_DEFINE_UNQUOTED(SPATH, "$unet_spath", [Path to executable for restarts])
536
537 dnl --with-dpath sets the all-important DPATH
538 AC_MSG_CHECKING([what the data directory should be])
539 AC_ARG_WITH([dpath],
540 [  --with-dpath=dir        Directory for all server data files],
541 [unet_cv_with_dpath=$with_dpath],
542 [AC_CACHE_VAL(unet_cv_with_dpath,
543 [unet_cv_with_dpath=$unet_libdir])])
544
545 if test x"$unet_cv_with_dpath" = xyes -o x"$unet_cv_with_dpath" = xno; then
546     unet_cv_with_dpath=$unet_libdir
547 fi
548
549 # Ensure there are no trailing /'s to mess us up
550 unet_cv_with_dpath=`echo "$unet_cv_with_dpath" | sed 's%/*$%%'`
551
552 AC_MSG_RESULT([$unet_cv_with_dpath])
553
554 if test x"$unet_cv_with_chroot" != xno; then
555     if echo "$unet_cv_with_dpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
556         unet_dpath=`echo "$unet_cv_with_dpath" | sed "s%^$unet_cv_with_chroot%%"`
557     else
558         AC_MSG_ERROR([Data directory $unet_cv_with_dpath not relative to root directory $unet_cv_with_chroot])
559     fi
560 else
561     unet_dpath=$unet_cv_with_dpath
562 fi
563
564 AC_DEFINE_UNQUOTED(DPATH, "$unet_dpath", [Path to data directory])
565
566 DPATH=$unet_cv_with_dpath
567 AC_SUBST(DPATH)
568
569 dnl --with-cpath allows us to specify the configuration file
570 AC_MSG_CHECKING([where the default configuration file resides])
571 AC_ARG_WITH([cpath],
572 [  --with-cpath=file       Set server configuration file],
573 [unet_cv_with_cpath=$with_cpath],
574 [AC_CACHE_VAL(unet_cv_with_cpath,
575 [unet_cv_with_cpath="ircd.conf"])])
576
577 if test x"$unet_cv_with_cpath" = xyes -o x"$unet_cv_with_cpath" = xno; then
578     unet_cv_with_cpath="ircd.conf"
579 fi
580
581 AC_MSG_RESULT([$unet_cv_with_cpath])
582
583 if echo "$unet_cv_with_cpath" | grep '^/' > /dev/null 2>&1; then
584     # Absolute path; check against chroot stuff
585     if test x"$unet_cv_with_chroot" != xno; then
586         if echo "$unet_cv_with_cpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
587             unet_cpath=`echo "$unet_cv_with_cpath" | sed "s%^$unet_cv_with_chroot%%"`
588         else
589             AC_MSG_ERROR([Configuration file $unet_cv_with_cpath not relative to root directory $unet_cv_with_chroot])
590         fi
591     else
592         unet_cpath=$unet_cv_with_cpath
593     fi
594 else
595     unet_cpath=$unet_cv_with_cpath
596 fi
597
598 AC_DEFINE_UNQUOTED(CPATH, "$unet_cpath", [Configuration file name])
599
600 dnl --with-lpath allows us to specify the default debugging log file
601 AC_MSG_CHECKING([where to put the debugging log if debugging enabled])
602 AC_ARG_WITH([lpath],
603 [  --with-lpath=file       Set the debugging log file],
604 [unet_cv_with_lpath=$with_lpath],
605 [AC_CACHE_VAL(unet_cv_with_lpath,
606 [unet_cv_with_lpath="ircd.log"])])
607
608 if test x"$unet_cv_with_lpath" = xyes -o x"$unet_cv_with_lpath" = xno; then
609     unet_cv_with_lpath="ircd.log"
610 fi
611
612 AC_MSG_RESULT([$unet_cv_with_lpath])
613
614 if echo "$unet_cv_with_lpath" | grep '^/' > /dev/null 2>&1; then
615     # Absolute path; check against chroot stuff
616     if test x"$unet_cv_with_chroot" != xno; then
617         if echo "$unet_cv_with_lpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
618             unet_lpath=`echo "$unet_cv_with_lpath" | sed "s%^$unet_cv_with_chroot%%"`
619         else
620             AC_MSG_WARN([Log file $unet_cv_with_lpath not relative to root directory $unet_cv_with_chroot; using default ircd.log instead])
621             unet_cv_with_lpath="ircd.log"
622             unet_lpath="ircd.log"
623         fi
624     else
625         unet_lpath=$unet_cv_with_lpath
626     fi
627 else
628     unet_lpath=$unet_cv_with_lpath
629 fi
630
631 AC_DEFINE_UNQUOTED(LPATH, "$unet_lpath", [Path to debugging log file])
632
633 dnl --with-maxcon allows us to set the maximum connections
634 unet_maxcon=`ulimit -Hn`
635 unet_maxcon=`expr $unet_maxcon - 4`
636 AC_MSG_CHECKING([max connections])
637 AC_ARG_WITH([maxcon],
638 [  --with-maxcon=maxcon    Maximum number of connections server will accept],
639 [unet_cv_with_maxcon=$with_maxcon],
640 [AC_CACHE_VAL(unet_cv_with_maxcon,
641 [unet_cv_with_maxcon=$unet_maxcon])])
642
643 if test x"$unet_cv_with_maxcon" = xyes -o x"$unet_cv_with_maxcon" = xno; then
644     unet_cv_with_maxcon=$unet_maxcon
645 fi
646
647 AC_MSG_RESULT([$unet_cv_with_maxcon])
648
649 AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $unet_cv_with_maxcon,
650 [Maximum number of network connections])
651
652 dnl Finally really generate all output files:
653 AC_OUTPUT(Makefile ircd/Makefile doc/Makefile, [echo timestamp > stamp-h])