build container with all of fayalite's dependencies
This commit is contained in:
commit
b51fce0c03
9 changed files with 602 additions and 0 deletions
113
Containerfile
Normal file
113
Containerfile
Normal file
|
@ -0,0 +1,113 @@
|
|||
# SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
# See Notices.txt for copyright information
|
||||
|
||||
# base on node so it can be used for forgejo actions
|
||||
FROM node:21-bookworm
|
||||
RUN apt-get -qq update && apt-get -qq install \
|
||||
bison \
|
||||
build-essential \
|
||||
ccache \
|
||||
clang \
|
||||
cmake \
|
||||
curl \
|
||||
cvc5 \
|
||||
default-jre-headless \
|
||||
flex \
|
||||
g++ \
|
||||
gawk \
|
||||
git \
|
||||
libantlr4-runtime-dev \
|
||||
libboost-filesystem-dev \
|
||||
libboost-iostreams-dev \
|
||||
libboost-program-options-dev \
|
||||
libboost-python-dev \
|
||||
libboost-system-dev \
|
||||
libboost-thread-dev \
|
||||
libeigen3-dev \
|
||||
libffi-dev \
|
||||
libreadline-dev \
|
||||
lld \
|
||||
openfpgaloader \
|
||||
pkg-config \
|
||||
python3 \
|
||||
python3-click \
|
||||
python3-venv \
|
||||
tcl-dev \
|
||||
uuid-dev \
|
||||
wget \
|
||||
zlib1g-dev
|
||||
|
||||
RUN python3 -m venv /opt/fayalite-deps/venv
|
||||
ENV VIRTUAL_ENV=/opt/fayalite-deps/venv PATH=/opt/fayalite-deps/venv/bin:$PATH
|
||||
|
||||
RUN git clone --depth=1 --recursive --branch=0.45 https://git.libre-chip.org/mirrors/yosys /build/yosys \
|
||||
&& cd /build/yosys \
|
||||
&& make -j"$(nproc)" \
|
||||
&& make install \
|
||||
&& rm -rf /build
|
||||
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.89.0 \
|
||||
&& . "$HOME/.cargo/env" \
|
||||
&& rustup component add rust-src
|
||||
ENV PATH=/root/.cargo/bin:$PATH
|
||||
|
||||
RUN pip install click==8.1.3 && rm -rf ~/.cache
|
||||
|
||||
RUN git clone https://github.com/SymbiFlow/prjxray.git /build/prjxray \
|
||||
&& cd /build/prjxray \
|
||||
&& git checkout c9f02d8576042325425824647ab5555b1bc77833 \
|
||||
&& git submodule update --init --recursive \
|
||||
&& mkdir -p build \
|
||||
&& cd build \
|
||||
&& cmake .. \
|
||||
&& make -j$(nproc) \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& sed -i 's/-e //' requirements.txt \
|
||||
&& pip install -r requirements.txt \
|
||||
&& rm -rf /build ~/.cache
|
||||
|
||||
RUN git clone https://github.com/openXC7/prjxray-db.git /opt/fayalite-deps/prjxray-db \
|
||||
&& cd /opt/fayalite-deps/prjxray-db \
|
||||
&& git checkout 381966a746cb4cf4a7f854f0e53caa3bf74fbe62 \
|
||||
&& rm -rf .git
|
||||
|
||||
RUN git clone https://github.com/chipsalliance/f4pga-xc-fasm.git /build/f4pga-xc-fasm \
|
||||
&& cd /build/f4pga-xc-fasm \
|
||||
&& git checkout 25dc605c9c0896204f0c3425b52a332034cf5e5c \
|
||||
&& pip install . \
|
||||
&& rm -rf /build ~/.cache
|
||||
|
||||
RUN git clone https://github.com/openXC7/nextpnr-xilinx.git /build/nextpnr-xilinx \
|
||||
&& cd /build/nextpnr-xilinx \
|
||||
&& git checkout 724db28b41e68568690a5ea1dd9ce5082362bb91 \
|
||||
&& git submodule update --init --recursive \
|
||||
&& mkdir -p build \
|
||||
&& cd build \
|
||||
&& cmake -DARCH=xilinx -DUSE_OPENMP=ON -DBUILD_GUI=OFF .. \
|
||||
&& make -j$(nproc) \
|
||||
&& make install \
|
||||
&& install bbasm /usr/local/bin/ \
|
||||
&& rm -rf /build
|
||||
|
||||
RUN mkdir -p /build \
|
||||
&& cd /build \
|
||||
&& wget -O firrtl.tar.gz https://github.com/llvm/circt/releases/download/firtool-1.86.0/firrtl-bin-linux-x64.tar.gz \
|
||||
&& echo 'bf6f4ab18ae76f135c944efbd81e25391c31c1bd0617c58ab0592640abefee14 firrtl.tar.gz' > expected-hashes \
|
||||
&& sha256sum -c expected-hashes \
|
||||
&& tar -xvaf firrtl.tar.gz \
|
||||
&& install firtool-1.86.0/bin/firtool /usr/local/bin/ \
|
||||
&& rm -rf /build
|
||||
|
||||
RUN git clone --depth=1 --branch=yosys-0.45 https://git.libre-chip.org/mirrors/sby /build/sby \
|
||||
&& cd /build/sby \
|
||||
&& make install \
|
||||
&& rm -rf /build
|
||||
|
||||
RUN git clone --depth=1 --recursive --branch=z3-4.13.3 https://git.libre-chip.org/mirrors/z3 /build/z3 \
|
||||
&& cd /build/z3 \
|
||||
&& PYTHON=python3 ./configure --prefix=/usr/local \
|
||||
&& cd build \
|
||||
&& make -j"$(nproc)" \
|
||||
&& make install \
|
||||
&& rm -rf /build
|
Loading…
Add table
Add a link
Reference in a new issue