Instructions for developing and building CORAL components using CMT

As of version 1.7.0 CORAL is built using CMT. Here one may find some brief instructions for developing and building CORAL.
For details on CMT itself refer to the relevant documentation


Preparing the environment

  1. Setting up CMT

    The first thing to do is set the SITEROOT environemt variable and then run the CMT startup script:
  2. Setting up the platform

    Set the CMTCONFIG environment variable to the platform name

  3. Setting up the CMT path

    CMT is searching for packages in the directories specified in the CMTPATH path environment variable.
    The following directories should be included with the following order:

    1. The source directory of your working installation:

      /my/working/directory/CORAL-X_Y_Z/src
    2. Optionally, the source directory of an existing CORAL installation in case one wants to develop packages against this reference release.

      /afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_X_Y_Z/src
    3. The LCGCMT directory corresponding to a specific software configuration, for the externals.

    4. /afs/cern.ch/sw/lcg/app/releases/LCGCMT/LCGCMT_XX

    In this case one should issue:

  4. Checking out the necessary components

    Assumming that you have created your working directory i.e. /my/working/directory/CORAL-X_Y_Z and the src subdirectory, you should check out the following directories:

Building the binaries

Setting up the environment to run utilities and tests

Once the binaries have been built and installed, one may attempt to run the command line tools or tests. To do so, it is necessary to prepare the run-time environment, which in most of the cases boils down to setting up the PATH and LD_LIBRARY_PATH environment variables accordingly. The generated setup.sh (or setup.csh or setup.bat depending on your shell or platform) files upon execution do this job for you.

For running unit tests in most of the cases it suffices to run this script from the package-specific cmt subdirectory. For the integration and system tests, where the full environment is required, one should run the script under src/config/cmt.

NOTE: The PATH environment variable does not include the platform/tests/bin directory, which means that you may have to call the test applications specifying the full path.