User Tools

Site Tools


hpc:lcgcmake

This is an old revision of the document!


LCGCMake Installation Notes

This page documents my attempts to install the LCG software core on various non-traditional machines.

The basic installation instructions are here for a standard Scientific Linix CERN 6 installation: LCGCMake SLC6 Installation

Installing on Cooley@ALCF

  1. Clean Cooley Login (nothing from .softrc.cooley)
  2. Create working directory
    • mkdir /path/to/lcg
    • export $LCG_PROJECT_PATH=/path/to/lcg
    • cd $LCG_PROJECT_PATH
    • soft add +cmake
    • soft add +gcc-4.8.1
  3. Install Dependencies first:
    • mkdir dependencies
    • cd dependencies
    • mkdir install
    1. procmail
      • tar zxf procmail-3.22.tar.gz
      • cd procmail-3.22
      • edit BASENAME in Makefile to be /path/to/lcg/dependencies/install
      • make lockfile CC=$(which gcc) CXX=$(which g++)
        • press enter when prompted
        • this only compiles lockfile because other parts of this package fail, but we don't need them.
      • cd ..
      • mkdir install/bin
      • ln -s $PWD/procmail-3.22/src/lockfile $PWD/install/bin/lockfile
    2. xslt (bottom of page) (depends on libxml2)
      • git clone git://git.gnome.org/libxslt
      • cd libxslt
      • ./configure –with-python –with-libxml-prefix=/path/to/lcg/dependencies/install –prefix=/path/to/lcg/dependencies/install
      • make -j 10
      • make install
      • cd ..
    3. export environment
      • export PATH=/path/to/lcg/dependencies/install/bin:$PATH
      • export LD_LIBRARY_PATH=/path/to/lcg/dependencies/install/lib:$LD_LIBRARY_PATH
  4. Get LCGCMake repository
    • cd $LCG_PROJECT_PATH
    • mkdir lcgcmake-build
    • mkdir lcgcmake-install
    • Edit lcgcmake/toolchain.cmake line 2
       set(LCG_VERSION dev2 CACHE STRING "HepTools version (aka LCG configuration)") 

      to

       set(LCG_VERSION 78root6 CACHE STRING "HepTools version (aka LCG configuration)") 

      .

    • Edit lcgcmake/projects/CMakeLists.txt line 296 from
       SVN_REPOSITORY=http://svn.cern.ch/guest/lcgcoral/coral/tags/${CORAL_native_version} --quiet 

      to

       SVN_REPOSITORY=http://svn.cern.ch/guest/lcgcoral/coral/tags/CORAL_${CORAL_native_version} --quiet 
    • Edit lcgcmake/externals/CMakeLists.txt lines 297 - 302 (or so) from
      #---Davix--------------------------------------------------------------------------------------------
      LCGPackage_Add(
        Davix
        URL http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/davix-<NATIVE_VERSION>.tar.gz
        CONFIGURE_COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
                                             -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
                                             -DBOOST_ROOT:PATHNAME=${Boost_home}
                                             -DBOOST_INCLUDEDIR=${Boost_home}/include
                                             -DBOOST_LIBRARYDIR=${Boost_home}/lib
                                             -DBoost_NO_BOOST_CMAKE=True
                                             <SOURCE_DIR>
        DEPENDS Boost
      )

      to

      #---Davix--------------------------------------------------------------------------------------------
      LCGPackage_Add(
        Davix
        URL http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/davix-<NATIVE_VERSION>.tar.gz
        CONFIGURE_COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
                                             -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
                                             -DBOOST_ROOT:PATHNAME=${Boost_home}
                                             -DBoost_INCLUDE_DIR:PATH=${Boost_home}/include/boost-1_55
                                             -DBoost_LIBRARY_DIR_DEBUG:PATH=${Boost_home}/lib
                                             -DBoost_LIBRARY_DIR_RELEASE:PATH=${Boost_home}/lib
                                             -DBoost_NO_BOOST_CMAKE:BOOL=True
                                             -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
                                             -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
                                             <SOURCE_DIR>
        DEPENDS Boost
      )
    • Edit lcgcmake/projects/CMakeLists.txt and insert around line 99 to the ROOT package config
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
    • Edit lcgcmake/projects/CMakeLists.txt around line 186 in the RELAX package and add the lines
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}

      .

    • Edit lcgcmake/generators/CMakeLists.txt around line 1679 in the crmc package and add the lines
      -DCMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/cmake/modules
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}

      .

  5. Now build LCG
    • cd lcgcmake-build
    • cmake -DCMAKE_INSTALL_PREFIX=../lcgcmake-install -DCMAKE_C_COMPILER=$(which gcc) -DCMAKE_CXX_COMPILER=$(which g++) ../lcgcmake
  6. Dealing with the aftermath
    • 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 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 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.
  7. Create setup environment <file bash setup.sh>

#!/usr/bin/env bash soft add +cmake soft add +gcc-4.8.1

hpc/lcgcmake.1440121280.txt.gz · Last modified: 2015/08/21 01:41 by jchilders