cowos

custom OS from scratch in C
git clone git://git.daat.foo/cowos.git
Log | Files | Refs | README | LICENSE

Makefile (1105B)


      1 all: iso
      2 
      3 iso: kernel limine
      4 	@echo "Copying kernel to isodir..."
      5 	cp -v ./kernel/bin/cowos ./isodir/boot/
      6 	@echo "Creating ISO image..."
      7 	xorriso -as mkisofs -R -r -J -b boot/limine/limine-bios-cd.bin \
      8 		-no-emul-boot -boot-load-size 4 -boot-info-table -hfsplus \
      9 		-apm-block-size 2048 --efi-boot boot/limine/limine-uefi-cd.bin \
     10 		-efi-boot-part --efi-boot-image --protective-msdos-label \
     11 		isodir -o cowos.iso
     12 	@echo "Installing Limine BIOS..."
     13 	./limine/limine bios-install cowos.iso
     14 
     15 kernel:
     16 	@echo "Buliding kernel..."
     17 	make -C ./kernel/
     18 
     19 limine: kernel
     20 	@echo "Setting up Limine..."
     21 	./scripts/limine-git.sh
     22 	
     23 clean:
     24 	@echo "Cleaning up..."
     25 	rm cowos.iso
     26 	make -C ./kernel/ clean
     27 
     28 run:
     29 	@echo "Running cowos in QEMU..."
     30 	@if [ "$(DEBUG)" = "1" ]; then \
     31 		echo "Debug mode: Starting QEMU with LLDB..."; \
     32 		qemu-system-x86_64 -cdrom cowos.iso -m 512M -serial stdio -s -S & \
     33 		echo "Launching LLDB..."; \
     34 		lldb --arch x86_64 -o "gdb-remote localhost:1234" ./kernel/bin/cowos; \
     35 	else \
     36 		qemu-system-x86_64 -cdrom cowos.iso -m 512M -serial stdio; \
     37 	fi
     38 
     39 .PHONY: all iso kernel limine clean run