#!/usr/bin/env bash # SPDX-License-Identifier: GPL-3.0-only 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 --quiet update sudo apt-get --quiet install \ --no-install-recommends \ --assume-yes \ bison \ build-essential \ ccache \ cmake \ curl \ devmem2 \ dosfstools \ flashrom \ flex \ git-lfs \ gnat \ libncurses-dev \ libudev-dev \ msr-tools \ mtools \ parted \ python-is-python3 \ python3-distutils \ uuid-dev \ zlib1g-dev elif [[ "${ID}" =~ "fedora" ]] || [[ "${ID_LIKE}" =~ "fedora" ]]; then sudo dnf group install c-development sudo dnf install \ --assumeyes \ ccache \ cmake \ curl \ dosfstools \ flashrom \ gcc-gnat \ git-lfs \ libuuid-devel \ msr-tools \ mtools \ ncurses-devel \ parted \ patch \ python-unversioned-command \ python3 \ systemd-devel \ zlib-devel elif [[ "${ID}" =~ "arch" ]] || [[ "${ID_LIKE}" =~ "arch" ]]; then sudo pacman -S \ --noconfirm \ bison \ ccache \ cmake \ curl \ dosfstools \ flashrom \ flex \ gcc-ada \ git-lfs \ msr-tools \ mtools \ ncurses \ parted \ patch \ python \ python-distutils-extra \ systemd-libs else msg "Unknown system ID: ${ID}" msg "Please add support for your distribution to: $0" exit 1 fi # Don't run on Jenkins if [ -z "${CI}" ]; then msg "Installing GIT LFS hooks" git lfs install msg "Downloading GIT LFS artifacts" git lfs pull fi msg "Initializing submodules" git submodule update --init --recursive --checkout --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 msg "Installing Rust toolchain and components" ./scripts/install-rust.sh msg "Installing EC dependencies" pushd ec ./scripts/deps.sh popd msg "Building coreboot toolchains" pushd coreboot make CPUS="$(nproc)" crossgcc-i386 make CPUS="$(nproc)" crossgcc-x64 popd msg "\x1B[32mSuccessfully installed dependencies" echo "Ready to run ./scripts/build.sh [model]" >&2