blob: 6ed12acdc4e8d271d34fda863e34d90a54c83463 [file] [log] [blame]
#! /bin/bash
# Script for running Shodan cargo outside the build; useful
# for doing things like kcargo tree or kcargo clippy.
if [[ -z "${ROOTDIR}" ]]; then
echo "Source build/setup.sh first"
exit 1
fi
# HACK: sel4-config needs a path to the kernel build which could be
# in debug or release
export SEL4_OUT_DIR="$ROOTDIR/out/kata/riscv32-unknown-elf/debug/kernel/"
if [[ ! -d "${SEL4_OUT_DIR}/gen_config" ]]; then
echo "No kernel build found at ${SEL4_OUT_DIR}; build a kernel first"
exit 2
fi
CARGO="${CARGO_HOME}/bin/cargo +${KATA_RUST_VERSION}"
CARGO_TARGET="--target riscv32imac-unknown-none-elf"
CARGO_OPTS='-Z unstable-options -Z avoid-dev-deps'
export RUSTFLAGS='-Z tls-model=local-exec'
cmd=${1:-build}
case "$1" in
fmt)
${CARGO} $*;;
""|-*)
# TODO(sleffler): maybe set --target-dir to avoid polluting the src tree
${CARGO} build ${CARGO_OPTS} ${CARGO_TARGET};;
*)
${CARGO} $* ${CARGO_OPTS} ${CARGO_TARGET};;
esac