                      BitchX Installation Readme File

BitchX is known to compile on the following systems (maybe others as well):
    * BSDI 2.0, 2.1, 3.1, 4.0 and FreeBSD 2.x/3.x
    * SunOS 4.1.4, 5.3, 5.4, 5.5, 5.5.1
    * Linux (All)
    * IRIX
    * HP-UX 9.x/10.x
    * OSF/1 (DEC Alpha)
    * Ultrix
    * AIX

Introduction:

	Problems may occur in the compilation process of BitchX. If you
do have a problem please gather as much information about the error 
(output from make) and join the BitchX support channel on EFNet, #BitchX,
or mail edwards@bitchx.com. Bug reports can be sent in exactly the
same way as well. 

	Several script writers tend to hang in the channel #BitchX
(EFNet) to distribute their work to others. scripts.bitchx.com is a 
place where scripts can be found.

	Some features will only work with certain servers -- IRCUMODE and 
/4ops for example. Therefore, servers such as UnderNet, DalNet, and
NewNet to name a few, will not respond to the user modes given. Scripts
can cause problems, usually due to bugs within the script. If there is a
known bug inside the client, please contact the appropriate people,
panasync or non-idling #BitchX ops. If the bug can be reproduced time
after time again, it is enough to determine how it can be resolved.



Compiling BitchX:

In order to compile this distribution you need to do the following:
(Optional steps are marked with an asterisk, '*')

  1) Enter the BitchX directory tree, this is the most important step.
     Executing configure outside the tree will incur problems.

  2) Run the GNU configuration script, ./configure. It should find
     whatever it needs for the compilation of BitchX, such as system
     includes, tcl and locations of important files. There are options
     that can be given to ./configure. Things like --with-tcl,
     --with-plugins and --with-gtk. ./configure --help will detail all
     of them.
      
* 3) On some systems you may need to edit Makefile and enforce changes if
     compiling causes a problem. For instance, SystemV compliant boxes may
     require the crypt() library (libcrypt.a) for a routine in alias.c, 
     which produces a crypt-style password. Find the LIBS line, and 
     change it to (without the quotes): "LIBS= -lcrypt". Also see Machine
     Specific Instructions below. See below for hints about tputs not found.

* 4) include/config.h may need tweaking if you intend to change the
     default server. To change, locate DEFAULT_SERVER and remove the
     original default servers and add as many as you please (These will
     be appended to the /usr/local/lib/irc/ircII.servers and ~/.ircservers
     list). You may also want to edit the DEFAULT_CTOOLZ_DIR and
     DEFAULT_BITCHX_HELP_FILE settings if you have no superuser
     privilleges or just want to install elsewhere.

  5) Execute 'make' inside the BitchX archive directory. If no error
     messages are shown (error not warning messages) see below in this
     file for Machine Specific Instrctions on how to resolve common
     problems which users face when compiling.

* 6) Edit include/defs.h. On some systems, configure may not properly
     determine one or two definitions (#define blah). Search for
     offending defines which cause make not to proceed compiling.
     Usually, there should be a #define/#undef located on the line make
     has shown. A reversal of the definition (change #define to #undef,
     vice versa). Go back to step 6 once accomplished this special step. 
     If problems still persist, see Machine Specific Instructions below.

* 7) Debugging information may be left into the compiled binary, so a
     'strip BitchX/source/BitchX' solves the rather large size seen
     previously. 'make install' will strip this automatically.
     See step 8 if you wish to proceed 'make install'.

  8) Execute 'make install'. This should install the BitchX binary to
     /usr/local/bin. Commonly, users may not have superuser access, thus a
     refusal (permission denied message) will occur. If you insist to use
     'make install' to install BitchX binary, it is required to change the
     installation path defined in step 4 or use make install_local.

  9) It is not a requirement to use function-filled scripts with BitchX,
     because the aim of BitchX is to create a scriptless client, or more
     appropriately, less dependant to scripts. A list of *new* scripts
     were listed in the Introduction. With the development of BitchX,
     commonly, scripts quickly outdate and become obselete due to the
     incompatibility caused with new commands, hooks, and possibly a 
     hardcoded replacement. This is merely a warning.

 10) Set up your .BitchX directory
     BitchX uses the directory, ~/.BitchX, for files such as BitchX.help 
     (online help, /bhelp index), BitchX.quits (quit reasons),
     BitchX.reasons (kick reasons), (all found in source archive),
     aswell as saved configuration files from scripts and BitchX itself
     (BitchX.save). This directory can be modified by specifying the
     variable CTOOLZ_DIR in your .bitchxrc. .ircrc can be used for
     BitchX, but problems will occur if an ircii client like Epic is
     executed. Very rarely, scripts will alter this setting upon loading.



Machine Specific Instructions:

	On some SunOS 4.1.4 systems, strtoul (an ANSI C function) is not
properly detected as being missing. Editing include/defs.h by hand. This
file is automatically created by configure each time configure is run so
if you re-run configure you must edit include/defs.h again.

Offending error:
ld: Undefined symbol
    _strtoul
    _globfree
    _glob

Solution:
 edit include/config.h
 remove /* */ from the #define NEED_GLOB
 edit include/defs.h
 add #define NEED_STRTOUL


	On some linux installations, the libraries libncurses and libtermcap
which have been installed, are not properly found by the configure script.

Solution: tputs
add -lncurses or -ltermcap to LIBS = in the Makefile


There is a mailing list for BitchX at majordomo@lists.bitchx.com

End of File, INSTALLATION
Completely re-written by the BarK0de, original author, BlackJac.


-BarK0de (01.27.97)

