all: compile make_img clean run
deploy: compile floppy clean run		

compile:
	
	nasm 1stage/1stage.asm -o boot.bin -i 1stage/	
	nasm 2stage/start.asm -o start.bin -f elf
	nasm 3stage/test.asm -o next.bin
	gcc -nostdlib -nostdinc -fno-stack-protector -fno-builtin -c  2stage/*.c -m32 
	ld -T link.ld -o kernel.bin start.bin *.o -m elf_i386
	@wc -c kernel.bin
	cat logo.bmp >> kernel.bin	
	@wc -c kernel.bin
	
clean:
	rm boot.bin *.o start.bin next.bin

make_img:
	dd if=/dev/zero of=floppy.img bs=512 count=2880
	sudo losetup /dev/loop0 floppy.img
	sudo mkdosfs /dev/loop0
	sudo dd if=boot.bin of=/dev/loop0 bs=512 count=1
	sudo mount /dev/loop0 /mnt -t msdos
	sudo cp kernel.bin /mnt/
	sudo cp readme.txt /mnt/
	sudo cp next.bin /mnt/
	sudo umount /dev/loop0
	sudo losetup -d /dev/loop0


run:
	#bochs -q
	qemu -L /usr/share/qemu -fda floppy.img -boot a -std-vga -serial stdio -m 64
	reset

floppy:
	sudo mkdosfs /dev/sdb1
	sudo dd if=boot.bin of=/dev/sdb1 bs=512 count=1
	sudo mount /dev/sdb1 /mnt
	sudo cp kernel.bin /mnt/
	sudo umount /dev/sdb1

fixerr:

	sudo losetup -d /dev/loop0
	sudo umount /dev/loop0
