This projects is a replacement build system for the Common Component Architecture scientific computing tools, which consist of around a dozen packages. The previous build system was a script based on autotools but it was complicated, hard to read and update, and didn't work on all architectures.
The new build system is based on Contractor, a new dependency handling build system written in Python, and many of our own improvements. The new system is a modular, easy to read and easy to update, object oriented approach that simplifies the build system and makes it as easy to use as possible. All output is logged and on failure the logs are archived to be sent to the developers for debugging. A GTK+ graphical user interface is provided to ease configuration.
Here is a presentation on the new build system:
- Download PDF
- Download MOV (Video version, click to move forward)
- Download Keynote (requires Keynote)
For more information please see the ANL Trac page.
Usage
Using the new contractor-based build system is very easy. Instead of the usual 'configure, make, install' scenario you now have only two steps (one if you let the system automatically configure, in which case you can omit the first step).cd cca-tools-contractor
./contract.py --configure
...
./contract.py
...
For more control over the build, you can set your own configuration options manually to override the defaults. To see the list of available options, pass the --configure-show argument, which also shows you the arguments passed to configure on the last invokation.
./contract.py --configure-show
...
./contract.py --configure python=/sw/bin/python2.5 fortran90=...
...
As seen above, to unset an option just leave the right side of the assignment blank. The example above sets the path to the Python interpreter to use in babel and ccaffeine and disables Fortran 90 support.
Specific stages can be built easily using the new build system. There are a couple of special stages of note: the default target (called when no arguments are passed), the global clean target (to clean everything), and the per-package all and clean targets.
./contract.py babel/make
...
./contract.py babel/all
...
./contract.py clean
...
The Graphical Interface
The graphical user interface is provided to ease the configuration and building of the CCA tools. It is written in python and uses GTK+. To run it you must have python and pygtk with glade support enabled.
./gui/cca-install-gtk.py
Releases
Here you can find all the released files for CCA Tools Build System, with the most recent release listed first. The project was started in 2007.





