------------------------------------------------------------------------
                        CODE - version 2.2a1
------------------------------------------------------------------------
========================================================================
           Copyright (c) 1997  The University of Texas at Austin
========================================================================

INTRODUCTION

CODE is a visual parallel programming system, allowing users to compose
sequential programs into a parallel one. The parallel program is a
directed graph, where data flows on arcs connecting the nodes
representing the sequential programs. The sequential programs may be
written in any language, and CODE will produce parallel programs for a
variety of architectures, as its model is architecture-independent.

The CODE web site always points to the most recent version
as well as any news:

	http://www.cs.utexas.edu/users/code/

There is also a mailing list for CODE-related issues:

	code@makelist.com



INSTALLATION

  0) If you are building CODE from scratch, you will first need to
     build and install [incr Tcl] and Tix. Both of these are available
     off of the CODE download page, or at:

	*   [incr Tcl] home page:	http://www.tcltk.com/itcl/
	*   Tix home page: 		http://www.xpi.com/tix/

      Install [incr Tcl] first, then Tix. Remember to do "make
      install" in the Tix directory _and_ the itcl2.2 directory.

  1)  Obtain the distribution from the CODE web page:

	http://www.cs.utexas.edu/users/code/


  2)  Uncompress and untar the distribution:

        gunzip code2.2a3.tar.gz
        tar xvf code2.2a3.tar


  3)  Run the configuration script. The arguments below for -with-itcl
      and with-Tix must point to the directories where those two packages
      were installed (not built):

        cd code2.2a3
        ./configure --with-itcl=/usr/local --with-Tix=/usr/local

      or, for systems that don't recognize "#!" in shell scripts:

        cd code2.2a3
        /bin/sh ./configure --with-itcl=/usr/local --with-Tix=/usr/local

      The "configure" script finds the appropriate compiler flags and
      generates new Makefiles from template files (Makefile.in and
      make.defs.in).

      By default, the configuration script will set things up so
      that everything is installed in "/usr/local".  You can change
      this by specifying a different "prefix" in the "configure" command:

        ./configure --prefix=/your/install/path ...


  4)  Build the libraries and the executables.  From the toplevel
      directory type:

        make all

      You will unfortunately probably have to rename the Tix and
      [incr Tcl] libraries and include directories. For some reason,
      the current installers name these with their full version
      numbers, as in "libtix4.1.005.a". You will have to change these
      (or make symlinks) to "libtix.a", etc. Also, Tix creates a
      directory with a version number attached (like "tix4.1");
      change this to "tix".


  5)  Install the libraries and executables.
      From the toplevel directory type:

        make install


  6)  Use the final product.  This distribution creates and installs
      the executable "code", two library files, libcode_serial.a
      and libcode_unified.a, and a directory "CODE" under lib.
      You may need to set the CODE_LIBRARY environment variable
      (see below) and the following [incr Tcl]/Tix variables like
      this:

	setenv TCL_LIBRARY  /usr/local/lib/itcl/tcl7.6
	setenv TK_LIBRARY   /usr/local/lib/itcl/tk4.2
	setenv ITCL_LIBRARY /usr/local/lib/itcl/itcl2.2
	setenv ITK_LIBRARY  /usr/local/lib/itcl/itk2.2
	setenv IWIDGETS_LIBRARY /usr/local/lib/itcl/iwidgets2.2.0
	setenv TIX_LIBRARY  /usr/local/lib/tix

      If you have installed in the default location (/usr/local),
      you shouldn't have to set any of these.


RUNNING CODE PROGRAMS

To execute CODE programs, you may need to set the
environment variable CODE_LIBRARY to point to CODE's installation
directory (if it is different from the default of /usr/local/lib/CODE).
Put a line like this in your .cshrc file:

	setenv CODE_LIBRARY /home/someone/local/lib/CODE

(CODE's installation script will tell you what it should be set to.)

You may also need to modify the LD_LIBRARY_PATH or LIBRARY_PATH
environment variables to include the path the CODE libraries, as in:

	setenv LIBRARY_PATH /usr/local/lib:$LIBRARY_PATH

(Use LIBRARY_PATH if you are using the GNU compilers;
 use LD_LIBRARY_PATH otherwise.)

When you compile a CODE program (say, foo.code) for a particular
architecture, a directory is created in the current working directory 
called "foo.arch", where arch is replaced by the name of the
target. This directory contains a number of .c and .h files as well
as a Makefile. If your program depends on any external programs, these
must be copied into the directory. To build the program, change into
the directory and type "make". The program will then be compiled; the
executable will be called "foo".

The serial and unified architecture libraries are automatically created
when you install CODE. Before compiling for any of the other targets, you
need to compile the appropriate runtime libraries. These are located
in $CODE_LIBRARY/runtime. Change to the appropriate directory, type
"./configure" to set up the Makefile, and then type "make", then
"make install".



CREDITS

The CODE project has been ongoing for over a decade under the
guidance of Dr. J. C. Browne. The CODE 2 system was originally
designed by Peter Newton and the first version of the PVM backend was
written by Rajeev Vokkarne. Other enhancements were made by Brian West.
Everything else (including the unified, MPI and PVM2 runtimes and
backends and the user interface) was written by Emery Berger. The CODE
logo was designed by Emery Berger and drawn and rendered by Doug Berger.
The design of the user interface and other aspects of the CODE program
were greatly aided by valuable input from Ajita John and Dwip Banerjee.

For additional information about CODE, please visit the CODE home page:

	http://www.cs.utexas.edu/users/code/

--
Emery Berger                           | Parallel Programming Group
emery@cs.utexas.edu                    | Dept. of Computer Sciences
<http://www.cs.utexas.edu/users/emery> | University of Texas at Austin

========================================================================
  @(#) $Id: README,v 1.18 1998/06/01 18:05:14 emery Exp $
========================================================================
