2018-11-26 10:35:24 -08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2019-06-17 11:04:38 -07:00
|
|
|
cd "$(dirname "$0")"/../dependencies
|
2018-11-26 10:35:24 -08:00
|
|
|
|
2018-12-02 14:33:07 -08:00
|
|
|
if [[ "$(uname)" = Darwin ]]; then
|
|
|
|
machine=osx
|
|
|
|
else
|
|
|
|
machine=linux
|
|
|
|
fi
|
2018-12-02 21:07:44 -08:00
|
|
|
|
2019-05-25 14:41:09 -07:00
|
|
|
download() {
|
|
|
|
declare url=$1
|
|
|
|
declare filename=$2
|
|
|
|
declare progress=$3
|
|
|
|
|
|
|
|
declare args=(
|
|
|
|
"$url" -O "$filename"
|
|
|
|
"--progress=dot:$progress"
|
|
|
|
"--retry-connrefused"
|
|
|
|
"--read-timeout=30"
|
|
|
|
)
|
|
|
|
wget "${args[@]}"
|
|
|
|
}
|
|
|
|
|
2019-11-11 12:58:24 -08:00
|
|
|
# Install or upgrade xargo
|
2019-11-11 23:32:07 -05:00
|
|
|
cargo install cargo-update
|
|
|
|
cargo install-update -i xargo
|
2019-11-11 12:58:24 -08:00
|
|
|
xargo --version > xargo.md 2>&1
|
2019-06-20 16:49:33 -07:00
|
|
|
|
2018-12-02 21:07:44 -08:00
|
|
|
# Install Criterion
|
|
|
|
version=v2.3.2
|
2018-12-02 14:33:07 -08:00
|
|
|
if [[ ! -r criterion-$machine-$version.md ]]; then
|
2018-11-30 14:33:29 -08:00
|
|
|
(
|
2018-12-02 14:33:07 -08:00
|
|
|
filename=criterion-$version-$machine-x86_64.tar.bz2
|
2018-12-01 10:24:04 -08:00
|
|
|
|
2018-11-30 14:33:29 -08:00
|
|
|
set -ex
|
2018-12-02 14:33:07 -08:00
|
|
|
rm -rf criterion*
|
2018-12-01 11:36:17 -08:00
|
|
|
mkdir criterion
|
|
|
|
cd criterion
|
2019-05-25 14:41:09 -07:00
|
|
|
|
2019-05-27 19:33:20 -07:00
|
|
|
base=https://github.com/Snaipe/Criterion/releases
|
2019-05-25 14:41:09 -07:00
|
|
|
download $base/download/$version/$filename $filename mega
|
2018-12-02 14:33:07 -08:00
|
|
|
tar --strip-components 1 -jxf $filename
|
|
|
|
rm -rf $filename
|
2018-11-26 10:35:24 -08:00
|
|
|
|
2019-05-25 14:41:09 -07:00
|
|
|
echo "$base/tag/$version" > ../criterion-$machine-$version.md
|
2018-11-30 14:33:29 -08:00
|
|
|
)
|
|
|
|
# shellcheck disable=SC2181
|
|
|
|
if [[ $? -ne 0 ]]; then
|
2018-12-01 11:36:17 -08:00
|
|
|
rm -rf criterion
|
2018-11-30 14:33:29 -08:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Install LLVM
|
2019-08-29 11:25:22 -07:00
|
|
|
version=v0.0.14
|
2018-12-02 14:33:07 -08:00
|
|
|
if [[ ! -f llvm-native-$machine-$version.md ]]; then
|
2018-11-30 14:33:29 -08:00
|
|
|
(
|
2018-12-02 14:33:07 -08:00
|
|
|
filename=solana-llvm-$machine.tar.bz2
|
2018-12-01 10:24:04 -08:00
|
|
|
|
2018-11-30 14:33:29 -08:00
|
|
|
set -ex
|
2018-12-02 14:33:07 -08:00
|
|
|
rm -rf llvm-native*
|
2019-06-17 14:24:00 -07:00
|
|
|
rm -rf xargo
|
2018-12-01 11:40:25 -08:00
|
|
|
mkdir -p llvm-native
|
|
|
|
cd llvm-native
|
2019-05-25 14:41:09 -07:00
|
|
|
|
|
|
|
base=https://github.com/solana-labs/llvm-builder/releases
|
|
|
|
download $base/download/$version/$filename $filename giga
|
2018-12-02 14:33:07 -08:00
|
|
|
tar -jxf $filename
|
|
|
|
rm -rf $filename
|
2018-11-30 14:33:29 -08:00
|
|
|
|
2019-05-25 14:41:09 -07:00
|
|
|
echo "$base/tag/$version" > ../llvm-native-$machine-$version.md
|
2018-11-30 14:33:29 -08:00
|
|
|
)
|
2018-12-11 15:20:40 -08:00
|
|
|
exitcode=$?
|
|
|
|
if [[ $exitcode -ne 0 ]]; then
|
2018-12-01 11:40:25 -08:00
|
|
|
rm -rf llvm-native
|
2018-12-01 10:24:04 -08:00
|
|
|
exit 1
|
|
|
|
fi
|
2018-11-26 10:35:24 -08:00
|
|
|
fi
|
2018-11-30 14:33:29 -08:00
|
|
|
|
2019-02-25 15:35:45 -08:00
|
|
|
# Install Rust-BPF
|
2019-10-16 15:08:29 -07:00
|
|
|
version=v0.1.8
|
2019-02-25 15:35:45 -08:00
|
|
|
if [[ ! -f rust-bpf-$machine-$version.md ]]; then
|
|
|
|
(
|
|
|
|
filename=solana-rust-bpf-$machine.tar.bz2
|
|
|
|
|
|
|
|
set -ex
|
2019-02-25 19:09:16 -08:00
|
|
|
rm -rf rust-bpf
|
|
|
|
rm -rf rust-bpf-$machine-*
|
2019-06-17 14:24:00 -07:00
|
|
|
rm -rf xargo
|
2019-02-25 15:35:45 -08:00
|
|
|
mkdir -p rust-bpf
|
2019-02-25 19:09:16 -08:00
|
|
|
pushd rust-bpf
|
2019-05-25 14:41:09 -07:00
|
|
|
|
|
|
|
base=https://github.com/solana-labs/rust-bpf-builder/releases
|
|
|
|
download $base/download/$version/$filename $filename giga
|
2019-02-25 15:35:45 -08:00
|
|
|
tar -jxf $filename
|
|
|
|
rm -rf $filename
|
2019-02-25 19:09:16 -08:00
|
|
|
popd
|
|
|
|
|
|
|
|
set -ex
|
|
|
|
./rust-bpf/bin/rustc --print sysroot
|
|
|
|
|
|
|
|
set +e
|
|
|
|
rustup toolchain uninstall bpf
|
|
|
|
set -e
|
|
|
|
rustup toolchain link bpf rust-bpf
|
2019-02-25 15:35:45 -08:00
|
|
|
|
2019-05-25 14:41:09 -07:00
|
|
|
echo "$base/tag/$version" > rust-bpf-$machine-$version.md
|
2019-02-25 15:35:45 -08:00
|
|
|
)
|
|
|
|
exitcode=$?
|
|
|
|
if [[ $exitcode -ne 0 ]]; then
|
|
|
|
rm -rf rust-bpf
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2019-02-28 00:14:22 -08:00
|
|
|
# Install Rust-BPF Sysroot sources
|
2019-09-26 17:38:08 -07:00
|
|
|
version=v0.11
|
2019-02-25 15:35:45 -08:00
|
|
|
if [[ ! -f rust-bpf-sysroot-$version.md ]]; then
|
|
|
|
(
|
|
|
|
set -ex
|
|
|
|
rm -rf rust-bpf-sysroot*
|
2019-06-17 14:24:00 -07:00
|
|
|
rm -rf xargo
|
2019-05-25 14:41:09 -07:00
|
|
|
cmd="git clone --recursive --single-branch --branch $version https://github.com/solana-labs/rust-bpf-sysroot.git"
|
|
|
|
$cmd
|
2019-02-28 00:14:22 -08:00
|
|
|
|
2019-05-25 14:41:09 -07:00
|
|
|
echo "$cmd" > rust-bpf-sysroot-$version.md
|
2019-02-25 15:35:45 -08:00
|
|
|
)
|
|
|
|
exitcode=$?
|
|
|
|
if [[ $exitcode -ne 0 ]]; then
|
|
|
|
rm -rf rust-bpf-sysroot
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2019-09-04 16:00:11 -07:00
|
|
|
# Install custom Hashbrown crate needed by Rust-BPF Sysroot
|
|
|
|
version=v0.1
|
|
|
|
if [[ ! -f hashbrown-$version.md ]]; then
|
|
|
|
(
|
|
|
|
set -ex
|
|
|
|
rm -rf hashbrown*
|
|
|
|
rm -rf xargo
|
|
|
|
cmd="git clone --recursive --single-branch --branch $version https://github.com/solana-labs/hashbrown.git"
|
|
|
|
$cmd
|
|
|
|
|
|
|
|
echo "$cmd" > hashbrown-$version.md
|
|
|
|
)
|
|
|
|
exitcode=$?
|
|
|
|
if [[ $exitcode -ne 0 ]]; then
|
|
|
|
rm -rf hashbrown
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2018-12-11 15:20:40 -08:00
|
|
|
exit 0
|