Re: creating a root database dll

Rene Brun (Rene.Brun@cern.ch)
Fri, 21 Aug 1998 16:55:33 +0200


chris wrote:
>
> alright, i have really stuck myself with this project. I want to create a
> dll (dynamically linked library) that uses the root database i/o, in order
> to be able to use the root database capabilities, but to access them
> through a java interface. i can handle the integration of the native
> functions that java will call, and i can even create wrappers around c++
> functions in DLLs that java can use. the question is, how can i compile
> root into a DLL??? i have no idea where to start.
>

On all systems (except AIX), we distribute Root binaries in the form
of shared libs (Unix) or DLLs (NT).
Under AIX, only two shared libs are provided (libCint.a and libRoot.a).

where each shared lib corresponds to a Root class category.
The list below is the list of DLLs on NT:

Root_Base.dll //basic classes (TObject, TFile..)
Root_Cint.dll //Cint interpreter
Root_Clib.dll //Root C functions
Root_Cont.dll //container classes
Root_EG.dll //basic interface to Event Generators
Root_Func.dll //Formula, TF1, TF2 classes
Root_Gpad.dll //Pad, canvas, some dialog classes
Root_Graf.dll //2-d graphics
Root_Graf3d.dll //3-d graphics
Root_Hist.dll //histogram classes
Root_Html.dll //the THtml class
Root_Matrix.dll //The Matrix package
Root_Meta.dll //The Run Time Type Information classes
Root_Minuit.dll //Minimization package Minuit
Root_Net.dll //Network classes
Root_New.dll //new and delete Root redefined operators
Root_Postscript.dll //Postscript
Root_Proof.dll //Parallel Root
Root_RGL.dll //GL interface (requires GL or Mesa)
Root_Rint.dll //Root additions to the interrpreter
Root_Tree.dll //The Tree classes
Root_WIN32.dll //Win32 low level graphics
Root_WinNT.dll //WindowsNT specific classes
Root_Zip.dll //The compression algorithm

The basic Root executable module is linked by default with most DLLs
above, except RGL, THtml, Matrix, EG, Proof.
If your interactive Root session requires one of these DLLs, you must
dynamically link them with a statement like:
gSystem->Load("Root_Matrix");

On Unix systems, all shared libs are specified in the link sequence to
build root.exe.

Rene Brun