Hi Terrence,
sorry for the delay in answering, but too many things to do here.
Terrence Brannon wrote:
>
> I have a completely working tree of source code that compiles under
> g++2.7. I want to document my source using the root/cint automatic
> documentation.
>
> -2: Is this part of the source code for ROOT? If not, where does one
> obtain it?
The documentation system is part of ROOT. It uses the THtml class (see
http://hpna49-7.cern.ch/Documentation.html)
> -1: Where does the ROOT FAQ exist?
Is in preparation. For time being check the RootTalk digest
(http://root.cern.ch/root/roottalk/index.html).
> 0: Must I go about using the rootcint program on my source tree in a
> particular order?
No. The current version of the documentation system requires that you
build a dictionary for your classes and link that with your classes
in a shared library. Then start the root interactive program, load you
shared library to it (gSystem.Load("myclasses.so")). And then execute
the THml class as described in the THml class documentation.
> 1: how does one specify a +P or -p option to rootcint?
All extra rootcint options can be given like:
rootcint MyDict.C -c +P -I$MYINCLUDES -I/usr/otherincludes MyClass.h
LinkDef.h
> 2: I am having lots of errors when I naively try to follow the example
> program. That class is self-contained with no references to other
> include files. My class hierarchy is multi-leveled. Can CINT handle
> such complexity?
What do you mean with multileveld? Embedded classes or just a simple
(multiple) inheritance tree? The latter case is no problem for CINT.
> 3: What is the meaning of
> "Warning: Link requested for undefined class param.Vec FILE: LINE:0"
This means that CINT wants to generate a dictionary for a class
param.Vec which it does not find in the sourece file.
If you want to generate a dictionary for a class that has a different
name than the header file name minus the extension (.h) then one
needs to define the desired class in the LinkDef.h file (see rootcint
-?)
In the above case you do not specify the LinkDef.h file so rootcint
assumes that the class name is param.Vec.
> 4: should I really be typing "rootcint mydict.C -c param.Vec.h" or
> should I be typing rootcint mydict.h -c param.Vec.h
rootcint mydict.C -c param.Vec.h LinkDef.h
is what you want. Where LinkDef.h is:
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class paramVec;
#endif
> 5: builtin.h is in /usr/lib/g++-include++. How can I tell rootcint to look
> there? The same goes for "String.h"
Use the -I option to rootcint as described above.
> 6: Could someone please tell me what causes the following Errors,
> Notes, and Warnings and how to remedy them?
>
> brannon@palm ~/rs/VisionMagick/terry : rootcint mydict.C -c param.Vec.h
> Error: source file "builtin.h" cannot open FILE:param.Vec.h LINE:27
> Error: source file "String.h" cannot open FILE:param.defs.h LINE:26
> Error: No symbol Stringname in current scope FILE:param.defs.h LINE:29
> Error: No symbol Stringval_strings[2] in current scope FILE:param.defs.h LINE:30
> Error: No symbol one_arg_error_handler_tparamVec_error_handler in current scope FILE:param.Vec.h LINE:84
> Note: operator new() masked c
> Note: operator delete() masked c
> Warning: Link requested for undefined class param.Vec FILE: LINE:0
> brannon@palm ~/rs/VisionMagick/terry :
The errors are due to the fact rootcint does not know where to find
builtin.h and String.h. Use -I. The Note: messages you can ignore.
The one extra compilcation for HTML generation is that your class needs
to have the ClassDef and ClassImp macros. See also
http://hpna49-7.cern.ch/Documentation.html.
We are currently working on a rewrite of the THtml class. Using the new
system will be as simple as calling:
rootdoc -t html -c MyClass.h ..... [LinkDef.h]
The system can be easily customized using a formatting template
file and there will be no need to add ClassDef and ClassImp
macros to your code. Also we plan to have formatting types
like:
rootdoc -t man -- Unix man page style
rootdoc -t latex -- Latex
rootdoc -t frame -- FrameMaker MIF
etc.
We expect to have rootdoc for HTML in about a month from now.
Cheers, Fons.
-- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland Phone: +41 22 7679248 E-Mail: Fons.Rademakers@cern.ch Fax: +41 22 7677910