| 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 \ | |
|     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 && \ | |
|     git clone https://github.com/berkeley-abc/abc.git abc && \ | |
|     make -j$(nproc) PREFIX=/opt/yosys && \ | |
|     make install PREFIX=/opt/yosys | |
|  | |
|  | |
| # SymbiYosys, Solvers | |
|  | |
| FROM yosys AS symbiyosys | |
|  | |
| RUN apt-get update -qq && \ | |
|     DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \ | |
|     autoconf \ | |
|     gperf  \ | |
|     cmake \ | |
|     curl \ | |
|     libgmp-dev && \ | |
|     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 && \ | |
|     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/
 |