diff --git a/.circleci/config.yml b/.circleci/config.yml index 95de63a4..bb5b3a50 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,14 +31,14 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - run: name: Building riscv-tools toolchain command: | .circleci/build-toolchains.sh riscv-tools no_output_timeout: 120m - save_cache: - key: riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + key: riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} paths: - "/home/riscvuser/riscv-tools-install" install-esp-toolchain: @@ -55,14 +55,14 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }} + - esp-tools-installed-v3-{{ checksum "../esp-tools.hash" }} - run: name: Building esp-tools toolchain command: | .circleci/build-toolchains.sh esp-tools no_output_timeout: 120m - save_cache: - key: esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }} + key: esp-tools-installed-v3-{{ checksum "../esp-tools.hash" }} paths: - "/home/riscvuser/esp-tools-install" install-verilator: @@ -105,7 +105,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - run: name: Build extra tests command: .circleci/build-extra-tests.sh @@ -131,7 +131,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -160,7 +160,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -189,7 +189,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -218,7 +218,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -247,7 +247,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -276,7 +276,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }} + - esp-tools-installed-v3-{{ checksum "../esp-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -305,7 +305,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -334,7 +334,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -363,7 +363,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -389,7 +389,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} @@ -410,7 +410,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - example-{{ .Branch }}-{{ .Revision }} @@ -434,7 +434,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - boomrocketexample-{{ .Branch }}-{{ .Revision }} @@ -458,7 +458,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - boom-{{ .Branch }}-{{ .Revision }} @@ -482,7 +482,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - rocketchip-{{ .Branch }}-{{ .Revision }} @@ -506,7 +506,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }} + - esp-tools-installed-v3-{{ checksum "../esp-tools.hash" }} - restore_cache: keys: - hwacha-{{ .Branch }}-{{ .Revision }} @@ -530,7 +530,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - tracegen-{{ .Branch }}-{{ .Revision }} @@ -554,7 +554,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - firesim-{{ .Branch }}-{{ .Revision }} @@ -581,7 +581,7 @@ jobs: .circleci/create-hash.sh - restore_cache: keys: - - riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }} + - riscv-tools-installed-v3-{{ checksum "../riscv-tools.hash" }} - restore_cache: keys: - fireboom-{{ .Branch }}-{{ .Revision }} diff --git a/scripts/build-toolchains.sh b/scripts/build-toolchains.sh index 9d7b3deb..e858e452 100755 --- a/scripts/build-toolchains.sh +++ b/scripts/build-toolchains.sh @@ -10,10 +10,17 @@ RDIR=$(pwd) CHIPYARD_DIR="${CHIPYARD_DIR:-$(git rev-parse --show-toplevel)}" usage() { - echo "usage: ${0} [riscv-tools | esp-tools | ec2fast]" + echo "usage: ${0} [OPTIONS] [riscv-tools | esp-tools | ec2fast]" + echo "" + echo "Installation Types" echo " riscv-tools: if set, builds the riscv toolchain (this is also the default)" echo " esp-tools: if set, builds esp-tools toolchain used for the hwacha vector accelerator" echo " ec2fast: if set, pulls in a pre-compiled RISC-V toolchain for an EC2 manager instance" + echo "" + echo "Options" + echo " --prefix PREFIX : Install destination. If unset, defaults to $(pwd)/riscv-tools-install" + echo " or $(pwd)/esp-tools-install" + echo " --help -h : Display this message" exit "$1" } @@ -27,38 +34,34 @@ die() { TOOLCHAIN="riscv-tools" EC2FASTINSTALL="false" +RISCV="" -while getopts 'hH-:' opt ; do - case $opt in - h|H) - usage 3 ;; - -) - case $OPTARG in - help) +# getopts does not support long options, and is inflexible +while [ "$1" != "" ]; +do + case $1 in + -h | --help | help ) usage 3 ;; - ec2fast) # Preserve compatibility - EC2FASTINSTALL=true ;; - *) - error "invalid option: --${OPTARG}" + -p | --prefix ) + shift + RISCV=$(realpath $1) ;; + riscv-tools | esp-tools) + TOOLCHAIN=$1 ;; + ec2fast ) + EC2FASTINSTALL="true" ;; + * ) + error "invalid option $1" usage 1 ;; - esac ;; - *) - error "invalid option: -${opt}" - usage 1 ;; esac + shift done -shift $((OPTIND - 1)) - -if [ "$1" = ec2fast ] ; then - EC2FASTINSTALL=true -elif [ -n "$1" ] ; then - TOOLCHAIN="$1" +if [ -z "$RISCV" ] ; then + INSTALL_DIR="$TOOLCHAIN-install" + RISCV="$(pwd)/$INSTALL_DIR" fi -INSTALL_DIR="$TOOLCHAIN-install" - -RISCV="$(pwd)/$INSTALL_DIR" +echo "Installing toolchain to $RISCV" # install risc-v tools export RISCV="$RISCV"