BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
RootPolicy/RootPolicy-00-02-02/src/mainpage.h
Go to the documentation of this file.
1//$Header: /bes/bes/BossCvs/RootPolicy/src/mainpage.h,v 1.1.1.1 2004/09/20 06:17:32 maqm Exp $
2// (Special "header" just for doxygen)
3
4/*! @mainpage package RootPolicy
5
6This package defines build policy for ROOT packages only. Requirements for building such a package:
7
8- Some or all of the classes inherit from TObject, and the package must "use" ROOT to access the header files.
9- As a part of the build process, it must run the ROOT utility rootcint, with dependence on all the header files. That is, if any header file is out of date, rootcint must be rerun seamlessly
10- The build process must construct a .dll/.so that can be loaded by ROOT and a lib to describe it
11- The path to the constructed binaries must be appended to LD_LIBRARY_PATH, for use by ROOT and Gaudi.
12- The header files and libraries are made public for client packages.
13
14
15\section rootcint rootcint support
16
17We define a makefile fragment, cmt/fragments/dorootcint_header so that individual ROOT packages can create a constituent to
18build the class member functions required by root. For Windows, this fragment also works for nmake.
19
20For VisualC, a special version of dsp_library_header contains a section to build rootcint. The defines a "folder" called rootcint,
21but the guts to be filled a line at a time, with macros. This allows the header to be used for non-root packages, which can happen
22since Glast packages cannot be used privately with CMT v1r10.
23
24Usage example: in the requirements file include <pre>
25private
26use RootPolicy
27macro root_headers "../reconRootData/AcdRecon.h ../reconRootData/LinkDef.h"
28macro root_includes " -I\$(DIGIROOTDATA)"
29macro root_linkdef "../reconRootData/LinkDef.h"
30apply_pattern root_package</pre>
31
32Note the three macros: root_headers that specifiy a list relative to any subfolder,
33the optional root_includes containing additional flags for the rootcint command line,
34and root_linkdef, a source file for the make target. We are using the linkdef file for this.
35
36Also note that the "use RootPolicy" should follow "use GlastPolicy" to override
37the dsp library fragment, and should be private to avoid its use for a client package.
38
39A technical note: both methods create "rootcint.cxx" files to be compiled and linked into the
40shareable library. For Visual Studio, this is put into the VisualC directory, while on Unix
41it is placed into the include directory.
42
43dorootcint_header:
44\include cmt/fragments/dorootcint_header
45
46<hr>
47
48<a href=../used_packages.html>Used packages</a>
49 <hr>
50 \section requirements requirements
51 \include requirements
52
53
54*/