Scripts for bootstrapping various programming languages
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.3 KiB

#!/bin/sh
set -eu
version_rustc_bootstrap="$1"
version_rustc="$2"
case "$version_rustc" in
1.3[0-9].*|1.4[0-3].*)
version_llvm=7.1.0 ;;
1.4[4-9].*|1.5[0-7].*)
version_llvm=10.0.1 ;;
1.5[8-9].*|1.6[0-8].*)
version_llvm=13.0.1 ;;
1.69.*|1.7[0-8].*)
version_llvm=16.0.6 ;;
*)
version_llvm=18.1.8 ;;
esac
case "$version_rustc" in
1.3[0-9].*|1.4[0-6].*)
targets='src/libstd src/librustc cargo' ;;
1.4[7-9].*|1.5[0-9].*|1.6[0-1].*)
targets='library/std src/librustc cargo' ;;
*)
targets='library/std compiler/rustc cargo' ;;
esac
dir_download="$PWD/download"
mkdir -p build; cd build
dir_install="$PWD/install-rustc-$version_rustc"
# Prepare source
tar xf "$dir_download/rustc-$version_rustc-src.tar.xz"
cd "rustc-$version_rustc-src"
# Configure source
export PKG_CONFIG_PATH="$PWD/../install-openssl/lib/pkgconfig"
export OPENSSL_STATIC=1
./configure \
--build="$("$PWD/../install-llvm-$version_llvm/bin/llvm-config" --host-target)" \
--prefix="$dir_install" \
--sysconfdir="$dir_install/etc" \
--local-rust-root="$PWD/../install-rustc-$version_rustc_bootstrap" \
--llvm-root="$PWD/../install-llvm-$version_llvm" \
--enable-vendor \
--release-channel=release
# Build and install
mkdir -p "$dir_install"
./x.py install --stage 2 $targets $MAKEFLAGS