---------------------------------------------------------------------- 2020/03/13 K.Fujii v02-00-01 ---------------------------------------------------------------------- URL: https://github.com/iLCSoft?page=1 1) Install the required packages: $ sudo apt-get update $ sudo apt-get install yum $ sudo yum install mysql-community-devel imake gsl-devel gsl-static clhep geant4 root cernlib xerces-c cmake gcc glibtool m4 autoconf automake poppler-devel libgcrypt-devel libptexenc-devel fastjet fjcontrib ocaml whizard boost-devel lcio python3-devel 2) Get the "ilcinstall" and its MacOSX patch $ sudo mkdir -p /Users/proj/soft/ilcsoft/src/10.15/v02-00-01 $ sudo chown -R /Users/proj/soft/ilcsoft $ cd /Users/proj/soft/ilcsoft/src/10.15/v02-00-01 # get the source files from the github above. # make them into tarballs for later convenience. $ ls CondDBMySQL_ILC-0-9-6.tar.gz HowToInstall.osx LP_Asian_GEM_Module.tar.gz bbq-v00-01-03.patch ced-v01-09-02.tar.gz dd4hep-v01-07-root614.patch dd4hep-v01-07.patch dd4hepexamples-v01-07-01.patch ilcinstall-v02-00-01-macosx10.15.patch ilcinstall-v02-00-01.tar.gz ilcutil-v01-05-macosx10.13.patch ilcutil-v01-05.tar.gz lcgeo-v00-16-01.patch marlintpc-rootfileproc.patch marlintpc-v01-04-not0.patch pandrapfanew-v03-09-00.patch 3) Install dependent libraries 3-1) ilcutil-v01-05 $ cd /Users/proj/soft/ilcsoft/src/10.15/v02-00-01 $ mkdir -p /Users/proj/soft/ilcsoft/ilcutil $ tar -zxvf ilcutil-v01-05.tar.gz -C /Users/proj/soft/ilcsoft/ilcutil $ pushd /Users/proj/soft/ilcsoft/ilcutil/v01-05 $ patch -p1 -s < ../../src/10.15/v02-00-01/ilcutil-v01-05-macosx10.13.patch $ mkdir build $ cd build $ cmake .. $ make $ make install $ popd 3-2) ced-v01-09-02 $ mkdir -p /Users/proj/soft/ilcsoft/CED $ tar -zxvf ced-v01-09-02.tar.gz -C /Users/proj/soft/ilcsoft/CED $ pushd /Users/proj/soft/ilcsoft/CED/v01-09-02 $ mkdir build $ cd build $ cmake -DILCUTIL_DIR=/Users/proj/soft/ilcsoft/ilcutil/v01-05 .. $ make $ make install $ popd 3-3) CondDBMySQL_ILC-0-9-6 $ mkdir -p /Users/proj/soft/ilcsoft/CondDBMySQL $ tar -zxvf CondDBMySQL_ILC-0-9-6.tar.gz -C /Users/proj/soft/ilcsoft/CondDBMySQL $ pushd /Users/proj/soft/ilcsoft/CondDBMySQL/CondDBMySQL_ILC-0-9-6 $ mkdir build $ cd build $ cmake -DILCUTIL_DIR=/Users/proj/soft/ilcsoft/ilcutil/v01-05 .. $ make $ make install $ popd 4) Build and install the ilcsoft $ cd /Users/proj/soft/ilcsoft $ tar -zxvf src/10.15/v02-00-01/ilcinstall-v02-00-01.tar.gz $ cd ilcinstall $ patch -p1 -s -b < ../src/10.15/v02-00-01/ilcinstall-v02-00-01-macosx10.15.patch $ ./ilcsoft-install -i releases/v02-00/release-osx.cfg ....... ... before compilation starts, apply the following patches in a new window: ... Open a new terminal and do the following $ pushd ../v02-00-01/MarlinTPC/v01-04 $ patch -p1 -s < ../../../src/10.15/v02-00-01/marlintpc-v01-04-not0.patch $ patch -p3 -s < ../../../src/10.15/v02-00-01/marlintpc-rootfileproc.patch $ popd $ pushd ../v02-00-01/bbq/v00-01-03 $ patch -p1 -s < ../../../src/10.15/v02-00-01/bbq-v00-01-03.patch $ popd $ pushd ../v02-00-01/DD4hep/v01-07-01 $ patch -p1 -s < ../../../src/10.15/v02-00-01/dd4hep-v01-07.patch $ patch -p1 -s < ../../../src/10.15/v02-00-01/dd4hep-v01-07-root614.patch $ rm -f cmake/FindXercesC.cmake $ popd $ pushd ../v02-00-01/lcgeo/v00-16-01 $ patch -p2 -s < ../../../src/10.15/v02-00-01/lcgeo-v00-16-01.patch $ popd $ pushd ../v02-00-01/DD4hepExamples/v01-07-01/ $ patch -p2 -s < ../../../src/10.15/v02-00-01/dd4hepexamples-v01-07-01.patch $ popd $ pushd ../v02-00-01/PandoraPFANew/v03-09-00 $ patch -p1 -s < ../../../src/10.15/v02-00-01/pandrapfanew-v03-09-00.patch $ popd # Note: # DD4hep: DDCore/src/NamedObject.cpp # commented out instantiation of dd4hep::Handle # : DDCore/src/plugins/LCDDConverter.cpp # const TGeoMatrix &linv, etc. # : cmake/DD4hepBuild.cmake # replace -no-undefined by undefined,error # PandrawPFANew: PandoraSDK-v03-02-01/src/Xml/tinyxmlparser.cc # [[fallthrough]]; # bbq: v00-01-03/src/TBBQManager.cxx # avoid comparison of pointer with logical # -------------------------------------------------------------- # Note 2: geant4.10.06 issue # ilcsoft-v02-00-01/DD4hep does not compile with this version, claiming # that it cannot find a proper verson of xerces-c even though it's there. # This probelm persists even if xerces-c support is switched off. # --> geant4-10.04.p01 does not have this problem, though it is simply # because xerces-c is not linked in this version. # --> The problem is caused by # /opt/g4/10.06.01/lib/Geant4-10.6.0/Geant4LibraryDepends.cmake # which includes XercesC::XercesC in INTERFACE_LINK_LIBRARIES though # there is no dictionary provided to translate XercesC::XercesC to # a real path to libxerces-c.dylib. # ##### Temporary Dirty Hack #### # Removed XercesC::XercesC from INTERFACE_LINK_LIBRARIES. # Be sure to fix this when geant4 is rebuilt. # The xerces-c version check failure in DD4hep's FindXercesC.cmake # is fixed by setting VERSION_VAR from "XercesVersion.hpp". # --> Found FindXercesC.cmake officially provided by cmake 3.15.5. # Just removing DD4hep's FindXercesC.cmake fixed the problem. # For lcgeo, dd4hepexamples, add xercesc to include dirs. # --> Some tex package missing -> listfititems.sty? # --> Switch off doc generation temporarily. -------------------------------------------------------------- To rebuid a package $ cd $ touch .install_failed.tmp -------------------------------------------------------------- To rebuid a package after modifiying the source code: $ cd $ touch .install_failed.tmp -------------------------------------------------------------- 5) Test run # I had to add all the relevant lib directories to DYLD_LIBRARY_PATH # in init_ilcsoft.sh # I also had to reboot the system with Cmd+R (or Opt+Cmd+R) and do # the following to allow DYLD_LIBRARY_PATH # csrutil disable 6) KalTest in Xcode 6-1) Build root with clang++ $ sudo alternatives --config gcc .. to select clang $ cd $ mkdir root $ cd root $ tar -zxvf /root_v6.20.00.source.tar.gz $ cd mv root-6.20.00 6.20.00 $ cd 6.20.00 $ mkdir build_root $ cd build_root $ cmake -DCMAKE_INSTALL_PREFIX=`pwd`/.. .. $ make -j8 $ make install 6-2) Then build ilcutil with that root $ cd $ mkdir ilcutil $ cd ilcutil $ tar -zxvf /ilcutil-v01-05.tar.gz $ cd v01-05 $ mkdir build $ cd build $ source ../../../root/6.20.00/bin/thisroot.sh $ cmake .. $ make $ make install 6-3) Prepare Xcode project for KalTest $ cd $ mkdir kaltest $ tar -zxvf /kaltest-v02-03.tar.gz $ cd v02-03 $ mkdir build $ source ../../root/6.20.00/bin/thisroot.sh $ cmake -G Xcode -DILCUTIL_DIR= .. 6-4) Build and run KalTest with Xcode # v02-04 does not work (no display) # reverted to v02-03 ---------------------------------------------------- To get the head version do the following, instead: $ svn co https://svnsrv.desy.de/public/marlintpc/trunk 5) Then build and install MarlinTPC If you have libjpeg-devel and libtiff-devel installed, uninstall them since they conflict with the system provided libraries: $ rpm -e libjpeg-devel libtiff-devel Then build MarlinTPC: $ cd /Users/proj/cdc/soft/MarlinTPC $ tar -zxvf src/r3390.tar.gz $ cd r3390 $ tar -zxvf ../src/analysis.tar.gz $ mkdir build $ cd build $ cmake -C ../../../v01-17-04/ILCSoft.cmake .. $ make install $ cd .. $ tar -zxvf ../src/LP_Asian_GEM_Module.tar.gz -C examples 7) You can also try CEDViewer In order to use CEDViewer, you need to start a CED server, glced, first. $ source ../../../v01-17-04/init_ilcsoft.sh $ glced -world_size=100. Then open a new termnal window and type $ cd /Users/proj/cdc/soft/MarlinTPC/r3390/examples/LP_Asian_GEM_Module $ Marlin reconstructLCTPCRawData.xml Hit "h" in the viewer window for "help". In order to get trunk version of ilcsoft, first get the trunk version of ilcinstall by typing $ svn co https://svnsrv.desy.de/public/ilctools/ilcinstall/trunk