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.

66 lines
2.0 KiB

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