Commit 894a14c8 authored by Ramon Nou's avatar Ramon Nou
Browse files

Jerasure and GF-complete deps

parent 68994d32
Loading
Loading
Loading
Loading
+68 −0
Original line number Diff line number Diff line
################################################################################
# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain            #
# Copyright 2015-2022, 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                                    #
################################################################################

#
# - Try to find GF_complete library
# This will define
# GF_complete_FOUND
# GF_complete_INCLUDE_DIR
# GF_complete_LIBRARIES
#

find_path(GF_complete_INCLUDE_DIR
    NAMES gf_complete.h
    )

find_library(GF_complete_LIBRARY
    NAMES gf_complete
    )

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args( GF_complete 
    DEFAULT_MSG 
    GF_complete_INCLUDE_DIR
    GF_complete_LIBRARY
)

if(GF_complete_FOUND)
    set(GF_complete_INCLUDE_DIRS ${GF_complete_INCLUDE_DIR})
    set(GF_complete_LIBRARIES ${GF_complete_LIBRARY})

    if(NOT TARGET GF_complete::GF_complete)
        add_library(GF_complete::GF_complete UNKNOWN IMPORTED)
        set_target_properties(GF_complete::GF_complete PROPERTIES
            IMPORTED_LOCATION "${GF_complete_LIBRARY}"
            INTERFACE_INCLUDE_DIRECTORIES "${GF_complete_INCLUDE_DIR}"
        )
    endif()
endif()

mark_as_advanced(
    GF_complete_INCLUDE_DIR
    GF_complete_LIBRARY
)
+23 −7
Original line number Diff line number Diff line
@@ -34,24 +34,40 @@
# Jerasure_LIBRARIES
#

# - Try to find galois as Jerasure.h is installed in the root include
find_path(Jerasure_INCLUDE_DIR
    NAMES jerasure.h
    )

find_path(Jerasure2_INCLUDE_DIR
    NAMES galois.h
    )

find_library(Jerasure_LIBRARY
    NAMES Jerasure
    )

set(Jerasure_LIBRARIES ${Jerasure_LIBRARY})
set(Jerasure_INCLUDE_DIRS ${Jerasure_INCLUDE_DIR})

include(FindPackageHandleStandardArgs)

find_package_handle_standard_args( Jerasure 
    DEFAULT_MSG Jerasure_LIBRARY Jerasure_INCLUDE_DIR
    DEFAULT_MSG 
    Jerasure_INCLUDE_DIR
    Jerasure_LIBRARY
)

if(Jerasure_FOUND)
    set(Jerasure_INCLUDE_DIRS ${Jerasure_INCLUDE_DIR})
    set(Jerasure_LIBRARIES ${Jerasure_LIBRARY})

    if(NOT TARGET Jerasure::Jerasure)
        add_library(Jerasure::Jerasure UNKNOWN IMPORTED)
        set_target_properties(Jerasure::Jerasure PROPERTIES
            IMPORTED_LOCATION "${Jerasure_LIBRARY}"
            INTERFACE_INCLUDE_DIRECTORIES "${Jerasure_INCLUDE_DIR}"
        )
    endif()
endif()

mark_as_advanced(
    Jerasure_LIBRARY
    Jerasure_INCLUDE_DIR
    Jerasure_LIBRARY
)
 No newline at end of file
+2 −0
Original line number Diff line number Diff line
@@ -206,6 +206,8 @@ if(GKFS_ENABLE_PROMETHEUS)
    find_package(prometheus-cpp REQUIRED) # >= 1.0.0
endif()

find_package(GF_complete)
find_package(Jerasure)
### Other stuff that can be found out using find_package:

# determine the thread library of the system
+81 −0
Original line number Diff line number Diff line
################################################################################
# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain            #
# Copyright 2015-2021, 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

# Variables to be imported into the scripts
declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
declare -a order

# Comment that should be displayed when printing the profile
comment="All dependencies (except transport-specific and experimental)"

# Dependencies that must be downloaded directly
wgetdeps=(
    ["lz4"]="1.9.3"
    ["capstone"]="4.0.2"
    ["argobots"]="1.1"
    ["rocksdb"]="6.26.1"
    ["json-c"]="0.15-20200726"
)

# Dependencies that must be cloned
clonedeps=(
    ["libfabric"]="HEAD@v1.13.2"
    ["mercury"]="v2.1.0"
    ["margo"]="v0.9.6"
    ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
    ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
    ["agios"]="c26a6544200f823ebb8f890dd94e653d148bf226@development"
)

# Extra arguments for git clone
clonedeps_args=(
    ["mercury"]="--recurse-submodules"
)

# Patches that should be applied post-clone
clonedeps_patches=(
    ["syscall_intercept"]="syscall_intercept.patch"
)

# Ordering that MUST be followed when downloading
order=(
    "lz4" "capstone" "json-c" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "agios"
)

# Extra arguments passed to the installation script. As such, they can
# reference the following variables:
#  - 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
#  - PERFORM_TEST: whether tests for the package should be executed
extra_install_args=(
)
+89 −0
Original line number Diff line number Diff line
################################################################################
# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain            #
# Copyright 2015-2021, 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

# Variables to be imported into the scripts
declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
declare -a order

# Comment that should be displayed when printing the profile
comment="Dependencies for Mogon 2 supercomputer"

# Dependencies that must be downloaded directly
wgetdeps=(
    ["lz4"]="1.9.3"
    ["capstone"]="4.0.2"
    ["argobots"]="1.1"
    ["rocksdb"]="6.26.1"
    ["psm2"]="11.2.185"
    ["json-c"]="0.15-20200726"
    ["curl"]="7.82.0"
    ["prometheus-cpp"]="v1.0.0"
)

# Dependencies that must be cloned
clonedeps=(
    ["libfabric"]="HEAD@v1.13.2"
    ["mercury"]="v2.1.0"
    ["margo"]="v0.9.6"
    ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
    ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
    ["agios"]="c26a6544200f823ebb8f890dd94e653d148bf226@development"
    ["parallax"]="ffdea6e820f5c4c2d33e60d9a4b15ef9e6bbcfdd"
    ["gf-complete"]="a6862d10c9db467148f20eef2c6445ac9afd94d8"
    ["Jerasure"]="414c96ef2b9934953b6facb31d803d79b1dd1405"
)

# Extra arguments for git clone
clonedeps_args=(
    ["mercury"]="--recurse-submodules"
)

# Patches that should be applied post-clone
clonedeps_patches=(
    ["syscall_intercept"]="syscall_intercept.patch"
)

# Ordering that MUST be followed when downloading
order=(
    "lz4" "capstone" "json-c" "psm2" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date"
    "agios" "curl" "prometheus-cpp" "parallax" "gf-complete" "Jerasure"
)

# Extra arguments passed to the installation script. As such, they can
# reference the following variables:
#  - 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
#  - PERFORM_TEST: whether tests for the package should be executed
extra_install_args=(
    ["libfabric"]="--enable-psm2=yes --with-psm2-src=${SOURCE_DIR}/psm2"
)
Loading