[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]
[~]   In order to compile this distribution you need to do the following.  [~]
[~]             Optional steps are marked with an asterisk (*).            [~]
[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]

BitchX is known to compile on the following systems (maybe others as well):
BSDI 2.0, SunOS 4.1.4, SunOS 5, Linux (all), IRIX, HP-UX, DEC Unix, Ultrix,
AIX and BSDI 2.1.

Some hints for compiling are provided in "Machine Specific Instructions" for 
certain system types. If you do have a problem please gather as much infor-
mation about the error as possible and either email me at edwac@sk.sympatico.ca 
or look for me as panasync@EFNet. I'm usually not on IRC until midnight CST 
every night. Other bug reports can be sent in exactly the same way as well. 
On EFNet there is a #BitchX channel for describing problems and getting help. 

Some script writers also tend to hang in #BitchX to distribute their work to 
others. I've tried to include a small selection of scripts, which I find at-
tractive and useful, in ~/BitchX/CubicZ directory. Some of these are rather 
dated, though, and there may be newer versions of them available.


Some features will only work with certain servers versions - ie IRCUMODE and 
/4ops are only usuable on certain versions of the server (/eval echo 
$version() or /eval echo $R will give you the version of the server you're 
currently on). Certain user modes are only available on certain versions of 
the server, as well, so please do make certain that it is a problem with the 
client before reporting it as such. Also, scripts can cause problems, usually
due to bugs within the script. But it could also be a bug within the client 
itself. If you can, determine what type of bug you are experiencing. The 
easiest bugs to fix are those that are reproducable involving a certain 
command sequence or a script.

[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]

  1)  Run the GNU configuration script                    [~/BitchX/configure]
      This should find just about everything about your system that it can. 

* 2)  Edit Makefile                                        [~/BitchX/Makefile]
      On some systems you may need to make changes to the Makefile created in 
      step 1. For instance, some may require a library crypt for a routine in 
      alias.c, which produces a crypt-style password. Find the LIBS line, and 
      change it to say (without the quotes) "LIBS= -lcrypt". Also see Machine
      Specific Instructions below.

* 3)  Edit config.h                                [~/BitchX/include/config.h]
      Included in this file are compile-time options which you can modify to 
      your liking. You should at least change the DEFAULT_SERVER line to your
      favorite or closest server. You may also want to edit the 
      DEFAULT_CTOOLZ_DIR and DEFAULT_BITCHX_HELP_FILE settings if you are 
      unable to install BitchX as a bin in /usr/local/bin and 
      /usr/local/lib/irc/help.

  4)  Run make                                                 [~/BitchX/make]
      Type (without the quotes): "make install". This should create the BitchX 
      binary and place it in ~/.BitchX. If it does not, see step 5.

* 5)  Edit defs.h                                    [~/BitchX/include/defs.h]
      (If the binary compiled properly in the previous step, skip to step 6.)
      On some systems, configure does not properly determine some defines. 
      You may need to tweak them. Search the system include files for the 
      definition of the offending function (from step 4). Then look at the 
      source file and figure out why it fails. Usually there should be a 
      #define/#undef on the problem area and one of them should take care of 
      your particular problem. Go back to step 4. If you continue to have 
      problems, see Machine Specific Instructions below.

* 6)  Remove debugging information                    [~/BitchX/source/BitchX]
      The default for the configure script is to include debugging information
      into the client. Since only the author really needs this information, it
      is best to remove it (to create a smaller binary).  Type (without the 
      quotes): "strip BitchX".

* 7)  Choose a script to run                                [~/BitchX/CubicZ/]
      Several scripts compatible with BitchX have been included for your use.

  8)  Set up your .BitchX directory                                [~/.BitchX]
      BitchX uses the .BitchX directory for files such as BitchX.help and 
      BitchX.reasons (both found in ~/BitchX/CubicZ/), as well as saved 
      configuration files. This directory can be modified as well by spec-
      ifying /set CTOOLZ_DIR = some_other_dir in your .ircrc file. Some 
      scripts will alter this setting upon loading.

[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]

Machine Specific Instructions

  1)  On Linux systems some sort of problem occurs when libc.so.5.3.12 is
      used with libresolv.a So after configure has run, you MUST edit the 
      Makefile and remove -lresolv from the LIBS = line. A symptom of this
      problem is an immediate crash when starting BitchX. Other clients will
      probably exhibit the same behaviour, ie EPIC-3.001. A better method is
      to upgrade your libc.so.* to a later version. libc.so.5.4.2 Doesn't
      exhibit this behaviour at all.

  2)  On some SunOS 4.1.4 systems strtoul (an ANSI C function) is not properly
      detected as being missing. So we have to edit 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 defs.h again.

ld: Undefined symbol
    _strtoul
    _globfree
    _glob

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

  3) Linux 1.3.80 made some changes to the system include files. A small
     definition was removed which will cause alot of screen orientated
     programs to fail. ie ircii-2.8 and BitchX both fail when compiling on
     the file alias.c with an error message about speed_t being undefined.
     Instead of hacking around this behaviour within BitchX you will need to
     supply either of the following definitions

     #define speed_t unsigned short
     -or-
     extern short ospeed;
    
     You can either add this definition to /usr/include/termcap.h if you have
     the capability to do so or you can add it to include/defs.h. Either
     method works fine. You will however have to remember to do this for every
     BitchX distribution you compile. For the reasons for this behaviour 
     you'll have to ask the BSD folks why.

  4) If you are on a SunOS 4.1* system you will experience coredumps on exit
     of BitchX. If you are one of these people, please let me know how to fix 
     this problem. Also, it seems that SunOS select might be broken in some 
     small way. Symptoms of this are high CPU usage and the BitchX client 
     repeatedly saying it is away on a channel. 

  5) It seems that on some systems improper setups have been done. You DO
     need to specify a hostname in /etc/hosts with a fake ip number. This is
     then your system name. If you receive a coredump on startup of BitchX
     and the reason is not obvious, this will be the reason. 

[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]
[~] panasync                INSTALLATION  (07.21.96)              BlackJac [~]
[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]
