User Tools

Site Tools


hpc:lcgcmake

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hpc:lcgcmake [2015/08/23 23:15]
jchilders [LCGCMake]
hpc:lcgcmake [2015/08/24 19:29] (current)
jchilders
Line 16: Line 16:
     * ''soft add +cmake''     * ''soft add +cmake''
     * ''soft add +gcc-4.8.1''     * ''soft add +gcc-4.8.1''
-=== Install Dependencies ===+==== Install Dependencies ====
   * ''mkdir dependencies''   * ''mkdir dependencies''
   * ''cd dependencies''   * ''cd dependencies''
Line 59: Line 59:
  
 === Before you build === === Before you build ===
 +  * The bits below are summarized in this patch file [[hpc:lcgcmake:cooleyPatchFile|Cooley Patch File]]
   * Edit ''lcgcmake/toolchain.cmake'' line 2 <code cmake> set(LCG_VERSION dev2 CACHE STRING "HepTools version (aka LCG configuration)") </code> to <code cmake> set(LCG_VERSION 78root6 CACHE STRING "HepTools version (aka LCG configuration)") </code>   * Edit ''lcgcmake/toolchain.cmake'' line 2 <code cmake> set(LCG_VERSION dev2 CACHE STRING "HepTools version (aka LCG configuration)") </code> to <code cmake> set(LCG_VERSION 78root6 CACHE STRING "HepTools version (aka LCG configuration)") </code>
   * You have to force cmake to identify your machine as slc6 because some of the tarballs live on a webserver with ''slc6'' in the name, in the case of Cooley, ''slc6'' gets replaced with ''linux'' and the downloads fail since there is no tarball with ''linux'' in the name. Edit ''lcgcmake/cmake/toolchain/heptools-common.cmake'' around line 75 from <code cmake>else()   * You have to force cmake to identify your machine as slc6 because some of the tarballs live on a webserver with ''slc6'' in the name, in the case of Cooley, ''slc6'' gets replaced with ''linux'' and the downloads fail since there is no tarball with ''linux'' in the name. Edit ''lcgcmake/cmake/toolchain/heptools-common.cmake'' around line 75 from <code cmake>else()
Line 119: Line 120:
 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}</code> -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}</code>
 +  * Edit ''lcgcmake/externals/CMakeLists.txt'' around line ? in the hepmc3 package and add the lines <code cmake>-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 +-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}</code>.
   * Edit ''lcgcmake/externals/CMakeLists.txt'' around line 842 in the igprof package and comment out the ''-Wno-error=unused-result''.   * Edit ''lcgcmake/externals/CMakeLists.txt'' around line 842 in the igprof package and comment out the ''-Wno-error=unused-result''.
 +  * Edit ''lcgcmake/externals/CMakeLists.txt'' line 339 in the hepmc3 package from <code cmake> 
 +set(hepmc3_source_command GIT_REPOSITORY http://git.cern.ch/cernpub/hepmc3) </code> to <code cmake>
 +set(hepmc3_source_command GIT_REPOSITORY http://git.cern.ch/pub/hepmc3) </code>
  
 === Building LCG === === Building LCG ===
Line 129: Line 135:
   * After the ''pythia8'' packages download and fail to build, the Makefile's must be edited, the files ''lcgcmake-build/generators/pythia8-201/src/pythia8/201/Makefile'' have ''$(CXX_SONAME),$(notdir $@)'' which must be changed to ''-shared''.   * After the ''pythia8'' packages download and fail to build, the Makefile's must be edited, the files ''lcgcmake-build/generators/pythia8-201/src/pythia8/201/Makefile'' have ''$(CXX_SONAME),$(notdir $@)'' which must be changed to ''-shared''.
     * ''%%sed 's/$(CXX_SONAME),$(notdir\ $@)/-shared/g' generators/pythia8-201/src/pythia8/201/Makefile > generators/pythia8-201/src/pythia8/201/Makefile.tmp%%''     * ''%%sed 's/$(CXX_SONAME),$(notdir\ $@)/-shared/g' generators/pythia8-201/src/pythia8/201/Makefile > generators/pythia8-201/src/pythia8/201/Makefile.tmp%%''
-  * After ''evtgen'' package downloads and fails to build, the Makefile must be edited, the file ''lcgcmake-build/generators/evtgen-1.2.0/src/evtgen/1.2.0/Makefile'' have ''$(shell find ... )'' commands inside, Add ''-not -path '*/\.*''' to the end of these finds. This is to exclude the many stupid hidden files ''._<fildname>'' that someone must have commit to the repo from their MAC.+  * After ''evtgen'' package downloads and fails to build, the Makefile must be edited, the file ''lcgcmake-build/generators/evtgen-1.2.0/src/evtgen/1.2.0/src/Makefile'' have ''$(shell find ... )'' commands inside, Add ''-not -path '*/\.*''' to the end of these finds. This is to exclude the many stupid hidden files ''._<fildname>'' that someone must have commit to the repo from their MAC.
   * After ROOT 6 downloads and fails the build, you can make the following edits to fix the ODBC files. Add to the files ''lcgcmake-build/projects/ROOT-6.02.12/src/ROOT/6.02.12/sql/odbc/inc/TODBC*.h'' a ''#include<sqlcli.h>'' just under the ''#include<sql.h>'' at the top of the file. Add to the files ''lcgcmake-build/projects/ROOT-6.02.12/src/ROOT/6.02.12/sql/odbc/src/TODBCServer.cxx'' and ''lcgcmake-build/projects/ROOT-6.02.12/src/ROOT/6.02.12/sql/odbc/src/TODBCStatement.cxx'' a ''#include<sqlcli1.h>'' at the top of the files.   * After ROOT 6 downloads and fails the build, you can make the following edits to fix the ODBC files. Add to the files ''lcgcmake-build/projects/ROOT-6.02.12/src/ROOT/6.02.12/sql/odbc/inc/TODBC*.h'' a ''#include<sqlcli.h>'' just under the ''#include<sql.h>'' at the top of the file. Add to the files ''lcgcmake-build/projects/ROOT-6.02.12/src/ROOT/6.02.12/sql/odbc/src/TODBCServer.cxx'' and ''lcgcmake-build/projects/ROOT-6.02.12/src/ROOT/6.02.12/sql/odbc/src/TODBCStatement.cxx'' a ''#include<sqlcli1.h>'' at the top of the files.
  
hpc/lcgcmake.1440371745.txt.gz ยท Last modified: 2015/08/23 23:15 by jchilders