mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Check if repo cloned but tool not installed (if there was an error and the script is being rerun), and install if so
This commit is contained in:
parent
bcc01b78d6
commit
b646dca8f6
@ -79,7 +79,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
export PATH=$PATH:$RISCV/bin:/usr/bin
|
export PATH=$PATH:$RISCV/bin:/usr/bin
|
||||||
export PKG_CONFIG_PATH=$RISCV/lib64/pkgconfig:$RISCV/lib/pkgconfig:$PKG_CONFIG_PATH
|
export PKG_CONFIG_PATH=$RISCV/lib64/pkgconfig:$RISCV/lib/pkgconfig:$RISCV/share/pkgconfig:$PKG_CONFIG_PATH
|
||||||
mkdir -p $RISCV
|
mkdir -p $RISCV
|
||||||
|
|
||||||
echo "Detected information:"
|
echo "Detected information:"
|
||||||
@ -193,7 +193,7 @@ echo -e "Installing RISC-V GNU Toolchain"
|
|||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n"
|
echo -e "*************************************************************************\n"
|
||||||
cd $RISCV
|
cd $RISCV
|
||||||
if [[ ((! -e riscv-gnu-toolchain) && ($(git clone https://github.com/riscv/riscv-gnu-toolchain) || 1)) || ($(cd riscv-gnu-toolchain; git fetch; git rev-parse HEAD) != $(cd riscv-gnu-toolchain; git rev-parse master)) ]]; then
|
if [[ ((! -e riscv-gnu-toolchain) && ($(git clone https://github.com/riscv/riscv-gnu-toolchain) || 1)) || ($(cd riscv-gnu-toolchain; git fetch; git rev-parse HEAD) != $(cd riscv-gnu-toolchain; git rev-parse master)) || (! -e $RISCV/riscv-gnu-toolchain/stamps/build-gcc-newlib-stage2) ]]; then
|
||||||
cd riscv-gnu-toolchain
|
cd riscv-gnu-toolchain
|
||||||
git checkout master
|
git checkout master
|
||||||
git pull
|
git pull
|
||||||
@ -215,10 +215,9 @@ echo -e "***********************************************************************
|
|||||||
echo -e "*************************************************************************\n"
|
echo -e "*************************************************************************\n"
|
||||||
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) || 1)) || ($(cd elf2hex; git fetch; git rev-parse HEAD) != $(cd elf2hex; git rev-parse master)) ]]; then
|
if [[ ((! -e elf2hex) && ($(git clone https://github.com/sifive/elf2hex.git) || 1)) || ($(cd elf2hex; git fetch; git rev-parse HEAD) != $(cd elf2hex; git rev-parse master)) || (! -e $RISCV/bin/riscv64-unknown-elf-elf2bin) ]]; then
|
||||||
cd elf2hex
|
cd elf2hex
|
||||||
git checkout master
|
git reset --hard && git clean -f && git checkout master && git pull
|
||||||
git pull
|
|
||||||
autoreconf -i
|
autoreconf -i
|
||||||
./configure --target=riscv64-unknown-elf --prefix=$RISCV
|
./configure --target=riscv64-unknown-elf --prefix=$RISCV
|
||||||
make
|
make
|
||||||
@ -233,10 +232,9 @@ echo -e "Installing QEMU"
|
|||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n"
|
echo -e "*************************************************************************\n"
|
||||||
cd $RISCV
|
cd $RISCV
|
||||||
if [[ ((! -e qemu) && ($(git clone --recurse-submodules https://github.com/qemu/qemu) || 1)) || ($(cd qemu; git fetch --recurse-submodules=yes; git rev-parse HEAD) != $(cd qemu; git rev-parse master)) ]]; then
|
if [[ ((! -e qemu) && ($(git clone --recurse-submodules https://github.com/qemu/qemu) || 1)) || ($(cd qemu; git fetch --recurse-submodules=yes; git rev-parse HEAD) != $(cd qemu; git rev-parse master)) || (! -e $RISCV/include/qemu-plugin.h) ]]; then
|
||||||
cd qemu
|
cd qemu
|
||||||
git checkout master
|
git reset --hard && git clean -f && git checkout master && git pull --recurse-submodules
|
||||||
git pull --recurse-submodules
|
|
||||||
./configure --target-list=riscv64-softmmu --prefix=$RISCV
|
./configure --target-list=riscv64-softmmu --prefix=$RISCV
|
||||||
make -j ${NUM_THREADS}
|
make -j ${NUM_THREADS}
|
||||||
make install
|
make install
|
||||||
@ -251,10 +249,9 @@ echo -e "Installing SPIKE"
|
|||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n"
|
echo -e "*************************************************************************\n"
|
||||||
cd $RISCV
|
cd $RISCV
|
||||||
if [[ ((! -e riscv-isa-sim) && ($(git clone https://github.com/riscv-software-src/riscv-isa-sim) || 1)) || ($(cd riscv-isa-sim; git fetch; git rev-parse HEAD) != $(cd riscv-isa-sim; git rev-parse master)) ]]; then
|
if [[ ((! -e riscv-isa-sim) && ($(git clone https://github.com/riscv-software-src/riscv-isa-sim) || 1)) || ($(cd riscv-isa-sim; git fetch; git rev-parse HEAD) != $(cd riscv-isa-sim; git rev-parse master)) || (! -e $RISCV/lib/pkgconfig/riscv-riscv.pc) ]]; then
|
||||||
cd riscv-isa-sim
|
cd riscv-isa-sim
|
||||||
git checkout master
|
git reset --hard && git clean -f && git checkout master && git pull
|
||||||
git pull
|
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
../configure --prefix=$RISCV
|
../configure --prefix=$RISCV
|
||||||
@ -262,7 +259,6 @@ if [[ ((! -e riscv-isa-sim) && ($(git clone https://github.com/riscv-software-sr
|
|||||||
make install
|
make install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Wally needs Verilator 5.021 or later.
|
# Wally needs Verilator 5.021 or later.
|
||||||
# Verilator needs to be built from source to get the latest version
|
# Verilator needs to be built from source to get the latest version
|
||||||
echo -e "\n*************************************************************************"
|
echo -e "\n*************************************************************************"
|
||||||
@ -271,16 +267,11 @@ echo -e "Installing Verilator"
|
|||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n"
|
echo -e "*************************************************************************\n"
|
||||||
cd $RISCV
|
cd $RISCV
|
||||||
if [[ ((! -e verilator) && ($(git clone https://github.com/verilator/verilator) || 1)) || ($(cd verilator; git fetch; git rev-parse HEAD) != $(cd verilator; git rev-parse master)) ]]; then
|
if [[ ((! -e verilator) && ($(git clone https://github.com/verilator/verilator) || 1)) || ($(cd verilator; git fetch; git rev-parse HEAD) != $(cd verilator; git rev-parse 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
|
||||||
unset VERILATOR_ROOT # For bash
|
unset VERILATOR_ROOT # For bash
|
||||||
cd verilator
|
cd verilator
|
||||||
git checkout master
|
git reset --hard && git clean -f && git checkout master && git pull
|
||||||
git pull # Make sure git repository is up-to-date
|
|
||||||
git pull # Make sure git repository is up-to-date
|
|
||||||
git checkout master
|
|
||||||
git pull # Make sure git repository is up-to-date
|
|
||||||
git checkout master
|
|
||||||
autoconf # Create ./configure script
|
autoconf # Create ./configure script
|
||||||
./configure --prefix=$RISCV # Configure and create Makefile
|
./configure --prefix=$RISCV # Configure and create Makefile
|
||||||
make -j ${NUM_THREADS} # Build Verilator itself (if error, try just 'make')
|
make -j ${NUM_THREADS} # Build Verilator itself (if error, try just 'make')
|
||||||
@ -321,10 +312,9 @@ echo -e "Installing riscv-sail Model"
|
|||||||
echo -e "*************************************************************************"
|
echo -e "*************************************************************************"
|
||||||
echo -e "*************************************************************************\n"
|
echo -e "*************************************************************************\n"
|
||||||
eval $(opam config env)
|
eval $(opam config env)
|
||||||
if [[ ((! -e sail-riscv) && ($(git clone https://github.com/riscv/sail-riscv.git) || 1)) || ($(cd sail-riscv; git fetch; git rev-parse HEAD) != $(cd sail-riscv; git rev-parse master)) ]]; then
|
if [[ ((! -e sail-riscv) && ($(git clone https://github.com/riscv/sail-riscv.git) || 1)) || ($(cd sail-riscv; git fetch; git rev-parse HEAD) != $(cd sail-riscv; git rev-parse master)) || (! -e $RISCV/bin/riscv_sim_RV32) ]]; then
|
||||||
cd sail-riscv
|
cd sail-riscv
|
||||||
git checkout master
|
git reset --hard && git clean -f && git checkout master && git pull
|
||||||
git pull
|
|
||||||
export OPAMCLI=2.0 # Sail is not compatible with opam 2.1 as of 4/16/24
|
export OPAMCLI=2.0 # Sail is not compatible with opam 2.1 as of 4/16/24
|
||||||
ARCH=RV64 make -j ${NUM_THREADS} c_emulator/riscv_sim_RV64
|
ARCH=RV64 make -j ${NUM_THREADS} c_emulator/riscv_sim_RV64
|
||||||
ARCH=RV32 make -j ${NUM_THREADS} c_emulator/riscv_sim_RV32
|
ARCH=RV32 make -j ${NUM_THREADS} c_emulator/riscv_sim_RV32
|
||||||
@ -351,6 +341,5 @@ 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) || 1)) || ($(cd sky130_osu_sc_t12; git fetch; git rev-parse HEAD) != $(cd sky130_osu_sc_t12; git rev-parse master)) ]]; then
|
if [[ ((! -e sky130_osu_sc_t12) && ($(git clone https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc_t12) || 1)) || ($(cd sky130_osu_sc_t12; git fetch; git rev-parse HEAD) != $(cd sky130_osu_sc_t12; git rev-parse master)) ]]; then
|
||||||
cd sky130_osu_sc_t12
|
cd sky130_osu_sc_t12
|
||||||
git checkout main
|
git reset --hard && git clean -f && git checkout main && git pull
|
||||||
git pull
|
|
||||||
fi
|
fi
|
Loading…
Reference in New Issue
Block a user