mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-19 03:44:46 -04:00
44 lines
1.5 KiB
Bash
Executable file
44 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
|
cd $ROOT/tmp
|
|
|
|
if [ -z "$NUM_JOBS" ]; then
|
|
NUM_JOBS=1
|
|
fi
|
|
|
|
VERILATOR_REPO="https://github.com/verilator/verilator.git"
|
|
VERILATOR_BRANCH="master"
|
|
# Use the release tag instead of a full SHA1 hash.
|
|
VERILATOR_HASH="v5.008"
|
|
VERILATOR_PATCH="$ROOT/verif/regress/verilator-v5.patch"
|
|
|
|
VERILATOR_BUILD_DIR=$PWD/verilator-$VERILATOR_HASH/verilator
|
|
VERILATOR_INSTALL_DIR="$(dirname $VERILATOR_BUILD_DIR)"
|
|
|
|
if [ ! -e "$VERILATOR_INSTALL_DIR/bin/verilator" ]; then
|
|
echo "Building Verilator in $VERILATOR_BUILD_DIR..."
|
|
echo "Verilator will be installed in $VERILATOR_INSTALL_DIR"
|
|
echo "VERILATOR_REPO=$VERILATOR_REPO"
|
|
echo "VERILATOR_BRANCH=$VERILATOR_BRANCH"
|
|
echo "VERILATOR_HASH=$VERILATOR_HASH"
|
|
echo "VERILATOR_PATCH=$VERILATOR_PATCH"
|
|
mkdir -p $VERILATOR_BUILD_DIR
|
|
cd $VERILATOR_BUILD_DIR
|
|
sudo apt install libfl-dev help2man
|
|
[ -d .git ] || git clone $VERILATOR_REPO -b $VERILATOR_BRANCH .
|
|
git checkout $VERILATOR_HASH
|
|
if [[ -n "$VERILATOR_PATCH" && -f "$VERILATOR_PATCH" ]] ; then
|
|
git apply $VERILATOR_PATCH || true
|
|
fi
|
|
# Generate the config script and configure Verilator.
|
|
autoconf && ./configure --prefix="$VERILATOR_INSTALL_DIR" && make -j${NUM_JOBS}
|
|
# FORNOW: Accept failure in 'make test' (segfault issue on Debian10)
|
|
make test || true
|
|
echo "Installing Verilator in $VERILATOR_INSTALL_DIR..."
|
|
make install
|
|
else
|
|
echo "Using Verilator from cached directory $VERILATOR_INSTALL_DIR."
|
|
fi
|
|
|
|
cd $ROOT
|