64 lines
1.8 KiB
Bash
Executable File
64 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Install capnproto libraries
|
|
function build_capnp {
|
|
curl -O https://capnproto.org/capnproto-c++-0.8.0.tar.gz
|
|
tar zxf capnproto-c++-0.8.0.tar.gz
|
|
pushd capnproto-c++-0.8.0
|
|
./configure
|
|
make -j`nproc` check
|
|
sudo make install
|
|
popd
|
|
|
|
git clone https://github.com/capnproto/capnproto-java.git
|
|
pushd capnproto-java
|
|
make -j`nproc`
|
|
sudo make install
|
|
popd
|
|
}
|
|
|
|
# Install latest Yosys
|
|
function build_yosys {
|
|
DESTDIR=`pwd`/.yosys
|
|
pushd yosys
|
|
make -j`nproc`
|
|
sudo make install DESTDIR=$DESTDIR
|
|
popd
|
|
}
|
|
|
|
|
|
function get_dependencies {
|
|
# Install python-fpga-interchange libraries
|
|
git clone -b ${PYTHON_INTERCHANGE_TAG} https://github.com/SymbiFlow/python-fpga-interchange.git ${PYTHON_INTERCHANGE_PATH}
|
|
pushd ${PYTHON_INTERCHANGE_PATH}
|
|
git submodule update --init --recursive
|
|
python3 -m pip install -r requirements.txt
|
|
popd
|
|
|
|
if [ ${DEVICE} == "LIFCL-17" ]; then
|
|
# Install prjoxide
|
|
curl --proto '=https' -sSf https://sh.rustup.rs | sh -s -- -y
|
|
git clone --recursive https://github.com/gatecat/prjoxide.git
|
|
pushd prjoxide/libprjoxide
|
|
# TODO: use a tag instead of a commit, like python-fpga-interchange
|
|
git reset --hard ${PRJOXIDE_REVISION}
|
|
PATH=$PATH:$HOME/.cargo/bin cargo install --path prjoxide --all-features
|
|
popd
|
|
else
|
|
# Install RapidWright
|
|
git clone https://github.com/Xilinx/RapidWright.git ${RAPIDWRIGHT_PATH}
|
|
pushd ${RAPIDWRIGHT_PATH}
|
|
make update_jars
|
|
popd
|
|
fi
|
|
}
|
|
|
|
function build_nextpnr {
|
|
build_capnp
|
|
mkdir build
|
|
pushd build
|
|
cmake .. -DARCH=fpga_interchange -DRAPIDWRIGHT_PATH=${RAPIDWRIGHT_PATH} -DPYTHON_INTERCHANGE_PATH=${PYTHON_INTERCHANGE_PATH} -DUSE_ABSEIL=on
|
|
make nextpnr-fpga_interchange -j`nproc`
|
|
popd
|
|
}
|