[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]
[~]   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 BSDI 2.0, SunOS 4.1.4,
SunOS 5, Linux all versions, IRIX, HPUX, DEC unix and Ultrix. Possibly many 
others as well. Some hints for compiling are provided in Machine Specific
Instructions for certain system types. If you do have a problem please
gather as much information about the error as possible and either Email me
at edwac@sasknet.sk.ca or look for me as panasync on IRC. 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 the
channel to distribute there work to others. I've tried to include a small
selection of scripts which I find attractive and useful within the CubicZ
directory. Some of these are rather dated though and there maybe newer
versions of them available.

Some features will only work with certain servers versions. ie IRCUMODE is
only supported by certain versions of the server, /4ops is only usuable on
certain versions of the server. /eval echo $version()  or $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. 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                 [~/ircii-2.8/configure]
      This should find just about everything about your system that it can. 

* 2)  Edit Makefile                                     [~/ircii-2.8/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                             [~/ircii-2.8/include/config.h]
      Included in this file are compile-time options which you can modify to 
      your liking. You should at least change the #define DEFAULT_SERVER line 
      to your favorite or closest server. You may also want to edit the
      HELP_DIR variable if you are unable to install BitchX as a bin in
      /usr/local/bin and /usr/local/lib/irc/help.

  4)  Run make                                             [~/ircii-2.8/make]
      This should create the BitchX binary. If it does not, see step 5.

* 5)  Edit defs.h                                 [~/ircii-2.8/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 problem parts and one of them should take care of 
      your particular problem. Go back to step 4. If you do have problems
      see Machine Specific Instructions below.

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

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

  8)  Create and set up your .BitchX directory                     [~/.BitchX]
      BitchX uses the .BitchX directory for files such as BitchX.help and 
      BitchX.reasons (both found in ~/ircii-2.8/CubicZ/), as well as saved 
      configuration files. This ~/.BitchX directory will be created 
      automatically by running BitchX. This directory can be modified as
      well by specifying /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. 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 a 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 todo this for every
     BitchX distribution you try and 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 anyone who is on a 4.1* system can please let me know
     what might be required to fix this problem, please let me know. 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. 

[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]
[~]                        INSTALLATION  (06.16.96)                        [~]
[~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~][~]
