OpenAD - Download/Build

WARNING! On Feb/20/09 the script name for getting the OpenAD components was changed to openadUpdate and new options were added, see below under "Installing sources from source code repositories". Run
  openadUpdate -h
to print the usage message.

Requirements:

  1. Perl
  2. Python (version 2.4.x or higher; not usable with Python version 3)
  3. gcc (with Fortran, needed for Open64 compile) with version 3.3.x or later
    known compiler issues:
    • the top level Makefile checks if CC/CXX are defined in the environment to be other than cc/g++ which are hard coded in the Open64 build system and would cause conflicts if the other components were not configured with the same defaults
    • gcc version 3.4.6 20060404 (Red Hat 3.4.6-11) has a bug that produces an error message related to an operator defined in boost; use a different gcc version
    • only relevant for running some of the examples and regression tests: gfortran prior to version 4.2 does not handle allocatable dummy arguments, use version 4.2 or newer
  4. GNU make
  5. CVS and Subversion - optional, only needed for installing from source code repositories
  6. Mercurial - optional, only needed for installing from source code repositories and only for extra regression and example repositories
Aside from the subset of binaries for applying the tool to some test problems there are no precompiled binaries available. All of the components are publicly available for download as a tar file or for incremental updates and builds of the verified version via Subversion/CVS/Mercurial.

Installing sources from tar file:

The latest tar file was created on2009-11-23 and can be downloaded as:
OpenAD_2009-11-23.tgz
We maintain a table of snapshots with version information for each component.

Installing sources from source code repositories:

For the development of the OpenAD components uses Mercurial for version control (see the OpenAD wiki for details). Many systems do not have Mercurial installed and therefore we decided to replicate snapshots in Subversion repositories hosted at Rice University (except for the C/C++ front end which is not needed for the Fortran tool) and external sources such as boost and angle (see below) . The main reason for using the Subversion repositories is to permit incremental source code updates and therefore incremental builds. There is a prefab skeleton environment for retrieving and building all components. It can be obtained with:
svn co http://hpc.svn.rice.edu/r/OpenAD/trunk/ OpenAD

then go into the directory which has just been  create by the svn command:
cd OpenAD

set the environment for building and using the tools for:
  • users of the sh family:
    source ./setenv.sh 
  • users of the csh family:
    source ./setenv.csh
retrieve the other components into the prefab skeleton by executing:
openadUpdate
To retrieve optional repositories for regression tests and code examples use openadUpdate with the -e -t flags; see the
Manual for details.

Build components:

After the sources are installed, perform the following build steps:
  1. change directory into the top level directory
    cd OpenAD
  2. set the environment for building and using the tools for
    • users of the sh family:
      source ./setenv.sh 
    • users of the csh family:
      source ./setenv.csh
  3. All Makefiles are written in GNU-make style. Build all components by invoking:
    make
If  OpenAD is installed from the subversion repositories one can update the sources to the latest version by rerunning the bin/openadUpdate script and repeat  build steps 1 - 3 to  incrementally rebuild the components. Note, that the configure scripts in the components OpenAnalysis and OpenADFortTk generate files containing absolute paths. Consequently, after moving a built OpenAD installation to a different spot in the filesystem one should do a make veryclean followed by make to obtain a clean build. Otherwise errors showing incorrect paths during attempted incremental rebuilds are likely.


If the automatic download with openadUpdate does not work one can change directory into the prefab skeleton, manually retrieve all components separately: