You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
3.3 KiB

  1. FROM ubuntu:18.04
  2. RUN apt-get update && \
  3. apt-get upgrade -y && \
  4. apt-get install -y \
  5. build-essential \
  6. clang \
  7. bison \
  8. flex \
  9. libreadline-dev \
  10. gawk \
  11. tcl-dev \
  12. libffi-dev \
  13. git \
  14. mercurial \
  15. graphviz \
  16. xdot \
  17. pkg-config \
  18. python \
  19. python3 \
  20. libftdi-dev \
  21. gperf \
  22. libboost-program-options-dev \
  23. autoconf \
  24. libgmp-dev \
  25. cmake \
  26. make \
  27. wget \
  28. libpython2.7 && \
  29. adduser symbiyosys --gecos "" --disabled-login
  30. RUN cd /home/symbiyosys && \
  31. git clone https://github.com/cliffordwolf/yosys.git yosys && \
  32. cd yosys && \
  33. make -j$(nproc) && \
  34. make install && \
  35. cd /home/symbiyosys && \
  36. git clone https://github.com/cliffordwolf/SymbiYosys.git SymbiYosys && \
  37. cd SymbiYosys && \
  38. make install && \
  39. cd /home/symbiyosys && \
  40. git clone https://github.com/Z3Prover/z3.git z3 && \
  41. cd z3 && \
  42. python scripts/mk_make.py && \
  43. cd build && \
  44. make -j$(nproc) && \
  45. make install && \
  46. cd /home/symbiyosys && \
  47. git clone https://github.com/SRI-CSL/yices2.git yices2 && \
  48. cd yices2 && \
  49. autoconf && \
  50. ./configure && \
  51. make -j$(nproc) && \
  52. make install && \
  53. cd /home/symbiyosys && \
  54. git clone https://bitbucket.org/arieg/extavy.git && \
  55. cd extavy && \
  56. git submodule update --init && \
  57. mkdir build; cd build && \
  58. cmake -DCMAKE_BUILD_TYPE=Release .. && \
  59. make -j$(nproc) && \
  60. cp avy/src/avy /usr/local/bin/ && \
  61. cp avy/src/avybmc /usr/local/bin/ && \
  62. cd /home/symbiyosys && \
  63. git clone https://github.com/boolector/boolector && \
  64. git clone https://github.com/arminbiere/lingeling boolector/deps/lingeling && \
  65. git clone https://github.com/boolector/btor2tools boolector/deps/btor2tools && \
  66. ( cd boolector/deps/lingeling && ./configure.sh -fPIC && make -j$(nproc); ) && \
  67. ( cd boolector/deps/btor2tools && ./configure.sh -fPIC && make -j$(nproc); ) && \
  68. ( cd boolector && ./configure.sh && cd build && make -j$(nproc); ) && \
  69. cp boolector/build/bin/boolector /usr/local/bin/ && \
  70. cp boolector/build/bin/btor* /usr/local/bin/ && \
  71. cp boolector/deps/btor2tools/bin/btorsim /usr/local/bin/ && \
  72. cd /home/symbiyosys && \
  73. wget https://downloads.bvsrc.org/super_prove/super_prove-hwmcc17_final-2-d7b71160dddb-Ubuntu_14.04-Release.tar.gz && \
  74. tar xzf super_prove-hwmcc17_final-2-d7b71160dddb-Ubuntu_14.04-Release.tar.gz -C /usr/local/ && \
  75. echo '#!/bin/bash' >> /usr/local/bin/suprove && \
  76. echo 'tool=super_prove; if [ "$1" != "${1#+}" ]; then tool="${1#+}"; shift; fi' >> /usr/local/bin/suprove && \
  77. echo 'exec /usr/local/super_prove/bin/${tool}.sh "$@"' >> /usr/local/bin/suprove && \
  78. chmod +x /usr/local/bin/suprove && \
  79. rm -rf yosys SymbiYosys z3 yices2 extavy boolector super_prove*
  80. RUN apt-get purge -y \
  81. build-essential \
  82. clang \
  83. bison \
  84. flex \
  85. libreadline-dev \
  86. gawk \
  87. libffi-dev \
  88. git \
  89. mercurial \
  90. graphviz \
  91. xdot \
  92. pkg-config \
  93. libftdi-dev \
  94. gperf \
  95. libboost-program-options-dev \
  96. autoconf \
  97. libgmp-dev \
  98. cmake \
  99. wget && \
  100. apt-get clean -y && \
  101. apt-get autoclean -y && \
  102. apt-get autoremove -y
  103. USER symbiyosys
  104. WORKDIR /home/symbiyosys
  105. RUN mkdir work
  106. VOLUME /home/symbiyosys/work