KERNEL_FILE := hos.gz MKISOFS := genisoimage ISO := hos.iso QEMU := qemu-system-x86_64 export PLATFORM := $(shell if [[ `uname` =~ "CYGWIN" ]]; then \ echo cygwin; \ else \ echo unix; \ fi) ifeq ($(PLATFORM), cygwin) export LD := i586-elf-ld export CC := i586-elf-gcc export CXX := i586-elf-g++ else export LD := ld export CC := gcc export CXX := g++ endif export NASM := nasm # default target: build the kernel and ISO image all: kernel iso # build the kernel .PHONY: kernel kernel: make -C $@ # build the ISO image .PHONY: iso iso: $(ISO) kernel $(ISO): kernel cp kernel/$(KERNEL_FILE) iso/boot $(MKISOFS) -R -b boot/grub/stage2_eltorito -no-emul-boot \ -boot-load-size 4 -boot-info-table -o $(ISO) iso .PHONY: qemu qemu: iso $(QEMU) -cdrom $(ISO) -boot d -m 384 -localtime .PHONY: clean clean: make -C kernel clean -rm -f $(ISO) iso/boot/$(KERNEL_FILE)