Hi ROOT'ers,
Recently I've gotten quite frustrated by the strict command line
syntax of rootcint. The requirement that the LinkDef.h file _must_ be
the last file name on the commandline seems way too strict. Also, that
the names _must_ end in LinkDef.h also, IMHO, too restrictive.
Therefore, I'd like to propose using commandline switches for
specification of the LinkDef file. The commandline syntax could
"GNU'ish" that
-f --force : Force recreation of dictonary code
-c --create-stubs : Create stubs
-l --link-file : LinkDef file flag
-S --source-out : Implmentation output file
-H --header-out : Decleration output file
-h --help : Show help
-V --version : Show version information
-I : *SPECIAL* include paths
-D : *SPECIAL* preprocessor define
-U : *SPECIAL* preprocessor un-define
so that a commen line previously written
rootcint -f FooCint.cxx -c -I/my/foo/dir Foo.h FooLinkDef.h
could be written as any of
rootcint -f -c -S FooCint.cxx -H FooCint.h -l FooLinkDef.h \
-I/my/foo/dir Foo.h
rootcint -I/my/foo/dir -fcS FooCint.cxx -H FooCint.h \
-l FooLinkDef.h Foo.h
rootcint --force -c --source-out=FooCint.cxx -I/my/foo/dir \
--header-out=FooCint.h \
--link-file=FooLinkDef.h Foo.h
however, the file names (the LinkDef file in particular) need not be
similar as above, but could be anything. Suppose I wanted Dictonary
implementation in Bar.cc, declaration in Baz.hh, LinkDef stuff in
Gnus.hh and my class Declarations in Gnat.hh, then I could do
rootcint -fc -S Bar.cc -H Baz.hh -l Gnus.hh Gnat.hh
Also notice how you can concencate the short options.
I could imagine that a similar scheme would be usefull for the "root"
application.
I've created a set of classes that helps one make such a commandline
syntax. I've attached these classes.
I hope that you'll find these suggestions useful.
Cheers,
Christian -----------------------------------------------------------
Holm Christensen Phone: (+45) 35 35 96 91
Sankt Hansgade 23, 1. th. Office: (+45) 353 25 305
DK-2200 Copenhagen N Web: www.nbi.dk/~cholm
Denmark Email: cholm@nbi.dk
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:25 MET