Split building coreboot toolchains to a separate file

Specify dependencies specifically for building coreboot toolchains in
the file, so they are not conflated with the dependencies required for
building firmware-open.

Remove building the toolchain when building firmware, so that the new
script is the single source for building coreboot toolchains.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
Tim Crawford
2023-10-13 20:13:36 -06:00
committed by Jeremy Soller
parent 5fb1624187
commit b379c94b76
3 changed files with 65 additions and 22 deletions

View File

@ -32,10 +32,6 @@ function check_configs() {
}
pushd coreboot >/dev/null
if [ ! -d util/crossgcc/xgcc ]
then
make CPUS="$(nproc)" crossgcc-i386
fi
make distclean
make defconfig KBUILD_DEFCONFIG="${CONFIG}"
check_configs "${CONFIG}"

63
scripts/coreboot-sdk.sh Executable file
View File

@ -0,0 +1,63 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-3.0-only
# Build the coreboot toolchains
# shellcheck disable=SC1091
set -e
. /etc/os-release
if [ "$ID" = "arch" ] || [[ "$ID_LIKE" =~ "arch" ]]; then
sudo pacman -S --noconfirm \
bison \
bzip2 \
ca-certificates \
curl \
flex \
gcc \
gcc-ada \
make \
patch \
tar \
xz \
zlib
elif [ "$ID" = "fedora" ] || [[ "$ID_LIKE" =~ "fedora" ]]; then
sudo dnf install --assumeyes \
bison \
bzip2 \
ca-certificates \
curl \
flex \
gcc \
gcc-c++ \
gcc-gnat \
make \
patch \
tar \
xz \
zlib-devel
elif [ "$ID" = "ubuntu" ] || [[ "$ID_LIKE" =~ "debian" ]]; then
sudo apt-get --quiet update
sudo apt-get --quiet install --no-install-recommends --assume-yes \
bison \
bzip2 \
ca-certificates \
curl \
flex \
g++ \
gcc \
gnat \
make \
patch \
tar \
xz-utils \
zlib1g-dev
else
printf "\e[1;31munsupported host:\e[0m %s\n" "$ID"
exit 1
fi
make -C coreboot CPUS="$(nproc)" crossgcc-i386
make -C coreboot CPUS="$(nproc)" crossgcc-x64
make -C coreboot gitconfig

View File

@ -11,14 +11,12 @@ 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 \
@ -26,9 +24,7 @@ if [[ "${ID}" =~ "debian" ]] || [[ "${ID_LIKE}" =~ "debian" ]]; then
devmem2 \
dosfstools \
flashrom \
flex \
git-lfs \
gnat \
libncurses-dev \
libudev-dev \
msr-tools \
@ -47,7 +43,6 @@ elif [[ "${ID}" =~ "fedora" ]] || [[ "${ID_LIKE}" =~ "fedora" ]]; then
curl \
dosfstools \
flashrom \
gcc-gnat \
git-lfs \
libuuid-devel \
msr-tools \
@ -62,14 +57,11 @@ elif [[ "${ID}" =~ "fedora" ]] || [[ "${ID_LIKE}" =~ "fedora" ]]; then
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 \
@ -97,10 +89,8 @@ 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 "Building coreboot toolchains"
./scripts/coreboot-sdk.sh
msg "Installing Rust toolchain and components"
./scripts/install-rust.sh
@ -110,11 +100,5 @@ 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