# Makefile for Ehenkes tutorials

SOURCES=	kernel.o		\
		ckernel.o			\
		isr.o		        \
		video.o				\
		flush.o				\
		gdt.o				\
		idt.o				\
		isrs.o				\
		irq.o				\
		util.o				\
		math.o				\
		timer.o				\
		keyboard.o			\
		process.o			\
		ordered_array.o		\
		paging.o			\
		kheap.o				\
		descriptor_tables.o	\
		task.o				\
		fs.o				\
		initrd.o			\
		syscall.o


CFLAGS=	-Wall		\
		-O          
		
LDFLAGS= -T kernel.ld -Map kernel.map
ASFLAGS= -faout

CC=gcc
NASM=nasmw
AS=as


all:
	nasmw      -f bin file_data.asm -o file_data.dat
	nasmw -O32 -f bin boot.asm -o boot.bin            
	nasmw -O32 -f aout kernel.asm -o kernel.o
	nasmw -O32 -f aout isr.asm -o isr.o
	nasmw -O32 -f aout process.asm -o process.o
	nasmw -O32 -f aout flush.asm -o flush.o
	make -s link
	make -s image	

link:
	ld $(LDFLAGS) -o ckernel.bin $(SOURCES)
	

image:
	cmd /c copy /b boot.bin + ckernel.bin MyOS    
	cmd /c rename MyOS MyOS.bin
	del MyOS
	
	partcopy MyOS.bin 0 7000 -f0	

.s.o:
	$(NASM) $(ASFLAGS) $<

.c.o:
	$(CC) -c $(CFLAGS) -o $@ $<

.a.o:
	$(AS) $(ASFLAGS) -o $<
	