Page History
Include Page | ||||
---|---|---|---|---|
|
Table of Contents |
---|
Include Page | ||||
---|---|---|---|---|
|
Introduction
Below is some more detailed/advanced information about the offline build system. The offline build system is based on SCons. It is implemented as a set of scripts that import functionality from SConsTools
(software developed internally). SConsTools introduces a package and release structure to support the build process. The top level directory is for the release and contains the SConstruct
file. Each package is in a sub-directory to the release. Packages have a SConscript
file. The structure of a release directory is explained in this page about Packages and Releases. SConsTools has a number of features including:
...
Code Block |
---|
release/include release/build release/arch |
You may also see
release/data
release/web
depending on the packages being built. These directories belong to the build system - you should never put anything in these directories. They will be rebuilt each time scons
runs if need be.
In release/include
you will find two links to the package include directories:
...
In the arch
directory, you will find all the executables, scripts, libaries libraries (built as shared object libraries) and python modules for each package.
...
Most packages require no additional options beyond those in the default configuration. If a package requires additional build options, these can often be added by calling the standardSConscript()
function in the SConscript file in the package directory. For instance, suppose a psana - Original Documentation user is developing a module in a package called MyPackage
which needs to use functions from the Gnu Scientific Library. They would add the following line:
...
To upgrade the version of a release, see Typical Common development tasks.
Presentations
Below are slides from a talk given during the 2014 LCSL users meeting that covers the release/package structure of SConsTools, as well as how psana modules: Software_Development_Environment.pdf