#!/usr/bin/env bash # exit script if any command fails set -e set -o pipefail RDIR=$(git rev-parse --show-toplevel) _usage() { echo "usage: ${0} [--no-firesim]" >&2 exit 1 } NO_FIRESIM=false while getopts 'h-:' opt ; do case ${opt} in -) case ${OPTARG} in no-firesim) NO_FIRESIM=true ;; *) echo "invalid option: --${OPTARG}" >&2 ; _usage ;; esac ;; h) _usage ;; *) echo "invalid option: -${opt}" >&2 ; _usage ;; esac done shift $((OPTIND - 1)) # Ignore toolchain submodules cd "$RDIR" for name in toolchains/*-tools/*/ ; do git config submodule."${name%/}".update none done git config submodule.toolchains/libgloss.update none git config submodule.toolchains/qemu.update none # Don't automatically initialize generators with big submodules (e.g. linux source) git config submodule.generators/sha3.update none # Disable updates to the FireSim submodule until explicitly requested git config submodule.sims/firesim.update none # Disable updates to the hammer tool plugins repos git config submodule.vlsi/hammer-cadence-plugins.update none git config submodule.vlsi/hammer-synopsys-plugins.update none git config submodule.vlsi/hammer-mentor-plugins.update none git submodule update --init --recursive #--jobs 8 # Un-ignore toolchain submodules for name in toolchains/*-tools/*/ ; do git config --unset submodule."${name%/}".update done git config --unset submodule.toolchains/libgloss.update git config --unset submodule.toolchains/qemu.update git config --unset submodule.vlsi/hammer-cadence-plugins.update git config --unset submodule.vlsi/hammer-synopsys-plugins.update git config --unset submodule.vlsi/hammer-mentor-plugins.update git config --unset submodule.generators/sha3.update # Shallow clone by default (recursive clone would get linux) git submodule update --init generators/sha3 if [ $NO_FIRESIM = false ]; then echo "initializing firesim" # Renable firesim and init only the required submodules to provide # all required scala deps, without doing a full build-setup git config --unset submodule.sims/firesim.update git submodule update --init sims/firesim git -C sims/firesim submodule update --init sim/midas git -C sims/firesim submodule update --init --recursive sw/firesim-software git config submodule.sims/firesim.update none fi