blob: fb2d904cb2ccf78ac8c7ab5978854f2fe69c31d5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# This Dockerfile is currently a work in progress. Due to Criterion being a
# wretched pain in the ass to configure on non-supported distribution, it is
# currently not operational for typical usage. However, it still remains
# available for testing and custom experimentations
FROM alpine:3.21.3 AS build-havm
LABEL org.opencontainer.image.authors="Clément Metz <clement.metz@epita.fr>"
RUN apk add --no-cache \
build-base \
make \
automake \
autoconf \
texinfo \
ghc
RUN wget https://gitlab.lre.epita.fr/tiger/havm/-/archive/master/havm-master.tar.gz \
&& tar xvf havm-master.tar.gz \
&& cd havm-master \
&& ./bootstrap \
&& ./configure \
&& make -j install
FROM alpine:3.21.3 AS build-nolimips
LABEL org.opencontainer.image.authors="Clément Metz <clement.metz@epita.fr>"
RUN apk add --no-cache \
build-base \
make \
automake \
autoconf \
autoconf-archive \
texinfo \
libtool \
python3 \
clang-extra-tools \
flex \
bison
RUN wget https://gitlab.lre.epita.fr/tiger/nolimips/-/archive/master/nolimips-master.tar.gz \
&& tar xvf nolimips-master.tar.gz \
&& cd nolimips-master \
&& ./bootstrap \
&& ./configure \
&& make -j install
FROM alpine:3.21.3 AS build-re-flex
LABEL org.opencontainer.image.authors="Clément Metz <clement.metz@epita.fr>"
RUN apk add --no-cache \
build-base \
make \
automake \
autoconf \
&& wget https://github.com/Genivia/RE-flex/archive/refs/tags/v3.2.12.zip \
&& unzip v3.2.12.zip \
&& cd RE-flex-3.2.12 \
&& autoreconf --install --force \
&& ./configure \
&& make -j install
FROM alpine:3.21.3 AS get-criterion
LABEL org.opencontainer.image.authors="Clément Metz <clement.metz@epita.fr>"
# TODO: Figure out a good way to fetch Criterion for the final repo
RUN wget https://github.com/Snaipe/Criterion/releases/download/v2.4.2/criterion-2.4.2-linux-x86_64.tar.xz \
&& tar -xf criterion-2.4.2-linux-x86_64.tar.xz \
&& rm criterion-2.4.2-linux-x86_64.tar.xz
FROM alpine:3.21.3 AS buildenv-slim
LABEL org.opencontainer.image.name="buildenv-slim" \
org.opencontainer.image.authors="Clément Metz <clement.metz@epita.fr>" \
org.opencontainer.image.version="1.1.0" \
org.opencontainer.image.comment="il n'y avait pas à nous filer une image de 9Go aussi :c"
COPY --from=build-havm \
/havm-master/src/havm \
/usr/local/bin/
COPY --from=build-nolimips \
--chmod=644 \
/usr/local/lib/libnolimips.a \
/usr/local/lib/
COPY --from=build-nolimips \
/usr/local/lib/libnolimips.la /usr/local/lib/libnolimips.so.0.0.0 \
/usr/local/lib/
COPY --from=build-nolimips \
/nolimips-master/src/.libs/nolimips \
/usr/local/bin/
COPY --from=build-re-flex \
--chmod=644 \
/usr/local/lib/libreflex.a \
/usr/local/lib/libreflexmin.a \
/usr/local/lib/
COPY --from=build-re-flex \
/usr/local/include/reflex \
/usr/local/include/reflex
COPY --from=build-re-flex \
/usr/local/bin/reflex \
/usr/local/bin/
COPY --from=get-criterion \
/criterion-2.4.2/include/criterion \
/usr/local/include/criterion
COPY --from=get-criterion \
/criterion-2.4.2/lib/libcriterion.so.3.2.0 \
/usr/local/lib/
RUN apk add --no-cache \
build-base \
make \
autoconf \
automake \
libtool \
flex \
bison \
boost-dev \
llvm19-dev \
clang19 \
ghc
RUN ln -s /usr/local/lib/libnolimips.so.0.0.0 /usr/local/lib/libnolimips.so.0 \
&& ln -s /usr/local/lib/libnolimips.so.0 /usr/local/lib/libnolimips.so \
&& ln -s /usr/local/lib/libcriterion.so.3.2.0 /usr/local/lib/libcriterion.so.3 \
&& ln -s /usr/local/lib/libcriterion.so.3 /usr/local/lib/libcriterion.so \
&& ranlib /usr/local/lib/libnolimips.a \
&& ranlib /usr/local/lib/libreflex.a \
&& PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/local/lib
|