| #!/bin/bash | 
 | # Copyright lowRISC contributors. | 
 | # Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
 | # SPDX-License-Identifier: Apache-2.0 | 
 |  | 
 | # This file provides common definitions for build output locations in the | 
 | # OpenTitan repository; scripts that wish to use it should |source| it at their | 
 | # start. | 
 | # | 
 | # OpenTitan has two build directories: | 
 | # - $OBJ_DIR, which contains all outputs and intermediates of the build | 
 | #   process, with an unstable directory structure. | 
 | # - $BIN_DIR, which contains "executable" outputs of the build process, such as | 
 | #   binaries, tests, and bitstreams. It has a stable directory structure. | 
 | # | 
 | # $OBJ_DIR and $BIN_DIR are the subdirectories build-out and build-bin of | 
 | # $BUILD_ROOT, which can be configured to any desired directory. Build artifacts | 
 | # can be cleaned out by running |rm -rf $BUILD_ROOT/build-*|. | 
 | # | 
 | # This file also provides $OT_VERSION, which can be embedded in artifacts as a | 
 | # timestamp. If a git repo is present, it will be computed from that, or else | 
 | # will be an arbitrary string. | 
 |  | 
 | # Since this file is intended to be sourced, we can't use |$0| to get our | 
 | # bearings. However, the bash-specific $BASH_SOURCE works perfectly fine. | 
 | if [[ -n "$BASH_SOURCE" ]]; then | 
 |   readonly REPO_TOP="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" | 
 |   export REPO_TOP | 
 | else | 
 |   echo "Non-bash shells are currently not supported." >&2 | 
 |   exit 1 | 
 | fi | 
 |  | 
 | export OT_GIT_VERSION="$(git describe --always 2>/dev/null)" | 
 | if [[ -n "$OT_GIT_VERSION" ]]; then | 
 |   readonly OT_VERSION="opentitan-$OT_GIT_VERSION" | 
 | else | 
 |   readonly OT_VERSION="opentitan-<unknown>" | 
 | fi | 
 | export OT_VERSION | 
 |  | 
 | export BUILD_ROOT="${BUILD_ROOT:-"$REPO_TOP"}" | 
 | readonly OBJ_DIR="$BUILD_ROOT/build-out" | 
 | export OBJ_DIR | 
 | readonly BIN_DIR="$BUILD_ROOT/build-bin" | 
 | export BIN_DIR |