all: kernel-i386.elf clean: -@rm *.o *.elf 2> /dev/null || true start32.o: start32.asm fasm start32.asm kernel.o: kernel.c tcc -m32 -c kernel.c vga.o: vga.c tcc -m32 -c vga.c serial.o: serial.c tcc -m32 -c serial.c xtoa.o: xtoa.c tcc -m32 -c xtoa.c kernel-i386.elf: kernel.o start32.o vga.o serial.o xtoa.o tcc -m32 -nostdlib -Wl,-Ttext,0x100000 start32.o kernel.o vga.o serial.o xtoa.o -o kernel-i386.elf qemu-multiboot: kernel-i386.elf qemu-system-i386 -kernel kernel-i386.elf -serial stdio qemu-image: kernel-i386.elf mount cp kernel-i386.elf mnt/ sync qemu-system-i386 koalemos.img -serial stdio mount: koalemos.img mnt/ @if ! mountpoint -q "mnt/"; then \ sudo mount -o loop,offset=1048576,umask=177,dmask=022,uid=$(shell id -u),gid=$(shell id -g) koalemos.img mnt/; \ fi; umount: @sudo umount mnt mnt/: @mkdir mnt