reinstate z88dk by building ourselves
This commit is contained in:
parent
e344cbd0f1
commit
90fded9f74
@ -1,7 +1,5 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
#FROM z88dk/z88dk:latest AS z88dk
|
||||
|
||||
FROM ubuntu:24.04 AS build
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
@ -20,9 +18,53 @@ RUN cd /zx0/src/ \
|
||||
ADD https://www.boriel.com/files/zxb/zxbasic-1.18.1-linux64.tar.gz .
|
||||
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
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
fuse-emulator-utils \
|
||||
git \
|
||||
make \
|
||||
@ -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/zxbpp.py /opt/zxbasic/zxbpp
|
||||
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
|
||||
#RUN echo "PATH=$PATH:/opt/z88dk/bin:/opt/zxbasic" >> ~/.profile
|
||||
#RUN echo "export ZCCCFG=/opt/z88dk/lib/config/" >> ~/.profile
|
||||
RUN echo "PATH=$PATH:/opt/zxbasic" >> ~/.profile
|
||||
RUN echo "PATH=$PATH:/opt/z88dk/bin:/opt/zxbasic" >> ~/.profile
|
||||
RUN echo "export ZCCCFG=/opt/z88dk/lib/config/" >> ~/.profile
|
@ -1,6 +1,8 @@
|
||||
{
|
||||
"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",
|
||||
"runArgs": [
|
||||
"--network=host"
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 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:
|
||||
- pasmo (assembler)
|
||||
@ -8,7 +8,7 @@ The devcontainer contains:
|
||||
- z80asm (assembler)
|
||||
- z80dasm (disassembler)
|
||||
- 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:
|
||||
- audio2tape
|
||||
- createhdf
|
||||
|
Loading…
x
Reference in New Issue
Block a user