all: build/kernel-i386.elf
clean:
	-@rm build/*.o build/*.elf 2> /dev/null || true

build/start32.o: build/ src/start32.asm
	nasm -felf32 src/start32.asm -o build/start32.o
build/kernel-i386.elf: build/start32.o
	tcc -m32 -nostdlib -Wl,-Ttext,0x100000 -o build/kernel-i386.elf src/*.c build/start32.o
image: build/kernel-i386.elf mount
	cp build/kernel-i386.elf mnt/
	sync

qemu-multiboot: build/kernel-i386.elf
	qemu-system-i386 -kernel build/kernel-i386.elf -serial stdio
qemu-image: image
	qemu-system-i386 koalemos.img -serial stdio

mount: koalemos.img mnt/
	@if ! mountpoint -q "mnt/"; then \
		sudo mount -o loop,offset=1048576,umask=177,dmask=022,uid=$(shell id -u),gid=$(shell id -g) koalemos.img mnt/; \
	fi;
umount:
	@sudo umount mnt
mnt/:
	@mkdir mnt
build/:
	@mkdir build