Saves time and prevents errors with trying to install rustup twice or potentially overriding the user's default toolchain.
100 lines
2.0 KiB
Bash
Executable File
100 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eE
|
|
|
|
function msg {
|
|
echo -e "\x1B[1m$*\x1B[0m" >&2
|
|
}
|
|
|
|
trap 'msg "\x1B[31mFailed to install dependencies!"' ERR
|
|
|
|
source /etc/os-release
|
|
|
|
|
|
msg "Installing system build dependencies"
|
|
if [[ "${ID}" =~ "debian" ]] || [[ "${ID_LIKE}" =~ "debian" ]]; then
|
|
sudo apt-get install \
|
|
avr-libc \
|
|
avrdude \
|
|
bison \
|
|
build-essential \
|
|
ccache \
|
|
cmake \
|
|
curl \
|
|
dosfstools \
|
|
flashrom \
|
|
flex \
|
|
gcc-avr \
|
|
git-lfs \
|
|
gnat \
|
|
libncurses-dev \
|
|
libudev-dev \
|
|
mtools \
|
|
nasm \
|
|
parted \
|
|
python \
|
|
python3-distutils \
|
|
qt5-default \
|
|
sdcc \
|
|
uuid-dev \
|
|
zlib1g-dev
|
|
elif [[ "${ID}" =~ "fedora" ]] || [[ "${ID_LIKE}" =~ "fedora" ]]; then
|
|
sudo dnf group install c-development
|
|
sudo dnf install \
|
|
avr-gcc \
|
|
avr-libc \
|
|
avrdude \
|
|
cmake \
|
|
curl \
|
|
dosfstools \
|
|
flashrom \
|
|
gcc-gnat \
|
|
git-lfs \
|
|
libuuid-devel \
|
|
mtools \
|
|
nasm \
|
|
ncurses-devel \
|
|
parted \
|
|
patch \
|
|
qt5-qtbase-devel \
|
|
sdcc \
|
|
systemd-devel \
|
|
zlib-devel
|
|
else
|
|
msg "Unknown system ID: ${ID}"
|
|
msg "Please add support for your distribution to: $0"
|
|
exit 1
|
|
fi
|
|
|
|
msg "Installing GIT LFS hooks"
|
|
git lfs install
|
|
|
|
msg "Downloading GIT LFS artifacts"
|
|
git lfs pull
|
|
|
|
msg "Initializing submodules"
|
|
git submodule update --init --recursive --progress
|
|
|
|
msg "Installing coreboot commit hook"
|
|
curl -sSf https://review.coreboot.org/tools/hooks/commit-msg \
|
|
-o .git/modules/coreboot/hooks/commit-msg && \
|
|
chmod +x .git/modules/coreboot/hooks/commit-msg
|
|
|
|
if ! which rustup &> /dev/null; then
|
|
msg "Installing Rust"
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
|
|
| sh -s -- -y --default-toolchain none
|
|
|
|
msg "Loading Rust environment"
|
|
source "${HOME}/.cargo/env"
|
|
fi
|
|
|
|
msg "Installing pinned Rust toolchain"
|
|
rustup toolchain install "$(cat rust-toolchain)"
|
|
|
|
msg "Installing source for pinned Rust toolchain"
|
|
rustup component add --toolchain "$(cat rust-toolchain)" rust-src
|
|
|
|
msg "\x1B[32mSuccessfully installed dependencies"
|
|
echo "Ready to run ./scripts/build.sh [model]" >&2
|