The follwoing steps were required to build pdrApp (v3r2): (changes to files described below are now in the head) ---------------------------------------------------------------- ---------------------------------------------------------------- To build gui v2r2 had to change the line: MotifGUI.h WinScene.cxx \ to: MotifGUI.cxx MotifGUI.h WinScene.cxx \ in the requirements file and change: ---------------------------------------------------------------- // Implement the GUI-creator of the GUI superclass namespace gui { GUI* GUI::createGUI(const char* nameOfApp, const char* title) { if( theGUI) return theGUI; // ensures only one instance return (theGUI =new MotifGUI(nameOfApp, title)); } bool GUI::running=false; GUI* GUI::instance(){ if( !theGUI) createGUI("unknown", "(no title)"); return theGUI; } } -------------------------------------------------------------- to: -------------------------------------------------------------- // Implement the GUI-creator of the GUI superclass namespace gui { GUI* GUI::createGUI(const char* nameOfApp, const char* title) { if( theGUI) return theGUI; // ensures only one instance theGUI =new MotifGUI(nameOfApp, title); GUI::instance(theGUI); // setup instance() GUI::s_instance = theGUI; return theGUI; } } bool GUI::running=false; // needed to check that display enabled -------------------------------------------------------------- had to manually change command line(s) from: cd ../i386_linux22/; g++ -Wl,-Bdynamic -L/afs/slac.stanford.edu/g/glast/ground/glastsoft/current/gui/v2r2/i386_linux22 -lgui -lguisystem -L/usr/X11R6/lib -lXm -lXt -lX11 -o testGUI.exe.new ../i386_linux22/Demo.o ../i386_linux22/testmain.o -L/afs/slac.stanford.edu/g/glast/ground/glastsoft/current/gui/v2r2/i386_linux22 -lgui -L/afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//CLHEP/1.6.0.0/lib -lCLHEP ; mv -f testGUI.exe.new testGUI.exe to: cd ../i386_linux22/; g++ -Wl,-Bdynamic -o testGUI.exe.new ../i386_linux22/Demo.o ../i386_linux22/testmain.o -L/afs/slac.stanford.edu/g/glast/ground/glastsoft/current/gui/v2r2/i386_linux22 -lgui -lguisystem -L/usr/X11R6/lib -lXm -lXt -lX11 -L/afs/slac.stanford.edu/g/glast/ground/glastsoft/current/gui/v2r2/i386_linux22 -lgui -L/afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//CLHEP/1.6.0.0/lib -lCLHEP ; mv -f testGUI.exe.new testGUI.exe to allow the correct library inclusions. -------------------------------------------------------------------- -------------------------------------------------------------------- had to do similar command line editing to build the test package in geomrep (i.e. move the build object and object files ahead of the library specification) ------------------------------------------------------------------- ------------------------------------------------------------------- To build instrument I had to delete the xml v100r0 package that cmt (v1r8) picked up; cmt (I assume properly) assumed that this was the apropriate version of the package to use when in fact instrument expectd xml v3 -------------------------------------------------------------------------- -------------------------------------------------------------------------- in package flux: had to add: #include to ../flux/v4/src/SpectrumFactory.h Toby fixed AlbedoSpectrum.cxx - got rid of templates and I checked recent version. Changed: DELTAX gaussianspread(); to: DELTAX *gaussianspread(); in ExtraGalacticDiffuse.h as well as: ExtraGalacticDiffuse::DELTAX ExtraGalacticDiffuse::gaussianspread(){ //gives uncertainty to locations of incoming photons. to: ExtraGalacticDiffuse::DELTAX *ExtraGalacticDiffuse::gaussianspread(){ //gives uncertainty to locations of incoming photons. and DELTAX spread; to: DELTAX *spread; and spread.x=x; spread.y=y; to: spread->x=x; spread->y=y; and: DELTAX smear; for(n=0 ; list[n].x!='\0' ; n++){ } smear=gaussianspread(); list[n].x=x+smear.x; list[n+1].x='\0'; list[n].y=y+smear.y; to: DELTAX *smear; for(n=0 ; list[n].x!='\0' ; n++){ } smear=gaussianspread(); list[n].x=x+smear->x; list[n+1].x='\0'; list[n].y=y+smear->y; all in: ExtraGalacticDiffuse.cxx ------------------------------------------------------------------------- ------------------------------------------------------------------------- Added file (in package NTupleWriterSvc ) INTupleWriterSvc.h There was a file INtupleWriterSvc.h and the other files were looking for INTupleWriterSvc.h which seems to be more consistent with the convention so I just copied INtupleWriterSvc.h to INTupleWriterSvc.h ----------------------------------------------------------------------- ----------------------------------------------------------------------- Commented out application test in trigger for now just to get things built - go back and fix this later ----------------------------------------------------------------------- ----------------------------------------------------------------------- Had to change: #include "flux/IspectrumFactory.h" to: #include "flux/ISpectrumFactory.h" in ../src/Dll/FluxSvc_load.cxx ----------------------------------------------------------------------- ----------------------------------------------------------------------- Had to change: #include "TkrRecon\RecNtupleAlg.h" to: #include "TkrRecon/RecNtupleAlg.h" in .../TkrRecon/v1r6/src/RecNtupleAlg.cpp and #include "TkrRecon\TkrNtupleAlg.h" #include "TkrRecon\SiClusters.h" to: #include "TkrRecon/TkrNtupleAlg.h" #include "TkrRecon/SiClusters.h" in: in .../TkrRecon/v1r6/src/TkrNtupleAlg.cpp Had to change: #include "xml/Ifile.h" to: #include "xml/IFile.h" in .../TkrRecon/v1r6/src/TkrGeometrySvc.cxx -------------------------------------------------------------------------- -------------------------------------------------------------------------- Disabling test program build in acdRecon v1r1 to get the things built... -------------------------------------------------------------------------- -------------------------------------------------------------------------- To build userAlg... since we've got a new version of TkrRecon (vir6p2) and the had changes aren't in the current release, had to: change: #include "TkrRecon\RecNtupleAlg.h" to: #include "TkrRecon/RecNtupleAlg.h" in .../TkrRecon/v1r6p2/src/RecNtupleAlg.cpp and #include "TkrRecon\TkrNtupleAlg.h" #include "TkrRecon\SiClusters.h" to: #include "TkrRecon/TkrNtupleAlg.h" #include "TkrRecon/SiClusters.h" in: in .../TkrRecon/v1r6p2/src/TkrNtupleAlg.cpp Had to change: #include "xml/Ifile.h" to: #include "xml/IFile.h" in .../TkrRecon/v1r6p2/src/TkrGeometrySvc.cxx ------------------------------------------------------------------------ ------------------------------------------------------------------------ Temporarily disabling test program build in acdRecon v1r1p1 to get things built.. ------------------------------------------------------------------------ ------------------------------------------------------------------------ had to do change: // nasty include needed so that we can get at the HepRandomEngine // in the initialize method. (Ian Gable) #include "GaudiSvc/../src/RndmGenSvc/HepRndmBaseEngine.h" #include "gismo/../src/Random.h" to: // nasty include needed so that we can get at the HepRandomEngine // in the initialize method. (Ian Gable) #include "src/RndmGenSvc/HepRndmBaseEngine.h" #include "src/Random.h" in GismoGenerator.cxx and blasted test macro in Gismogenerator for now...sigh ----------------------------------------------------------------------- ----------------------------------------------------------------------- Many shared libraries weren't built so I'm reverting to cmt v1r6 to see if that fixes the problem - needed the above fixes plus (and a bunch of command line edits for the test files): --------------------------------------------------------------------- First thing I had to do was change: use gui v2r1 to: use gui v2r2 in the gismosys (v4r3) requirements file. Still didn't pick up the right Motif changes - they're still in the head - so that didn't make much difference but I told Toby I'd make that change, commit it and move the tag for that (the requiremnts) file - might wait until the head changes get incorporated into gui. --------------------------------------------------------------------- #include "ntupleWriterSvc/INtupleWriterSvc.h" to: #include "ntupleWriterSvc/INTupleWriterSvc.h" in ../TkrRecon/v1r7/src/McReconAlg.cxx -------------------------------------------------------------------- acdRecon test wouldn't build but structure was virtually identical to TkrRecon which did so I changed the acdRecon requirements file to match the tkr Recon requirements file: changed: macro WinJobOptions "" VisualC "test/jobOptions.txt" to: macro jobOptions "" WIN32 "test/jobOptions.txt" and: application test_acdRecon test/*.cxx *.cxx *.h Dll/*.cxx ${WinJobOptions} to: application test \ test/*.cxx $(jobOptions) ------------------------------------------------------------------------ changed: #include "ntupleWriterSvc/INtupleWriterSvc.h" to: #include "ntupleWriterSvc/INTupleWriterSvc.h" in: ../CalRecon/v1r10/src/CalNtupleAlg.cxx ------------------------------------------------------------------ Had to add -L/home/GLAST/groupdev/packages/GaudiSvc/v5/i386_linux22 -lGaudiSvc to the GismoGenerator command line I tried sticking: use GaudiSvc in the GismoGenerator requirements file to no avail... so it looks like the above kludge is it for now. cmt's build command for the shared library erases the shared library I built by hand and tries to build it first in a temporary file; then the linker bombs because cmt dosen't have the correct link options (cmt seems to have a strange method of doing make's) so the hack is to run gmake and let it bomb, then edit the command line to build the shared library, then comment out the line: library GismoGenerator *.cxx *.h Dll/*.cxx in the requirements file - ugh "fix" to build test is to replace: cd ..//i386_linux22// ; g++ -Wl,-Bdynamic -o testGismoGenerator.exe.new ..//i386_linux22//GismoGenerator.o ..//i386_linux22//MaterialDisplay.o ..//i386_linux22//MaterialList.o ..//i386_linux22//McTree.o ..//i386_linux22//GismoGenerator_dll.o ..//i386_linux22//GismoGenerator_load.o -L/u1/home/GLAST/groupdev/packages//heavy//v2/i386_linux22 -lheavy -L/u1/home/GLAST/groupdev/packages//glastmedia//v4r2/i386_linux22 -lglastmedia -L/u1/home/GLAST/groupdev/packages//gismo//v4r1/i386_linux22 -lgismo -L/u1/home/GLAST/groupdev/packages//geomrep//v3r1/i386_linux22 -lgeomrep -L/u1/home/GLAST/groupdev/packages//instrument//v3r2/i386_linux22 -linstrument -L/u1/home/GLAST/groupdev/packages//flux//v4r1/i386_linux22 -lflux -L/u1/home/GLAST/groupdev/packages//GlastEvent//v2r2/i386_linux22 -lGlastEvent -L/u1/home/GLAST/groupdev/packages//geometry//v2r1/i386_linux22 -lgeometry -L/u1/home/GLAST/groupdev/packages//gui//v2r2/i386_linux22 -lgui -L/u1/home/GLAST/groupdev/packages//xml//v3/i386_linux22 -lxml -L/u1/home/GLAST/groupdev/packages//facilities//v2/i386_linux22 -lfacilities -lg2c -L/u1/home/GLAST/groupdev/packages//GaudiKernel//v9/i386_linux22 -lGaudiKernel -L/afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//CLHEP/1.6.0.0/lib -lCLHEP /afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//xerces-c_1_3_0/lib/libxerces-c1_3.so -L/afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//HTL/1.3.0.1/lib -lT_Histoxx -L/afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//ROOT/v3.00.06/@sys/root/lib -lCint -lCore -ldl -lTree -lpthread -lHist -lMatrix ; mv -f testGismoGenerator.exe.new testGismoGenerator.exe with: cd ..//i386_linux22// ; g++ -Wl,-Bdynamic -o testGismoGenerator.exe.new ..//i386_linux22//GismoGenerator.o ..//i386_linux22//MaterialDisplay.o ..//i386_linux22//MaterialList.o ..//i386_linux22//McTree.o ..//i386_linux22//GismoGenerator_dll.o ..//i386_linux22//GismoGenerator_load.o /home/GLAST/groupdev/packages/GuiSvc/v2r1/i386_linux22/GuiMain.o -L /home/GLAST/groupdev/packages/GaudiSvc/v5/i386_linux22 -lGaudiSvc -L/u1/home/GLAST/groupdev/packages//heavy//v2/i386_linux22 -lheavy -L/u1/home/GLAST/groupdev/packages//glastmedia//v4r2/i386_linux22 -lglastmedia -L/u1/home/GLAST/groupdev/packages//gismo//v4r1/i386_linux22 -lgismo -L/u1/home/GLAST/groupdev/packages//geomrep//v3r1/i386_linux22 -lgeomrep -L/u1/home/GLAST/groupdev/packages//instrument//v3r2/i386_linux22 -linstrument -L/u1/home/GLAST/groupdev/packages//flux//v4r1/i386_linux22 -lflux -L/u1/home/GLAST/groupdev/packages//GlastEvent//v2r2/i386_linux22 -lGlastEvent -L/u1/home/GLAST/groupdev/packages//geometry//v2r1/i386_linux22 -lgeometry -L/u1/home/GLAST/groupdev/packages//gui//v2r2/i386_linux22 -lgui -L/u1/home/GLAST/groupdev/packages//xml//v3/i386_linux22 -lxml -L/u1/home/GLAST/groupdev/packages//facilities//v2/i386_linux22 -lfacilities -lg2c -L/u1/home/GLAST/groupdev/packages//GaudiKernel//v9/i386_linux22 -lGaudiKernel -L/afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//CLHEP/1.6.0.0/lib -lCLHEP /afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//xerces-c_1_3_0/lib/libxerces-c1_3.so -L/afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//HTL/1.3.0.1/lib -lT_Histoxx -L/afs/slac.stanford.edu/g/glast/ground/external_libraries_tarballs/i386_linux22/v2//ROOT/v3.00.06/@sys/root/lib -lCint -lCore -ldl -lTree -lpthread -lHist -lMatrix ; mv -f testGismoGenerator.exe.new testGismoGenerator.exe ------------------------------------------------------------------- for pdrApp had to hard wire GuiMain.cxx, i.e. change: application pdrApp $(GuiMain) $(jobOptions) $(Win32Resource) to: application pdrApp /u1/home/GLAST/groupdev/packages/GuiSvc/v2r1/src/GuiMain.cxx $(jobOptions) $(Win32Resource) in the requirements file. and change: cd ..//i386_linux22//; g++ -Wl,-Bdynamic -o pdrApp.exe.new ..//i386_linux22//GuiMain.o -L /u1/home/GLAST/groupdev/packages//GuiSvc//v2r1/i386_linux22 -lGuiSvc -u GuiSvc_loadRef -L/u1/home/GLAST/groupdev/packages//gui//v2r2/i386_linux22 -lgui -L/usr/X11R6/lib -lXm -lXt -lX11 -L/u1/home/GLAST/groupdev/packages//GaudiKernel//v9/i386_linux22 -lGaudiKernel -ldl ; mv -f pdrApp.exe.new pdrApp.exe to: cd ..//i386_linux22//; g++ -Wl,-Bdynamic -o pdrApp.exe.new ..//i386_linux22//GuiMain.o -L /u1/home/GLAST/groupdev/packages//GuiSvc//v2r1/i386_linux22 -lGuiSvc -u GuiSvc_loadRef -L/u1/home/GLAST/groupdev/packages//gui//v2r2/i386_linux22 -lgui -lguisystem -L/usr/X11R6/lib -lXm -lXt -lX11 -L/u1/home/GLAST/groupdev/packages//GaudiKernel//v9/i386_linux22 -lGaudiKernel -ldl ; mv -f pdrApp.exe.new pdrApp.exe ------------------------------------------------------------------------- in userAlg had to do the GuiMain thing, i.e. change: application userApp ${GuiMain} *.cxx $(jobOptions) $(Win32Resource) to: application userApp /u1/home/GLAST/groupdev/packages/GuiSvc/v2r1/src/GuiMain.cxx *.cxx $(jobOptions) $(Win32Resource) and had to add line: ignore_pattern package_stamps all in requirements file and had to add -lguisystem as above (after -lgui in the command line) - though this seemed to be fixed before by adding -lguisystem in the gui requirements file (go figure) ----------------------------------------------------------------------------