The ANU Sq is written in C and the package can only be installed under UNIX. It has been tested on DECstation running Ultrix, a HP 9000/700 and HP 9000/800 running HP-UX, a MIPS running RISC/os Berkeley, a PC running NnetBSD 0.9, and SUNs running SunOS.
It requires Steve Linton's vector enumerator (either as standalone or as GAP share library). Make sure that it is installed before trying to install the ANU Sq.
If you have a complete binary and source distribution for your machine, nothing has to be done if you want to use the ANU Sq for a single architecture. If you want to use the ANU Sq for machines with different architectures skip the extraction and compilation part of this section and proceed with the creation of shell scripts described below.
If you have a complete source distribution, skip the extraction part of this section and proceed with the compilation part below.
In the example we will assume that you, as user gap
, are installing the
ANU Sq package for use by several users on a network of two DECstations,
called bert
and tiffy
, and a Sun running SunOS 5.3, called
galois
. We assume that GAP is also installed on these machines
following the instructions given in Installation of GAP for UNIX.
Note that certain parts of the output in the examples should only be taken as rough outline, especially file sizes and file dates are not to be taken literally.
First of all you have to get the file anusq.zoo
(see Getting GAP).
Then you must locate the GAP directory containing lib/
and doc/
,
this is usually gap3r4p0
where 0
is to be replaced by the current
patch level.
gap@tiffy:~ > ls -l drwxr-xr-x 11 gap 1024 Nov 8 1991 gap3r4p0 -rw-r--r-- 1 gap 360891 Dec 27 15:16 anusq.zoo gap@tiffy:~ > ls -l gap3r4p0 drwxr-xr-x 2 gap 3072 Nov 26 11:53 doc drwxr-xr-x 2 gap 1024 Nov 8 1991 grp drwxr-xr-x 2 gap 2048 Nov 26 09:42 lib drwxr-xr-x 2 gap 2048 Nov 26 09:42 pkg drwxr-xr-x 2 gap 2048 Nov 26 09:42 src drwxr-xr-x 2 gap 1024 Nov 26 09:42 tst
Unpack the package using unzoo
(see Installation of GAP for UNIX).
Note that you must be in the directory containing gap3r4p0
to unpack
the files. After you have unpacked the source you may remove the
archive-file.
gap@tiffy:~ > unzoo x anusq gap@tiffy:~ > cd gap3r4p0/pkg/anusq gap@tiffy:../anusq> ls -l -rw-r--r-- 1 gap 5232 Apr 10 12:40 Makefile -rw-r--r-- 1 gap 13626 Mar 28 16:31 README drwxr-xr-x 2 gap 512 Apr 10 13:30 bin drwxr-xr-x 2 gap 512 Apr 9 20:28 examples drwxr-xr-x 2 gap 512 Apr 10 14:22 gap -rw-r--r-- 1 gap 5272 Apr 10 13:34 init.g drwxr-xr-x 2 gap 1024 Apr 10 13:41 src -rwxr-xr-x 1 gap 525 Mar 28 15:50 testSq
Typing make
will produce a list of possible target.
gap@tiffy:../anusq > make usage: 'make <target> EXT=<ext>' where <target> is one of 'bsd-gcc' for Berkeley UNIX with GNU cc 2 'bsd-cc' for Berkeley UNIX with cc 'usg-gcc' for System V UNIX with cc 'usg-cc' for System V UNIX with cc 'clean' remove all created fileswhere <ext> should be a sensible extension, i.e., 'EXT=-sun-sparc-sunos' for SUN 4 or 'EXT=' if the SQ only runs on a single architecture
additional C compiler and linker flags can be passed with 'make <target> COPTS=<compiler-opts> LOPTS=<linker-opts>', i.e., 'make bsd-cc COPTS="-DTAILS -DCOLLECT"', see the README file for details on TAILS and COLLECT.
set ME if the vector enumerator is not started with the command '`pwd`/../ve/bin/me', i.e., 'make bsd-cc ME=/home/ve/bin/me'.
Select the target you need. The DECstations are running Ultrix, so we
chose bsd-gcc
.
gap@tiffy:../anusq > make bsd-gcc EXT=-dec-mips-ultrix # you will see a lot of messages
Now repeat the compilation for the Sun run SunOS 5.3. Do not forget to clean up.
gap@tiffy:../anusq > rlogin galois gap@galois:~ > cd gap3r4p0/pkg/anusq gap@galois:../anusq > make clean gap@galois:../src > make usg-cc EXT=-sun-sparc-sunos # you will see a lot of messages and a few warnings gap@galois:../anusq > exit gap@tiffy:../anusq >
Switch into the subdirectory bin/
and create a script which will call
the correct binary for each machine. A skeleton shell script is provided
in bin/Sq.sh
.
gap@tiffy:../anusq > cd bin gap@tiffy:../bin > cat > sq#
!/bin/csh switch ( `hostname` ) case 'tiffy': exec $0-dec-mips-ultrix $* ; breaksw ; case 'bert': setenv ANUSQ_ME_EXEC /rem/tiffy/usr/local/bin/me ; exec $0-dec-mips-ultrix $* ; breaksw ; case 'galois': exec $0-sun-sparc-sunos $* ; breaksw ; default: echo "sq: sorry, no executable exists for this machine" ; breaksw ; endswctr-
D
gap@tiffy:../bin > chmod 755 Sq gap@tiffy:../bin > cd ..
Now it is time to test the installation. The first test will only test the ANU Sq.
gap@tiffy:../anusq > ./testSq Testing examples/grp1.fp . . . . . . . . succeeded Testing examples/grp2.fp . . . . . . . . succeeded Testing examples/grp3.fp . . . . . . . . succeeded
If there is a problem and you get an error message saying me not found
,
set the environment variable ANUSQ_ME_EXEC
to the module enumerator
executable and try again.
The second test will test the link between GAP and the ANU Sq. If everything goes well you should not see any message.
gap@tiffy:../anusq > gap -b gap> RequirePackage( "anusq" ); gap> ReadTest( "gap/test1.tst" ); gap>
You may now repeat the tests for the other machines.
GAP 3.4.4