From 9add256f0c7613912f4c5eb4a9a624d6f7153e06 Mon Sep 17 00:00:00 2001 From: Andreas Adelmann <andreas.adelmann@psi.ch> Date: Mon, 24 Jun 2024 20:55:52 +0200 Subject: [PATCH] no scripts anymore --- build-script/401-build-opal | 207 ------------------------------------ 1 file changed, 207 deletions(-) delete mode 100755 build-script/401-build-opal diff --git a/build-script/401-build-opal b/build-script/401-build-opal deleted file mode 100755 index 4582dbea1..000000000 --- a/build-script/401-build-opal +++ /dev/null @@ -1,207 +0,0 @@ -#!/bin/bash -l -# -function echocolor() { # $1 = string - COLOR='\033[1;33m' - NC='\033[0m' - printf "${COLOR}$1${NC}\n" -} -# -otb_exit() { - local -i ec=$? - if [[ -n "${BASH_VERSION}" ]]; then - local -i n=${#BASH_SOURCE[@]} - local -r recipe_name="${BASH_SOURCE[n]}" - else - local -r recipe_name="${ZSH_ARGZERO}" - fi - echo -n "${recipe_name}: " - if (( ec == 0 )); then - echo "done!" - elif (( ec == OTB_ERR_ARG )); then - echo "argument error!" - elif (( ec == OTB_ERR_SETUP )); then - echo "error in setting everything up!" - elif (( ec == OTB_ERR_SYSTEM )); then - echo "unexpected system error!" - elif (( ec == OTB_ERR_DOWNLOAD )); then - echo "error in downloading the source file!" - elif (( ec == OTB_ERR_UNTAR )); then - echo "error in un-taring the source file!" - elif (( ec == OTB_ERR_CONFIGURE )); then - echo "error in configuring the software!" - elif (( ec == OTB_ERR_MAKE )); then - echo "error in compiling the software!" - elif (( ec == OTB_ERR_PRE_INSTALL )); then - echo "error in pre-installing the software!" - elif (( ec == OTB_ERR_INSTALL )); then - echo "error in installing the software!" - elif (( ec == OTB_ERR_POST_INSTALL )); then - echo "error in post-installing the software!" - else - echo "oops, unknown error!!!" - fi - exit ${ec} -} -export -f otb_exit > /dev/null - -# General build parameters -export build_type= -compiler=${compiler:-$(which g++)} -export compiler -mode=Debug #Release - -# Build targets -build_opalx=true - -# OPAL settings -export ENABLE_UNIT_TESTS=OFF -EXPORT_COMMANDS= - -function help() { - echo "Usage: $0 [flags...]" - echo "For long form options, arguments must be given after an equal sign (--opt=arg)." - echo "Refer to the comments in this shell script for additional details." - echo "Flags:" - echo " -h|--help: show this help" - - echo " -t|--target target: preset build for target (cuda/openmp/serial) or name for custom build;" - echo " this flag is REQUIRED as it will be used to identify the build directories" - - # Kokkos configuration - echo " --enable-cuda: build OPAL-X with CUDA" - echo " --enable-openmp: build OPAL-X with OpenMP" - echo " --enable-serial: build OPAL-X with in serial mode" - # Architectures: https://kokkos.github.io/kokkos-core-wiki/keywords.html#keywords-arch - echo " -g|--cudacc capability: set GPU compute capability for Kokkos CUDA (default Ampere 80, written as AMPERE80)" - echo " -c|--cpu arch: set CPU architecture for Kokkos optimizations (default local machine, i.e. NATIVE)" - - # OPAL-X configuration - echo " -u|--nounit: disable OPAL-X unit tests" - # LSP: language server protocol (https://en.wikipedia.org/wiki/Language_Server_Protocol) - # CMake can be configured to export information that would allow certain editor tools (like clangd) - # to provide language- and program-aware diagnostics, such as signature mismatches or other - # symbol-related errors. - echo " --export: export OPAL compile commands for LSPs (such as clangd)" - - # General build configuration - echo " -d|--debug: debug build" - echo " --mode build_mode: set build mode directly (Release, Debug, etc)" - -} - -# POSIX compliant long options with getopts: -# https://stackoverflow.com/a/28466267/2773311 - -die() { echo "$1"; exit 1; } -needs_arg() { if [ -z "$OPTARG" ]; then die "No arg for --$opt option"; fi; } - -while getopts "ht:dc:ug:-:" opt; do - if [ "$opt" = "-" ]; then # long option: reformulate OPT and OPTARG - opt="${OPTARG%%=*}" # extract long option name - OPTARG="${OPTARG#"$opt"}" # extract long option argument (may be empty) - OPTARG="${OPTARG#=}" # if long option argument, remove assigning `=` - fi - case $opt in - h | help) help; exit 0 ;; - t | target) needs_arg; build_type=$OPTARG ;; - - d | debug) mode=Debug ;; - mode) mode=$OPTARG ;; - - u | nounit) ENABLE_UNIT_TESTS=OFF ;; - export) EXPORT_COMMANDS="-DCMAKE_EXPORT_COMPILE_COMMANDS=1" ;; - - g | cudacc) needs_arg; GPU_ARCH=$OPTARG ;; - c | cpu) needs_arg; CPU_ARCH=$OPTARG ;; - enable-cuda) CUDA=ON ;; - enable-openmp) OPENMP=ON ;; - enable-serial) SERIAL=ON ;; - - ?) exit 1 ;; - esac -done - -if [ -z "$build_type" ]; then - echo "No build target specified. Run $0 --help for more details." - exit 1 -fi - - -# -# Can be set from outside -# -if [ ! -z $OTB_SRC_DIR ]; then - echocolor "Note: OTB_SRC_DIR was inherited and set to $OTB_SRC_DIR" -else - export OTB_SRC_DIR=/psi/home/adelmann/opal-x/downloads -fi - -if [ ! -z $OTB_PREFIX ]; then - OTB_PREFIX="${OTB_PREFIX}_${build_type}" - echocolor "Note: OTB_PREFIX was inherited and set to $OTB_PREFIX" -else - export OTB_PREFIX=/psi/home/adelmann/opal-x/install_${build_type} -fi - -# Heffte Ippl Kokkos (HEK) -if [ ! -z $HIK_INSTALL_DIR ]; then - HIK_INSTALL_DIR="${HIK_INSTALL_DIR}_${build_type}" - echocolor "Note: HIK_INSTALL_DIR was inherited and set to $HIK_INSTALL_DIR" -else - export HIK_INSTALL_DIR=$HOME/opal-x/ippl-build-scripts_${build_type} -fi -# -export NJOBS=15 - -trap "otb_exit" EXIT - -CXXFLAGS="" - -build_mode=${build_mode:-Debug} - -compiler=${compiler:-"$(which gcc)"} - -if [[ "$build_type" == "cuda" ]]; then - echo "Build Cuda mode." - compiler="${Kokkos_DIR:?Kokkos install directory must be provided}/bin/nvcc_wrapper" - CXXFLAGS="--expt-relaxed-constexpr" -elif [[ "$build_type" == "serial" ]]; then - echo "Build serial mode." -elif [[ "$build_type" == "openmp" ]]; then - echo "Build OpenMP mode." - CXXFLAGS="-fopenmp -w " -else - echo "Wrong build type." -fi - -cd "${OTB_SRC_DIR}" || exit "${OTB_ARG_ERR}" - -if [ -d "opal-x" ] -then - echo "Found existing OPAL-X source directory in ${OTB_SRC_DIR}" -else - echo "Clone OPAL-X repo ... " - if [ -n "$USE_SSH" ]; then - git clone git@gitlab.psi.ch:OPAL/opal-x/src.git opal-x - else - git clone https://gitlab.psi.ch/OPAL/opal-x/src.git opal-x - fi -fi - -mkdir -p "${OTB_SRC_DIR}/opal-x/build_${build_type}" && cd "$_" || exit "${OTB_ARG_ERR}" -# -CXX=mpicxx CC=mpicc cmake \ --DCMAKE_BUILD_TYPE="${build_mode}" \ --DHeffte_DIR=$HIK_INSTALL_DIR/lib/cmake/Heffte \ --DKokkos_DIR=$HIK_INSTALL_DIR/lib64/cmake/Kokkos \ --DIPPL_DIR=$HIK_INSTALL_DIR \ --DCMAKE_CXX_EXTENSIONS=Off \ --DCMAKE_INSTALL_PREFIX=${OTB_PREFIX} \ --DCMAKE_Fortran_COMPILER_WORKS=OFF \ --DUSE_STATIC_LIBRARIES=ON \ --DENABLE_OpenMP=ON \ -.. -# -# compile & install -make -j ${NJOBS} -make \ No newline at end of file -- GitLab