Skip to content
Snippets Groups Projects
syscall_intercept.install 3.85 KiB
################################################################################
# Copyright 2018-2024, Barcelona Supercomputing Center (BSC), Spain            #
# Copyright 2015-2024, Johannes Gutenberg Universitaet Mainz, Germany          #
#                                                                              #
# This software was partially supported by the                                 #
# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu).    #
#                                                                              #
# This software was partially supported by the                                 #
# ADA-FS project under the SPPEXA project funded by the DFG.                   #
#                                                                              #
# This file is part of GekkoFS.                                                #
#                                                                              #
# GekkoFS is free software: you can redistribute it and/or modify              #
# it under the terms of the GNU General Public License as published by         #
# the Free Software Foundation, either version 3 of the License, or            #
# (at your option) any later version.                                          #
#                                                                              #
# GekkoFS is distributed in the hope that it will be useful,                   #
# but WITHOUT ANY WARRANTY; without even the implied warranty of               #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                #
# GNU General Public License for more details.                                 #
#                                                                              #
# You should have received a copy of the GNU General Public License            #
# along with GekkoFS.  If not, see <https://www.gnu.org/licenses/>.            #
#                                                                              #
# SPDX-License-Identifier: GPL-3.0-or-later                                    #
################################################################################
# vi: ft=bash

################################################################################
## The installation script must define both a pkg_install function and
## pkg_check function that, as their name implies, must specify how
## a dependency package should be installed and tested.  ## ## The following
## variables can be used in the installation script:
## - CMAKE: a variable that expands to the cmake binary
## - SOURCE_DIR: the directory where the sources for the package were
##               downloaded
## - INSTALL_DIR: the directory where the package should be installed
## - CORES: the number of cores to use when building
## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
## - PERFORM_TEST: whether tests for the package should be executed
################################################################################

pkg_install() {
    ID="syscall_intercept"
    CURR="${SOURCE_DIR}/${ID}"
    EXTRA_INSTALL_ARGS="${PROFILE_EXTRA_INSTALL_ARGS[${ID}]}"
    prepare_build_dir "${CURR}"
    if [[ ${EXTRA_INSTALL_ARGS} == "ARM64" ]]; then
        cd "${CURR}"/arch/aarch64/
        mkdir -p build
        cd build
    else    
        cd "${CURR}"/build
    fi
    $CMAKE -DCMAKE_PREFIX_PATH="${INSTALL_DIR}" \
    -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
    -DCMAKE_BUILD_TYPE:STRING=Debug \
    -DBUILD_EXAMPLES:BOOL=OFF \
    -DBUILD_TESTS:BOOK=OFF ..
    make -j"${CORES}" install
    if [[ ${EXTRA_INSTALL_ARGS} == "ARM64" ]]; then
        cp "${CURR}"/arch/aarch64/include/libsyscall_intercept_hook_point.h ${INSTALL_DIR}/include
    fi
}

pkg_check() {
    :
}