summaryrefslogtreecommitdiff
path: root/Containerfile
blob: e8403112d0375c77f211f6ed6690626c16fcf2e8 (plain)
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
FROM docker.io/archlinux:latest AS build

ARG BINUTILS_VERSION
ARG GCC_VERSION
ARG GDB_VERSION
ARG NEWLIB_VERSION
ARG TARGET

ADD ./patches /patches
ADD ./scripts /scripts

RUN /scripts/0000-prepare-os.sh
RUN /scripts/0100-download.sh
RUN /scripts/0200-build-target-binutils.sh
RUN /scripts/0300-build-bootstrap-gcc.sh
RUN /scripts/0400-build-target-newlib.sh
RUN /scripts/0500-build-target-gcc.sh
RUN /scripts/0600-build-target-gdb.sh

FROM docker.io/archlinux:latest

ARG EMULATOR=x86

RUN useradd -m dev

COPY --from=build /opt/toolchain /opt/toolchain

ENV PATH=/opt/toolchain/bin:$PATH

RUN pacman --noconfirm -Syu && \
    pacman --noconfirm --needed -S \
      cmake                        \
      doxygen                      \
      flex                         \
      git                          \
      gmp                          \
      grub                         \
      guile                        \
      libelf                       \
      libisl                       \
      libisoburn                   \
      libmpc                       \
      mpfr                         \
      mtools                       \
      ninja                        \
      openssh                      \
      qemu-system-$EMULATOR        \
      qemu-ui-curses               \
      which                        \
      xxhash                       \
      zlib

RUN rm -rf /var/cache/pacman