45 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
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
 | 
						|
	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
 |