80 lines
2.1 KiB
Bash
Executable file
80 lines
2.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
########################################################################
|
|
# This is an example of how to deal with complex builds,
|
|
# for instance on clusters with compilers provided as side modules.
|
|
########################################################################
|
|
|
|
# Run this script in a separate dir, e.g.
|
|
# mkdir -p code ; cd code ; ../build_fastga.sh
|
|
|
|
# exit when any command fails
|
|
set -e
|
|
|
|
# We need recent clang and cmake
|
|
module load LLVM/clang-llvm-10.0
|
|
module load cmake/3.18
|
|
|
|
# We are going to use a specific compiler, different from the system's one.
|
|
# Path toward the compiler:
|
|
C="/opt/dev/Compilers/LLVM/10.0.1/bin"
|
|
# Path toward the include for the std lib:
|
|
I="/opt/dev/Compilers/LLVM/10.0.1/include/c++/v1/"
|
|
# Path toward the compiled std lib:
|
|
L="/opt/dev/Compilers/LLVM/10.0.1/lib"
|
|
|
|
# As we use clang, we use its std lib (instead of gcc's "libstdc++")
|
|
S="libc++"
|
|
|
|
# Gather all those into a set of flags:
|
|
flags="-I${I} -stdlib=${S} -L${L}"
|
|
|
|
# Current dir, for further reference.
|
|
here=$(pwd)
|
|
|
|
# Compiler selection
|
|
export CC=${C}/clang
|
|
export CXX=${C}/clang++
|
|
|
|
# If the dir already exists
|
|
if cd IOHexperimenter ; then
|
|
# Just update the code
|
|
git pull
|
|
else
|
|
# Clone the repo
|
|
git clone --branch feat+EAF --single-branch --recurse-submodules https://github.com/jdreo/IOHexperimenter.git
|
|
cd IOHexperimenter
|
|
fi
|
|
# Clean build from scratch
|
|
rm -rf release
|
|
mkdir -p release
|
|
cd release
|
|
cmake -DCMAKE_CXX_FLAGS="${flags}" -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTS=OFF -D BUILD_EXAMPLE=OFF ..
|
|
make -j
|
|
# Get back to the root dir
|
|
cd ${here}
|
|
|
|
|
|
if cd paradiseo ; then
|
|
git pull
|
|
else
|
|
git clone --branch feat+num_foundry --single-branch --recurse-submodules https://github.com/jdreo/paradiseo.git
|
|
cd paradiseo
|
|
touch LICENSE
|
|
fi
|
|
rm -rf release
|
|
mkdir -p release
|
|
cd release
|
|
cmake -DCMAKE_CXX_FLAGS="${flags}" -D CMAKE_BUILD_TYPE=Release ..
|
|
make -j
|
|
cd ${here}
|
|
|
|
|
|
cd paradiseo/eo/contrib/irace
|
|
rm -rf release
|
|
mkdir -p release
|
|
cd release
|
|
cmake -DCMAKE_CXX_FLAGS="${flags}" -D CMAKE_BUILD_TYPE=Release -D IOH_ROOT=${here}/IOHexperimenter/ -D PARADISEO_ROOT=${here}/paradiseo/ -D PARADISEO_BUILD=${here}/paradiseo/release/ ..
|
|
make -j
|
|
cd ${here}
|
|
|