| @ -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/ | |||