     The makefile structure here is meant to install the CB system
with as little hassels as possible.  The operations necessary are:

1)  Edit Makefile.progs to change all these variables to be correct for
    your system.  The attempt is that most everything should have a
    reasonable default.  However, TOP must be set to be the full path
    to get to the top of this program tree.  If you change it here,
    you must change the value of TOP in util/mfmerge also.
2)  Create a link from one of the .h files in config directory to
    your include directory/config.h (i.e., whatever directory you set
    INCLUDE_DIR to in the Makefile.progs.)  For instance, if
    you leave $INCLUDE_DIR = $(TOP)/include.  Then you want to
    do ln -s $(TOP)/config/sun4-os4.1.h $(TOP)/include/config.h
3)  Edit the file mfmerge in the util directory to change the TOP=
    variable to the top level directory name (i.e. the location returned
    by pwd while in the directory containing this README file).  This
    TOP should be equivalent to the TOP in Makefile.progs.
4)  While in the directory with this README type
    make -f Makefile.tmpl Makefile TOP=.
5)  Type make World.
6)  If everything went fine in step 5, type make install.

     If you wish to uninstall the system, simply type make uninstall.

     This is all that is necessary to get the system to install.  However,
if there is not a .h file in the config directory you need to construct
one (see below).  

WARNINGS:

1)  The script files that are found in the bin directory have not been
    converted to this makefile structure.  What really should happen is
    the PATH at the top of each should be editted before they are installed.
    This means that unless you install them in /delta/stable/cb-2.0/bin,
    things probably won't work right.  In the long run, we hope that
    the installation path will not affect the running of the code; however,
    there are still dependencies.  If you find these, please let us know
    (see REPORTING BUGS below).

     If you find bugs, please fill out the bug report located in the
file BUG-REPORT and send it to cb@cs.uiuc.edu.

     To be included on the CB mailing list, send mail to cb-m@cs.uiuc.edu
requesting addition/removal.

     The files discussed in this README can be retrieved either by
anonymous ftp from a.cs.uiuc.edu or by belonging to the CB
consortium and receiving a passworded account on elm.cs.uiuc.edu.
The files on elm.cs.uiuc.edu are more extensive and contain
the full set of programs necessary to run the Conversation Builder.
For information on being a part of the consortium send inquires to
kaplan@cs.uiuc.edu

Items that should (could) be in the config files

#define POLL 1  Tells the system to use poll instead of select
#define POLL 0  Tells the system to use select instead of poll
#define SYSV    Tells the system that this is a system V machine
#define HPUX    Tells the system that this is an HP UX machine.
#define NeXT    Tells the system that this is a NeXT machine.
#define USE_GETDTABLESIZE should be defined if your system has the function
  getdtablesize().  This function returns the descriptor table size.

Commands available in the Makefiles.

all		- This is the default command.  It will attempt to make
		  the programs in the current directory.

World		- This will make the Makefiles, includes, dependencies,
		  libraries, and programs from the current directory
		  on down.

install		- This will attempt to install the local libraries
		  and programs into their appropriate installation spots.

libs		- This will create the libraries in the current directory
		  and all directories below. Since it is necessary that
		  the library files be in a known location before the
		  compilation of the programs go ahead and install
		  the libraries at this point also.

includes	- This will install any include files from this directory
		  and all directories below into the include directory.
		  This is necessary so we know where the include files
		  are located when compiling the other programs.

progs		- This compiles any programs that are in this directory
		  or below.

Makefiles	- This creates the Makefile in all directories below this
		  one.

depend		- This runs makedepend on the current directory and all
		  sub directories.

clean		- This cleans out all the *.o *~ #* core and a.out files
		  from this directory and below.

localclean	- Cleans out only the local directory of the files
		  mentioned in clean.

veryclean	- This removes the programs and local libraries along
		  with a standard localclean.

localveryclean	- This verycleans the local directory only.

uninstall	- This does a localveryclean and also uninstalls the
		  programs from the BIN_DIR, the local libraries from
		  the LIB_DIR and the include files from the INCLUDE_DIR.

