mxrox/Makefile
2025-02-02 20:43:39 +03:00

41 lines
873 B
Makefile

.PHONY: clean run run-iso build-dir clean-build
TARGET_DIR = target/x86-unknown-bare_metal/release
build/mxrox.iso: build/kernel.elf build-dir
cp 'grub.cfg' build/iso/boot/grub
cp '$<' build/iso/boot
grub-mkrescue -o '$@' build/iso
build/boot.o: boot.s build-dir
nasm -f elf32 '$<' -o '$@'
build/kernel.elf: linker.ld build/boot.o build/libkernel.a
i686-elf-gcc -nostdlib -o $@ -T $^
build/libkernel.a: build-dir
rm -rf $(TARGET_DIR)
rustup override set nightly
cargo build --release
cp $(TARGET_DIR)/libmxrox.a build/libkernel.a
build-dir:
mkdir -p build
mkdir -p build/iso
mkdir -p build/iso/boot
mkdir -p build/iso/boot/grub
build: build/mxrox.iso
clean-build:
rm -rf build
mkdir build
clean: clean-build
cargo clean
run-kernel: build/kernel.elf
qemu-system-i386 -kernel '$<' -m 512M
run: build/mxrox.iso
qemu-system-i386 -cdrom '$<' -m 512M