all: start32.bin clean: -@rm *.bin 2> /dev/null || true start32.bin: src/* fasm src/start32.asm start32.bin image: start32.bin mount grub-cfg roska.img mnt/roska/ cp start32.bin mnt/roska/ sync qemu-run: image roska.img qemu-system-i386 roska.img -serial stdio bochs-run: image roska.img touch serial.out bochs -qf bochsrc.txt mount: roska.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) roska.img mnt/; \ fi; umount: @if mountpoint -q "mnt/"; then \ sudo umount mnt/; \ fi; mnt/: @mkdir -p mnt mnt/roska/: mount roska.img @mkdir -p mnt/roska build/: @mkdir build roska.img: mnt/ dd if=/dev/zero of=roska.img bs=1k count=16128 echo 'type=83' | sudo sfdisk roska.img sudo losetup /dev/loop0 roska.img sudo losetup /dev/loop1 roska.img -o1048576 sudo mkdosfs -F32 -f 2 /dev/loop1 sudo mount /dev/loop1 mnt/ sudo grub-install --target=i386-pc --root-directory=mnt --boot-directory=mnt/boot --no-floppy --modules="normal part_msdos multiboot" /dev/loop0 sudo umount mnt/ sudo losetup -d /dev/loop1 sudo losetup -d /dev/loop0 grub-cfg: grub.cfg mount cp grub.cfg mnt/boot/grub/grub.cfg lo-unsetup: umount sudo losetup -d /dev/loop1 sudo losetup -d /dev/loop0