 $Id: INSTALL,v 1.28.2.1 2004/05/24 01:12:03 musirc Exp $

 Copyright (c) 2004 by MusIRCd Development

 +------------------------------------------------------------------------+
 | Note for those who don't bother reading docs:                          |
 |                                                                        |
 | Reading INSTALL is now a must, as the old DPATH is now specified when  |
 | configure is run.                                                      |
 |                                                                        |
 | - You now need to ./configure --prefix="/path/to/install/it" as a      |
 |   minimum. Try ./configure --help or read this file for more info on   |
 |   the possible options you can pass to configure.                      |
 +------------------------------------------------------------------------+

                                HOW TO BUILD

 You must run ./configure before you can (sanely) build the ircd.
   
 1. Run the configure script. It will create include/setup.h and the
    Makefiles to match your system. In MusIRCd, the paths are handled
    with the --prefix option to configure.
    /usr/local/ircd is the default if no prefix is specified.

    ./configure --prefix="/usr/local/ircd"

    The script will determine whichever of the following is best for 
    your system, but you may (unsupported) force their usage with 
    undefined results:

    * --enable-kqueue - Use the superior kqueue(2) system call as
      opposed to the default poll(2). This is currently only available
      on FreeBSD 4.1 or higher.

    * --enable-devpoll - Enable the superior /dev/poll support on
      Solaris. Linux /dev/poll is broken and will not work with this
      option.

    * --enable-rtsigio - Enable the superior Linux RealTime Signal I/O
      system. This is currently only available on 2.4 Linux kernel
      versions or later.

    * --enable-poll - Use POSIX poll(2).

    * --enable-select - Use POSIX select(2).

    Incidentally, the order of listing above is the order of auto-
    detection in configure. So if you do have kqueue but wish to
    enable select(2) instead (bad idea), you must use --enable-select.

    These are optional or have default values that may be overridden:
   
    * --disable-shared-modules - Disable module support. This option is
      more secure, but reduces a lot of the flexibility in MusIRCd.
      This may need to be used on some systems without a working
      dlopen/dlsym.

    * --enable-small-net - Tunes the server for smaller networks by
      reducing the startup memory footprint. This should really only be
      used for *small* networks, as this tends to be a performance hit
      on larger networks.

    * --with-nicklen,
      --with-topiclen - Respectively, sets the maximum NICK length and
      maximum TOPIC length. Note that this must be consistent across your
      entire network. Defaults are 9 and 120, respectively.

    * --with-maxconn - Sets the maximum number of connections the ircd
      can support. Note that this also twiddles the HARD_FDLIMIT.
      If HARD_FDLIMIT ends up being larger that FD_SETSIZE when using
      select() for your I/O loop, select.c will refuse to compile
      (and tell you to use poll instead). Take this error's advice and
      use --enable-poll or something a bit more efficient. You'll be
      happier at the end of the day for it.

 2. make should build ircd.

 3. make install will install the server, modules(1), and tools in the
    path with the prefix specified when configure was run.

    (1) Unless the server was compiled without module support.

 4. If you wish to enable the user log, oper log, and failed oper log,
    issue these commands at the shell prompt (in the prefix directory)

 touch logs/userlog
 touch logs/operlog
 touch logs/foperlog

 Note: If you use different names in ircd.conf, you must 'touch' the
       specific names.

                              HOW TO GET HELP

 Try asking other the MusIRC admins on the MusIRC Network if you can't fix
 it yourself. If you do fix anything, however, please send context or unified
 diffs to musirc@users.sourceforge.net so the fixes can be incorporated into
 the next release of MusIRCd. If MusIRCd crashes on you, PLEASE contact
 musirc@users.sourceforge.net ASAP with a backtrace of the core. The MusIRCd
 team can't fix bugs if no one tells us about them!

                                   NOTES

 The best way to get a backtrace of the core is to follow this sequence of
 instructions:

 1. Change to the directory containing the core file

 2. Run gdb on the binary and the core file. With an unmodified MusIRCd
    installation, an example command line is below (in the /usr/local/ircd
    directory)

 gdb bin/ircd ircd.core

 3. At the "(gdb)" prompt, enter the command "bt full"

 4. Save the output of the backtrace command and send it to
    musirc@users.sourceforge.net.

 5. Be sure to save the ircd binary, the modules, and the core file in a
    safe place in case the developers need to look deeper than a backtrace
    provides.
