92 lines
2.5 KiB
Docker
Raw Normal View History

2025-04-19 16:52:11 +01:00
# syntax=docker/dockerfile:1
FROM ubuntu:24.04 AS build
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
make \
&& rm -rf /var/lib/apt/lists/*
ADD https://github.com/z00m128/sjasmplus.git#v1.21.0 /sjasmplus
RUN cd /sjasmplus && make && make install
ADD https://boarstone.mcphail.uk/mcphail/spectrum_remload.git /ttttt
RUN cd /ttttt && make ttttt
ADD https://github.com/einar-saukas/ZX0.git /zx0
RUN cd /zx0/src/ \
&& gcc -O2 -o zx0 zx0.c optimize.c compress.c memory.c \
&& gcc -O2 -o dzx0 dzx0.c
2025-04-28 08:59:46 +00:00
ADD https://www.boriel.com/files/zxb/zxbasic-1.18.1-linux64.tar.gz .
RUN tar xf zxbasic*
2025-04-19 16:52:11 +01:00
2025-04-29 09:11:57 +00:00
FROM build AS z88dk
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
bison \
ca-certificates \
ccache \
cpanminus \
curl \
dos2unix \
flex \
gdb \
git \
libboost-all-dev \
libcapture-tiny-perl \
libclone-perl \
libdata-hexdump-perl \
libfile-slurp-perl \
libgmp3-dev \
liblocal-lib-perl \
libmodern-perl-perl \
libpath-tiny-perl \
libregexp-common-perl \
libtext-table-perl \
libxml2-dev \
libyaml-perl \
m4 \
perl \
pkg-config \
ragel \
re2c \
texi2html \
texinfo \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
ENV Z88DK_PATH="/opt/z88dk"
RUN cpanm -l $HOME/perl5 --no-wget local::lib Template::Plugin::YAML \
&& git clone --depth 1 --recursive https://github.com/z88dk/z88dk.git ${Z88DK_PATH} \
&& cd ${Z88DK_PATH} \
&& eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)" \
&& chmod 777 build.sh \
&& BUILD_SDCC=1 BUILD_SDCC_HTTP=1 ./build.sh \
&& make install-clean bins-clean
2025-04-19 16:52:11 +01:00
FROM ubuntu:24.04
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
2025-04-29 09:11:57 +00:00
ca-certificates \
fuse-emulator-utils \
2025-04-19 17:58:31 +01:00
git \
2025-04-19 16:52:11 +01:00
make \
2025-04-29 09:11:57 +00:00
openssh-client \
2025-04-19 16:52:11 +01:00
pasmo \
2025-04-28 08:59:46 +00:00
python3 \
2025-04-19 21:44:01 +01:00
z80asm \
z80dasm \
2025-04-19 17:07:49 +01:00
zmakebas \
2025-04-19 16:52:11 +01:00
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /usr/local/bin/sjasmplus /bin/sjasmplus
COPY --from=build /ttttt/ttttt /bin/ttttt
COPY --from=build /zx0/src/zx0 /bin/zx0
COPY --from=build /zx0/src/dzx0 /bin/dzx0
2025-04-28 08:59:46 +00:00
COPY --from=build /zxbasic/zxbasm.py /opt/zxbasic/zxbasm
COPY --from=build /zxbasic/zxbc.py /opt/zxbasic/zxbc
COPY --from=build /zxbasic/zxbpp.py /opt/zxbasic/zxbpp
COPY --from=build /zxbasic/src /opt/zxbasic/src
2025-04-29 09:11:57 +00:00
COPY --from=z88dk /opt/z88dk/bin /opt/z88dk/bin
COPY --from=z88dk /opt/z88dk/lib /opt/z88dk/lib
ENV PATH="${PATH}:/opt/z88dk/bin:/opt/zxbasic"
ENV ZCCCFG="/opt/z88dk/lib/config"
2025-04-27 12:24:10 +00:00
USER ubuntu
2025-04-29 09:11:57 +00:00
RUN echo "PATH=$PATH:/opt/z88dk/bin:/opt/zxbasic" >> ~/.profile
RUN echo "export ZCCCFG=/opt/z88dk/lib/config/" >> ~/.profile