setenv SCH_HOME /usr/my_name/schooner
The environment variable SCH_USER_NAME also needs to be set. It can contain any string the user wishes. However, its value needs to be the same on each machine used in the meta-computation.
The subdirectories here can be grouped into four categories:
schooner
uts
schx
schserver
schc
schf
1.4. Tests
The /src subdirectory contains a small set of tests; hopefully, a somewhat useful subset of the tests used at various times to test Schooner features. To use a test, the `make t#' command is typed, where the `#' is replaced by the number. For example, `make t8' will copy the files needed for test 8 to the /this_test subdirectory. Going there and typing `make' will compile the test. The various .spec files located in /src constitute a good source of examples for writing the UTS specifications used for Schooner. Comments in the Makefile in the /src directory provide indications of how each test should be run and what it tests.
2. Schooner compilation notes
Schooner has been tested on the following architectures:
Sun (various)
SGI (various)
Dec Alpha
IBM RS6000 (various)
IBM SP-2
Intel Paragon
Cray YMP
Convex C240
Sequent Symmetry
Stardent (various)
Vax
This section covers the method of archiving (and unarchiving) the files, and compiling on the various architectures.
2.1. Archiving the Schooner system
The Makefile in the $SCH_HOME directory can be used to create a compressed archive of the Schooner system by typing `make archive' in this directory. The archive will contain all of the source code, and documentation. It should be noted that executing the command to archive the system will result in a `make clean' being performed in all the source code directories. This will remove all object files to make the archive smaller. Transferring this archive to another machine and unarchiving it will result in the creation of the Schooner directory tree. To unarchive the system, execute:
uncompress schooner.tar.Z
tar xovf schooner.tar
If the Makefile for the $SCH_HOME directory is already present, `make unarchive' can be used to unarchive the system.
Note: the IBM RS6000 does not support the `v' option on tar. The Makefile contains a `make IBM.unarchive' for this reason.
2.2. General compilation notes
In general, compilation requires four phases in three places. Typing the make command for the appropriate architecture in the $SCH_HOME directory will work through all phases in the right order. If changes are made in only one or two places, the appropriate make can be performed in the following three places:
For the following systems, typing the appropriate make command in $SCH_HOME will compile the system. The same command can be used in the three sub-directories to compile only those parts:
2.2.1. Standard (Sun) compilation:
The Sun0S 4.x system is the default; thus, typing `make' in the $SCH_HOME directory will make all parts of the Schooner system. For Solaris, type `make Solaris'.
2.2.2. SGI:
The Schooner system is written using K&R C, rather than ANSI standard C. The environment variable SGI_CC will need to be set as follows:
setenv SGI_CC -cckr
If the /bin and /lib directories are not present, they must be created before starting the make process. (If anyone can figure out why the makefiles are unable to create these directories automatically, please let me know!)
Executing a `make SGI' in the $SCH_HOME directory will compile the system. It has been tested under IRIS 4x and 5x.
If the tests in $SCH_HOME/tests/src are to be used on the SGI, there is a small problem that arises when no files are currently present in the $SCH_HOME/tests/this_test directory. The /src makefile automatically attempts to remove all files in the /this_test directory before copying the files for the requested test. If no files are present, SGI machines will issue an error and halt, rather than continuing with copying the desired files. Placing a dummy file in /this_test will avoid the error and allow the copying to proceed.
2.2.3. Dec Alpha:
Executing `make Alpha' in the $SCH_HOME directory will compile the system. We do not have a FORTRAN compiler available on the Dec Alphas in our department; thus, the FORTRAN stub compiler, and test cases involving FORTRAN stubs, may or may not work.
2.2.4. Cray YMP:
Executing a `make Cray' in each of the three directories will correctly compile the various pieces. If the tests in $SCH_HOME/tests/src are to be used on the Cray, the makefiles for tests involving FORTRAN files will need to be edited. The Cray FORTRAN compiler uses a different name. You'll need to comment out the current F77 line and uncomment the Cray F77 line.
2.2.5. Convex:
The Convex does not pass (as far as I've been able to figure out) environment variables into Makefiles. Thus, $SCH_HOME has to be explicitly set in each Makefile. As examples, there are already lines present in the Makefiles for the Convex's at NASA Lewis Research Center and at The University of Arizona. In each of the three Makefiles listed below, uncomment the appropriate $SCH_HOME line (and edit the pathname if different from that listed):
$SCH_HOME/schx/Makefile
$SCH_HOME/schc/Makefile
$SCH_HOME/schf/Makefile
Once this is done, the command `make Convex' can be used to compile the system. There is also a `make Convex.ieee' variation for installations that have the default floating-point format on the Convex set to IEEE rather than the Convex native format. This affects the various floating-point conversion routines in UTS.
If the tests in $SCH_HOME/tests/src are to be used on the Convex, the makefiles will need to be edited to uncomment the appropriate $SCH_HOME line. Also, as in the Cray case, the Convex FORTRAN compiler has a different name. Tests that involve FORTRAN will need the appropriate F77 line uncommented.
2.2.6. Sequent Symmetry:
As in the Convex case, the Sequent makefiles will not understand environment variables passed in from the outside. Thus, the appropriate $SCH_HOME line must be uncommented in each of the following makefiles, and edited as appropriate to set the correct pathname:
$SCH_HOME/schx/Makefile
$SCH_HOME/schc/Makefile
Once this is done, the command `make Sequent' can be used to compile the system.
We do not have a FORTRAN compiler available on the Sequent Symmetry in our department; thus, the FORTRAN stub compiler, and test cases involving FORTRAN stubs, may or may not work.