Difference: ILCSOFTMacOSX (3 vs. 4)

Revision 42015-06-26 - NikiforosNikiforou

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

Installation of an ILCSOFT release on MacOS X

Line: 32 to 32
 

Prerequisites:

Added:
>
>
  • xcode and svn: to have a working console, checkout packages, etc ..
 
  • 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
Line: 54 to 56
 

Changes to configuration:

Changed:
<
<
>
>

in release-versions.py :

  • Change ilcsoft_install_prefix to point to your installation (for base and then for the releases):
    • ilcsoft_install_prefix = "/Users/clicdp/ilcsoft/"
  • Change CLHEP version to 2.1.4.2 from 2.1.4.1 to avoid having to modify Vectors.cc (see https://its.cern.ch/jira/browse/CLHEP-103 )
    • CLHEP_version = "2.1.4.2"

  • If you have MySql installed ( I had 5.6.25), change the relevant variables around line 80:
# ----- mysql --------------------------------------------------------                                   
MySQL_version = "5.6.25"
#MySQL_path = ilcPath + "/mysql/" + MySQL_version                                                        
MySQL_path = "/usr/local/Cellar/mysql/"+ MySQL_version

#if( ilcsoft_afs_path[ arch ] == '/afs/desy.de/project/ilcsoft/sw/x86_64_gcc46_ub1204' ):                
#    MySQL_path = "/usr"    

notice that I commented out the if block starting with if( ilcsoft_afs_path[ arch ]... since it leads to "key error". If you don't have MySQL installed and you want to proceed like that, comment out the whole block above.

  • Change boost location:
#------ boost headers files ------------------------------------------                                   
#Boost_path = "/afs/desy.de/project/ilcsoft/sw/boost/1.58.0"                                             
Boost_path = "/usr/local/Cellar/boost/1.58.0"

  • Change CERNLIB location:
# ----- CERNLIB ------------------------------------------------------                                   
CERNLIB_version = "2006"
#CERNLIB_path = "/afs/desy.de/project/ilcsoft/sw/x86_64_gcc44_sl6/cernlib/" + CERNLIB_version            
CERNLIB_path = "/Users/clicdp/ilcsoft/CERNLIB_2006_MacIntel_gcc4"

  • Set fortran library path to "" even if c++11 is enabled:
Fortran_lib_path = ""
# ----- when using gcc48 we need to give a hint where to find the libary:                                
#if( use_cpp11 ):                                                                                        
#    Fortran_lib_path = "/afs/cern.ch/sw/lcg/contrib/gcc/4.8.1/x86_64-slc6-gcc48-opt/lib64"              
 
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:

 
    • Comment out use of CMake (will be picked up from system, since installed by brew)
    • Comment out linking to Qt, CondDBMySQL
Line: 99 to 141
  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.
Changed:
<
<
To install the base, it is advised not to do it under the ilcsoft release tag, but rather on the ilcsoft top area. To do that, edit release-versions.py and set:

append_version_to_install_prefix = False

>
>
To install the base, it is advised not to do it under the ilcsoft release tag, but rather on the ilcsoft top area. This is now done by default.
 
Changed:
<
<
Then, first check the configuration by doing:
>
>
First check the configuration by doing:
  ./ilcsoft-install releases/v01-17-07/release-base.cfg
Line: 111 to 151
  ./ilcsoft-install releases/v01-17-07/release-base.cfg -i
Changed:
<
<
Once this is done, change again release-versions.py to append the release version to the top directory:

append_version_to_install_prefix = True

Then, first check the configuration by doing:

>
>
Then, first check the ilcsoft configuration by doing:
  ./ilcsoft-install releases/v01-17-07/release-ilcsoft.cfg
Line: 125 to 161
  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.
Added:
>
>
In building MarlinTPC I got a problem during the linking:

ld: unknown option: --no-as-needed clang: error: linker command failed with exit code 1 (use -v to see invocation)

I resolved it temporarily by going to MarlinTPC//build and issuing make VERBOSE=1. At the failing command, I copy the complete compilation-linking command with all the arguments which I edit and remove -Wl,--no-as-needed . I executed the modified command and compiled, after which I could go back to the ilcinstall-trunk directory and reissue the ilcsoft installation command, which resumes (since it finds the objects already). UPDATE: CMake Configuration in MarlinTPC was fixed in HEAD to avoid setting this option for APPLE. You may need to manually change it in your release. Instead of the hack above, just edit CMakeLists.txt and surround line 245 with:

if (NOT APPLE)
   SET_TARGET_PROPERTIES( generatePedestalRawData PROPERTIES LINK_FLAGS -Wl,--no-as-needed )
endif()
 

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.
Added:
>
>

ld: unknown option: --no-as-needed clang: error: linker command failed with exit code 1 (use -v to see invocation)

UPDATE: CMake Configuration in MarlinTPC was fixed in HEAD to avoid setting this option for APPLE. You may need to manually change it in your release.

 
Added:
>
>
  • DD4hepExamples: problem with naming of the libDD4hepSimpleDetector.dylib (should be libSimpleDetector.dylib ?) UPDATE: DD4hepExamples installation module updated to fix this bug. Should be OK
  -- 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