mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-04-25 06:17:10 -04:00
Add error messages
This commit is contained in:
parent
65b3a97379
commit
6f71f30a42
1 changed files with 28 additions and 0 deletions
|
@ -36,6 +36,18 @@ NUM_THREADS=8 # for >= 32GiB
|
||||||
#NUM_THREADS=16 # for >= 64GiB
|
#NUM_THREADS=16 # for >= 64GiB
|
||||||
|
|
||||||
set -e # break on error
|
set -e # break on error
|
||||||
|
STATUS="setup" # keep track of what part of the installation is running for error messages
|
||||||
|
|
||||||
|
# Error handler
|
||||||
|
error() {
|
||||||
|
echo -e "${FAIL_COLOR}Error: $STATUS installation failed$"
|
||||||
|
echo -e "Error on line ${BASH_LINENO[0]} with command $BASH_COMMAND${ENDC}"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
trap error ERR # run error function on error
|
||||||
|
|
||||||
|
# Get the directory of the script to find other scripts
|
||||||
dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
# Colors
|
# Colors
|
||||||
|
@ -70,6 +82,7 @@ echo "Running as root: $ROOT"
|
||||||
echo "Installation path: $RISCV"
|
echo "Installation path: $RISCV"
|
||||||
|
|
||||||
# Install/update packages if root. Otherwise, check that packages are already installed.
|
# Install/update packages if root. Otherwise, check that packages are already installed.
|
||||||
|
STATUS="system packages"
|
||||||
if [ "$ROOT" = true ]; then
|
if [ "$ROOT" = true ]; then
|
||||||
source "${dir}"/wally-package-install.sh
|
source "${dir}"/wally-package-install.sh
|
||||||
else
|
else
|
||||||
|
@ -95,6 +108,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
# Create python virtual environment so the python command targets our desired version of python
|
# Create python virtual environment so the python command targets our desired version of python
|
||||||
# and installed packages are isolated from the rest of the system.
|
# and installed packages are isolated from the rest of the system.
|
||||||
|
STATUS="python virtual environment"
|
||||||
cd "$RISCV"
|
cd "$RISCV"
|
||||||
if [ ! -e "$RISCV"/riscv-python/bin/activate ]; then
|
if [ ! -e "$RISCV"/riscv-python/bin/activate ]; then
|
||||||
# If python3.12 is avaiable, use it. Otherise, use whatever version of python3 is installed.
|
# If python3.12 is avaiable, use it. Otherise, use whatever version of python3 is installed.
|
||||||
|
@ -110,6 +124,7 @@ fi
|
||||||
source "$RISCV"/riscv-python/bin/activate # activate python virtual environment
|
source "$RISCV"/riscv-python/bin/activate # activate python virtual environment
|
||||||
|
|
||||||
# Install python packages
|
# Install python packages
|
||||||
|
STATUS="python packages"
|
||||||
pip install -U pip
|
pip install -U pip
|
||||||
pip install -U sphinx sphinx_rtd_theme matplotlib scipy scikit-learn adjustText lief markdown pyyaml testresources riscv_config
|
pip install -U sphinx sphinx_rtd_theme matplotlib scipy scikit-learn adjustText lief markdown pyyaml testresources riscv_config
|
||||||
pip install -U riscv_isac # to generate new tests, such as quads with fp_dataset.py
|
pip install -U riscv_isac # to generate new tests, such as quads with fp_dataset.py
|
||||||
|
@ -125,6 +140,7 @@ echo -e "${SUCCESS_COLOR}Python environment successfully configured.${ENDC}"
|
||||||
if [ "$RHEL_VERSION" = 8 ] || [ "$UBUNTU_VERSION" = 20 ]; then
|
if [ "$RHEL_VERSION" = 8 ] || [ "$UBUNTU_VERSION" = 20 ]; then
|
||||||
# Newer versin of glib required for Qemu.
|
# Newer versin of glib required for Qemu.
|
||||||
# Anything newer than this won't build on red hat 8
|
# Anything newer than this won't build on red hat 8
|
||||||
|
STATUS="glib"
|
||||||
if [ ! -e "$RISCV"/include/glib-2.0 ]; then
|
if [ ! -e "$RISCV"/include/glib-2.0 ]; then
|
||||||
echo -e "${SECTION_COLOR}\n*************************************************************************"
|
echo -e "${SECTION_COLOR}\n*************************************************************************"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
|
@ -149,6 +165,7 @@ fi
|
||||||
|
|
||||||
# Newer version of gmp needed for sail-riscv model
|
# Newer version of gmp needed for sail-riscv model
|
||||||
if [ "$RHEL_VERSION" = 8 ]; then
|
if [ "$RHEL_VERSION" = 8 ]; then
|
||||||
|
STATUS="gmp"
|
||||||
if [ ! -e "$RISCV"/include/gmp.h ]; then
|
if [ ! -e "$RISCV"/include/gmp.h ]; then
|
||||||
echo -e "${SECTION_COLOR}\n*************************************************************************"
|
echo -e "${SECTION_COLOR}\n*************************************************************************"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
|
@ -178,6 +195,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating RISC-V GNU Toolchain"
|
echo -e "Installing/Updating RISC-V GNU Toolchain"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="RISC-V GNU Toolchain"
|
||||||
cd "$RISCV"
|
cd "$RISCV"
|
||||||
if [[ ((! -e riscv-gnu-toolchain) && ($(git clone https://github.com/riscv/riscv-gnu-toolchain) || true)) || ($(cd riscv-gnu-toolchain; git fetch; git rev-parse HEAD) != $(cd riscv-gnu-toolchain; git rev-parse origin/master)) || (! -e $RISCV/riscv-gnu-toolchain/stamps/build-gcc-newlib-stage2) ]]; then
|
if [[ ((! -e riscv-gnu-toolchain) && ($(git clone https://github.com/riscv/riscv-gnu-toolchain) || true)) || ($(cd riscv-gnu-toolchain; git fetch; git rev-parse HEAD) != $(cd riscv-gnu-toolchain; git rev-parse origin/master)) || (! -e $RISCV/riscv-gnu-toolchain/stamps/build-gcc-newlib-stage2) ]]; then
|
||||||
cd riscv-gnu-toolchain
|
cd riscv-gnu-toolchain
|
||||||
|
@ -202,6 +220,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating elf2hex"
|
echo -e "Installing/Updating elf2hex"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="elf2hex"
|
||||||
cd "$RISCV"
|
cd "$RISCV"
|
||||||
export PATH=$RISCV/bin:$PATH
|
export PATH=$RISCV/bin:$PATH
|
||||||
if [[ ((! -e elf2hex) && ($(git clone https://github.com/sifive/elf2hex.git) || true)) || ($(cd elf2hex; git fetch; git rev-parse HEAD) != $(cd elf2hex; git rev-parse origin/master)) || (! -e $RISCV/bin/riscv64-unknown-elf-elf2bin) ]]; then
|
if [[ ((! -e elf2hex) && ($(git clone https://github.com/sifive/elf2hex.git) || true)) || ($(cd elf2hex; git fetch; git rev-parse HEAD) != $(cd elf2hex; git rev-parse origin/master)) || (! -e $RISCV/bin/riscv64-unknown-elf-elf2bin) ]]; then
|
||||||
|
@ -222,6 +241,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating QEMU"
|
echo -e "Installing/Updating QEMU"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="QEMU"
|
||||||
cd "$RISCV"
|
cd "$RISCV"
|
||||||
if [[ ((! -e qemu) && ($(git clone --recurse-submodules -j ${NUM_THREADS} https://github.com/qemu/qemu) || true)) || ($(cd qemu; git fetch; git rev-parse HEAD) != $(cd qemu; git rev-parse origin/master)) || (! -e $RISCV/include/qemu-plugin.h) ]]; then
|
if [[ ((! -e qemu) && ($(git clone --recurse-submodules -j ${NUM_THREADS} https://github.com/qemu/qemu) || true)) || ($(cd qemu; git fetch; git rev-parse HEAD) != $(cd qemu; git rev-parse origin/master)) || (! -e $RISCV/include/qemu-plugin.h) ]]; then
|
||||||
cd qemu
|
cd qemu
|
||||||
|
@ -242,6 +262,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating SPIKE"
|
echo -e "Installing/Updating SPIKE"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="SPIKE"
|
||||||
cd "$RISCV"
|
cd "$RISCV"
|
||||||
if [[ ((! -e riscv-isa-sim) && ($(git clone https://github.com/riscv-software-src/riscv-isa-sim) || true)) || ($(cd riscv-isa-sim; git fetch; git rev-parse HEAD) != $(cd riscv-isa-sim; git rev-parse origin/master)) || (! -e $RISCV/lib/pkgconfig/riscv-riscv.pc) ]]; then
|
if [[ ((! -e riscv-isa-sim) && ($(git clone https://github.com/riscv-software-src/riscv-isa-sim) || true)) || ($(cd riscv-isa-sim; git fetch; git rev-parse HEAD) != $(cd riscv-isa-sim; git rev-parse origin/master)) || (! -e $RISCV/lib/pkgconfig/riscv-riscv.pc) ]]; then
|
||||||
cd riscv-isa-sim
|
cd riscv-isa-sim
|
||||||
|
@ -263,6 +284,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating Verilator"
|
echo -e "Installing/Updating Verilator"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="Verilator"
|
||||||
cd "$RISCV"
|
cd "$RISCV"
|
||||||
if [[ ((! -e verilator) && ($(git clone https://github.com/verilator/verilator) || true)) || ($(cd verilator; git fetch; git rev-parse HEAD) != $(cd verilator; git rev-parse origin/master)) || (! -e $RISCV/share/pkgconfig/verilator.pc) ]]; then
|
if [[ ((! -e verilator) && ($(git clone https://github.com/verilator/verilator) || true)) || ($(cd verilator; git fetch; git rev-parse HEAD) != $(cd verilator; git rev-parse origin/master)) || (! -e $RISCV/share/pkgconfig/verilator.pc) ]]; then
|
||||||
# unsetenv VERILATOR_ROOT # For csh; ignore error if on bash
|
# unsetenv VERILATOR_ROOT # For csh; ignore error if on bash
|
||||||
|
@ -292,6 +314,7 @@ if [ "$FAMILY" = rhel ]; then
|
||||||
echo -e "Installing/Updating Opam"
|
echo -e "Installing/Updating Opam"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="Opam"
|
||||||
mkdir -p opam
|
mkdir -p opam
|
||||||
cd opam
|
cd opam
|
||||||
wget https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
|
wget https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
|
||||||
|
@ -306,6 +329,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating Sail Compiler"
|
echo -e "Installing/Updating Sail Compiler"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="Sail Compiler"
|
||||||
cd "$RISCV"
|
cd "$RISCV"
|
||||||
opam init -y --disable-sandboxing
|
opam init -y --disable-sandboxing
|
||||||
opam update -y
|
opam update -y
|
||||||
|
@ -319,6 +343,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating RISC-V Sail Model"
|
echo -e "Installing/Updating RISC-V Sail Model"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="RISC-V Sail Model"
|
||||||
if [[ ((! -e sail-riscv) && ($(git clone https://github.com/riscv/sail-riscv.git) || true)) || ($(cd sail-riscv; git fetch; git rev-parse HEAD) != $(cd sail-riscv; git rev-parse origin/master)) || (! -e $RISCV/bin/riscv_sim_RV32) ]]; then
|
if [[ ((! -e sail-riscv) && ($(git clone https://github.com/riscv/sail-riscv.git) || true)) || ($(cd sail-riscv; git fetch; git rev-parse HEAD) != $(cd sail-riscv; git rev-parse origin/master)) || (! -e $RISCV/bin/riscv_sim_RV32) ]]; then
|
||||||
eval $(opam config env)
|
eval $(opam config env)
|
||||||
cd sail-riscv
|
cd sail-riscv
|
||||||
|
@ -340,6 +365,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating RISCOF"
|
echo -e "Installing/Updating RISCOF"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="RISCOF"
|
||||||
pip3 install git+https://github.com/riscv/riscof.git
|
pip3 install git+https://github.com/riscv/riscof.git
|
||||||
|
|
||||||
# Download OSU Skywater 130 cell library
|
# Download OSU Skywater 130 cell library
|
||||||
|
@ -348,6 +374,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Installing/Updating OSU Skywater 130 cell library"
|
echo -e "Installing/Updating OSU Skywater 130 cell library"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="OSU Skywater 130 cell library"
|
||||||
mkdir -p "$RISCV"/cad/lib
|
mkdir -p "$RISCV"/cad/lib
|
||||||
cd "$RISCV"/cad/lib
|
cd "$RISCV"/cad/lib
|
||||||
if [[ ((! -e sky130_osu_sc_t12) && ($(git clone https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc_t12) || true)) || ($(cd sky130_osu_sc_t12; git fetch; git rev-parse HEAD) != $(cd sky130_osu_sc_t12; git rev-parse origin/main)) ]]; then
|
if [[ ((! -e sky130_osu_sc_t12) && ($(git clone https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc_t12) || true)) || ($(cd sky130_osu_sc_t12; git fetch; git rev-parse HEAD) != $(cd sky130_osu_sc_t12; git rev-parse origin/main)) ]]; then
|
||||||
|
@ -364,6 +391,7 @@ echo -e "***********************************************************************
|
||||||
echo -e "Downloading Site Setup Script"
|
echo -e "Downloading Site Setup Script"
|
||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n${ENDC}"
|
echo -e "*************************************************************************\n${ENDC}"
|
||||||
|
STATUS="site-setup scripts"
|
||||||
cd "$RISCV"
|
cd "$RISCV"
|
||||||
if [ ! -e "${RISCV}"/site-setup.sh ]; then
|
if [ ! -e "${RISCV}"/site-setup.sh ]; then
|
||||||
wget https://raw.githubusercontent.com/openhwgroup/cvw/main/site-setup.sh
|
wget https://raw.githubusercontent.com/openhwgroup/cvw/main/site-setup.sh
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue