1
|
FROM alpine:3.12
|
2
|
|
3
|
RUN apk add --no-cache \
|
4
|
make \
|
5
|
rsync \
|
6
|
git \
|
7
|
m4 \
|
8
|
patch \
|
9
|
pkgconfig \
|
10
|
libc-dev \
|
11
|
gcc \
|
12
|
ocaml ocaml-compiler-libs ocaml-ocamldoc opam ocaml-findlib \
|
13
|
# Needed because mlmpfr isn't automatically installed by opam depext on alpine
|
14
|
# Also mlmpfr has a bug and we need to ask for a specific version
|
15
|
# else the bindings will not work.
|
16
|
mpfr-dev=4.0.2-r4
|
17
|
|
18
|
# Configuration de OPAM
|
19
|
RUN opam init --auto-setup -y --disable-sandboxing && opam clean
|
20
|
|
21
|
ENV PATH "$PATH:/root/.opam/default/bin"
|
22
|
|
23
|
COPY . /lustrec
|
24
|
|
25
|
WORKDIR /lustrec
|
26
|
|
27
|
RUN eval $(opam env) && \
|
28
|
opam update && \
|
29
|
# As explained above, mlmpfr version needs to match the system version of mpfr
|
30
|
# So we pin mlmpfr to the corresponding version
|
31
|
opam pin -n mlmpfr 4.0.2+dune && \
|
32
|
opam pin -y -n . && \
|
33
|
opam install -y depext && \
|
34
|
opam depext --yes lustrec && \
|
35
|
opam install -y lustrec && \
|
36
|
#
|
37
|
# To enable Zustre plugin, uncomment the lines below :
|
38
|
# opam depext --yes lustrec-enable-zustre && \
|
39
|
# # z3 install requires a C++ compiler (g++ or clang)
|
40
|
# apk add --no-cache g++ && \
|
41
|
# opam install -y lustrec-enable-zustre && \
|
42
|
# ----
|
43
|
# To enable Tiny plugin, uncomment the lines below :
|
44
|
# opam pin -y -n https://cavale.enseeiht.fr/git/ikocos.tiny#master && \
|
45
|
# opam depext --yes tiny && \
|
46
|
# opam install -y tiny && \
|
47
|
# ----
|
48
|
opam clean
|