35 lines
1.1 KiB
Bash
Executable file
35 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
set -ex
|
|
|
|
ARCH=$1
|
|
TOOLCHAIN=1.76.0
|
|
if [ "$ARCH" = arm64 ]; then
|
|
TARGET=aarch64-unknown-linux-musl
|
|
# there's no aarch64-linux-musl-gcc, use the gnu one
|
|
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc
|
|
CC=aarch64-linux-gnu-gcc
|
|
export CC CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER
|
|
else
|
|
TARGET=x86_64-unknown-linux-musl
|
|
fi
|
|
|
|
# Install our Rust toolchain and the `musl` target. We patch the
|
|
# command-line we pass to the installer so that it won't attempt to
|
|
# interact with the user or fool around with TTYs. We also set the default
|
|
# `--target` to musl so that our users don't need to keep overriding it
|
|
# manually.
|
|
curl https://sh.rustup.rs -sSf | \
|
|
sh -s -- -y \
|
|
--profile minimal \
|
|
--default-toolchain $TOOLCHAIN \
|
|
--target $TARGET
|
|
|
|
# Set up our path with all our binary directories, including those for the
|
|
# musl-gcc toolchain and for our Rust toolchain.
|
|
export PATH="/home/rust/.cargo/bin:$PATH"
|
|
|
|
# --out-dir is not yet stable
|
|
export RUSTC_BOOTSTRAP=1
|
|
# Build our application.
|
|
cargo build --target $TARGET --out-dir=bin --release -Zunstable-options
|