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.

64 lines
1.9 KiB

  1. ## GHDL ##
  2. FROM symbiyosys as symbiyosys-ghdl
  3. ARG LLVM_VER="7"
  4. RUN apt-get update -qq && \
  5. DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
  6. gnat \
  7. llvm-dev && \
  8. apt-get autoclean && apt-get clean && apt-get -y autoremove && \
  9. rm -rf /var/lib/apt/lists/* && \
  10. cd /root && \
  11. mkdir ghdl && \
  12. cd ghdl && \
  13. curl https://codeload.github.com/ghdl/ghdl/tar.gz/master | tar xzf - --strip-components=1 && \
  14. ./configure --enable-synth --prefix=/opt/ghdl --with-llvm-config=llvm-config-$LLVM_VER && \
  15. make && \
  16. make install && \
  17. mkdir /opt/ghdl/doc && \
  18. curl https://ghdl.readthedocs.io/_/downloads/en/latest/pdf/ -o /opt/ghdl/doc/ghdl_manual.pdf
  19. ## GHDLSYNTH-BETA ##
  20. FROM symbiyosys-ghdl AS symbiyosys-ghdlsynth
  21. # Build ghdlsynth-beta
  22. RUN cd /root && \
  23. mkdir ghdl-yosys-plugin && \
  24. cd ghdl-yosys-plugin && \
  25. curl https://codeload.github.com/ghdl/ghdl-yosys-plugin/tar.gz/master | tar xzf - --strip-components=1 && \
  26. make GHDL=/opt/ghdl/bin/ghdl YOSYS_CONFIG=/opt/yosys/bin/yosys-config && \
  27. make install GHDL=/opt/ghdl/bin/ghdl YOSYS_CONFIG=/opt/yosys/bin/yosys-config
  28. # GHDL-formal
  29. FROM debian:buster-slim AS ghdl-formal
  30. # Get runtime dependencies
  31. RUN apt-get update -qq && \
  32. DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
  33. ca-certificates \
  34. libreadline7 \
  35. libtcl8.6 \
  36. libgnat-8 \
  37. libllvm7 \
  38. gcc \
  39. libc6-dev \
  40. zlib1g-dev \
  41. make \
  42. python3 \
  43. libssl-dev \
  44. libpython2.7 && \
  45. apt-get -y upgrade && apt-get autoclean && apt-get clean && apt-get -y autoremove && \
  46. update-ca-certificates && \
  47. rm -rf /var/lib/apt/lists/*
  48. # copy build artifacts
  49. COPY --from=symbiyosys-ghdlsynth /opt /opt
  50. # Enhance path variable
  51. ENV PATH "/opt/ghdl/bin:/opt/symbiyosys/bin:/opt/yosys/bin:/opt/z3/bin:/opt/yices2/bin:/opt/cvc4/bin:/opt/boolector/bin:/opt/super_prove/bin:$PATH"