[XGAP] 3 Installing XGAP

[Up] [Previous] [Next] [Index]

# 3 Installing XGAP

### Sections

1. Overview
2. What you need to install XGAP
3. Getting and unpacking the sources
4. Configuring and Compiling the C part
5. Installing the Startup Script
6. Installing in a different than the standard location

Installing XGAP should be easy once you have installed GAP itself. We assume here that you want to install XGAP in its standard location, which is in the ``pkg'' subdirectory of the main GAP4 installation.

## 3.1 Overview

You have to perform the following steps to install XGAP:

--
  Get the sources
--
  Unpack the sources with the unzoo utility
--
  Use the configure script to adjust everything to your specific system
--
  Compile the C part of XGAP
--
  Edit a certain startup script (if necessary) and install it in an executable location in your system

## 3.2 What you need to install XGAP

Being a graphical user interface to GAP, XGAP of course needs graphics. At the moment this means that you need the X window system in the Version 11 Release 5 or newer. So you cannot use XGAP on a Macintosh or a Microsoft Windows computer. On the other hand the type of Unix you use should not matter. Please contact Max Neunhöffer (email: `max.neunhoeffer@math.rwth-aachen.de`) or post to the gap-trouble mailing list, if you encounter problems with certain system configurations.

Because XGAP contains a C-part you need a C compiler.

## 3.3 Getting and unpacking the sources

You can download the sources from the same places as GAP. So the main FTP servers are:

    ftp://ftp-gap.dcs.st-and.ac.uk/pub/gap/gap4/
    ftp://ftp.math.rwth-aachen.de/pub/gap4/
    ftp://ftp.ccs.neu.edu/pub/mirrors/ftp-gap.dcs.st-and.ac.uk/pub/gap/gap4/
    ftp://pell.anu.edu.au/pub/algebra/gap4/

You need only one file with the name ``xgap4r11.zoo'' which is in the subdirectory for the share packages. When you installed GAP you used the utility unzoo to unpack the distribution. You will need this here again. See the GAP-manual for instructions on how to get and compile this. You now change your current directory to the `pkg` subdirectory of the location where you installed GAP (you typed an unzoo-command, then a new directory called ``gap4'' or something like that was created, this directory contains the `pkg` subdirectory). The standard location would be:

    # cd /usr/local/lib/gap4/pkg

Now you extract the sources for the XGAP share package:

    # unzoo -x xgap4r11.zoo
    xgap/README     -- extracted as text
    xgap/Makefile.in        -- extracted as text
    xgap/configure  -- extracted as text
    xgap/configure.in       -- extracted as text
    xgap/init.g     -- extracted as text
    xgap/cnf/Makefile       -- extracted as text
    xgap/cnf/Makegap.in     -- extracted as text
    xgap/cnf/Makegap.top    -- extracted as text
    xgap/cnf/config.hin     -- extracted as text
    xgap/cnf/configure.in   -- extracted as text
    xgap/cnf/configure.out  -- extracted as text
    xgap/doc/answers.tex    -- extracted as text
    xgap/doc/diffgap3.tex   -- extracted as text
    /bin/mkdir: cannot make directory `xgap': File exists
    ...

Note that the warning is not serious.

The unzoo utility unpacks the files and stores them into the apropriate subdirectories. XGAP resides completely in the following subdirectory (assuming standard location):

    /usr/local/lib/gap4/pkg/xgap

## 3.4 Configuring and Compiling the C part

You have to change your current working directory to the ``xgap'' subdirectory. You do this by

    # cd xgap

if your current working directory is the one, where you used unzoo. There you invoke the configure script by:

    # ./configure
    creating cache ./config.cache
    checking for make... make
    checking host system type... i686-unknown-linux2.0.34
    checking target system type... i686-unknown-linux2.0.34
    checking build system type... i686-unknown-linux2.0.34
    checking for gcc... gcc
    checking whether the C compiler (gcc  ) works... yes
    checking whether the C compiler (gcc  ) is a cross-compiler... no
    checking whether we are using GNU C... yes
    ...
    updating cache ./config.cache
    creating ./config.status
    creating Makefile
    creating xgap.sh

¼ indicate omissions. This script tries to determine, which kind of operating system and libraries you have installed and configures the source accordingly. Normally this should produce some output but no error messages. The last step of the script produces some makefiles which are used to compile the code. You do this by typing

    # make
    if test ! -d bin;  then mkdir bin;  fi
    if test ! -d bin/i686-unknown-linux2.0.34-gcc; \ # line broken for this manual!
                    then mkdir bin/i686-unknown-linux2.0.34-gcc;  fi
    cp cnf/configure.out bin/i686-unknown-linux2.0.34-gcc/configure
    ( cd bin/i686-unknown-linux2.0.34-gcc ; CC=gcc \ # line broken for this manual!
                    ./configure --target=i686-unknown-linux2.0.34  )
    creating cache ./config.cache
    checking for gcc... gcc
    checking whether the C compiler (gcc  ) works... yes
    checking whether the C compiler (gcc  ) is a cross-compiler... no
    checking whether we are using GNU C... yes
    ...
    creating ./config.status
    creating Makefile
    creating config.h
    make[1]: Entering directory \                   # line broken for this manual!
         `/usr/local/lib/gap4/pkg/xgap/bin/i686-unknown-linux2.0.34-gcc'
    gcc -I. -g -O2 -I/usr/X11R6/include  -o xcmds.o -c ../../src.x11/xcmds.c
    gcc -I. -g -O2 -I/usr/X11R6/include  -o utils.o -c ../../src.x11/utils.c
    ...
    make[1]: Leaving directory \                    # line broken for this manual!
         `/usr/local/lib/gap4/pkg/xgap/bin/i686-unknown-linux2.0.34-gcc'

(a few lines were broken for typesetting purposes in this manual, the position is marked by a backslash)

Now all C sources are compiled and a binary executable is built. It is stored in a subdirectory of the ``bin'' subdirectory in your ``xgap'' directory. The name of this location has something to do with your installation. It could for example be

    bin/i686-unknown-linux2.0.34-gcc/xgap

if you compile on a Linux system using the GNU-C-Compiler.

## 3.5 Installing the Startup Script

To make the startup of XGAP more convenient there is a startup script which contains also some configuration information like the position of your GAP installation. It is in the ``xgap'' directory and is called ``xgap.sh''. This file is automatically generated by the `configure` script and normally you should not have to change anything in it. Just copy it to some location that people have in their ``PATH'' environment variable, for example to ``/usr/local/bin''. This completes the installation.

If you want to change anything in the installation, you can also edit the script until the line

    ##  STOP EDITING HERE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

You can specify the directory where GAP is installed (``GAP_DIR''), the amount of memory that GAP should use as initial workspace (``GAP_MEM''), the name of the GAP-executable (``GAP_PRG'') and the name of the XGAP-executable (``XGAP_PRG''). The first three are exactly the same things that you could edit in the main GAP startup script. After that you have the possibility to control the behaviour of the XGAP startup script. You can specify whether XGAP goes into the background (``DAEMON'') and whether it prints out information about its parameters (``VERBOSE''). Note that it is possible to combine ``DAEMON=YES'' and ``VERBOSE=YES'' because the script actually runs in the foreground and only the C program is put into the background.

## 3.6 Installing in a different than the standard location

It could happen that you do not want to install XGAP in its standard location, perhaps because you do not want to bother your system administrator and have no access to the GAP directory. In this case you can unpack XGAP in any other location within a ``pkg'' directory with the unzoo command as described above. Let us call this directory ``pkg'' for the moment. You get an ``xgap'' subdirectory with all the files of XGAP in it. You follow the standard procedure with two exceptions:

Before you can configure and compile XGAP you need a symbolic link ``cnf'' which is in the directory where ``pkg'' is and points to the ``cnf'' directory in the main GAP directory. You can install this link directly after unzooing by (remember: you are in the ``pkg'' directory!):

    ln -s /usr/local/lib/gap4/cnf ..

if ``/usr/local/lib/gap4'' is the location of the main GAP installation.

You can find out where the main GAP4 installation is by starting GAP as usual and looking at the variable `GAP_ROOT_PATHS` within GAP.

Note that you have to edit the startup script ``xgap.sh'' (see previous section) to adjust the paths for ``XGAP_DIR'' and ``GAP_DIR'', and possibly the name of the GAP executable ``GAP_PRG''. Enter your GAP installation directory for the variable ``GAP_DIR'' and the name of the directory that contains ``pkg'' for the variable ``XGAP_DIR''. The variable ``GAP_PRG'' has to contain the path to the GAP executable relative to the ``bin'' subdirectory of the main GAP installation. In most cases this value will already be correct. Note however that if GAP and XGAP are compiled on different machines, then it is possible that these directory names differ for the GAP and XGAP executables respectively.

The script will automatically launch GAP with two directories as library path such that all GAP and XGAP libraries will be found.

[Up] [Previous] [Next] [Index]