|
1
|
+# Start from leverage tonistiigi/xx's Docker cross compilation helpers
|
|
2
|
+FROM --platform=$BUILDPLATFORM tonistiigi/xx as xx
|
|
3
|
+
|
|
4
|
+FROM --platform=$BUILDPLATFORM bash
|
|
5
|
+
|
|
6
|
+RUN apk update && apk upgrade
|
|
7
|
+
|
|
8
|
+ARG TARGETPLATFORM
|
|
9
|
+
|
|
10
|
+WORKDIR /root
|
|
11
|
+
|
|
12
|
+# add clang/lld for linux/amd64
|
|
13
|
+RUN apk add clang lld
|
|
14
|
+
|
|
15
|
+# add the cross-compilation support
|
|
16
|
+COPY --from=xx / /
|
|
17
|
+
|
|
18
|
+ENV TARGETPLATFORM linux/386
|
|
19
|
+
|
|
20
|
+# add clang/lld for linux/386
|
|
21
|
+RUN xx-apk add clang lld libgcc
|
|
22
|
+
|
|
23
|
+# get the full glibc
|
|
24
|
+RUN wget -q -O /i586-alpine-linux-musl/etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
|
|
25
|
+RUN wget -q -O glibc-2.28-r0.apk https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk
|
|
26
|
+RUN xx-apk add glibc-2.28-r0.apk
|
|
27
|
+
|
|
28
|
+# add X support libraries
|
|
29
|
+RUN xx-apk add motif-dev
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+ENV WORKDIR /usr/local/src/cmucl
|
|
33
|
+ENV OLD_LISP_URL "https://common-lisp.net/project/cmucl/downloads/snapshots/2023/08"
|
|
34
|
+ENV VERSION "2023-08-x86"
|
|
35
|
+ENV BOOTSTRP "-B boot-2023-08"
|
|
36
|
+ENV OLD_LISP_PATH "${WORKDIR}/snapshot"
|
|
37
|
+
|
|
38
|
+# create the workdir
|
|
39
|
+RUN mkdir -p "${WORKDIR}"
|
|
40
|
+
|
|
41
|
+# create the place to install the working CMUCL
|
|
42
|
+RUN mkdir "${OLD_LISP_PATH}"
|
|
43
|
+
|
|
44
|
+WORKDIR "${OLD_LISP_PATH}"
|
|
45
|
+
|
|
46
|
+# gather the working lisp
|
|
47
|
+RUN wget -nv "${OLD_LISP_URL}/cmucl-${VERSION}-linux.tar.bz2"
|
|
48
|
+RUN wget -nv "${OLD_LISP_URL}/cmucl-${VERSION}-linux.extra.tar.bz2"
|
|
49
|
+
|
|
50
|
+# install the CMUCL image
|
|
51
|
+RUN tar xjf "cmucl-${VERSION}-linux.tar.bz2"
|
|
52
|
+RUN tar xjf "cmucl-${VERSION}-linux.extra.tar.bz2"
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+CMD ["bash"] |
|
|
\ No newline at end of file |