fetch-perf-libs.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env bash
  2. function installPerfLibSymlinks() {
  3. for dir in target/{debug,release}/{,deps/}; do
  4. mkdir -p "$dir"
  5. ln -sfT "$1" "${dir}perf-libs"
  6. done
  7. }
  8. if [[ -n "$SOLANA_PERF_LIBS_PATH" ]]; then
  9. mkdir -p target
  10. ln -sfT "$SOLANA_PERF_LIBS_PATH" target/perf-libs
  11. installPerfLibSymlinks "$SOLANA_PERF_LIBS_PATH"
  12. exit 0
  13. fi
  14. PERF_LIBS_VERSION=v0.19.3
  15. VERSION=$PERF_LIBS_VERSION-1
  16. set -e
  17. cd "$(dirname "$0")"
  18. if [[ $VERSION != "$(cat target/perf-libs/.version 2> /dev/null)" ]]; then
  19. if [[ $(uname) != Linux ]]; then
  20. echo Note: Performance libraries are only available for Linux
  21. exit 0
  22. fi
  23. if [[ $(uname -m) != x86_64 ]]; then
  24. echo Note: Performance libraries are only available for x86_64 architecture
  25. exit 0
  26. fi
  27. rm -rf target/perf-libs
  28. mkdir -p target/perf-libs
  29. (
  30. set -x
  31. cd target/perf-libs
  32. if [[ -r ~/.cache/solana-perf-$PERF_LIBS_VERSION.tgz ]]; then
  33. cp ~/.cache/solana-perf-$PERF_LIBS_VERSION.tgz solana-perf.tgz
  34. else
  35. curl -L --retry 5 --retry-delay 2 --retry-connrefused -o solana-perf.tgz \
  36. https://github.com/solana-labs/solana-perf-libs/releases/download/$PERF_LIBS_VERSION/solana-perf.tgz
  37. fi
  38. tar zxvf solana-perf.tgz
  39. if [[ ! -r ~/.cache/solana-perf-$PERF_LIBS_VERSION.tgz ]]; then
  40. # Save it for next time
  41. mkdir -p ~/.cache
  42. mv solana-perf.tgz ~/.cache/solana-perf-$PERF_LIBS_VERSION.tgz
  43. fi
  44. echo "$VERSION" > .version
  45. )
  46. # Setup symlinks so the perf-libs/ can be found from all binaries run out of
  47. # target/
  48. installPerfLibSymlinks ../perf-libs
  49. fi
  50. exit 0