Getting and Building the Hol98 system.
--------------------------------------

The sources for the Hol98 system are available by WWW from

     http://www.cl.cam.ac.uk/ftp/hvg/hol98/hol98.tar.gz


Once you have hol98.tar.gz, it can be unpacked by

     gunzip hol98.tar.gz; tar xf hol98.tar

When fully built, the Hol98 distribution takes approximately 65M, so be
sure you have enough disk space.


Requirements.
-------------

MoscowML is the principal requirement for building Hol98. Large parts of
Hol98 can be built and run with only this as a platform. Currently
however, the full functionality of the system also requires the "flex"
and "gnumake" programs. The C source code for flex and gnumake can be
downloaded from 

    ftp://prep.ai.mit.edu/pub/gnu

You should first check your system to see if these programs are already
available. Note: the version of gnumake must be 3.75 or greater. The
version number can be found by invoking

    gnumake -v.

Other names for gnumake are `gmake' and, on Linux, `make'.


Building the Hol98 system.
--------------------------

A. Hol98 requires an installation of MoscowML (version 1.43 or greater).
   Currently, you MUST have a MoscowML distribution built from the
   MoscowML source version supplied at

       ftp://ftp.dina.kvl.dk/pub/mosml/mos14src.tar.gz

   NO OTHER WILL DO! ACCEPT NO SUBSTITUTES! If you are at all unsure,
   just pick it up and build it: it is very easy (and small).


B. The Hol98 distribution unpacks into a directory called hol98. Go into
   this directory and perform the following 2 shell commands:

       bin/install <mosml-dir> <hol-dir> <gnumake-path>
       make

   In the first command, all pathnames must be absolute. No pathname
   should end in a slash (/). The first two paths are to the
   distribution directories of MoscowML and Hol98, respectively. The
   final argument is the path to the gnumake executable.

   Example install (this will not work without editing for your site!)
   -------------------------------------------------------------------

       bin/install /home/kxs/mosml /home/kxs/hol98 `which gnumake`
       make


Dealing with failure.
---------------------

* If your Hol98 build fails after a long time with an error message
  such as the following:
       .
       .
     Compiling Parser.sig
     File "Parser.sig", line 65, characters 15-35:
     !   | QUAL_ID of Const.QualifiedIdent
     !                ^^^^^^^^^^^^^^^^^^^^
     ! Cannot find file Const.ui
         .
         .
  then you are not using the right version of MoscowML. Go to step A.

* If a build attempt (install plus make, as above) fails for some
  reason, you should invoke 

     make cleanAll

  before a new build attempt.


Dealing with success.
---------------------

That's it. Once the installation has been performed, a standard Hol98
interactive system can be accessed through <holdir>/bin/hol. Holmake can
be accessed through <holdir>/bin/Holmake. A user manual for the system
can be found in <holdir>/doc/man.ps. Some examples of the use of the
system can be found in the examples directory.

For users of the `` ... `` syntax handled by Richard Boulton's quotation
preprocessor, the system provides

    bin/hol.enquote
    bin/Holmake.enquote

which are exactly like bin/hol and bin/Holmake, except that all of their
input is first sent through Boulton's quotation preprocessor.
