feab41b030
For some reason GNAT 11 is not able to build GNAT 12, since there are some Ada errors during the compilation. However, it works with GNAT 12. So use GNAT 12 for the host toolchain instead. Change-Id: If00a05a0c8564e624809268a12fae28261e380a2 Signed-off-by: Felix Singer <felixsinger@posteo.net> Reviewed-on: https://review.coreboot.org/c/coreboot/+/66924 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
150 lines
3.8 KiB
Docker
150 lines
3.8 KiB
Docker
# This dockerfile is not meant to be used directly by docker. The
|
|
# {{}} variables are replaced with values by the makefile. Please generate
|
|
# the docker image for this file by running:
|
|
#
|
|
# make coreboot-sdk
|
|
#
|
|
# Variables can be updated on the make command line or left blank to use
|
|
# the default values set by the makefile.
|
|
#
|
|
# SDK_VERSION is used to name the version of the coreboot sdk to use.
|
|
# Typically, this corresponds to the toolchain version. This
|
|
# is used to identify this docker image.
|
|
# DOCKER_COMMIT is the coreboot Commit-ID to build the toolchain from.
|
|
|
|
FROM debian:sid AS coreboot-sdk
|
|
|
|
RUN \
|
|
useradd -p locked -m coreboot && \
|
|
apt-get -qq update && \
|
|
apt-get -qqy install \
|
|
bc \
|
|
bison \
|
|
bsdextrautils \
|
|
bzip2 \
|
|
ccache \
|
|
cmake \
|
|
cscope \
|
|
curl \
|
|
device-tree-compiler \
|
|
dh-autoreconf \
|
|
diffutils \
|
|
exuberant-ctags \
|
|
flex \
|
|
g++ \
|
|
gawk \
|
|
gcc \
|
|
git \
|
|
gnat-12 \
|
|
golang \
|
|
graphviz \
|
|
lcov \
|
|
libcrypto++-dev \
|
|
libcurl4 \
|
|
libcurl4-openssl-dev \
|
|
libelf-dev \
|
|
libfreetype6-dev \
|
|
libftdi-dev \
|
|
libftdi1-dev \
|
|
libglib2.0-dev \
|
|
libgmp-dev \
|
|
libjaylink-dev \
|
|
liblzma-dev \
|
|
libncurses5-dev \
|
|
libpci-dev \
|
|
libreadline-dev \
|
|
libssl-dev \
|
|
libusb-1.0-0-dev \
|
|
libusb-dev \
|
|
libxml2-dev \
|
|
libyaml-dev \
|
|
m4 \
|
|
make \
|
|
msitools \
|
|
nasm \
|
|
openssl \
|
|
patch \
|
|
pbzip2 \
|
|
pkg-config \
|
|
python2 \
|
|
python3 \
|
|
qemu-system-arm \
|
|
qemu-system-misc \
|
|
qemu-system-ppc \
|
|
qemu-system-x86 \
|
|
rsync \
|
|
shellcheck \
|
|
subversion \
|
|
unifont \
|
|
uuid-dev \
|
|
vim-common \
|
|
wget \
|
|
xz-utils \
|
|
zlib1g-dev \
|
|
&& apt-get clean \
|
|
&& update-alternatives --install /usr/bin/python python /usr/bin/python2 1 \
|
|
&& ln -s /usr/bin/automake /usr/bin/automake-1.15 \
|
|
&& ln -s /usr/bin/aclocal /usr/bin/aclocal-1.15
|
|
|
|
RUN \
|
|
cd /tmp && \
|
|
git clone https://review.coreboot.org/coreboot && \
|
|
cd coreboot && \
|
|
git checkout {{DOCKER_COMMIT}}; \
|
|
if echo {{CROSSGCC_PARAM}} | grep -q ^all; then \
|
|
make -C /tmp/coreboot/util/crossgcc/ build_clang \
|
|
BUILD_LANGUAGES=c,ada CPUS=$(nproc) DEST=/opt/xgcc; \
|
|
fi; \
|
|
make -C /tmp/coreboot/util/crossgcc/ {{CROSSGCC_PARAM}} \
|
|
BUILD_LANGUAGES=c,ada CPUS=$(nproc) DEST=/opt/xgcc && \
|
|
rm -rf /tmp/coreboot
|
|
|
|
RUN mkdir /home/coreboot/.ccache && \
|
|
chown coreboot:coreboot /home/coreboot/.ccache && \
|
|
mkdir /home/coreboot/cb_build && \
|
|
chown coreboot:coreboot /home/coreboot/cb_build && \
|
|
echo "export PATH=$PATH:/opt/xgcc/bin" >> /home/coreboot/.bashrc && \
|
|
echo "export SDK_VERSION={{SDK_VERSION}}" >> /home/coreboot/.bashrc && \
|
|
echo "export SDK_COMMIT={{DOCKER_COMMIT}}" >> /home/coreboot/.bashrc
|
|
|
|
ENV PATH $PATH:/opt/xgcc/bin
|
|
ENV SDK_VERSION={{SDK_VERSION}}
|
|
ENV SDK_COMMIT={{DOCKER_COMMIT}}
|
|
USER coreboot
|
|
|
|
FROM coreboot-sdk
|
|
# Test the built image
|
|
RUN mkdir -p /tmp/work && \
|
|
cd /tmp/work && \
|
|
git clone https://review.coreboot.org/bios_extract.git && \
|
|
make -C bios_extract && \
|
|
git clone https://review.coreboot.org/memtest86plus.git && \
|
|
make -C memtest86plus && \
|
|
git clone https://review.coreboot.org/flashrom.git && \
|
|
CONFIG_EVERYTHING=yes make -C flashrom && \
|
|
git clone https://review.coreboot.org/em100.git && \
|
|
make -C em100 && \
|
|
git clone https://review.coreboot.org/coreboot.git && \
|
|
(cd coreboot && git submodule update --init --checkout ) && \
|
|
make -C coreboot CPUS=$(nproc) test-abuild
|
|
|
|
RUN \
|
|
cd /tmp/work && \
|
|
make -C coreboot olddefconfig && \
|
|
make -C coreboot all -j && \
|
|
make -C coreboot printall && \
|
|
make -C coreboot filelist && \
|
|
make -C coreboot ctags-project && \
|
|
make -C coreboot cscope-project
|
|
|
|
RUN \
|
|
cd /tmp/work && \
|
|
make -C coreboot test-payloads&& \
|
|
make -C coreboot test-tools -j && \
|
|
make -C coreboot test-lint -j && \
|
|
make -C coreboot test-cleanup -j && \
|
|
cd && \
|
|
rm -rf /tmp/work/
|
|
|
|
FROM coreboot-sdk
|
|
VOLUME /home/coreboot/.ccache
|