all:
	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
	
	gcc  -Wall -O  -c ckernel.c -o ckernel.o -O1   
	gcc  -Wall -O  -c video.c -o video.o -O1
	gcc  -Wall -O  -c math.c -o math.o -O1
	gcc  -Wall -O  -c util.c -o util.o -O1
	gcc  -Wall -O  -c gdt.c -o gdt.o
	gcc  -Wall -O  -c idt.c -o idt.o
	gcc  -Wall -O  -c isrs.c -o isrs.o	
	gcc  -Wall -O  -c irq.c -o irq.o
	gcc  -Wall -O  -c timer.c -o timer.o 	
	gcc  -Wall -O  -c keyboard.c -o keyboard.o
	gcc  -Wall -O  -c ordered_array.c -o ordered_array.o
	gcc  -Wall -O  -c paging.c -o paging.o
	gcc  -Wall -O  -c kheap.c -o kheap.o
	gcc  -Wall -O  -c fs.c -o fs.o
	gcc  -Wall -O  -c initrd.c -o initrd.o
	gcc  -Wall -O  -c descriptor_tables.c -o descriptor_tables.o
	gcc  -Wall -O  -c task.c -o task.o
	
	ld -T kernel.ld kernel.o isr.o ckernel.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 fs.o initrd.o descriptor_tables.o task.o  -o ckernel.bin --verbose
	
	cmd /c copy /b boot.bin + ckernel.bin MyOS    
	
	del *.o
	del *.bin
	cmd /c rename MyOS MyOS.bin
	del MyOS
	
	partcopy MyOS.bin 0 5000 -f0
	
	CFLAGS=-nostdlib -nostdinc -fno-builtin -fno-stack-protector -fstrength-reduce -fomit-frame-pointer -finline-functions 
	
	
