reinstate z88dk by building ourselves

This commit is contained in:
Neil McPhail 2025-04-29 09:11:57 +00:00
parent e344cbd0f1
commit 90fded9f74
3 changed files with 57 additions and 11 deletions

View File

@ -1,7 +1,5 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
#FROM z88dk/z88dk:latest AS z88dk
FROM ubuntu:24.04 AS build FROM ubuntu:24.04 AS build
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
@ -20,13 +18,57 @@ RUN cd /zx0/src/ \
ADD https://www.boriel.com/files/zxb/zxbasic-1.18.1-linux64.tar.gz . ADD https://www.boriel.com/files/zxb/zxbasic-1.18.1-linux64.tar.gz .
RUN tar xf zxbasic* RUN tar xf zxbasic*
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
FROM ubuntu:24.04 FROM ubuntu:24.04
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
fuse-emulator-utils\ ca-certificates \
fuse-emulator-utils \
git \ git \
make \ make \
openssh-client\ openssh-client \
pasmo \ pasmo \
python3 \ python3 \
z80asm \ z80asm \
@ -41,8 +83,10 @@ COPY --from=build /zxbasic/zxbasm.py /opt/zxbasic/zxbasm
COPY --from=build /zxbasic/zxbc.py /opt/zxbasic/zxbc COPY --from=build /zxbasic/zxbc.py /opt/zxbasic/zxbc
COPY --from=build /zxbasic/zxbpp.py /opt/zxbasic/zxbpp COPY --from=build /zxbasic/zxbpp.py /opt/zxbasic/zxbpp
COPY --from=build /zxbasic/src /opt/zxbasic/src COPY --from=build /zxbasic/src /opt/zxbasic/src
#COPY --from=z88dk /opt/z88dk /opt/z88dk 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"
USER ubuntu USER ubuntu
#RUN echo "PATH=$PATH:/opt/z88dk/bin:/opt/zxbasic" >> ~/.profile RUN echo "PATH=$PATH:/opt/z88dk/bin:/opt/zxbasic" >> ~/.profile
#RUN echo "export ZCCCFG=/opt/z88dk/lib/config/" >> ~/.profile RUN echo "export ZCCCFG=/opt/z88dk/lib/config/" >> ~/.profile
RUN echo "PATH=$PATH:/opt/zxbasic" >> ~/.profile

View File

@ -1,6 +1,8 @@
{ {
"name": "ZX Spectrum dev tools", "name": "ZX Spectrum dev tools",
"build": { "dockerfile": "Dockerfile" }, //"build": { "dockerfile": "Dockerfile" },
// The Dockerfile takes an age to build due to z88dk, so pull from prebuilt:
"image": "boarstone.mcphail.uk/mcphail/speccydev:latest",
"remoteUser": "ubuntu", "remoteUser": "ubuntu",
"runArgs": [ "runArgs": [
"--network=host" "--network=host"

View File

@ -1,6 +1,6 @@
# Development tools for the ZX Spectrum # Development tools for the ZX Spectrum
The Dockerfile is the basis of the devcontainer and can be changed to add or remove tools. The Dockerfile is the basis of the devcontainer and can be changed to add or remove tools. It will take a long time to build locally, so by default the devcontainer will pull a prebuilt version. Edit `.devcontainer/devcontainer.json` if you would rather build your own.
The devcontainer contains: The devcontainer contains:
- pasmo (assembler) - pasmo (assembler)
@ -8,7 +8,7 @@ The devcontainer contains:
- z80asm (assembler) - z80asm (assembler)
- z80dasm (disassembler) - z80dasm (disassembler)
- zmakebas (creates BASIC programs) - zmakebas (creates BASIC programs)
- ~~z88dk (C compiler and other utilities including assembler)~~ - not currently functional - z88dk (C compiler and other utilities including assembler)
- utilities from the FUSE emulator: - utilities from the FUSE emulator:
- audio2tape - audio2tape
- createhdf - createhdf