| @ -1,112 +0,0 @@ | |||||
| FROM ubuntu:18.04 | |||||
| RUN apt-get update && \ | |||||
| apt-get upgrade -y && \ | |||||
| apt-get install -y \ | |||||
| build-essential \ | |||||
| clang \ | |||||
| bison \ | |||||
| flex \ | |||||
| libreadline-dev \ | |||||
| gawk \ | |||||
| tcl-dev \ | |||||
| libffi-dev \ | |||||
| git \ | |||||
| mercurial \ | |||||
| graphviz \ | |||||
| xdot \ | |||||
| pkg-config \ | |||||
| python \ | |||||
| python3 \ | |||||
| libftdi-dev \ | |||||
| gperf \ | |||||
| libboost-program-options-dev \ | |||||
| autoconf \ | |||||
| libgmp-dev \ | |||||
| cmake \ | |||||
| make \ | |||||
| wget \ | |||||
| libpython2.7 && \ | |||||
| adduser symbiyosys --gecos "" --disabled-login | |||||
| RUN cd /home/symbiyosys && \ | |||||
| git clone https://github.com/cliffordwolf/yosys.git yosys && \ | |||||
| cd yosys && \ | |||||
| make -j$(nproc) && \ | |||||
| make install && \ | |||||
| cd /home/symbiyosys && \ | |||||
| git clone https://github.com/cliffordwolf/SymbiYosys.git SymbiYosys && \ | |||||
| cd SymbiYosys && \ | |||||
| make install && \ | |||||
| cd /home/symbiyosys && \ | |||||
| git clone https://github.com/Z3Prover/z3.git z3 && \ | |||||
| cd z3 && \ | |||||
| python scripts/mk_make.py && \ | |||||
| cd build && \ | |||||
| make -j$(nproc) && \ | |||||
| make install && \ | |||||
| cd /home/symbiyosys && \ | |||||
| git clone https://github.com/SRI-CSL/yices2.git yices2 && \ | |||||
| cd yices2 && \ | |||||
| autoconf && \ | |||||
| ./configure && \ | |||||
| make -j$(nproc) && \ | |||||
| make install && \ | |||||
| cd /home/symbiyosys && \ | |||||
| git clone https://bitbucket.org/arieg/extavy.git && \ | |||||
| cd extavy && \ | |||||
| git submodule update --init && \ | |||||
| mkdir build; cd build && \ | |||||
| cmake -DCMAKE_BUILD_TYPE=Release .. && \ | |||||
| make -j$(nproc) && \ | |||||
| cp avy/src/avy /usr/local/bin/ && \ | |||||
| cp avy/src/avybmc /usr/local/bin/ && \ | |||||
| cd /home/symbiyosys && \ | |||||
| git clone https://github.com/boolector/boolector && \ | |||||
| git clone https://github.com/arminbiere/lingeling boolector/deps/lingeling && \ | |||||
| git clone https://github.com/boolector/btor2tools boolector/deps/btor2tools && \ | |||||
| ( cd boolector/deps/lingeling && ./configure.sh -fPIC && make -j$(nproc); ) && \ | |||||
| ( cd boolector/deps/btor2tools && ./configure.sh -fPIC && make -j$(nproc); ) && \ | |||||
| ( cd boolector && ./configure.sh && cd build && make -j$(nproc); ) && \ | |||||
| cp boolector/build/bin/boolector /usr/local/bin/ && \ | |||||
| cp boolector/build/bin/btor* /usr/local/bin/ && \ | |||||
| cp boolector/deps/btor2tools/bin/btorsim /usr/local/bin/ && \ | |||||
| cd /home/symbiyosys && \ | |||||
| wget https://downloads.bvsrc.org/super_prove/super_prove-hwmcc17_final-2-d7b71160dddb-Ubuntu_14.04-Release.tar.gz && \ | |||||
| tar xzf super_prove-hwmcc17_final-2-d7b71160dddb-Ubuntu_14.04-Release.tar.gz -C /usr/local/ && \ | |||||
| echo '#!/bin/bash' >> /usr/local/bin/suprove && \ | |||||
| echo 'tool=super_prove; if [ "$1" != "${1#+}" ]; then tool="${1#+}"; shift; fi' >> /usr/local/bin/suprove && \ | |||||
| echo 'exec /usr/local/super_prove/bin/${tool}.sh "$@"' >> /usr/local/bin/suprove && \ | |||||
| chmod +x /usr/local/bin/suprove && \ | |||||
| rm -rf yosys SymbiYosys z3 yices2 extavy boolector super_prove* | |||||
| RUN apt-get purge -y \ | |||||
| build-essential \ | |||||
| clang \ | |||||
| bison \ | |||||
| flex \ | |||||
| libreadline-dev \ | |||||
| gawk \ | |||||
| libffi-dev \ | |||||
| git \ | |||||
| mercurial \ | |||||
| graphviz \ | |||||
| xdot \ | |||||
| pkg-config \ | |||||
| libftdi-dev \ | |||||
| gperf \ | |||||
| libboost-program-options-dev \ | |||||
| autoconf \ | |||||
| libgmp-dev \ | |||||
| cmake \ | |||||
| wget && \ | |||||
| apt-get clean -y && \ | |||||
| apt-get autoclean -y && \ | |||||
| apt-get autoremove -y | |||||
| USER symbiyosys | |||||
| WORKDIR /home/symbiyosys | |||||
| RUN mkdir work | |||||
| VOLUME /home/symbiyosys/work | |||||
| @ -0,0 +1,66 @@ | |||||
| ## GHDL ## | |||||
| FROM symbiyosys as symbiyosys-ghdl | |||||
| ARG LLVM_VER="7" | |||||
| ARG GNAT_VER="8" | |||||
| RUN apt-get update -qq && \ | |||||
| DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \ | |||||
| gnat \ | |||||
| zlib1g-dev \ | |||||
| llvm-dev && \ | |||||
| apt-get autoclean && apt-get clean && apt-get -y autoremove && \ | |||||
| rm -rf /var/lib/apt/lists/* | |||||
| # Build GHDL | |||||
| RUN cd /root && \ | |||||
| mkdir ghdl && \ | |||||
| cd ghdl && \ | |||||
| curl https://codeload.github.com/ghdl/ghdl/tar.gz/master | tar xzf - --strip-components=1 && \ | |||||
| ./configure --enable-synth --prefix=/opt/ghdl --with-llvm-config=llvm-config-$LLVM_VER && \ | |||||
| make && \ | |||||
| make install | |||||
| ## GHDLSYNTH-BETA ## | |||||
| FROM symbiyosys-ghdl AS symbiyosys-ghdlsynth | |||||
| # Build ghdlsynth-beta | |||||
| RUN cd /root && \ | |||||
| mkdir ghdlsynth-beta && \ | |||||
| cd ghdlsynth-beta && \ | |||||
| curl https://codeload.github.com/tmeissner/ghdlsynth-beta/tar.gz/tests | tar xzf - --strip-components=1 && \ | |||||
| make GHDL=/opt/ghdl/bin/ghdl YOSYS_CONFIG=/opt/yosys/bin/yosys-config && \ | |||||
| make install GHDL=/opt/ghdl/bin/ghdl YOSYS_CONFIG=/opt/yosys/bin/yosys-config | |||||
| # GHDL-formal | |||||
| FROM debian:buster-slim AS ghdl-formal | |||||
| # Get runtime dependencies | |||||
| RUN apt-get update -qq && \ | |||||
| DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \ | |||||
| ca-certificates \ | |||||
| libreadline7 \ | |||||
| libtcl8.6 \ | |||||
| libgnat-8 \ | |||||
| make \ | |||||
| python3 && \ | |||||
| apt-get autoclean && apt-get clean && apt-get -y autoremove && \ | |||||
| update-ca-certificates && \ | |||||
| rm -rf /var/lib/apt/lists/* | |||||
| # copy build artifacts | |||||
| COPY --from=symbiyosys-ghdlsynth /opt/ghdl /opt/ghdl | |||||
| COPY --from=symbiyosys-ghdlsynth /opt/symbiyosys /opt/symbiyosys | |||||
| COPY --from=symbiyosys-ghdlsynth /opt/yosys /opt/yosys | |||||
| COPY --from=symbiyosys-ghdlsynth /opt/z3 /opt/z3 | |||||
| COPY --from=symbiyosys-ghdlsynth /opt/yices2 /opt/yices2 | |||||
| COPY --from=symbiyosys-ghdlsynth /opt/cvc4 /opt/cvc4 | |||||
| COPY --from=symbiyosys-ghdlsynth /opt/boolector /opt/boolector | |||||
| # Enhance path variable | |||||
| ENV PATH "/opt/ghdl/bin:/opt/symbiyosys/bin:/opt/yosys/bin:/opt/z3/bin:/opt/yices2/bin:/opt/cvc4/bin:/opt/boolector/bin:$PATH" | |||||
| @ -0,0 +1,84 @@ | |||||
| 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/ | |||||