1#
2# Docker TriCore cross-compiler target
3#
4# This docker target builds on the Debian Buster base image but
5# doesn't inherit from the common one to avoid bringing in unneeded
6# dependencies.
7#
8# Copyright (c) 2018 Philippe Mathieu-Daudé
9#
10# SPDX-License-Identifier: GPL-2.0-or-later
11#
12FROM docker.io/library/debian:11-slim
13
14MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
15
16RUN apt update && \
17    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
18    DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
19       bison \
20       bzip2 \
21       ca-certificates \
22       ccache \
23       curl \
24       flex \
25       g++ \
26       gcc \
27       git \
28       libglib2.0-dev \
29       libpixman-1-dev \
30       locales \
31       make \
32       ninja-build \
33       pkgconf \
34       python3-pip \
35       python3-setuptools \
36       python3-wheel \
37       python3-venv && \
38       dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
39
40RUN /usr/bin/pip3 install tomli
41
42RUN curl -#SL https://github.com/bkoppelmann/package_940/releases/download/tricore-toolchain-9.40/tricore-toolchain-9.4.0.tar.gz \
43    | tar -xzC /usr/local/
44
45# This image can only build a very minimal QEMU as well as the tests
46ENV DEF_TARGET_LIST tricore-softmmu
47ENV QEMU_CONFIGURE_OPTS --disable-user --disable-tools --disable-fdt
48ENV MAKE /usr/bin/make
49# As a final step configure the user (if env is defined)
50ARG USER
51ARG UID
52RUN if [ "${USER}" ]; then \
53  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
54