.PHONY: clean
CC=gcc
CFLAGS= -m32 -march=i486 -fno-stack-protector -fno-zero-initialized-in-bss

kernldr_obj_core=kernldr_init.o \
kernldr_main.o \
kernldr_print.o \
kernldr_utils.o \
asm_utils.o

kernldr_obj_drivers=drivers/ATA.o

all: NOS-kernldr.bin

NOS-kernldr.bin: kernldr_1 kernldr_2
	dd if=kernldr_1 of=$@ bs=512 count=1
	dd if=kernldr_2 of=$@ bs=512 seek=1
	rm kernldr_1 kernldr_2

kernldr_1: startup.asm
	nasm -f bin -o $@ $^

kernldr_2: $(kernldr_obj_core) $(kernldr_obj_drivers)
	ld -melf_i386 --oformat=binary --Ttext=8000 --entry=kernldr_init $^ -o $@

clean:
	-rm -f NOS-kernldr.bin $(kernldr_obj_core) $(kernldr_obj_drivers)

%.o:%.c
	$(CC) $(CFLAGS) -c $^ -o $@

%.o:%.asm
	nasm -f elf -o $@ $^
