                      BitchX Installation Readme File

BitchX is known to compile on the following systems (maybe others as well):
    * BSDI 2.0, 2.1 and FreeBSD 2.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 edwac@sk.sympatico.ca. 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. BitchX/CubicZ/ is the
scripts directory where they are distributed within the archive. Although
they may be outdated, new versions of them can be readily gotten from
#BitchX, and possibly new scripts in circulation. The more popular and
regularly updated scripts are as follows:
    * rabid (0.5) by suicide,
    * deep by shade, and
    * crackrock by openface.

	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.
      
* 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.

* 4) include/config.h may need tweeking 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) If you require tcl to be compiled into the binary of BitchX, a manual
     edit of BitchX/Makefile is needed. Uncomment the following lines
     which match:
	# TCL = -DWANT_TCL
	# TCL_SRCS = tcl.c
	# TCL_OBJS = tcl.o
     You will need tcl.o supplied by panasync from thirdwave.net, sorry
     but the source code is not available. Systems which panasync has
     tcl.c compiled are:
	AIX-3.2, FreeBSD, Linux-x86, Linux-Alpha, Solaris, and UnixWare.
     Others may be available as systems are made available.

  6) 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.

* 7) 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.

* 8) Debugging information may be intacted to 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'.

  9) 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.

 10) 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.

 11) 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 ~/BitchX/CubicZ/),
     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

	Linux kernel version 1.3.80 made changes to the system include
files. A small definition was removed which will cause a lot of screen
orientated programs to fail on compiling. Both ircii-2.8 and BitchX
will fail when compiling on the file alias.c with an error message about
speed_t or ospeed being undefined. Instead of hacking around this
behaviour within BitchX, edit include/defs.h and supply at the start 
of the file either one of the following for the offending error:

Solution: (ospeed)
add "extern short ospeed;"

Solution: (speed_t)
add "#define speed_t unsigned short"



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

-BarK0de (01.27.97)
