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 files
where <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 ;
endsw
ctr-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