| 
									
										
										
										
											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 |