This set of directories contains source code for a set of programs from 
the JSPC at the University of Colorado in Boulder, Colorado.

The layout of this directory is as follows:

./src			source code 
  ./src/bin		  source code for executable programs
  ./src/lib		  source for libraries

./include		include files for the libraries
./man			man pages for programs and selected library routines
./lib		  	object libraries
./bin		  	executables

The include, man, and lib and bin directories are currently empty,
and can be filled by running "make config" and then "make" in the
current directory.

Every directory under src contains a Makefile which may be used to
generate the binaries.  However, these subsidiary makefiles expect the
environment variable JSPCMAKE to be properly set in order to run.  The
entire set of binaries may be generated by running "make" in the
current directory.

In order to run make below the current directory, however, you must set
an environment variable, JSPCMAKE:

    setenv JSPCMAKE $PWD/include/simplemake

$JSPCMAKE is included into every makefile.

Many of the Makefiles need to know the location of the Open Windows
libraries, and the X libraries.  These locations are defined in
./include/simplemake, and are most easily changed by running "make config".  

Once you have the programs compiled into executables, many programs
will require that the environment variable JSPC be set.  This allows
them to find data files which they may require from the distribution.
You should set JSPC to the current directory:

	setenv JSPC $PWD

You may also need to add the $JSPC/bin directory to your path, and
the $JSPC/man directory to your MANPATH:

	set path=($JSPC/bin $path)
	setenv MANPATH $JSPC/man:$MANPATH

Because the source code is extracted automatically from the development
directories, there will likely be unnecessary test files and programs 
included in the source directories.  While these make the distribution 
file larger, they should not affect the generation of new executables 
on your machine.

IN CASE OF PROBLEMS

These Makefiles and programs have been used largely on Sun SPARC
machines running SunOS 4.1.x.   On other architectures, you will probably 
encounter problems.  Typical problems will be:

    * Some programs require the Open Windows libraries; if you
	don't have them, you may not be able even to compile.

    * Structures or constants may be defined in different include files.

    * The makefiles may be incompatible.  In particular, Sun's make
    	allows a pattern matching substitution like:
    		$(a:%.c=libjunk.a(%.o))
	Many other versions of make do not.  However, the more recent
	versions of GNU make (including at least 3.68) do generally
	work, although there have not been exhaustive tests.

    * Calling conventions between fortran and c may be different.
    	Sun expects that fortran functions will have an extra 
    	underscore "_" appended to the end of the name; IBM, for
    	instance, does not.

    * There has been no attempt to maintain portability across
      different versions of UNIX/POSIX.  This will lead to problems
      especially when reading binary files like SEED volumes or 
      waveform traces on machines with different binary formats
      (like DEC).

If you do have difficulties or solutions, please let us know:

    IRIS Joint Seismic Program Center
    Physics Department
    Campus Box 581 
    University of Colorado 
    Boulder, CO  80309-0581

or send mail to problems@jspc.colorado.edu

