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