ARG SCHEME=chibi ARG IMAGE=${SCHEME}:head FROM debian:trixie AS build RUN apt-get update && apt-get install -y \ git ca-certificates make gcc libffi-dev libffi-dev wget xz-utils libcurl4 RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm WORKDIR /build RUN wget https://gitlab.com/-/project/6808260/uploads/094ce726ce3c6cf8c14560f1e31aaea0/akku-1.1.0.amd64-linux.tar.xz \ && tar -xf akku-1.1.0.amd64-linux.tar.xz \ && mv akku-1.1.0.amd64-linux akku RUN git clone https://github.com/ashinn/chibi-scheme.git --depth=1 RUN git clone https://codeberg.org/retropikzel/compile-scheme.git --depth=2 RUN git clone https://github.com/srfi-explorations/r7rs-srfi.git --branch=retropikzel-fixes --depth=2 WORKDIR /build/chibi-scheme RUN make RUN make install WORKDIR /build/compile-scheme RUN make build-gauche WORKDIR /build RUN git clone https://codeberg.org/foreign-c/foreign-c.git --depth=2 ARG SCHEME=chibi ARG IMAGE=${SCHEME}:head FROM schemers/${IMAGE} RUN apt-get update && apt-get install -y \ make gcc libffi-dev libcurl4 gauche jq git ca-certificates RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm COPY --from=build /build /build ARG SCHEME=chibi WORKDIR /build/compile-scheme RUN make install WORKDIR /build/chibi-scheme RUN make install WORKDIR /build/chibi-scheme RUN make install WORKDIR /build/akku RUN bash install.sh ENV PATH=/root/.local/bin:${PATH} RUN akku update WORKDIR /workdir RUN mkdir -p srfi RUN for srfi in 60 64 180; do cp /build/r7rs-srfi/srfi/${srfi}.* srfi/ && cp /build/r7rs-srfi/srfi/srfi-${srfi}.* srfi/; done RUN mkdir -p libs/srfi RUN for srfi in 39 60 64 145 180; do cp /build/r7rs-srfi/srfi/${srfi}.* srfi/ && cp /build/r7rs-srfi/srfi/srfi-${srfi}.* libs/srfi/; done RUN if [ "${SCHEME}" = "chibi" ]; then rm -rf .libs/srfi/39.*; fi COPY Makefile . COPY retropikzel retropikzel/ COPY retropikzel libs/retropikzel/