flags	:=	-f elf
objs	:=	phase2.o library/library.a

NASMENV="-i include"
export NASMENV

.PHONY: clean run

all: kernel/kernel.img phase1.img

phase1.img: phase1.o phase2.img library/library.a
	ld --script=phase1.ld $< -o $@ library/library.a
	chmod -x $@
	truncate -s "%512" $@

phase1.o: phase1.asm
	nasm $(flags) $<

phase2.img: $(objs)
	ld --script=phase2.ld $^ -o $@
	chmod -x $@
	truncate -s "%512" $@

phase2.o: phase2.asm
	nasm $(flags) $<

kernel/kernel.img:
	$(MAKE) -C kernel

library/library.a:
	$(MAKE) -C library

clean:
	rm -f *.o *.img
	$(MAKE) -C library clean
	$(MAKE) -C kernel clean

run: clean kernel/kernel.img phase1.img
	qemu-system-i386 -hda phase1.img \
		-hdb phase2.img -hdc kernel/kernel.img \
		-m 16M -debugcon mon:stdio -display none

