%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Chapter{Installation}

This package must be installed in the `pkg' subdirectory of any of
the {\GAP} 4 root directories. We assume here that this is `/gap4/pkg'.

\begintt
cd /gap4/pkg
tar zpxf carat-2.1.6.tar.gz
\endtt

This creates a subdirectory `carat', the home directory of the present
interface package. {\CARAT} itself can be installed anywhere on your 
system. You only have to make sure {\GAP} finds the {\CARAT} binaries, 
by making a symbolic link from the `bin' subdirectory in `pkg/carat' to 
the `bin' subdirectory of {\CARAT} itself. In our example, we install 
{\CARAT} in `/gap4/pkg/carat' (the {\CARAT} tar file should already be 
there):

\begintt
cd /gap4/pkg/carat
zcat carat-2.1b1.tgz || tar pxf -
ln -s carat-2.1b1/bin bin
cd carat-2.1b1
\endtt

This creates a subdirectory `carat-2.1b1', the {\CARAT} top level directory. 
For the compilation of {\CARAT}, you have to set the variable `TOPDIR' to the 
full path of this new directory, possibly along with new values for `CC' and 
`CFLAGS'. You can do this either in the `Makefile', or directly on the command 
line:

\begintt
make TOPDIR=`pwd`
chmod -R a+rX .
\endtt

If you build for more than one architecture, make sure to do a 
'make clean' in between.

You now have to check which subdirectory containing the CARAT 
binaries has been created in the bin directory. The name of this
subdirectory must be the same as that in the main GAP bin directory,
'/gap4/bin'. If the names differ, you might have to add a symbolic
link to correct this. For instance, if the {\CARAT} bin directory
contains `x86_64-pc-linux-gnu', but in the GAP bin directory, you find 
`x86_64-pc-linux-gnu-gcc-default32', you would have to do this:

\begintt
cd bin
ln -s x86_64-pc-linux-gnu x86_64-pc-linux-gnu-gcc-default32
ln -s x86_64-pc-linux-gnu x86_64-pc-linux-gnu-gcc-default64
\endtt

You can use one installation of {\CARAT} for both 32bit and 64bit gap.

Like any other {\GAP} 4 package, {\CARAT} is then loaded in {\GAP} with

\beginexample
gap> LoadPackage("carat");
true
\endexample

This package, together with {\CARAT} itself, takes some 208Mb of disk space,
or more, depending on the system. Some 170Mb is taken by the catalog
of Q-classes if integer matrix groups up to dimension 6. If you want
to avoid unpacking this catalog, you can create empty subdirectories

\begintt
cd /gap4/pkg/carat/carat-2.1b1
mkdir tables
mkdir tables/qcatalog
\endtt

before making {\CARAT}. If you want to unpack the catalog later, just
remove the empty directory `tables/qcatalog', and do

\begintt
make Qcatalog
\endtt

