Mods
[u/mrichter/AliRoot.git] / FMD / scripts / Compile.C
1 //____________________________________________________________________
2 //
3 // $Id$
4 //
5 // Script to compile (using ACLic) and load a script.  It sets the
6 // include path to contain the relevant directories. 
7 //
8 /** @defgroup FMD_script Scripts
9     @brief Scripts for the FMD 
10 */
11 /** @defgroup simple_script Simple scripts
12     @ingroup FMD_script
13     @brief Scripts for the FMD 
14 */
15 /** Compile an FMD script using ACLic
16     @param script Script to compile
17     @param option Compile option 
18     @ingroup FMD_script
19 */
20 void
21 AddInclude(const char* what)
22 {
23   TString path(gSystem->GetIncludePath());
24   if (path.Contains(what)) return;
25   gSystem->AddIncludePath(what);
26 }
27 Bool_t
28 Compile(const char* script, Option_t* option="g")
29 {
30   if (!script || script[0] == '\0') { 
31     std::cerr << "No script to compile!" << std::endl;
32     return kFALSE;
33   }
34   gSystem->Load("libANALYSIS.so");
35   gSystem->Load("libANALYSISalice.so");
36   gSystem->Load("libFMDutil.so");
37   TString macroPath(gROOT->GetMacroPath());
38   macroPath.Append(":${ALICE_ROOT}/FMD/scripts");
39   gROOT->SetMacroPath(macroPath.Data());
40   AddInclude("-I`root-config --incdir`");
41   AddInclude("-I${ALICE_ROOT}");
42   AddInclude("-I${ALICE_ROOT}/include");
43   AddInclude("-I${ALICE_ROOT}/FMD");
44   AddInclude("-I${ALICE_ROOT}/geant3/TGeant3");
45   AddInclude("-I${ALICE_ROOT}/../aliroot.trunk");
46   AddInclude("-I${ALICE_ROOT}/../aliroot.trunk/FMD");
47   AddInclude("-I${ALICE_ROOT}/../aliroot.trunk/RAW");
48   Long_t ret = gROOT->ProcessLine(Form(".L %s+%s", script, option));
49   return ret == 0;
50 }
51
52 //____________________________________________________________________
53 //
54 // EOF
55 //