Verified Commit 5fb20928 authored by Marc Vef's avatar Marc Vef
Browse files

Bash-Scripts: Fixing the messy shell scripts for proper semantics + adding...

Bash-Scripts: Fixing the messy shell scripts for proper semantics + adding parameter for compile_dep.sh
parent 5ec3d55b
Loading
Loading
Loading
Loading
+165 −161
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ optional arguments:
    --use-bundled-psm2          
                Build libfabric with the recommended opa-psm2 library.
                Otherwise system opa-psm2 is linked to libfabric
    --na_sm_conf_path <PATH>
                Used by Mercury to store na_sm configurations. Defaults to /tmp
    -j <COMPILE_CORES>, --compilecores <COMPILE_CORES>
                number of cores that are used to compile the dependencies
                defaults to number of available cores
@@ -49,14 +51,12 @@ optional arguments:
"
}


list_dependencies() {

    echo "Available dependencies: "

    echo -n "  Mogon 2: "
    for d in "${MOGON2_DEPS[@]}"
    do
    for d in "${MOGON2_DEPS[@]}"; do
        echo -n "$d "
    done
    echo ""
@@ -65,18 +65,19 @@ list_dependencies() {

prepare_build_dir() {
    if [ ! -d "$1/build" ]; then
        mkdir $1/build
        mkdir "$1"/build
    fi
    rm -rf $1/build/*
    rm -rf "$1"/build/*
}

find_cmake() {
    local CMAKE=`command -v cmake3 || command -v cmake`
    local CMAKE
    CMAKE=$(command -v cmake3 || command -v cmake)
    if [ $? -ne 0 ]; then
        >&2 echo "ERROR: could not find cmake"
        echo >&2 "ERROR: could not find cmake"
        exit 1
    fi
    echo ${CMAKE}
    echo "${CMAKE}"
}

PATCH_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -89,10 +90,10 @@ SOURCE=""
INSTALL=""
USE_PSM2=false
USE_BUNDLED_PSM2=false
NA_SM_CONF_PATH=/tmp

POSITIONAL=()
while [[ $# -gt 0 ]]
do
while [[ $# -gt 0 ]]; do
    key="$1"

    case ${key} in
@@ -114,6 +115,11 @@ case ${key} in
        USE_BUNDLED_PSM2=true
        shift # past argument
        ;;
    --na_sm_conf_path)
        NA_SM_CONF_PATH="$2"
        shift # past argument
        shift # past value
        ;;
    -d | --dependency)
        if [[ -z "$2" ]]; then
            echo "Missing argument for -d/--dependency option"
@@ -159,15 +165,15 @@ SOURCE="$( readlink -mn "${1}" )"
INSTALL="$(readlink -mn "${2}")"

# deal with optional arguments
if [ "${NA_LAYER}" == "" ]; then
if [[ "${NA_LAYER}" == "" ]]; then
    echo "Defaulting NAPLUGIN to 'all'"
    NA_LAYER="all"
fi
if [ "${CORES}" == "" ]; then
if [[ "${CORES}" == "" ]]; then
    CORES=$(grep -c ^processor /proc/cpuinfo)
    echo "CORES = ${CORES} (default)"
else
	if [ ! "${CORES}" -gt "0" ]; then
    if [[ ! "${CORES}" -gt "0" ]]; then
        echo "CORES set to ${CORES} which is invalid.
Input must be numeric and greater than 0."
        usage_short
@@ -176,7 +182,7 @@ Input must be numeric and greater than 0."
        echo CORES = "${CORES}"
    fi
fi
if [ "${NA_LAYER}" == "bmi" ] || [ "${NA_LAYER}" == "ofi" ] || [ "${NA_LAYER}" == "all" ]; then
if [[ "${NA_LAYER}" == "bmi" || "${NA_LAYER}" == "ofi" || "${NA_LAYER}" == "all" ]]; then
    echo NAPLUGIN = "${NA_LAYER}"
else
    echo "No valid plugin selected"
@@ -184,7 +190,7 @@ else
    exit
fi
if [[ "${CLUSTER}" != "" ]]; then
	if [[ ( "${CLUSTER}" == "mogon2" ) ]]; then
    if [[ "${CLUSTER}" == "mogon2" ]]; then
        echo CLUSTER = "${CLUSTER}"
    else
        echo "${CLUSTER} cluster configuration is invalid. Exiting ..."
@@ -198,13 +204,13 @@ fi
USE_BMI="-DNA_USE_BMI:BOOL=OFF"
USE_OFI="-DNA_USE_OFI:BOOL=OFF"

CMAKE=`find_cmake`
CMAKE=$(find_cmake)
CMAKE="${CMAKE} -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"

echo "Source path = ${SOURCE}";
echo "Install path = ${INSTALL}";
echo "Source path = ${SOURCE}"
echo "Install path = ${INSTALL}"

mkdir -p ${SOURCE}
mkdir -p "${SOURCE}"

######### From now on exits on any error ########
set -e
@@ -213,105 +219,104 @@ export CPATH="${CPATH}:${INSTALL}/include"
export LIBRARY_PATH="${LIBRARY_PATH}:${INSTALL}/lib:${INSTALL}/lib64"

# Set cluster dependencies first
if [[ ( "${CLUSTER}" == "mogon2" ) ]]; then
if [[ "${CLUSTER}" == "mogon2" ]]; then
    # compile zstd
    if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "zstd" ) ]]; then
    if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "zstd" ]]; then
        echo "############################################################ Installing:  zstd"
        CURR=${SOURCE}/zstd/build/cmake
        prepare_build_dir ${CURR}
        cd ${CURR}/build
        $CMAKE -DCMAKE_INSTALL_PREFIX=${INSTALL} -DCMAKE_BUILD_TYPE:STRING=Release ..
        make -j${CORES}
        prepare_build_dir "${CURR}"
        cd "${CURR}"/build
        $CMAKE -DCMAKE_INSTALL_PREFIX="${INSTALL}" -DCMAKE_BUILD_TYPE:STRING=Release ..
        make -j"${CORES}"
        make install
    fi

    # build lz4
    if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "zstd" ) ]]; then
    if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "zstd" ]]; then
        echo "############################################################ Installing:  zstd"
        CURR=${SOURCE}/lz4
        cd ${CURR}
        make -j${CORES}
        make DESTDIR=${INSTALL} PREFIX="" install
        cd "${CURR}"
        make -j"${CORES}"
        make DESTDIR="${INSTALL}" PREFIX="" install
    fi

    # build snappy
    if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "snappy" ) ]]; then
    if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "snappy" ]]; then
        echo "############################################################ Installing:  snappy"
        CURR=${SOURCE}/snappy
        prepare_build_dir ${CURR}
        cd ${CURR}/build
        $CMAKE -DCMAKE_INSTALL_PREFIX=${INSTALL} -DCMAKE_BUILD_TYPE:STRING=Release ..
        make -j${CORES}
        prepare_build_dir "${CURR}"
        cd "${CURR}"/build
        $CMAKE -DCMAKE_INSTALL_PREFIX="${INSTALL}" -DCMAKE_BUILD_TYPE:STRING=Release ..
        make -j"${CORES}"
        make install
    fi

    # build capstone for syscall-intercept
    if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "capstone" ) ]]; then
    if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "capstone" ]]; then
        echo "############################################################ Installing:  capstone"
        CURR=${SOURCE}/capstone
      prepare_build_dir ${CURR}
      cd ${CURR}/build
        prepare_build_dir "${CURR}"
        cd "${CURR}"/build
        $CMAKE -DCMAKE_INSTALL_PREFIX=/home/vef/gekkofs_deps/install -DCMAKE_BUILD_TYPE:STRING=Release ..
      make -j${CORES} install
        make -j"${CORES}" install
    fi
fi

# build bmi
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "bmi" ) ]]; then
    if [[ ( "${NA_LAYER}" == "bmi" ) || ( "${NA_LAYER}" == "all" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "bmi" ]]; then
    if [[ "${NA_LAYER}" == "bmi" || "${NA_LAYER}" == "all" ]]; then
        USE_BMI="-DNA_USE_BMI:BOOL=ON"
        echo "############################################################ Installing:  BMI"
        # BMI
        CURR=${SOURCE}/bmi
        prepare_build_dir ${CURR}
        cd ${CURR}
        prepare_build_dir "${CURR}"
        cd "${CURR}"
        ./prepare
        cd ${CURR}/build
        CFLAGS="${CFLAGS} -w" ../configure --prefix=${INSTALL} --enable-shared --disable-static --disable-karma --enable-bmi-only --enable-fast --disable-strict
        make -j${CORES}
        cd "${CURR}"/build
        CFLAGS="${CFLAGS} -w" ../configure --prefix="${INSTALL}" --enable-shared --disable-static --disable-karma --enable-bmi-only --enable-fast --disable-strict
        make -j"${CORES}"
        make install
    fi
fi

# build ofi
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "ofi" ) ]]; then
    if [[ ( "${NA_LAYER}" == "ofi" ) || ( "${NA_LAYER}" == "all" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "ofi" ]]; then
    if [[ "${NA_LAYER}" == "ofi" || "${NA_LAYER}" == "all" ]]; then
        USE_OFI="-DNA_USE_OFI:BOOL=ON"
        echo "############################################################ Installing:  LibFabric"
        #libfabric
        CURR=${SOURCE}/libfabric
        prepare_build_dir ${CURR}
        cd ${CURR}/build
        prepare_build_dir "${CURR}"
        cd "${CURR}"/build
        # decide if to build with psm2
        if [[ ( "${CLUSTER}" == "mogon2" ) || [[ ( ${USE_PSM2} == true ) && ( ${USE_BUNDLED_PSM2} == true ) ]] ]]; then
            ../configure --prefix=${INSTALL} --enable-tcp=yes --enable-psm2=yes --with-psm2-src=${SOURCE}/psm2
        elif [[ ( ${USE_PSM2} == true ) && ( ${USE_BUNDLED_PSM2} == false ) ]]; then
            ../configure --prefix=${INSTALL} --enable-tcp=yes --enable-psm2=yes
        if [[ "${CLUSTER}" == "mogon2" || (${USE_PSM2} == true && ${USE_BUNDLED_PSM2} == true) ]]; then
            ../configure --prefix="${INSTALL}" --enable-tcp=yes --enable-psm2=yes --with-psm2-src="${SOURCE}"/psm2
        elif [[ ${USE_PSM2} == true && ${USE_BUNDLED_PSM2} == false ]]; then
            ../configure --prefix="${INSTALL}" --enable-tcp=yes --enable-psm2=yes
        else
            ../configure --prefix=${INSTALL} --enable-tcp=yes
            ../configure --prefix="${INSTALL}" --enable-tcp=yes
        fi
        make -j${CORES}
        make -j"${CORES}"
        make install
        [ "${PERFORM_TEST}" ] && make check
    fi
fi


# Mercury
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "mercury" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "mercury" ]]; then

    if [ "$NA_LAYER" == "bmi" ] || [ "$NA_LAYER" == "all" ]; then
    if [[ "${NA_LAYER}" == "bmi" || "${NA_LAYER}" == "all" ]]; then
        USE_BMI="-DNA_USE_BMI:BOOL=ON"
    fi

    if [ "$NA_LAYER" == "ofi" ] || [ "$NA_LAYER" == "all" ]; then
    if [[ "${NA_LAYER}" == "ofi" || "${NA_LAYER}" == "all" ]]; then
        USE_OFI="-DNA_USE_OFI:BOOL=ON"
    fi

    echo "############################################################ Installing:  Mercury"
    CURR=${SOURCE}/mercury
    prepare_build_dir ${CURR}
    cd ${CURR}/build
    prepare_build_dir "${CURR}"
    cd "${CURR}"/build
    PKG_CONFIG_PATH=${INSTALL}/lib/pkgconfig $CMAKE \
        -DCMAKE_BUILD_TYPE:STRING=Release \
        -DBUILD_TESTING:BOOL=ON \
@@ -321,71 +326,70 @@ if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "mercury" ) ]]; then
        -DMERCURY_USE_BOOST_PP:BOOL=ON \
        -DMERCURY_USE_EAGER_BULK:BOOL=ON \
        -DBUILD_SHARED_LIBS:BOOL=ON \
        -DNA_SM_TMP_DIRECTORY:STRING="/dev/shm" \
        -DCMAKE_INSTALL_PREFIX=${INSTALL} \
        -DNA_SM_TMP_DIRECTORY:STRING="${NA_SM_CONF_PATH}" \
        -DCMAKE_INSTALL_PREFIX="${INSTALL}" \
        ${USE_BMI} ${USE_OFI} \
        ..
    make -j${CORES}
    make -j"${CORES}"
    make install
fi

# Argobots
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "argobots" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "argobots" ]]; then
    echo "############################################################ Installing:  Argobots"
    CURR=${SOURCE}/argobots
    prepare_build_dir ${CURR}
    cd ${CURR}
    prepare_build_dir "${CURR}"
    cd "${CURR}"
    ./autogen.sh
    cd ${CURR}/build
    ../configure --prefix=${INSTALL} --enable-perf-opt --disable-checks
    make -j${CORES}
    cd "${CURR}"/build
    ../configure --prefix="${INSTALL}" --enable-perf-opt --disable-checks
    make -j"${CORES}"
    make install
    [ "${PERFORM_TEST}" ] && make check
fi

# Margo
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "margo" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "margo" ]]; then
    echo "############################################################ Installing:  Margo"
    CURR=${SOURCE}/margo
    prepare_build_dir ${CURR}
    cd ${CURR}
    prepare_build_dir "${CURR}"
    cd "${CURR}"
    ./prepare.sh
    cd ${CURR}/build
    ../configure --prefix=${INSTALL} PKG_CONFIG_PATH=${INSTALL}/lib/pkgconfig CFLAGS="${CFLAGS} -Wall -O3"
    make -j${CORES}
    cd "${CURR}"/build
    ../configure --prefix="${INSTALL}" PKG_CONFIG_PATH="${INSTALL}"/lib/pkgconfig CFLAGS="${CFLAGS} -Wall -O3"
    make -j"${CORES}"
    make install
    [ "${PERFORM_TEST}" ] && make check
fi

# Rocksdb
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "rocksdb" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "rocksdb" ]]; then
    echo "############################################################ Installing:  Rocksdb"
    CURR=${SOURCE}/rocksdb
    cd ${CURR}
    cd "${CURR}"
    make clean
    USE_RTTI=1 make -j${CORES} static_lib
    INSTALL_PATH=${INSTALL} make install
    USE_RTTI=1 make -j"${CORES}" static_lib
    INSTALL_PATH="${INSTALL}" make install
fi

# syscall_intercept
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "syscall_intercept" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "syscall_intercept" ]]; then
    echo "############################################################ Installing:  Syscall_intercept"
    CURR=${SOURCE}/syscall_intercept
    prepare_build_dir ${CURR}
    cd ${CURR}/build
    $CMAKE -DCMAKE_INSTALL_PREFIX=${INSTALL} -DCMAKE_BUILD_TYPE:STRING=Debug -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTS:BOOK=OFF ..
    prepare_build_dir "${CURR}"
    cd "${CURR}"/build
    $CMAKE -DCMAKE_INSTALL_PREFIX="${INSTALL}" -DCMAKE_BUILD_TYPE:STRING=Debug -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTS:BOOK=OFF ..
    make install
fi

# date
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "date" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "date" ]]; then
    echo "############################################################ Installing:  date"
    CURR=${SOURCE}/date
    prepare_build_dir ${CURR}
    cd ${CURR}/build
    $CMAKE -DCMAKE_INSTALL_PREFIX=${INSTALL} -DCMAKE_CXX_STANDARD:STRING=14 -DUSE_SYSTEM_TZ_DB:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON ..
    prepare_build_dir "${CURR}"
    cd "${CURR}"/build
    $CMAKE -DCMAKE_INSTALL_PREFIX="${INSTALL}" -DCMAKE_CXX_STANDARD:STRING=14 -DUSE_SYSTEM_TZ_DB:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON ..
    make install
fi


echo "Done"
+87 −87
Original line number Diff line number Diff line
@@ -19,8 +19,9 @@ MOGON2_DEPS=(
# Stop all backround jobs on interruption.
# "kill -- -$$" sends a SIGTERM to the whole process group,
# thus killing also descendants.
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM

# Use single quotes, otherwise this expands now rather than when signalled.
# See shellcheck SC2064.
trap 'trap - SIGTERM && kill -- -$$' SIGINT SIGTERM

exit_child() {
    if [ ! $? -eq 0 ]; then
@@ -39,8 +40,7 @@ list_dependencies() {
    echo "Available dependencies: "

    echo -n "  Mogon 2: "
    for d in "${MOGON2_DEPS[@]}"
    do
    for d in "${MOGON2_DEPS[@]}"; do
        echo -n "$d "
    done
    echo ""
@@ -59,20 +59,20 @@ clonedeps() {

    local ACTION

    if [ -d "${SOURCE}/${FOLDER}/.git" ]; then
        cd ${SOURCE}/${FOLDER} && git fetch -q
    if [[ -d "${SOURCE}/${FOLDER}/.git" ]]; then
        cd "${SOURCE}/${FOLDER}" && git fetch -q
        ACTION="Pulled"
    else
        git clone ${COMMON_GIT_FLAGS} ${GIT_FLAGS} -- "${REPO}" "${SOURCE}/${FOLDER}"
        git clone "${COMMON_GIT_FLAGS}" "${GIT_FLAGS}" -- "${REPO}" "${SOURCE}/${FOLDER}"
        ACTION="Cloned"
    fi
    # fix the version
    cd "${SOURCE}/${FOLDER}" && git checkout -qf ${COMMIT}
    cd "${SOURCE}/${FOLDER}" && git checkout -qf "${COMMIT}"
    echo "${ACTION} ${FOLDER} [$COMMIT]"

    # apply patch if provided
    if [ ! -z ${PATCH} ]; then
        git apply --verbose ${PATCH_DIR}/${PATCH}
    if [[ -n "${PATCH}" ]]; then
        git apply --verbose "${PATCH_DIR}/${PATCH}"
    fi

}
@@ -83,16 +83,17 @@ wgetdeps() {

    FOLDER=$1
    URL=$2
    if [ -d "${SOURCE}/${FOLDER}" ]; then
        rm -rf "${SOURCE}/${FOLDER}"
    if [[ -d "${SOURCE}/${FOLDER}" ]]; then
        # SC2115 Use "${var:?}" to ensure this never expands to /* .
        rm -rf "${SOURCE:?}/${FOLDER:?}"
    fi
    mkdir -p "${SOURCE}/${FOLDER}"
    cd ${SOURCE}
    cd "${SOURCE}"
    FILENAME=$(basename $URL)
    if [ -f "${SOURCE}/$FILENAME" ]; then
    if [[ -f "${SOURCE}/$FILENAME" ]]; then
        rm -f "${SOURCE}/$FILENAME"
    fi
    curl ${COMMON_CURL_FLAGS} "$URL" || error_exit "Failed to download ${URL}" $?
    curl "${COMMON_CURL_FLAGS}" "$URL" || error_exit "Failed to download ${URL}" $?
    tar -xf "$FILENAME" --directory "${SOURCE}/${FOLDER}" --strip-components=1
    rm -f "$FILENAME"
    echo "Downloaded ${FOLDER}"
@@ -134,8 +135,7 @@ optional arguments:
}

POSITIONAL=()
while [[ $# -gt 0 ]]
do
while [[ $# -gt 0 ]]; do
    key="$1"

    case ${key} in
@@ -188,13 +188,13 @@ fi
SOURCE="$(readlink -mn "${1}")"

# optional arguments
if [ "${NA_LAYER}" == "" ]; then
if [[ "${NA_LAYER}" == "" ]]; then
    echo "Defaulting NAPLUGIN to 'all'"
    NA_LAYER="all"
fi

# sanity checks
if [[ ( "${NA_LAYER}" == "bmi" ) || ( "${NA_LAYER}" == "ofi" ) || ( "${NA_LAYER}" == "all" ) ]]; then
if [[ "${NA_LAYER}" == "bmi" || "${NA_LAYER}" == "ofi" || "${NA_LAYER}" == "all" ]]; then
    echo NAPLUGIN = "${NA_LAYER}"
else
    echo "No valid plugin selected"
@@ -202,7 +202,7 @@ else
    exit
fi
if [[ "${CLUSTER}" != "" ]]; then
	if [[ ( "${CLUSTER}" == "mogon2" ) ]]; then
    if [[ "${CLUSTER}" == "mogon2" ]]; then
        echo CLUSTER = "${CLUSTER}"
    else
        echo "${CLUSTER} cluster configuration is invalid. Exiting ..."
@@ -215,78 +215,78 @@ fi

echo "Source path is set to  \"${SOURCE}\""

mkdir -p ${SOURCE}
mkdir -p "${SOURCE}"

# get cluster dependencies
if [[ ( "${CLUSTER}" == "mogon2" ) ]]; then
if [[ "${CLUSTER}" == "mogon2" ]]; then

    # get zstd for fast compression in rocksdb
    if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "zstd" ) ]]; then
    if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "zstd" ]]; then
        wgetdeps "zstd" "https://github.com/facebook/zstd/archive/v1.3.2.tar.gz" &
    fi

    # get zlib for rocksdb
    if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "zstd" ) ]]; then
    if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "zstd" ]]; then
        wgetdeps "lz4" "https://github.com/lz4/lz4/archive/v1.8.0.tar.gz" &
    fi

    # get snappy for rocksdb
    if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "snappy" ) ]]; then
    if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "snappy" ]]; then
        wgetdeps "snappy" "https://github.com/google/snappy/archive/1.1.7.tar.gz" &
    fi

    # get capstone for syscall-intercept
    if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "capstone" ) ]]; then
    if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "capstone" ]]; then
        wgetdeps "capstone" "https://github.com/aquynh/capstone/archive/4.0.1.tar.gz" &
    fi
fi

# get BMI
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "bmi" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "bmi" ]]; then
    if [ "${NA_LAYER}" == "bmi" ] || [ "${NA_LAYER}" == "all" ]; then
        clonedeps "bmi" "https://xgitlab.cels.anl.gov/sds/bmi.git" "81ad0575fc57a69269a16208417cbcbefa51f9ea" &
    fi
fi

# get libfabric
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "ofi" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "ofi" ]]; then
    if [ "${NA_LAYER}" == "ofi" ] || [ "${NA_LAYER}" == "all" ]; then
            wgetdeps "libfabric" "https://github.com/ofiwg/libfabric/releases/download/v1.8.1/libfabric-1.8.1.tar.bz2" &
    fi
fi

# get opa-psm2
if [[ ( "${DEPENDENCY}" == "psm2" ) || ( "${CLUSTER}" == "mogon2" ) || ( ${USE_PSM2} == true ) ]]; then
if [[ "${DEPENDENCY}" == "psm2" || "${CLUSTER}" == "mogon2" || ${USE_PSM2} == true ]]; then
    wgetdeps "psm2" "https://github.com/intel/opa-psm2/archive/PSM2_11.2.86.tar.gz" &
fi

# get Mercury
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "mercury" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "mercury" ]]; then
    clonedeps "mercury" "https://github.com/mercury-hpc/mercury" "fd410dfb9852b2b98d21113531f3058f45bfcd64"  "--recurse-submodules" &
fi

# get Argobots
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "argobots" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "argobots" ]]; then
    wgetdeps "argobots" "https://github.com/pmodels/argobots/archive/v1.0rc1.tar.gz" &
fi

# get Margo
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "margo" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "margo" ]]; then
    clonedeps "margo" "https://xgitlab.cels.anl.gov/sds/margo.git" "016dbdce22da3fe4f97b46c20a53bced9370a217" &
fi

# get rocksdb
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "rocksdb" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "rocksdb" ]]; then
    wgetdeps "rocksdb" "https://github.com/facebook/rocksdb/archive/v6.2.2.tar.gz" &
fi

# get syscall_intercept
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "syscall_intercept" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "syscall_intercept" ]]; then
    clonedeps "syscall_intercept" "https://github.com/pmem/syscall_intercept.git" "cc3412a2ad39f2e26cc307d5b155232811d7408e" "" "syscall_intercept.patch" &
fi

# get date
if [[ ( "${DEPENDENCY}" == "" ) || ( "${DEPENDENCY}" == "date" ) ]]; then
if [[ "${DEPENDENCY}" == "" || "${DEPENDENCY}" == "date" ]]; then
    clonedeps "date" "https://github.com/HowardHinnant/date.git" "e7e1482087f58913b80a20b04d5c58d9d6d90155" &
fi