summaryrefslogtreecommitdiff
path: root/contrib/critical_collapse/build_instructions.txt
blob: 1c5b6cd6a2142f4016d3573e7e44c3b8001d869c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# this is a guideline, not a script - do not execute directly
# start in the source dir root
SOURCE_DIR=$PWD

# create the build dir, only do this once for the entire source dir
BUILD_DIR="${SOURCE_DIR}/build"
mkdir "$BUILD_DIR" && cd "$BUILD_DIR" && "${SOURCE_DIR}/configure"

# from now on work in the build dir
cd "$BUILD_DIR"

# create configuration, called 'cc' in this document
make cc PROMPT=

# copy the thorn list for the configuration
cp "${SOURCE_DIR}/contrib/critical_collapse/ThornList" configs/cc

# the following external libraries are needed
LIBS="brilldata teukolskydata mg2d lapacke gfortran"
# library object dir
LIBDIR="<library location>"
# header dir
INCDIR="<header location>"

export PKG_CONFIG_PATH="${LIBDIR}/pkg_config"

# compiler flags
CFLAGS="-g -std=gnu99 -I${INCDIR}"
C_OPTIMISE_FLAGS="-O3"
C_OPENMP_FLAGS="-fopenmp"
CXXFLAGS="-g -std=c++11"
CXX_OPTIMISE_FLAGS="-O3"
CXX_OPENMP_FLAGS="-fopenmp"
F90FLAGS="-fallow-argument-mismatch"

# set build parameters
make cc-reconfig                                                                    \
    OPENMP=yes VECTORISE=yes                                                        \
    MPI_DIR=/usr LIBS="$LIBS" LDFLAGS="$LDFLAGS"                                    \
    C_OPTIMISE_FLAGS="$C_OPTIMISE_FLAGS" CXX_OPTIMISE_FLAGS="$CXX_OPTIMISE_FLAGS"   \
    C_OPENMP_FLAGS="$C_OPENMP_FLAGS" CXX_OPENMP_FLAGS="$CXX_OPENMP_FLAGS"           \
    CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" F90FLAGS="$F90FLAGS"

# build
make cc -j8