CPPFLAGS = -c -fno-builtin -fno-rtti -fno-exceptions

.PHONY:  clean

OBJS = boot.o  main.o system.o video.o gdt.o idt.o exptions.o\
       keyboard.o timer.o isr.o isrs.o pic.o phmman.o phmem.o\
       page.o kheap.o videod.o vga.o pcspeaker.o mouse.o\
       pvmmanger.o

all: kernel.elf

kernel.elf: $(OBJS) link.ld

	ld -T link.ld $(OBJS) -o kernel.tmp
	objcopy -O binary kernel.tmp a:/kernel.bin
	objdump -M intel -D kernel.tmp > debug.txt
	$(RM) kernel.tmp
	$(RM) $(OBJS)

%.o:%.cpp
	g++ $(CPPFLAGS)  $< -o $@
%.o:%.s
	nasm -f elf $< -o $@
%.o:%.asm
	nasm -f elf $< -o $@
