5. The FLASH configuration script (setup)

The setup script, found in the FLASH root directory, provides the primary command-line interface to configuring the FLASH source code. It is important to remember that the FLASH code is not a single application, but a set of independent code units which can be put together in various combinations to create a multitude of different simulations. It is through the setup script that the user controls how the various units are assembled.

The primary job of the setup script is to

More description of how setup and the FLASH4 architecture interact may be found in Chp:Architecture. Here we describe its usage.

The setup script determines site-dependent configuration information by looking for a directory
sites/<hostname> where <hostname> is the hostname of the machine on which FLASH is running.5.1 Failing this, it looks in sites/Prototypes/ for a directory with the same name as the output of the uname command. The site and operating system type can be overridden with the -site and -ostype command-line options to the setup command. Only one of these options can be used at one time. The directory for each site and operating system type contains a makefile fragment Makefile.h that sets command names, compiler flags, library paths, and any replacement or additional source files needed to compile FLASH for that specific machine and machine type.

The setup script uses the contents of the problem directory and the site/OS type, together with a Units file, to generate the object/ directory, which contains links to the appropriate source files and makefile fragments. The Units file lists the names of all units which need to be included while building the FLASH application. This file is automatically generated when the user commonly provides the command-line -auto option, although it may be assembled by hand. When -auto option is used, the setup script starts with the Config file of the problem specified, finds its REQUIRED units and then works its way through their Config files. This process continues until all the dependencies are met and a self-consistent set of units has been found. At the end of this automatic generation, the Units file is created and placed in the object/ directory, where it can be edited if necessary. setup also creates the master makefile (object/Makefile) and several FORTRAN include files that are needed by the code in order to parse the runtime parameters. After running setup, the user can create the FLASH executable by running make in the object directory. Note that the FLASH build system assumes that the command make invokes GNU Make and is unlikely to work properly with other implementations of the make command. On some systems it may be necessary to invoke GNU Make under the name gmake.

FLASH3 Transition: In FLASH2, the Units file was located in the FLASH root directory. In FLASH4, this file is found in the object/ directory.

Save some typing:

Reduce compilation time:



Subsections