61 lines
No EOL
1.9 KiB
Bash
Executable file
61 lines
No EOL
1.9 KiB
Bash
Executable file
#!/bin/bash -e
|
|
|
|
# TODO: Review and if possible fix shellcheck errors.
|
|
# shellcheck disable=all
|
|
|
|
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
|
|
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)"
|
|
|
|
openblas_ver="0.3.25" # Keep in sync with install_openblas.sh
|
|
openblas_sha256="4c25cb30c4bb23eddca05d7d0a85997b8db6144f5464ba7f8c09ce91e2f35543"
|
|
openblas_pkg="OpenBLAS-${openblas_ver}.tar.gz"
|
|
|
|
source "${SCRIPT_DIR}"/common_vars.sh
|
|
source "${SCRIPT_DIR}"/tool_kit.sh
|
|
source "${SCRIPT_DIR}"/signal_trap.sh
|
|
source "${INSTALLDIR}"/toolchain.conf
|
|
source "${INSTALLDIR}"/toolchain.env
|
|
|
|
find_openblas_dir() {
|
|
local __dir=''
|
|
for __dir in *OpenBLAS*; do
|
|
if [ -d "$__dir" ]; then
|
|
echo "$__dir"
|
|
return 0
|
|
fi
|
|
done
|
|
echo ''
|
|
}
|
|
|
|
! [ -d "${BUILDDIR}" ] && mkdir -p "${BUILDDIR}"
|
|
cd "${BUILDDIR}"
|
|
|
|
echo "==================== Getting proc arch info using OpenBLAS tools ===================="
|
|
# find existing openblas source dir
|
|
openblas_dir="$(find_openblas_dir)"
|
|
# if cannot find openblas source dir, try download one
|
|
if ! [ "$openblas_dir" ]; then
|
|
if [ -f ${openblas_pkg} ]; then
|
|
echo "${openblas_pkg} is found"
|
|
else
|
|
download_pkg_from_cp2k_org "${openblas_sha256}" "${openblas_pkg}"
|
|
fi
|
|
tar -xzf ${openblas_pkg}
|
|
openblas_dir="$(find_openblas_dir)"
|
|
fi
|
|
openblas_conf="${openblas_dir}/Makefile.conf"
|
|
# try find Makefile.config, if not then generate one with make lapack_prebuild
|
|
if ! [ -f "$openblas_conf" ]; then
|
|
cd "$openblas_dir"
|
|
make lapack_prebuild
|
|
cd ..
|
|
fi
|
|
OPENBLAS_LIBCORE="$(grep 'LIBCORE=' $openblas_conf | cut -f2 -d=)"
|
|
OPENBLAS_ARCH="$(grep 'ARCH=' $openblas_conf | cut -f2 -d=)"
|
|
echo "OpenBLAS detected LIBCORE = $OPENBLAS_LIBCORE"
|
|
echo "OpenBLAS detected ARCH = $OPENBLAS_ARCH"
|
|
# output setup file
|
|
cat << EOF > "${BUILDDIR}/openblas_arch"
|
|
export OPENBLAS_LIBCORE="${OPENBLAS_LIBCORE}"
|
|
export OPENBLAS_ARCH="${OPENBLAS_ARCH}"
|
|
EOF |