2021-09-01 17:38:16 +03:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
if [ -z "${MACH}" ]; then
|
|
|
|
MACH=rpi3b
|
|
|
|
fi
|
|
|
|
|
2021-09-03 22:31:41 +03:00
|
|
|
if [ -z "${PROFILE}" ]; then
|
|
|
|
PROFILE=debug
|
|
|
|
fi
|
|
|
|
|
2021-09-03 10:53:20 +03:00
|
|
|
LLVM_DIR=$(llvm-config --bindir)
|
|
|
|
ARCH=aarch64-unknown-none-${MACH}
|
2021-09-13 15:37:15 +03:00
|
|
|
CARGO_FEATURES="mach_$MACH"
|
2021-09-03 11:01:55 +03:00
|
|
|
CARGO_ARGS="--target ../etc/aarch64-unknown-none-$MACH.json \
|
2021-09-13 15:37:15 +03:00
|
|
|
--features $CARGO_FEATURES"
|
2021-09-03 10:53:20 +03:00
|
|
|
|
2021-09-03 22:31:41 +03:00
|
|
|
if [ "$PROFILE" = "release" ]; then
|
|
|
|
CARGO_ARGS="$CARGO_ARGS --release"
|
|
|
|
fi
|
|
|
|
|
2021-09-01 17:38:16 +03:00
|
|
|
set -e
|
2021-09-03 11:01:55 +03:00
|
|
|
|
|
|
|
cd kernel
|
|
|
|
case $1 in
|
|
|
|
check)
|
|
|
|
cargo check $CARGO_ARGS
|
|
|
|
;;
|
|
|
|
build|"")
|
|
|
|
cargo build $CARGO_ARGS
|
|
|
|
;;
|
|
|
|
esac
|
2021-09-01 17:38:16 +03:00
|
|
|
cd ..
|
2021-09-03 22:31:41 +03:00
|
|
|
${LLVM_DIR}/llvm-objcopy -O binary target/${ARCH}/${PROFILE}/kernel \
|
|
|
|
target/${ARCH}/${PROFILE}/kernel.bin
|