1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
# 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
MAINTAINER Martin Roth <martin@coreboot.org>
RUN \
useradd -p locked -m coreboot && \
apt-get -qq update && \
apt-get -qqy install \
bc \
bison \
bzip2 \
ccache \
cmake \
cscope \
curl \
device-tree-compiler \
dh-autoreconf \
diffutils \
doxygen \
exuberant-ctags \
flex \
g++ \
gawk \
gcc \
git \
gnat \
golang \
graphviz \
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 \
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 doxygen -j
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
|