49 lines
1.8 KiB
Docker
49 lines
1.8 KiB
Docker
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
|
|
RUN akku install chez-srfi akku-r7rs "(foreign c)"
|
|
WORKDIR /workdir
|
|
RUN mkdir -p srfi
|
|
RUN for srfi in 60 64 145 180; do cp /build/r7rs-srfi/srfi/${srfi}.* srfi/ && cp /build/r7rs-srfi/srfi/srfi-${srfi}.* srfi/; done
|
|
RUN if [ "${SCHEME}" = "skint" ]; then cp -r /build/r7rs-srfi/srfi/39.* srfi/; fi
|
|
RUN if [ "${SCHEME}" = "tr7" ]; then cp -r /build/r7rs-srfi/srfi/39.* srfi/; fi
|
|
COPY Makefile .
|
|
COPY retropikzel retropikzel/
|
|
|