Twelf
Copyright (C) 1997, 1998, Frank Pfenning and Carsten Schuermann


Installation Instructions
=========================

These instructions apply to Unix or Windows 95/98/NT when compiling the
sources directly.  For Windows 95/98/NT there is also a self-extracting
EXE file with a much simpler installation procedure, but for the Twelf
Server only.

Installation requires Standard ML, Revision of 1997.
The Twelf Server requires SML of New Jersey.

If it is not installed already, please check

 SML of New Jersey [free]
    http://cm.bell-labs.com/cm/cs/what/smlnj/index.html
    (version 110 or higher)

 MLWorks [commercial]
    http://www.harlequin.com/products/ads/ml/ml.html



Platforms
=========

Twelf can be installed on different platforms, such as
Unix or Windows 95/98/NT.  Note that these instructions 
are for SML of New Jersey, version 110 or higher.

Twelf can be installed as 

  Twelf-Server   (a stand-alone version to be used primarily within Emacs)

and

  Twelf-SML      (a version embedded into SML)


Instead of compiling Twelf for the Windows 95/98/NT family of
operating systems, we recommend instead to use the precompiled version
which is available from the Twelf homepage at

  http://www.cs.cmu.edu/~twelf/dist/twelf-1-2.exe


Unix Installation:
------------------

  Step 0: Select directory/Unpack Twelf distribution

    First select a directory where you want Twelf to reside. Note that
    the Twelf installation cannot be moved after it has been compiled
    with make, since absolute pathnames are built into the executable
    scripts.  If you install Twelf as root, a suitable directory would
    be

		/usr/local/lib

    but any other directory will work, too, as long it does not contain
    any whitespace characters. Since the distribution
    is unpacked into a subdirectory called `twelf' you should make
    sure such a directory does not already exist.

    Unpack the distribution in this directory: 	
    ( % is assumed to be the shell prompt.) 

	  % gunzip twelf-1-2.tar.gz
	  % tar -xf twelf-1-2.tar
	  % cd twelf


  Step 1: Compile Twelf

    You may need to edit the file Makefile to give the proper 
    location for sml-cm (SML of New Jersey with the compilation manager
    pre-loaded).

    Twelf-Server: [Standard]

	If you would like to build the Twelf server, whose primary use
	is as an inferior process to Emacs, call

	  % make

        This builds the Twelf server for your current architecture 
	and makes it accessible as  bin/twelf-server. It also 
	installs the Twelf Emacs interface, but you must add a line	

	  (load "<directory>/emacs/twelf-init.el")

	into your .emacs file, where <directory> is the root directory
	into which you installed Twelf.

        To test whether the binary has been created properly, try

	  % bin/twelf-server

        in the Twelf root directory.

    Twelf-SML: 
	
	If you would like to use Twelf as a structure in SML, you 
	can then call

	  % make twelf-sml

	in the root directory into which you installed Twelf.
	This creates bin/twelf-sml. 

    Complete installation:

	If you would like to install the Twelf-Server and Twelf-SML,
	you can then call

	  % make all

        This builds both the Twelf-Server and Twelf-SML for your current
        architecture and makes them accessible as bin/twelf-server and
        bin/twelf-sml, respectively.  It also installs the Twelf Emacs
        interface, but, as above, you must add a line

	  (load "<directory>/emacs/twelf-init.el")

	into your .emacs file, where <directory> is the root directory
	into which you installed Twelf.

  Step 2:  Removing temporary files

	The installation of the Twelf-Server and Twelf-SML creates
	various temporary files, which should be removed after a
	successful installation with

	  % make clean



Windows 95/98/NT Installation:
------------------------------

  For the Windows 95/98/NT family of operating systems, we recommend the
  precompiled version of the Twelf server which is available from the
  Twelf homepage at

        http://www.cs.cmu.edu/~twelf/dist/twelf-1-2.exe

  which is a self-installing EXE file.

  NOTE: In order to run the provided examples, you must install Twelf
  into a directory without spaces in its name.

  If you want to instead compile Twelf for Windows 95/98/NT yourself, it
  is required that you also have gunzip.exe, tar.exe, make.exe and
  sed.exe on the path.  These tools are publically available from

	ftp://microlib.cc.utexas.edu/microlib/nt/gnu/gnu-bin.tar.Z

  Twelf has been tested to work with NTEmacs which is freely 
  available from the 

     University of Washington:
 	ftp://ftp.cs.washington.edu/pub/ntemacs

       
  Step 0: Select directory/Unpack Twelf distribution

    First select a directory where you want Twelf to reside. Note that
    the Twelf installation cannot be moved after it has been compiled
    with make, since absolute pathnames are built into the executable
    scripts.  If you install Twelf as root, a suitable directory would
    be

		C:\

    but any other directory will work, too, as long as it does not
    contain any whitespace characters. Since the distribution
    is unpacked into a subdirectory called `twelf' you should make
    sure such a directory does not already exist.

    Unpack the distribution in this directory 
	
	C:> gunzip twelf.tar.gz
	C:> tar xvf twelf.tar

    then

	C:> cd twelf

    You must then edit the file Makefile.NT to give the proper location
    for sml-cm, and the root directory into which you unpacked Twelf
    (in our example set the variable "twelfdir" to c:\twelf).


  Step 1: Compile Twelf

    Twelf-Server: [Standard]
	
	If you would like to build the Twelf server, whose primary use
	is as an inferior process to Emacs, call

	  C:> make -f Makefile.NT

        This builds the Twelf server for your current architecture 
	and makes it accessible as  bin\twelf-server.bat. It also 
	installs the Twelf Emacs interface, but you must add a line	

	  (load "<directory>/emacs/twelf-init.el")

	into your C:\_emacs file, where <directory> is the root directory
	into which you installed Twelf, using slashes instead of 
	backslashes for the path. 

        To test whether the binary has been created properly, try

	  C:> bin\twelf-server

        in the Twelf root directory.

    Twelf-SML: 
	
	If you would like to use Twelf as a structure in SML, you 
	can then call

	  C:> make twelf-sml -f Makefile.NT

	in the root directory into which you installed Twelf.
	This  creates  bin\twelf-sml.bat. 

    Complete installation:

	If you would like to install the Twelf-Server and Twelf-SML,
	you can then call

	  C:> make all -f Makefile.NT

        This builds both the Twelf-Server and Twelf-SML for your current
        architecture and makes them accessible as bin\twelf-server.bat
        and bin\twelf-sml, respectively.  It also installs the Twelf
        Emacs interface, but, as above, you must add a line

	  (load "<directory>/emacs/twelf-init.el")

	into your C:\_emacs file, where <directory> is the root directory
	into which you installed Twelf, using slashes instead of 
	backslashes for the path.

  Step 2:  Removing temporary files
	
	The installation of the Twelf-Server and Twelf-SML creates
	various temporary files, which should be removed after a 
	successful installation with

	  C:> make clean -f Makefile.NT
