This version (2022/06/20 09:01) was approved by msiegel.

We finally managed to compile shore. It was a bit envolved because of a bug in the boost library and an error in a source header file of shore which we had to find out and correct.

The steps to reproduce the installation are:

1)

module load intel/15.0.2
module load intel-mpi/5
module load boost/intel/1.58.0
module load gsl/1.16
module load xz/5.2.1

export CPLUS_INCLUDE_PATH="/opt/sw/x86_64/glibc-2.12/ivybridge-ep/boost/1.58.0/intel-15.0.2/include:/opt/sw/x86_64/glibc-2.12/ivybridge-ep/gsl/1.16/intel-14.0.2/include:/opt/sw/x86_64/glibc-2.12/ivybridge-ep/xz/5.2.1/intel-15.0.2/include"

export LIBRARY_PATH="/opt/sw/x86_64/glibc-2.12/ivybridge-ep/boost/1.58.0/intel-15.0.2/lib:/opt/sw/x86_64/glibc-2.12/ivybridge-ep/gsl/1.16/intel-14.0.2/lib:/opt/sw/x86_64/glibc-2.12/ivybridge-ep/xz/5.2.1/intel-15.0.2/lib"

CC=icc CXX=icpc MPICXX=mpiicpc MPICC=mpiicc 
CFLAGGS="-I/opt/sw/x86_64/glibc-2.12/ivybridge-ep/boost/1.58.0/intel-15.0.2/include/boost" 
CXXFLAGS="-I/opt/sw/x86_64/glibc-2.12/ivybridge-ep/boost/1.58.0/intel-15.0.2/include/boost" 
LDFLAGS="-L/opt/sw/x86_64/glibc-2.12/ivybridge-ep/xz/5.2.1/intel-15.0.2/lib 
-L/opt/sw/x86_64/glibc-2.12/ivybridge-ep/boost/1.58.0/intel-15.0.2/lib" 
./configure --with-mpi

2) Then modify the file ./src/CoreLib/shore/processing/method_check.hpp. There you need to change the definition “private” to “public” in line 34: This is how it should look (lines 32 - 51:

class member_check_defs
{
  public:

         class cannot_mix
         {
                 char m;
         };

         class can_mix
         {
                 cannot_mix m[2];
         };

         template<typename U, U t>
         class instantiate_test
         {};

         member_check_defs();
};

3) Then type

make
  • doku/shore.txt
  • Last modified: 2015/05/26 06:22
  • by markus