#
#
#
#  Resea (x86_64/Makefile)
#  Mafice <mafice@mflabo.net>
#
#

SRC_TOP = ../..
include $(SRC_TOP)/dec.mk

DELETE_TARGET = $(wildcard *.bin) $(wildcard *.obj) $(wildcard *.o)

ASM_BIN_FILES  := ipl.asm boot1.asm boot2.asm boot3.asm
ASM_OBJ_FILES  := assembly.asm intHandler.asm
C_FILES        := $(wildcard *.c)

IPL_BIN    := ipl.bin
BOOT1_BIN  := boot1.bin
BOOT2_BIN  := boot2.bin
BOOT3_BIN  := boot3.bin
BOOT4_BIN  := boot4.bin


all: $(KERNEL_BIN)

$(BOOT4_BIN): $(C_FILES:.c=.o) $(ASM_OBJ_FILES:.asm=.obj)
	$(LINK)    $(LINKFLAGS) -o $(BOOT4_BIN) -Map /tmp/resea.map -T boot4.ld $(C_FILES:.c=.o) $(ASM_OBJ_FILES:.asm=.obj)
	$(ELF2BIN) $(BOOT4_BIN)

$(KERNEL_BIN): $(ASM_BIN_FILES:.asm=.bin) $(BOOT4_BIN)
	cat $(IPL_BIN) $(BOOT1_BIN) $(BOOT2_BIN) $(BOOT3_BIN) $(BOOT4_BIN) > $(KERNEL_BIN)
	$(ADDPADDING) $(KERNEL_BIN) $(KERNEL_BIN_FILESIZE)

clean:
	$(DELETE) $(DELETE_TARGET)

