
    FreePOOMA Version 2.4.1 build and installation instructions
    -----------------------------------------------------------


FreePOOMA requires an ISO C++ conforming compiler and standard library.
The GCC (Gnu Compiler Collection) version 3.3 and up and EDG based
compilers are an example.


The FreePOOMA build system generally expects a UNIX like environment.
Especially FreePOOMA build system requires GNU Make (version 3.74 or
later), Perl (version 5 or later), and makedepend.  GNU Make is
assumed to be found under the name "gmake" or "make" and must be in
your path.  If GNU Make is installed under a different name, edit the
"configure" script at the top level of the pooma build tree and change
the line that says

$makecmd         = make

to the name of your make program.



FreePOOMA can be compiled with one or more optional packages. The
currently available optional packages are:

	o Cheetah, for message passing or shared memory parallelism


FreePOOMA uses the perl script called configure at the top level to
set the configuration for a particular system.  You can configure FreePOOMA for
multiple systems and options and they will coexist in separate "suite"
directories.  To build FreePOOMA for a given "suite" you set the environment
variable POOMASUITE to the name of that suite and then execute make at
the top level.  Basic configurations for various systems and compilers
are found in the config/arch directory (for example LINUXgcc.conf contains
definitions for building with the GCC compiler on Linux systems).  You
should start by finding one of the .conf files that most closely matches
your system and possibly editing the definitions in it where they are
incorrect.  You may also copy a .conf file and use the new name as an
option to configure.

In general, the configure command will look like:

   configure [--arch <arch>] [--suite <suite>] [other options]

   where
     <arch> is the base name of the file in the config/arch directory
            that most closely matches your system.
     <suite> is a name for the particular build you are doing;

Type:

   configure -h

for a complete list of options.

In addition, configure may look at several environment variables,
SMARTSDIR, CHEETAHDIR, TAUDIR, PDTDIR etc. to find the locations of other
installed packages.  Refer to the configure script for further information
in case of problems.


So an install might go on like the following transcript:

Unpack the distribution tarball
 > tar xzf pooma-2.4.1.tgz

Our build will be named 'test'
 > export POOMASUITE=test

Configure for a standard GNU/Linux installation
 > ./configure --arch LINUXgcc --serial --opt

Build the library
 > make

Do a full run of the testsuite (recommended)
 > make -k check 2>&1 | tee testresults-test

Compare with the baseline testresults
 > diff -u testresults testresults-test | grep '[+-]PASSED\|FAILED'


Specify an installation directory at configure time using
--prefix DIR, specify an alternate compiler using --cpp (C++)
and --c (C) at configure time.  Specify --mpi and/or --openmp
if you want to use MPI and/or OpenMP with the configuration.

