solana/fetch-perf-libs.sh

52 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
PERF_LIBS_VERSION=v0.19.3
VERSION=$PERF_LIBS_VERSION-1
set -e
cd "$(dirname "$0")"
if [[ $VERSION != "$(cat target/perf-libs/.version 2> /dev/null)" ]]; then
if [[ $(uname) != Linux ]]; then
echo Note: Performance libraries are only available for Linux
exit 0
fi
if [[ $(uname -m) != x86_64 ]]; then
echo Note: Performance libraries are only available for x86_64 architecture
exit 0
fi
rm -rf target/perf-libs
mkdir -p target/perf-libs
(
set -x
cd target/perf-libs
if [[ -r ~/.cache/solana-perf-$PERF_LIBS_VERSION.tgz ]]; then
cp ~/.cache/solana-perf-$PERF_LIBS_VERSION.tgz solana-perf.tgz
else
curl -L --retry 5 --retry-delay 2 --retry-connrefused -o solana-perf.tgz \
https://github.com/solana-labs/solana-perf-libs/releases/download/$PERF_LIBS_VERSION/solana-perf.tgz
fi
tar zxvf solana-perf.tgz
if [[ ! -r ~/.cache/solana-perf-$PERF_LIBS_VERSION.tgz ]]; then
# Save it for next time
mkdir -p ~/.cache
mv solana-perf.tgz ~/.cache/solana-perf-$PERF_LIBS_VERSION.tgz
fi
echo "$VERSION" > .version
)
# Setup symlinks so the perf-libs/ can be found from all binaries run out of
# target/
for dir in target/{debug,release}/{,deps/}; do
mkdir -p $dir
ln -sfT ../perf-libs ${dir}perf-libs
done
fi
exit 0