Presentation is loading. Please wait.

Presentation is loading. Please wait.

Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.

Similar presentations


Presentation on theme: "Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN."— Presentation transcript:

1 Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN

2 28/02/2002Use of CMT in LHCb2 Contents  History  Package Categories  Release Practices  Useful Tools  Current Problems

3 28/02/2002Use of CMT in LHCb3 History  We started using CMT in LHCb before CMT was called CMT (Methods)  All the new C++ code (Gaudi) developed using CMT  Also adopted afterwards for the legacy FORTRAN code  Currently order of 100 packages organized hierarchically (“hat/packagename”)  Used on Linux and Windows since the beginning  Used directly by the physicists and librarians

4 28/02/2002Use of CMT in LHCb4 Packages Categories  Program: is a package that contains a main routine and a list of dependent packages needed to link it.  Library: contains a list of classes and the list of dependent packages needed to compile it.  Policy package: defines macros, compilation & link flags, patterns, fragments, etc.  Package group: contains a list of other packages with their version number (e.g. GaudiSys)  Interface package: interfacing to packages not managed with CMT (e.g. CERNLIB, CLHEP, ROOT,…)

5 28/02/2002Use of CMT in LHCb5 Policy Package (GaudiPolicy)  Definition of “tags” –Standard configurations  General macros –Compilation and link flags  Patterns –Simple and uniform requirements files  Naming conventions, standardization,…  Fragments –DevStudio, RuleChecker, etc.

6 28/02/2002Use of CMT in LHCb6 Interface Packages ExternalLibs CLHEP Set of environment variables to define where the external packages are installed XXX_DIR Compilation and link options Environment variables PATH, LD_LIBRARY_PATH Path relative to XXX_DIR CMTSITE Version Platform Compiler

7 28/02/2002Use of CMT in LHCb7 Interface Package (cont’d) package CLHEP version v17r10 branches doc cmt include_path none use ExternalLibs v3* set LHCXX_BASE "${LHCXX_DIR}" \ Linux-2.95.2 "${LHCXX_DIR}/gcc-2.95.2" include_dirs $(CLHEP_DIR)/include set CLHEP_DIR "${LHCXX_BASE}/CLHEP/1.7.1.0" macro CLHEP_linkopts "-L${CLHEP_DIR}/lib -lCLHEP" \ LinuxStatic "${CLHEP_DIR}/lib/libCLHEP.a" \ WIN32 "${CLHEP_DIR}/lib/CLHEP.lib" path_remove LD_LIBRARY_PATH "/CLHEP/" \ WIN32 "\CLHEP\" path_append LD_LIBRARY_PATH "${CLHEP_DIR}/lib"

8 28/02/2002Use of CMT in LHCb8 Package Group  Useful to “fix” the versions of a number of packages –To be used directly by users  For management purposes –Release tools –“broadcast” command package GaudiSys version v9r0 #---CMT and Gaudi policy use GaudiPolicy v5r* #---Gaudi libraries - generic use GaudiKernel v11r* use GaudiSvc v7r* use GaudiAud v5r* use GaudiAlg v5r* use GaudiTools v5r* use GaudiNagC v6r* use GaudiDb v5r* use GaudiIntrospection v2r* #--- External libraries use CLHEP v17r10 use HTL v13r10 use AIDA v1r0 use ExternalLibs v3r*

9 28/02/2002Use of CMT in LHCb9 Use Practices  CMTCONFIG –Default configuration “tag” –If “tag” not specified then use CMTCONFIG as tag .cmtrc –The list of “official” release areas  CMTPATH –$HOME/mycmt [eventually DEV areas]  Using both optimized and debug versions > getpack MyPackage v1r1 > cd MyPackage/v1r1/cmt > make [tag=$CMTDEB] > source setup.csh [–tag=$CMTDEB] > …

10 28/02/2002Use of CMT in LHCb10 Release Practices  Complete LHCb software release 3-4 times a year –Major new functionality –Incompatible changes allowed –Changes in external packages versions & dependencies  Change in the major version number  Partial/Incremental releases when convenient –Bug fixes –New functionality (changes in Algorithms/Services) –Major emphasis on source code/binary compatibility  Change in the minor version number

11 28/02/2002Use of CMT in LHCb11 Integration and Testing new releases  We do not have a nightly build system  Integration Area (DEV) –Quasi-continuous builds of “head” revision of the packages involved in the integration  Release by Layers –One after the other Private Area Public DEV Area Public RELEASE Area Private Area Private Area Algorithms Event/Detector Framework (Gaudi) Applications

12 28/02/2002Use of CMT in LHCb12 Extra Tools: DevStudio add-in  Integration of CMT in DevStudio –Regeneration of DevStudio project –Set environment –Show uses –…  Using exclusively the “cmt.exe” interface

13 28/02/2002Use of CMT in LHCb13 Extra Tools: GetPack usage: getpack [OPTIONS]... package [ [version] ['tag'|'head'] ] getpack [OPTIONS]... -i ['Gaudi' [hat] |'LHCb' [hat] ]  Python script to checkout/update packages in the LHCb CVS repositories –Easy to use (combines CVS and CMT commands) –Platform independent  We do not use “cmt co” command –Unpredictable result –Can not handle several repositories

14 28/02/2002Use of CMT in LHCb14 Extra Tools  Scripts for the creation of tar files for distributions  Prototype of a script for “Grouping” a number of packages into a single one –Useful for using the package –Improves scalability –Reduces the length of PATHs and commands –Not useful for package development

15 28/02/2002Use of CMT in LHCb15 Current Problems  Not able to use new CMT version –Our current practices do not work  big impact to the end-users  Need to understand new “private use” feature –Impact on “shareable libraries” and environment variables  Problems with “soft links”. Introduced to reduce the length of PATH and LD_LIBRARY_PATH –Not re-built when something has changed –Not re-built on “source setup” –No not work on Windows!

16 28/02/2002Use of CMT in LHCb16 Current Problems (cont’d)  Care with handling “wildcards” in version numbers –Gained experience but still making errors time to time  Missing standard Interface packages –Difficult to integrate other software systems following different “conventions”

17 28/02/2002Use of CMT in LHCb17 Summary  Using CMT since the beginning  Has taken some time to develop the current practices (package categories, use version wildcards, etc.)  Additional tools developed around CMT are necessary  Major concerns in future compatibility


Download ppt "Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN."

Similar presentations


Ads by Google