diff --git a/SConscript.py b/SConscript.py index ab23e32dfe25867872cc34c6d4c42bd213d357bd..c1a0618b3e43fe453ac4b8c49b7e3a3a46b05d7c 100644 --- a/SConscript.py +++ b/SConscript.py @@ -10,23 +10,40 @@ Import ('pbaseenv') roothcdict = pbaseenv.subst('$HC_DIR')+'/HallCDict.C' roothcobj = pbaseenv.subst('$HC_SRC')+'/HallCDict.so' -hcheaders = Split(""" -src/THcInterface.h src/THcParmList.h src/THcAnalyzer.h src/THcHallCSpectrometer.h -src/THcDetectorMap.h src/THcRawHit.h src/THcHitList.h src/THcSignalHit.h src/THcHodoscope.h -src/THcScintillatorPlane.h src/THcRawHodoHit.h src/THcHodoHit.h -src/THcDC.h src/THcDriftChamberPlane.h -src/THcDriftChamber.h src/THcRawDCHit.h src/THcDCHit.h src/THcDCWire.h src/THcSpacePoint.h -src/THcDCLookupTTDConv.h src/THcDCTimeToDistConv.h src/THcShower.h src/THcShowerPlane.h -src/THcShowerArray.h src/THcShowerHit.h -src/THcRawShowerHit.h src/THcAerogel.h src/THcAerogelHit.h src/THcCherenkov.h src/THcCherenkovHit.h -src/THcGlobals.h src/THcDCTrack.h src/THcFormula.h -src/THcRaster.h src/THcRasteredBeam.h src/THcRasterRawHit.h src/THcScalerEvtHandler.h -src/THcConfigEvtHandler.h src/THcHodoEff.h -src/THcTrigApp.h src/THcTrigDet.h src/THcTrigRawHit.h -src/THcRawAdcHit.h src/THcRawTdcHit.h -src/THcDummySpectrometer.h -src/HallC_LinkDef.h -""") + +hcheadersbase = Glob('src/*.h',exclude=['src/THcGlobals.h','src/HallC_LinkDef.h']) + +cmd = "echo '#ifdef __CINT__' > src/HallC_LinkDef.h" +os.system(cmd) +cmd = "echo ' ' >> src/HallC_LinkDef.h" +os.system(cmd) +cmd = "echo '#pragma link off all globals;' >> src/HallC_LinkDef.h" +os.system(cmd) +cmd = "echo '#pragma link off all classes;' >> src/HallC_LinkDef.h" +os.system(cmd) +cmd = "echo '#pragma link off all functions;' >> src/HallC_LinkDef.h" +os.system(cmd) +cmd = "echo ' ' >> src/HallC_LinkDef.h" +os.system(cmd) +cmd = "echo '#pragma link C++ global gHcParms;' >> src/HallC_LinkDef.h" +os.system(cmd) +cmd = "echo '#pragma link C++ global gHcDetectorMap;' >> src/HallC_LinkDef.h" +os.system(cmd) +cmd = "echo ' ' >> src/HallC_LinkDef.h" +os.system(cmd) + +for hcheaderfile in hcheadersbase: + filename = '%s' % hcheaderfile + basefilename = filename.rsplit('.',1) + newbasefilename = basefilename[0].rsplit('/',1) + cmd1 = "echo '#pragma link C++ class %s+;' >> src/HallC_LinkDef.h" % newbasefilename[1] + os.system(cmd1) + +cmd = "echo '#endif' >> src/HallC_LinkDef.h" +os.system(cmd) + +hcheaders = Glob('src/*.h',exclude=['src/HallC_LinkDef.h'])+Glob('src/HallC_LinkDef.h') + pbaseenv.RootCint(roothcdict,hcheaders) pbaseenv.SharedObject(target = roothcobj, source = roothcdict) diff --git a/SConstruct b/SConstruct index dc2690f95737f9bb33a19617cef8f35b5df89a8e..82066ea3c7ec414505701d3335915273fb9643fe 100644 --- a/SConstruct +++ b/SConstruct @@ -33,8 +33,8 @@ baseenv = Environment(ENV = os.environ) ####### Check SCons version ################## print('!!! Building the Hall C analyzer and libraries with SCons requires') -print('!!! SCons version 2.1.0 or newer.') -EnsureSConsVersion(2,1,0) +print('!!! SCons version 2.5.0 or newer.') +EnsureSConsVersion(2,5,0) ####### Hall A Build Environment ############# # diff --git a/src/HallC_LinkDef.h b/src/HallC_LinkDef.h index 29977d2bd02d2b35a0f48b223d0c929bd87f6a38..fe76604858c7d7692bb3feed9610978b979090ab 100644 --- a/src/HallC_LinkDef.h +++ b/src/HallC_LinkDef.h @@ -1,68 +1,54 @@ #ifdef __CINT__ - + #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; - + #pragma link C++ global gHcParms; #pragma link C++ global gHcDetectorMap; - -//#ifdef MACVERS -//#pragma link C++ global gHaVars; -//#pragma link C++ global gHaCuts; -//#pragma link C++ global gHaApps; -//#pragma link C++ global gHaScalers; -//#pragma link C++ global gHaPhysics; -//#pragma link C++ global gHaRun; -//#pragma link C++ global gHaDB; -//#pragma link C++ global gHaTextvars; -//#pragma link C++ global gHaDecoder; -//#endif - -#pragma link C++ class THcInterface+; -#pragma link C++ class THcParmList+; + +#pragma link C++ class THcAerogel+; +#pragma link C++ class THcAerogelHit+; #pragma link C++ class THcAnalyzer+; -#pragma link C++ class THcHallCSpectrometer+; -#pragma link C++ class THcDetectorMap+; -#pragma link C++ class THcRawHit+; -#pragma link C++ class THcHitList+; -#pragma link C++ class THcSignalHit+; -#pragma link C++ class THcHodoscope+; -#pragma link C++ class THcScintillatorPlane+; -#pragma link C++ class THcRawHodoHit+; -#pragma link C++ class THcHodoHit+; +#pragma link C++ class THcCherenkov+; +#pragma link C++ class THcCherenkovHit+; +#pragma link C++ class THcConfigEvtHandler+; #pragma link C++ class THcDC+; -#pragma link C++ class THcDriftChamber+; -#pragma link C++ class THcDriftChamberPlane+; -#pragma link C++ class THcRawDCHit+; #pragma link C++ class THcDCHit+; -#pragma link C++ class THcDCWire+; #pragma link C++ class THcDCLookupTTDConv+; #pragma link C++ class THcDCTimeToDistConv+; -#pragma link C++ class THcSpacePoint+; #pragma link C++ class THcDCTrack+; -#pragma link C++ class THcShower+; -#pragma link C++ class THcShowerPlane+; -#pragma link C++ class THcShowerArray+; - -#pragma link C++ class THcShowerHit+; -#pragma link C++ class THcRawShowerHit+; -#pragma link C++ class THcAerogel+; -#pragma link C++ class THcAerogelHit+; -#pragma link C++ class THcCherenkov+; -#pragma link C++ class THcCherenkovHit+; +#pragma link C++ class THcDCWire+; +#pragma link C++ class THcDetectorMap+; +#pragma link C++ class THcDriftChamber+; +#pragma link C++ class THcDriftChamberPlane+; +#pragma link C++ class THcDummySpectrometer+; #pragma link C++ class THcFormula+; +#pragma link C++ class THcHallCSpectrometer+; +#pragma link C++ class THcHitList+; +#pragma link C++ class THcHodoEff+; +#pragma link C++ class THcHodoHit+; +#pragma link C++ class THcHodoscope+; +#pragma link C++ class THcInterface+; +#pragma link C++ class THcParmList+; #pragma link C++ class THcRaster+; -#pragma link C++ class THcRasteredBeam+; #pragma link C++ class THcRasterRawHit+; +#pragma link C++ class THcRasteredBeam+; +#pragma link C++ class THcRawAdcHit+; +#pragma link C++ class THcRawDCHit+; +#pragma link C++ class THcRawHit+; +#pragma link C++ class THcRawHodoHit+; +#pragma link C++ class THcRawShowerHit+; +#pragma link C++ class THcRawTdcHit+; #pragma link C++ class THcScalerEvtHandler+; -#pragma link C++ class THcConfigEvtHandler+; -#pragma link C++ class THcHodoEff+; +#pragma link C++ class THcScintillatorPlane+; +#pragma link C++ class THcShower+; +#pragma link C++ class THcShowerArray+; +#pragma link C++ class THcShowerHit+; +#pragma link C++ class THcShowerPlane+; +#pragma link C++ class THcSignalHit+; +#pragma link C++ class THcSpacePoint+; #pragma link C++ class THcTrigApp+; #pragma link C++ class THcTrigDet+; #pragma link C++ class THcTrigRawHit+; -#pragma link C++ class THcRawAdcHit+; -#pragma link C++ class THcRawTdcHit+; -#pragma link C++ class THcDummySpectrometer+; - #endif diff --git a/src/SConscript.py b/src/SConscript.py index c9a05dcbc2a3783f51f059c25e71a9bf41a6e5c8..6d14bae26a6e17600889a65dca92cc568b38b51d 100644 --- a/src/SConscript.py +++ b/src/SConscript.py @@ -6,32 +6,7 @@ import re import SCons.Util Import('pbaseenv') -list = Split(""" -THcInterface.cxx THcParmList.cxx THcAnalyzer.cxx -THcHallCSpectrometer.cxx -THcDetectorMap.cxx -THcRawHit.cxx THcHitList.cxx -THcSignalHit.cxx -THcHodoscope.cxx THcScintillatorPlane.cxx -THcRawHodoHit.cxx THcHodoHit.cxx -THcDC.cxx THcDriftChamberPlane.cxx -THcDriftChamber.cxx -THcRawDCHit.cxx THcDCHit.cxx -THcDCWire.cxx -THcSpacePoint.cxx THcDCTrack.cxx -THcDCLookupTTDConv.cxx THcDCTimeToDistConv.cxx -THcShower.cxx THcShowerPlane.cxx THcShowerArray.cxx -THcRawShowerHit.cxx THcShowerHit.cxx -THcAerogel.cxx THcAerogelHit.cxx -THcCherenkov.cxx THcCherenkovHit.cxx -THcFormula.cxx -THcRaster.cxx THcRasteredBeam.cxx THcRasterRawHit.cxx -THcScalerEvtHandler.cxx THcConfigEvtHandler.cxx -THcTrigApp.cxx THcTrigDet.cxx THcTrigRawHit.cxx -THcRawAdcHit.cxx THcRawTdcHit.cxx -THcDummySpectrometer.cxx -THcHodoEff.cxx -""") +list = Glob('*.cxx', exclude=['main.C']) pbaseenv.Object('main.C')