| 
									
										
										
										
											2018-11-26 10:35:24 -08:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd "$(dirname "$0")"/.. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							|  |  |  | # 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 | 
					
						
							| 
									
										
										
										
											2018-12-02 14:33:07 -08:00
										 |  |  |     wget --progress=dot:mega https://github.com/Snaipe/Criterion/releases/download/$version/$filename | 
					
						
							|  |  |  |     tar --strip-components 1 -jxf $filename | 
					
						
							|  |  |  |     rm -rf $filename | 
					
						
							| 
									
										
										
										
											2018-11-26 10:35:24 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-02 14:33:07 -08:00
										 |  |  |     echo "https://github.com/Snaipe/Criterion/releases/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-02-26 13:03:57 -08:00
										 |  |  | version=v0.0.9 | 
					
						
							| 
									
										
										
										
											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* | 
					
						
							| 
									
										
										
										
											2018-12-01 11:40:25 -08:00
										 |  |  |     mkdir -p llvm-native | 
					
						
							|  |  |  |     cd llvm-native | 
					
						
							| 
									
										
										
										
											2018-12-02 14:33:07 -08:00
										 |  |  |     wget --progress=dot:giga https://github.com/solana-labs/llvm-builder/releases/download/$version/$filename | 
					
						
							|  |  |  |     tar -jxf $filename | 
					
						
							|  |  |  |     rm -rf $filename | 
					
						
							| 
									
										
										
										
											2018-11-30 14:33:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-02 14:33:07 -08:00
										 |  |  |     echo "https://github.com/solana-labs/llvm-builder/releases/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-02-28 00:26:50 -08:00
										 |  |  | version=v0.0.2 | 
					
						
							| 
									
										
										
										
											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-02-25 15:35:45 -08:00
										 |  |  |     mkdir -p rust-bpf | 
					
						
							| 
									
										
										
										
											2019-02-25 19:09:16 -08:00
										 |  |  |     pushd rust-bpf | 
					
						
							| 
									
										
										
										
											2019-02-25 15:35:45 -08:00
										 |  |  |     wget --progress=dot:giga https://github.com/solana-labs/rust-bpf-builder/releases/download/$version/$filename | 
					
						
							|  |  |  |     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-02-25 19:09:16 -08:00
										 |  |  |     echo "https://github.com/solana-labs/rust-bpf-builder/releases/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-02-28 16:34:00 -08:00
										 |  |  | version=f74960f3ab8ea7e201d236f40453657ead4921e2 | 
					
						
							| 
									
										
										
										
											2019-02-25 15:35:45 -08:00
										 |  |  | if [[ ! -f rust-bpf-sysroot-$version.md ]]; then | 
					
						
							|  |  |  |   ( | 
					
						
							|  |  |  |     filename=solana-rust-bpf-sysroot.tar.bz2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     set -ex | 
					
						
							|  |  |  |     rm -rf rust-bpf-sysroot* | 
					
						
							|  |  |  |     mkdir -p rust-bpf-sysroot | 
					
						
							|  |  |  |     cd rust-bpf-sysroot | 
					
						
							| 
									
										
										
										
											2019-02-28 00:14:22 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     git init | 
					
						
							|  |  |  |     git remote add origin https://github.com/solana-labs/rust-bpf-sysroot.git | 
					
						
							|  |  |  |     git pull origin master | 
					
						
							|  |  |  |     git checkout "$version" | 
					
						
							|  |  |  |     git submodule init | 
					
						
							|  |  |  |     git submodule update | 
					
						
							| 
									
										
										
										
											2019-02-25 15:35:45 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     echo "https://github.com/solana-labs/rust-bpf-sysroot/releases/tag/$version" > ../rust-bpf-sysroot-$version.md | 
					
						
							|  |  |  |   ) | 
					
						
							|  |  |  |   exitcode=$? | 
					
						
							|  |  |  |   if [[ $exitcode -ne 0 ]]; then | 
					
						
							|  |  |  |     rm -rf rust-bpf-sysroot | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-11 15:20:40 -08:00
										 |  |  | exit 0 |