-
Notifications
You must be signed in to change notification settings - Fork 3
/
symbiyosys.Dockerfile
117 lines (110 loc) · 3.55 KB
/
symbiyosys.Dockerfile
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
FROM debian:buster-slim as yosys
## YOSYS ##
# Get yosys dependencies
RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
ca-certificates \
gcc \
make \
bison \
flex \
libreadline-dev \
gawk \
tcl-dev \
libffi-dev \
graphviz \
xdot \
pkg-config \
python3 \
libboost-system-dev \
libboost-python-dev \
libboost-filesystem-dev \
clang \
curl \
git && \
apt-get autoclean && apt-get clean && apt-get -y autoremove && \
update-ca-certificates && \
rm -rf /var/lib/apt/lists/* && \
cd /root && \
git clone https://github.com/YosysHQ/yosys.git yosys && \
cd yosys && \
make -j$(nproc) PREFIX=/opt/yosys && \
make install PREFIX=/opt/yosys && \
mkdir /opt/yosys/doc && \
curl https://yosyshq.readthedocs.io/_/downloads/yosys/en/latest/pdf/ -o /opt/yosys/doc/yosys_manual.pdf
# SymbiYosys, Solvers
FROM yosys AS symbiyosys
COPY packages/suprove /root/suprove
RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
autoconf \
gperf \
cmake \
libgmp-dev \
ninja-build \
g++ \
python-setuptools \
python-pip \
python-wheel \
mercurial && \
apt-get autoclean && apt-get clean && apt-get -y autoremove && \
rm -rf /var/lib/apt/lists/* && \
cd /root && \
git clone https://github.com/YosysHQ/SymbiYosys.git symbiyosys && \
cd symbiyosys && \
make install PREFIX=/opt/symbiyosys && \
mkdir /opt/symbiyosys/doc && \
curl https://symbiyosys.readthedocs.io/_/downloads/en/latest/pdf/ -o /opt/symbiyosys/doc/symbiyosys_manual.pdf && \
cd .. && \
git clone https://github.com/Z3Prover/z3.git z3 && \
cd z3 && \
python scripts/mk_make.py && \
cd build && \
make -j$(nproc) PREFIX=/opt/z3 && \
make install PREFIX=/opt/z3 && \
cd /root && \
git clone https://github.com/SRI-CSL/yices2.git yices2 && \
cd yices2 && \
autoconf && \
./configure --prefix=/opt/yices2 && \
make -j$(nproc) && \
make install && \
cd /opt && \
mkdir cvc4 && mkdir cvc4/bin && \
curl -L -o cvc4/bin/cvc4 https://github.com/CVC4/CVC4/releases/download/1.7/cvc4-1.7-x86_64-linux-opt && \
chmod +x cvc4/bin/cvc4 && \
cd /root && \
git clone https://github.com/boolector/boolector && \
cd boolector && \
./contrib/setup-btor2tools.sh && \
./contrib/setup-lingeling.sh && \
./configure.sh && \
make -C build -j$(nproc) PREFIX=/opt/boolector && \
cd /root/boolector && \
mkdir /opt/boolector && \
mkdir /opt/boolector/bin && \
cp build/bin/boolector /opt/boolector/bin/ && \
cp build/bin/btor* /opt/boolector/bin/ && \
cp deps/btor2tools/bin/btorsim /opt/boolector/bin/ && \
cd /root && \
git clone https://github.com/bitwuzla/bitwuzla && \
cd bitwuzla && \
./contrib/setup-btor2tools.sh && \
./contrib/setup-lingeling.sh && \
./contrib/setup-symfpu.sh && \
./configure.sh && \
make -C build -j$(nproc) PREFIX=/opt/bitwuzla && \
mkdir -p /opt/bitwuzla/bin && \
cp build/bin/bitwuzla /opt/bitwuzla/bin/ && \
cd /root && \
git clone --recursive https://github.com/sterin/super-prove-build && \
cd super-prove-build && \
mkdir build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Release -G Ninja .. && \
ninja && \
ninja package && \
tar -C /opt -xzf super_prove*.tar.gz && \
mv /root/suprove /opt/super_prove/bin/ && \
chmod +x /opt/super_prove/bin/suprove && \
rm -rf /root/*