
This file describes the installation 
of the CCSL compiler version 2.2.6.

######################################################################
# $Id: INSTALL.in,v 1.3 2003/08/21 16:38:30 tews Exp $
######################################################################


SYSTEM REQUIREMENTS

The CCSL compiler should run on any platform that is supported by
ocaml. That is, on any POSIX-compliant system as well as on MS
Windows and on the Macintosh, see
http://caml.inria.fr/ocaml/portability.html for details. I have
tested it on Linux (Debian and RedHat) and on SunOS 5.6. If you
compile it on any other platform, please drop me a note. 


PREREQUISITES

you need:
   - GNU make, available at http://www.gnu.org/software/make/
   - ocaml, available at http://caml.inria.fr/ocaml/
     (ocaml version 3.x is sufficient)
   - either PVS or Isabelle/HOL,
	PVS is available at http://pvs.csl.sri.com/
	Isabelle is available at http://isabelle.in.tum.de/

   Strictly speaking neither PVS nor Isabelle/HOL are necessary
   to run the CCSL compiler. But the compiler will be pretty much
   useless without one of the theorem provers.


INSTALLATION INSTRUCTIONS

1. untar the sources

   zcat ccsl-2.2.6.tar.gz | tar -xf -

   or

   tar -xzf ccsl-2.2.6.tar.gz

2. configure the sources, start

   cd ccsl-2.2.6
   ./configure

   This checks for ocaml and sets the installation directory. 
   The "configure" script accepts the following parameters:

   --bindir=DIR                           (default /usr/local/bin)
	sets the directory where the compiler will be installed.

   --elibdir=DIR                   (default /usr/local/share/emacs/site-lisp)
	sets the directory for the emacs lisp files for the CCSL Emacs mode

   --mandir=DIR                           (default /usr/local/man)
	directory for the man page

   --prefix=PREFIX                        (default /usr/local)
	Set the prefix for --bindir, and --mandir.
	--prefix=DIR is equivalent to
	--bindir=DIR/bin --mandir=DIR/man \
	--elibdir=DIR/share/emacs/site-lisp

   --ocamlbindir=DIR                      (default empty)
	Use this option only if ocamlc is not found in your path, 
	or if the ocaml found in the path is not the right one.

   --help
	prints usage information

   
   In case the "configure" script fails:
    - edit the top section of ccsl-2.2.6/Makefile. 
    - copy Doc/ccslc.1.in to Doc/ccslc.1 and substitute the PVS
      library directory for the string "@mllibdir@".
   
   [
    Why is configuration neccessary?

    Configuration is not really necessary. It used to be back 
    in those days when CCSL used an external PVS library. 
    Configuration will speed up configuration if you have ocamlc.opt 
    available.
   ]

4. compile

   make all

   This creates the CCSL compiler ccslc in subdirectory Ccsl. 
   Run it like
   
     Ccsl/ccslc your-specification.beh

5. (optional) If your system supports the ocaml native
   code compiler you can built the optimised CCSL compiler
   ccslc.opt via

   make opt


6. Install

   make install


   Installation creates the following files:

   in directory BINDIR

      ccslc
      ccslc.opt

   in directory ELIBDIR

      ccsl-mode.el
      loop-compile.el


7. (recommended for emacs users) configure the ccsl emacs mode:

  Add the following lines to your ~/.emacs. Substitute the correct 
  location of the emacs lisp files if you changed the default location
  /usr/local/share/emacs/site-lisp.

  ;; Extend `load-path' 
  (setq load-path
    (cons "/usr/local/share/emacs/site-lisp" load-path))

  ;; Setup autoloading the `ccsl-mode'.
  (setq auto-mode-alist
    (cons '("\\.beh\\'" . ccsl-mode) auto-mode-alist))

  (autoload 'ccsl-mode "ccsl-mode"
    "Major mode for editing ccsl." t nil)

   