Difference: ILCSOFTMacOSX (2 vs. 3)

Revision 32015-06-25 - NikiforosNikiforou

Line: 1 to 1
 
META TOPICPARENT name="CLICSoftwareComputing"

Installation of an ILCSOFT release on MacOS X

Line: 6 to 6
  Trying to build ilcsoft on MacOS X 10.10 (Yosemite)
Added:
>
>
  • You should turn on c++11 otherwise the the CMake logic in PandoraPFANew will fail. Otherwise you need a fix in the PandoraPFANew module.
 * Assume to be building locally under:

/Users/clicdp/ilcsoft

Line: 25 to 27
 https://svnsrv.desy.de/public/ilctools/ilcinstall/trunk
Changed:
<
<
* Will not try to build Mokka or slic (LCDD, GDML, etc) therefore will not try to install MySQL or CondDB
>
>
  • Will not try to build Mokka or slic (LCDD, GDML, etc) therefore will not try to install MySQL or CondDB. UPDATE: If one does not want to build MySQL, they would have to also drop LCCD, MarlinTPC and possibly others. Further, one would have to set MARLIN_LCCD=OFF in the CMake config (via the Marlin installation module). Therefore, we went back and installed MySQL using homebrew which was not so bad.
 

Prerequisites:

Changed:
<
<
- Homebrew: used to install wget, boost, Doxygen, CMake (this was problematic in building from scratch on 10.10 for version referenced in the config. Used brew install cmake28 which installs a mildly more recent version)
>
>
  • Homebrew: used to install wget, boost, Doxygen, CMake (this was problematic in building from scratch on 10.10 for version referenced in the config. Used brew install cmake28 which installs a mildly more recent version) and others (mysql, latex, ...)

  • Qt4 framework from https://download.qt.io/archive/qt/4.8/4.8.5/ . Use 4 to avoid issues, though Geant4 10 should support Qt5. However, to use Qt5, I think we need to move to a more recent version of CMake (it doesn't have a FindQt5.cmake config file). Note that for some reason, qmake returns the wrong include file, or at least CMake sets up the Qt include path to /usr/include/QtCore . Therefore a workaround is to do: sudo ln -s /Library/Frameworks/QtCore.framework/Headers/ /usr/include/QtCore

  • CERNLIB: copy cernlib binaries from /afs/cern.ch/project/cndoc/wwwasd/cernlib
 
Changed:
<
<
- Qt4 framework from https://download.qt.io/archive/qt/4.8/4.8.5/ . Use 4 to avoid issues, though Geant4 10 should support Qt5. However, to use Qt5, I think we need to move to a more recent version of CMake (it doesn't have a FindQt5.cmake config file). Note that for some reason, qmake returns the wrong include file, or at least CMake sets up the Qt include path to /usr/include/QtCore . Therefore a workaround is to do: sudo ln -s /Library/Frameworks/QtCore.framework/Headers/ /usr/include/QtCore
>
>
  • Doxygen: brew install doxygen
 
Changed:
<
<
- CERNLIB: copy cernlib binaries from /afs/cern.ch/project/cndoc/wwwasd/cernlib
>
>
  • Java and Java SDK: used v 1.8 from oracle. For the time being, it seems like the configuration can't pick up the header files automatically, so you'll have to set it manually in release-ilcsoft.cfg (see below).
 
Changed:
<
<
- Doxygen: brew install doxygen
>
>
  • x11 (XQuartz)
 
Changed:
<
<
- Java and Java SDK: used v 1.8 from oracle. For the time being, it seems like the configuration can't pick up the header files automatically, so you'll have to set it manually in release-ilcsoft.cfg (see below).
>
>
  • mysql: brew install mysql
 
Changed:
<
<
- x11 (XQuartz)
>
>
  • latex: There has to be a better way to do this, but I tried with homebrew/cask
    • brew install Caskroom/cask/mactex
    • brew cask install mactex
 

Changes to configuration:

Changed:
<
<
- in release-versions.py :Change CLHEP version to 2.1.4.2 to avoid having to modify Vectors.cc (see https://its.cern.ch/jira/browse/CLHEP-103 )
>
>
 
Changed:
<
<
- in release-base.cfg: comment out installation of Qt and CMake. Also, point to the qmake executable:
>
>
  • in release-base.cfg: comment out installation of Qt and CMake. Also, point to the qmake executable:
  geant4.envcmake["QT_QMAKE_EXECUTABLE"]='/usr/bin/qmake'
Changed:
<
<
- in release-ilcsoft.cfg:
>
>
  • in release-ilcsoft.cfg:
 
Changed:
<
<
- Comment out use of CMake (will be picked up from system, since installed by brew) - Comment out linking to Qt, CondDBMySQL - Comment out linking to HepPDT, GDML, LCDD, SLIC, SlicPandora - Comment out installation of Mokka and configuration of Mokka installation module - Manually define a variable for Java_path and fill it appropriately. In my case, I had to add the following around line 303 (just before the java check):
>
>
    • Comment out use of CMake (will be picked up from system, since installed by brew)
    • Comment out linking to Qt, CondDBMySQL
    • Comment out linking to HepPDT, GDML, LCDD, SLIC, SlicPandora
    • Comment out installation of Mokka and configuration of Mokka installation module
    • Manually define a variable for Java_path and fill it appropriately. In my case, I had to add the following around line 303 (just before the java check):
  Java_path="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home"
Added:
>
>
    • Fortran should not be needed. Set fortran_lib_path="" in release-versions.py and in release-ilcsoft.cfg do:
ilcsoft.module("MarlinReco").envcmake["MARLINRECO_FORTRAN"]='OFF'

    • Try with setting c++11 on just for PandoraPFANew and MarlinPandora:
      • ilcsoft.module("PandoraPFANew").envcmake["CMAKE_CXX_FLAGS"]='-std=c++11 -Wall'
      • ilcsoft.module("MarlinPandora").envcmake["CMAKE_CXX_FLAGS"]='-std=c++11 -Wall'

---+++ Changes to code:

  • Needed to modify PandoraAnalysis to add #include <unistd.h> for all followinf files in /Users/clicdp/ilcsoft/v01-17-07-pre06/PandoraAnalysis/v01-00-01/calibration/
    • ECalDigitisation_ContainedEvents.cc
    • HCalDigitisation_ContainedEvents.cc
    • HCalDigitisation_DirectionCorrectionDistribution.cc
    • HCalDigitisation_Ring.cc
    • PandoraPFACalibrate_EMScale.cc
    • PandoraPFACalibrate_HadronicEnergyGaussianFit.cc
    • PandoraPFACalibrate_HadronicScale_ChiSquareMethod.cc
    • PandoraPFACalibrate_HadronicScale_TotalEnergyMethod.cc
    • PandoraPFACalibrate_MipResponse.cc
    • RescaleEnergies.cc

probably we will have to commit changes to the packages to handle this - maybe a preprocessor directive to make the change unique to mac.

 

Installation

Having fulfilled the above requirements and applied the suggested changes, you can proceed with the installation of the base first and the ilcsoft release later.

Line: 90 to 123
  ./ilcsoft-install releases/v01-17-07/release-ilcsoft.cfg -i
Added:
>
>
You may have some warnings from the documentation build or even be asked for input when some command is not defined (press enter to continue or q to exit latex). Either handle it manually, or turn the documentation building off.

Problems/Things to improve

  • Make CMake configuration more robust in applying c++11 for modern compilers that support it. Advice to actually use C++11 throughout the installation.
  • The documentation does not appear to build properly. Probably a more standard latex installation is needed, but one should consider turning the documentation building off.
  -- NikiforosNikiforou - 2015-06-25
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback