TARGET = aarch64-vesper-metta UTILS_CONTAINER = andrerichter/raspi3-utils DOCKER_CMD = docker run -it --rm -v $$(pwd):/work -w /work QEMU_CMD = qemu-system-aarch64 # -d in_asm,unimp,int -S QEMU_OPTS = -M raspi3 -d int -serial null -serial stdio QEMU = /usr/local/Cellar/qemu/HEAD-3365de01b5-custom/bin/qemu-system-aarch64 rule cargo_build command = cargo xbuild --target=targets/$TARGET.json --release $FEATURES description = Building kernel rule strip command = cargo objcopy -- --strip-all -O binary $in $out description = Converting kernel ELF to binary rule docker_qemulate command = $DOCKER_CMD $UTILS_CONTAINER $QEMU_CMD $QEMU_OPTS -kernel $in description = Running QEMU in Docker rule qemulate command = $QEMU $QEMU_OPTS -kernel $in description = Running QEMU rule copy_file command = cp -f $in /Volumes/BOOT/ description = Copying binary image to sdcard # todo this doesn't have deps so builds always... build target/${TARGET}/release/vesper | kernel: cargo_build FEATURES = --features "noserial" description = Building device kernel #build target/${TARGET}/release/vesper qemu_kernel: cargo_build # FEATURES = # description = Building QEMU kernel build kernel8.img: strip target/${TARGET}/release/vesper | kernel build qemu_kernel8.img: strip target/${TARGET}/release/vesper | qemu_kernel build qemu: qemulate qemu_kernel8.img build device: copy_file kernel8.img default kernel8.img