init(kernel, kernel.elf)

preset(freestanding)
preset(optimize)
preset(debug)
preset(32)
preset(warn)
preset(nasm)

archetype(c)
archetype(asm)

depends(initrd, $(ROOT)/boot/initrd, initrd.img)
depends(ata_pio, dri/ata_pio, ata_pio.a)
depends(pci, dri/pci, pci.a)
# AHCI not yet implemented
# depends(ahci, dri/ahci, ahci.a)

TEST ?=
test_defines = $(TEST:%=-DTEST_%)

CFLAGS += -I $(ROOT)/include/kernel $(test_defines)

LDFLAGS += -Tlink.ld -melf_i386
ASMFLAGS += -felf -Fdwarf
QEMUFLAGS = -d cpu_reset

OBJECTS = 	boot.o \
			main.o \
			descriptor_tables.o \
			io.o \
			vga.o \
			gdt_flush.o \
			idt.o \
			log.o \
			irq.o \
			pic.o \
			timer.o \
			paging.o \
			switch_table.o \
			scan_codes.o \
			kheap.o \
			alloc.o \
			vfs.o \
			multiboot.o \
			vfs_initrd.o \
			syscall.o \
			task.o \
			task_api.o \
			faults.o \
			lib(ata_pio) \
			lib(pci)

type(custom_link)

debug-wait: kernel.elf
	qemu-system-i386 -s -S -kernel kernel.elf

debug: kernel.elf
	qemu-system-i386 -s -S -kernel kernel.elf &
	@echo run "target remote localhost:1234" to connect to qemu
	gdb $<
	@pkill qemu-system-i38

qemu: kernel.elf
	qemu-system-i386 $(QEMUFLAGS) -monitor stdio -kernel kernel.elf -no-reboot

qemu-iso: install
	qemu-system-i386 $(QEMUFLAGS) -monitor stdio $(ROOT)/bin/bluejay.iso

scan_codes.c: gen_scan_codes.py scan_codes.tsv 
	python3 $< > $@

install: kernel.elf lib(initrd)
	cp kernel.elf $(ROOT)/boot/
	rm -f $(ROOT)/bin/bluejay.iso
	grub-mkrescue -o $(ROOT)/bin/bluejay.iso $(ROOT)

finish
