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.

60 lines
1.7 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. ## GHDLSYNTH-BETA ##
  18. FROM symbiyosys-ghdl AS symbiyosys-ghdlsynth
  19. # Build ghdlsynth-beta
  20. RUN cd /root && \
  21. mkdir ghdl-yosys-plugin && \
  22. cd ghdl-yosys-plugin && \
  23. curl https://codeload.github.com/ghdl/ghdl-yosys-plugin/tar.gz/master | tar xzf - --strip-components=1 && \
  24. make GHDL=/opt/ghdl/bin/ghdl YOSYS_CONFIG=/opt/yosys/bin/yosys-config && \
  25. make install GHDL=/opt/ghdl/bin/ghdl YOSYS_CONFIG=/opt/yosys/bin/yosys-config
  26. # GHDL-formal
  27. FROM debian:buster-slim AS ghdl-formal
  28. # Get runtime dependencies
  29. RUN apt-get update -qq && \
  30. DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
  31. ca-certificates \
  32. libreadline7 \
  33. libtcl8.6 \
  34. libgnat-8 \
  35. libllvm7 \
  36. gcc \
  37. libc6-dev \
  38. zlib1g-dev \
  39. make \
  40. python3 && \
  41. apt-get upgrade && apt-get autoclean && apt-get clean && apt-get -y autoremove && \
  42. update-ca-certificates && \
  43. rm -rf /var/lib/apt/lists/*
  44. # copy build artifacts
  45. COPY --from=symbiyosys-ghdlsynth /opt /opt
  46. # Enhance path variable
  47. ENV PATH "/opt/ghdl/bin:/opt/symbiyosys/bin:/opt/yosys/bin:/opt/z3/bin:/opt/yices2/bin:/opt/cvc4/bin:/opt/boolector/bin:$PATH"