/* ======================================================================== *\ ! ! * ! * This file is part of MARS, the MAGIC Analysis and Reconstruction ! * Software. It is distributed to you in the hope that it can be a useful ! * and timesaving tool in analysing Data of imaging Cerenkov telescopes. ! * It is distributed WITHOUT ANY WARRANTY. ! * ! * Permission to use, copy, modify and distribute this software and its ! * documentation for any purpose is hereby granted without fee, ! * provided that the above copyright notice appear in all copies and ! * that both that copyright notice and this permission notice appear ! * in supporting documentation. It is provided "as is" without express ! * or implied warranty. ! * ! ! ! Author(s): Thomas Bretz 12/2000 (tbretz@uni-sw.gwdg.de) ! ! Copyright: MAGIC Software Development, 2000-2001 ! ! \* ======================================================================== */ Bool_t isloaded() { TString str = gSystem->GetLibraries("*/mars.so"); return !str.IsNull(); } void unload() { if (!isloaded()) return; cout << "Unloading 'mars.so'... " << flush; if (gSystem->Unload("mars.so")) cout << "error." << endl; else cout << "done." << endl << endl; } void load(TString &dir) { if (isloaded()) return; cout << "Loading 'mars.so'... " << flush; if (gSystem->Load(dir.IsNull() ? "mars.so" : dir+"lib/mars.so")!=0) cout << "error." << endl; else { MParContainer::Class()->IgnoreTObjectStreamer(); MArray::Class()->IgnoreTObjectStreamer(); cout << "done." << endl; } cout << endl; } /* void make() { unload(); if (gSystem->Exec("make")) { cout << "Error calling make..." << endl; return; } load(); } */ void rootlogon() { cout << endl; TString dir = gSystem->Getenv("MARSSYS"); if (!dir.IsNull()) { cout << "Mars found in " << dir << " (MARSSYS)" << endl << endl; if (!dir.EndsWith("/")) dir += "/"; } load(dir); gInterpreter->AddIncludePath(dir+"macros"); gInterpreter->AddIncludePath(dir+"manalysis"); gInterpreter->AddIncludePath(dir+"mbase"); gInterpreter->AddIncludePath(dir+"mdata"); gInterpreter->AddIncludePath(dir+"mfileio"); gInterpreter->AddIncludePath(dir+"mfilter"); gInterpreter->AddIncludePath(dir+"mgeom"); gInterpreter->AddIncludePath(dir+"mgui"); gInterpreter->AddIncludePath(dir+"mhist"); gInterpreter->AddIncludePath(dir+"mhistmc"); gInterpreter->AddIncludePath(dir+"mimage"); gInterpreter->AddIncludePath(dir+"mmain"); gInterpreter->AddIncludePath(dir+"mmc"); gInterpreter->AddIncludePath(dir+"mmontecarlo"); gInterpreter->AddIncludePath(dir+"mraw"); gInterpreter->AddIncludePath(dir+"mtools"); if (TString("linux")==gSystem->GetBuildArch()) { TString options = " -O -pipe -Wall -Woverloaded-virtual -fno-rtti -fno-exceptions -fPIC "; TString s = "cd $BuildDir ; "; s += "g++ -c" + options + "-Iinclude -D_REENTRANT $IncludePath $SourceFiles ; "; s += "g++ $ObjectFiles -shared -Wl,-soname,$LibName.so -O -o $SharedLib"; gSystem->SetMakeSharedLib(s); } cout << "Welcome to the Mars Root environment." << endl; cout << endl; }