cd ~/XirexOS && cat > Makefile <<'EOF'
BUILD=build
ISO=$(BUILD)/xirex-os.iso
KERNEL=$(BUILD)/kernel.bin
all: $(ISO)
$(BUILD):
mkdir -p $(BUILD)
$(KERNEL): src/boot.asm src/kernel.c src/linker.ld | $(BUILD)
nasm -f elf64 src/boot.asm -o $(BUILD)/boot.o
gcc -m64 -ffreestanding -fno-stack-protector -fno-pie -mno-red-zone -nostdinc -c src/kernel.c -o $(BUILD)/kernel.o
ld -nostdlib -z max-page-size=0x1000 -T src/linker.ld $(BUILD)/boot.o $(BUILD)/kernel.o -o $(KERNEL)
$(ISO): $(KERNEL) src/grub.cfg
mkdir -p $(BUILD)/isodir/boot/grub
cp $(KERNEL) $(BUILD)/isodir/boot/kernel.bin
cp src/grub.cfg $(BUILD)/isodir/boot/grub/grub.cfg
grub-mkrescue -o $(ISO) $(BUILD)/isodir
run: $(ISO)
qemu-system-x86_64 -cdrom $(ISO)
clean:
rm -rf $(BUILD)
EOF
make