35 lines
677 B
Bash
Executable File
35 lines
677 B
Bash
Executable File
#!/bin/sh
|
|
|
|
if [ -z "${MACH}" ]; then
|
|
MACH=rpi3b
|
|
fi
|
|
|
|
if [ -z "${PROFILE}" ]; then
|
|
PROFILE=debug
|
|
fi
|
|
|
|
LLVM_DIR=$(llvm-config --bindir)
|
|
ARCH=aarch64-unknown-none-${MACH}
|
|
CARGO_FEATURES="mach_$MACH"
|
|
CARGO_ARGS="--target ../etc/aarch64-unknown-none-$MACH.json \
|
|
--features $CARGO_FEATURES"
|
|
|
|
if [ "$PROFILE" = "release" ]; then
|
|
CARGO_ARGS="$CARGO_ARGS --release"
|
|
fi
|
|
|
|
set -e
|
|
|
|
cd kernel
|
|
case $1 in
|
|
check)
|
|
cargo check $CARGO_ARGS
|
|
;;
|
|
build|"")
|
|
cargo build $CARGO_ARGS
|
|
;;
|
|
esac
|
|
cd ..
|
|
${LLVM_DIR}/llvm-objcopy -O binary target/${ARCH}/${PROFILE}/kernel \
|
|
target/${ARCH}/${PROFILE}/kernel.bin
|