diff --git a/docs/Chipyard-Basics/Initial-Repo-Setup.rst b/docs/Chipyard-Basics/Initial-Repo-Setup.rst index 931da013..c4732e8a 100644 --- a/docs/Chipyard-Basics/Initial-Repo-Setup.rst +++ b/docs/Chipyard-Basics/Initial-Repo-Setup.rst @@ -34,6 +34,9 @@ After cloning this repo, you will need to initialize all of the submodules. cd chipyard ./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: Building a Toolchain diff --git a/scripts/init-submodules-no-riscv-tools-nolog.sh b/scripts/init-submodules-no-riscv-tools-nolog.sh index ed4f5b6a..888feb0e 100755 --- a/scripts/init-submodules-no-riscv-tools-nolog.sh +++ b/scripts/init-submodules-no-riscv-tools-nolog.sh @@ -4,6 +4,19 @@ set -e 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) # 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 fi echo "PATH=\$( realpath \$(dirname "\${BASH_SOURCE[0]:-\${\(%\):-%x}}") )/software/firemarshal:\$PATH" >> $RDIR/env.sh - diff --git a/scripts/init-submodules-no-riscv-tools.sh b/scripts/init-submodules-no-riscv-tools.sh index 550d8846..d788f804 100755 --- a/scripts/init-submodules-no-riscv-tools.sh +++ b/scripts/init-submodules-no-riscv-tools.sh @@ -5,4 +5,7 @@ set -e 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