//
//
// Installation Guide for ATS/Anairiats
//
//

------------------------------------------------------------------------

######
#
# Installation from a precompiled package
#
######

In order to use this approach, which is the simplest, you are required to
have root access. After downloading an approriate precompiled ATS package
for your platform, please untar it in the root directory "/".  Then set the
environment variable ATSHOME to "/usr/share/atshome".

------------------------------------------------------------------------

######
#
# Installation through source code compilation
#
######

The current implementation of ATS is given the name ATS/Anairiats, or
simply Anairiats. It is nearly all written in ATS itself. In order to
install Anairiats, the following requirements need to be met:

  * Operating System requirement:

    * Linux
    * Windows with Cygwin
    * MacOS X (currently no GC support for multithreading)
    * SunOS (currently no GC support for multithreading)

    We plan to port it to other platforms in the future.

  * Programming Language requirement: GNU C Compiler (GCC).

Also, the GMP library (libgmp.a), which is often included in a GNU/Linux
distribution, is currently optional, and it may be required to install a
future release of ATS.

Once these requirements are met, you can readily install Anairiats in 3
steps as describled below:

Step 1: After downloading the tarball ATS.tgz, please untar it in a
directory, say "FOO", of your choice. This, for instance, can be done
by executing the following command:

tar -zvxf ATS.tar.gz 

All the files and directories extracted from the tarball are now in
the directory "FOO/ATS".

Step 2: Please execute the following command

./configure --prefix=DESTDIR

where DESTDIR is the name of the directory where ATS is to be installed.

If the argument [--prefix=DESTDIR] is missing, then the default directory
for installing ATS is "/usr/local".

You can now go into the directory "FOO/ATS" and execute

make all

This generates executables "atscc" and "atsopt" in the directory
"FOO/ATS/bin", which is the command you need for compiling ATS programs,
and a library file "libats.a" in the directory "FOO/ATS/CCOMP/lib", which
you need for linking.

Step 3:

Please make sure that ATSHOME is set to "FOO/ATS", and ATSHOMERELOC is set
to "ATS-x.x.x", where x.x.x is the verison number of ATS package. This
should probably be done by a shell script.

Step 4: Optionally, you can install ATS by executing

make install

If you do so, please set ATSHOME to $DESTDIR/share/ats-anairiats-x.x.x,
which is the name of the directory where ATS is installed. The environment
variable ATSHOMERELOC is still set to "ATS-x.x.x".

Note that the values of ATSHOME and ATSHOMERELOC can also be found in the
files "FOO/ATS/.ATSHOME" and "FOO/ATS/.ATSHOMERELOC", respectively.

------------------------------------------------------------------------

######
#
# Installation through bootstrapping 
#
######

This approach is most suitable for keeping up with the active development
of ATS.

In order to bootstrap ATS/Anairiats, one needs to first check out the
following svn directory and name it as some local directory, say, "FOO":

svn co https://ats-lang.svn.sourceforge.net/svnroot/ats-lang/trunk FOO

Then one needs to check out another svn directory and name it as the local
directory "FOO/bootstrap0":

svn co \
  https://ats-lang.svn.sourceforge.net/svnroot/ats-lang/bootstrap/anairiats \
  FOO/bootstrap0

After this is done, please go into the directory "FOO" and execute the
command 'autoconf' and then do 'make all'.

It is also possible to use the ATS/Geizella compiler (written in Objective
Caml) for bootstrapping ATS/Anairiats. This can be done by checking out the
following svn directory and name it as the local directory
"FOO/bootstrap0":

svn co \
  https://ats-lang.svn.sourceforge.net/svnroot/ats-lang/bootstrap/geizella \
  FOO/bootstrap0

After this is done, please go into the directory "FOO" and execute the
command 'aclocal' and then 'autoconf' and then do 'make all'.

######

------------------------------------------------------------------------

###### end of [INSTALL] ######
