1#
2# Docker cross-compiler target
3#
4# This docker target builds on the debian stretch base image,
5# using a prebuilt toolchains for Xtensa cores from:
6# https://github.com/foss-xtensa/toolchain/releases
7#
8FROM docker.io/library/debian:11-slim
9
10RUN apt-get update && \
11    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
12    DEBIAN_FRONTEND=noninteractive eatmydata \
13    apt-get install -y --no-install-recommends \
14        build-essential \
15        ca-certificates \
16        curl \
17        gettext \
18        git \
19        python3-minimal && \
20    dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
21
22ENV CPU_LIST dc232b dc233c de233_fpu dsp3400
23ENV TOOLCHAIN_RELEASE 2020.07
24
25RUN for cpu in $CPU_LIST; do \
26        curl -#SL http://github.com/foss-xtensa/toolchain/releases/download/$TOOLCHAIN_RELEASE/x86_64-$TOOLCHAIN_RELEASE-xtensa-$cpu-elf.tar.gz \
27        | tar -xzC /opt; \
28    done
29
30ENV PATH $PATH:/opt/$TOOLCHAIN_RELEASE/xtensa-dc232b-elf/bin:/opt/$TOOLCHAIN_RELEASE/xtensa-dc233c-elf/bin:/opt/$TOOLCHAIN_RELEASE/xtensa-de233_fpu-elf/bin:/opt/$TOOLCHAIN_RELEASE/xtensa-dsp3400-elf/bin
31ENV MAKE /usr/bin/make
32# As a final step configure the user (if env is defined)
33ARG USER
34ARG UID
35RUN if [ "${USER}" ]; then \
36  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
37