summaryrefslogtreecommitdiff
path: root/Makefile
blob: b6abe965f351e63a942513bc3a946c5083bfa17c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
all: outdir out/nrvn.bin

out/nrvn.bin: out/boot.o out/nrvn.o out/long.o out/vga.o out/idt.o out/mem.o out/acpi.o out/ps2.o out/pic.o out/memory.o
	x86_64-pc-elf-gcc -T linker.ld -o $@ -ffreestanding -nostdlib -lgcc $^ -g

out/boot.o: asm/boot.asm
	nasm -felf64 $^ -o $@

out/long.o: asm/long.asm
	nasm -felf64 $^ -o $@

out/%.o: src/%.c
	x86_64-pc-elf-gcc -c $^ -o $@ -I include -ffreestanding -Wall -Wextra -g

iso: all
	cp out/nrvn.bin grub/boot/nrvn.bin
	grub-mkrescue -o out/nrvn.iso grub

run: iso
	qemu-system-x86_64 -cdrom out/nrvn.iso

debug: all
	qemu-system-x86_64 -kernel out/nrvn.bin -s -S

outdir:
	mkdir -p out

clean:
	rm -rf out