CERN Buildsystem at GSI
Generall
To build C++ Projects CERN teams use their own build environment, which is commonly referred as commonbuild. This buildsystem basically consists of multiple makefiles defining different task for many purposes. Specific compiler options needed for a particular make task and CPU are also defined globally in this build environment. Hence (almost?) all C++ Projects from CERN are depending on the existence of such buildsystem.
In general the build environment contains 2 parts: generic build files and project specific build files. Generic build files are same for all projects and contain (usually) the major part of all definitions. The project specific files are used to specify the project specific settings and usually contain a so called parent makfile, which includes other generic makefiles.
Builsystem at GSI
To be able to build the CERN's projects (FESA and CMW at the Moment) on the GSI side the buildsystem environment needed to be installed. The generic environment files (adjusted to GSI) can be found on asl cluster under:
/opt/cern/buildsystem/generic/<version>
while the project specific under
/opt/cern/buildsystem/<project>/<version>
Common tasks
In following some of the common tasks defined in the buildsystems Makefile:
- clean - removes the compiled binaries and libs
- compile - compile the libraries and libraries form src folder
- demo - compile the libraries and binaries from demo folder
- test - compile the test classes (requires gmock and gtest)
- run-test - run compiled tests (requires gmock and gtest)
Common make parameters for building RDA3
In following some of the common parameters and variables used with the RDA3 make tasks:
- CPU - set the CPU for the compilation (at GSI usually x86_64 or i686)
- PARENT_MAKEFILE - sets the parent makefile. The GSI parent makefile contains all neccesary definitions for the GSI environment
- CMW_MAKEFILE_VERSION - sets the version of CMW makefiles, which should be used to perform the task
- ZMQ_VERSION - sets the used zeroMQ version. Unlike CERN GSI used normal version numbers for the releases so the default CERN values (4.0.4_3) should be replaced using this parameter
- -jX - defines the number of threads used for compilation (-j4 is an approved value)
--
VitaliyRapp - 26 Aug 2014