Add a git version check to the init scripts and make them work outside of the repo root. (#459)
* Fixes #453 - Update scripts/init-submodules-no-riscv-tools.sh to also work if you're in scripts/ - Provide a git version check to ensure the init scripts will work (>= 1.7.8) - Update the documentation to be more explicit that the init script is also for updating. * Update scripts/init-submodules-no-riscv-tools-nolog.sh Co-Authored-By: Albert Ou <aou@eecs.berkeley.edu>
This commit is contained in:
@@ -34,6 +34,9 @@ After cloning this repo, you will need to initialize all of the submodules.
|
|||||||
cd chipyard
|
cd chipyard
|
||||||
./scripts/init-submodules-no-riscv-tools.sh
|
./scripts/init-submodules-no-riscv-tools.sh
|
||||||
|
|
||||||
|
When updating Chipyard to a new version, you will also want to rerun this script to update the submodules.
|
||||||
|
Using git directly will try to initialize all submodules; this is not recommended unless you expressly desire this behavior.
|
||||||
|
|
||||||
.. _build-toolchains:
|
.. _build-toolchains:
|
||||||
|
|
||||||
Building a Toolchain
|
Building a Toolchain
|
||||||
|
|||||||
@@ -4,6 +4,19 @@
|
|||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
# Check that git version is at least 1.7.8
|
||||||
|
MYGIT=$(git --version)
|
||||||
|
MYGIT=${MYGIT#'git version '} # Strip prefix
|
||||||
|
case ${MYGIT} in
|
||||||
|
[1-9]*) ;;
|
||||||
|
*) echo 'warning: unknown git version' ;;
|
||||||
|
esac
|
||||||
|
MINGIT="1.7.8"
|
||||||
|
if [ "$MINGIT" != "$(echo -e "$MINGIT\n$MYGIT" | sort -V | head -n1)" ]; then
|
||||||
|
echo "This script requires git version $MINGIT or greater. Exiting."
|
||||||
|
false
|
||||||
|
fi
|
||||||
|
|
||||||
RDIR=$(git rev-parse --show-toplevel)
|
RDIR=$(git rev-parse --show-toplevel)
|
||||||
|
|
||||||
# Ignore toolchain submodules
|
# Ignore toolchain submodules
|
||||||
@@ -61,4 +74,3 @@ if [ ! -f $RDIR/software/firemarshal/marshal-config.yaml ]; then
|
|||||||
echo "firesim-dir: '../../sims/firesim/'" > $RDIR/software/firemarshal/marshal-config.yaml
|
echo "firesim-dir: '../../sims/firesim/'" > $RDIR/software/firemarshal/marshal-config.yaml
|
||||||
fi
|
fi
|
||||||
echo "PATH=\$( realpath \$(dirname "\${BASH_SOURCE[0]:-\${\(%\):-%x}}") )/software/firemarshal:\$PATH" >> $RDIR/env.sh
|
echo "PATH=\$( realpath \$(dirname "\${BASH_SOURCE[0]:-\${\(%\):-%x}}") )/software/firemarshal:\$PATH" >> $RDIR/env.sh
|
||||||
|
|
||||||
|
|||||||
@@ -5,4 +5,7 @@
|
|||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
RDIR=$(git rev-parse --show-toplevel)
|
||||||
|
cd "$RDIR"
|
||||||
|
|
||||||
./scripts/init-submodules-no-riscv-tools-nolog.sh "$@" 2>&1 | tee init-submodules-no-riscv-tools.log
|
./scripts/init-submodules-no-riscv-tools-nolog.sh "$@" 2>&1 | tee init-submodules-no-riscv-tools.log
|
||||||
|
|||||||
Reference in New Issue
Block a user