summaryrefslogtreecommitdiff
path: root/makefile
blob: 95236b97b395129612b14c033cbccf62b51f0b1a (plain) (blame)
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
cd: kernel fs
	mkdir -p out/fs/boot/grub
	mv out/kernel.elf out/fs/boot/
	cp src/grub.cfg out/fs/boot/grub/
	grub2-mkrescue out/fs -o out/cd.iso --product-name=portland --product-version=0.0.9

kernel: obj out
	nasm src/kernel/stub.asm -o obj/kstub.o -f elf32
	gcc -c src/kernel/files.c -o obj/kfiles.o -ffreestanding -nostdlib -m32
	gcc -c src/kernel/main.c  -o obj/kmain.o  -ffreestanding -nostdlib -m32
	gcc -c src/kernel/mem.c   -o obj/kmem.o   -ffreestanding -nostdlib -m32
	gcc -c src/kernel/proc.c  -o obj/kproc.o  -ffreestanding -nostdlib -m32
	gcc -c src/kernel/vga.c   -o obj/kvga.o   -ffreestanding -nostdlib -m32
	ld obj/k*.o -o out/kernel.elf -T src/kernel/link.ld -s --orphan-handling=discard -m elf_i386

clean:
	rm -r obj out

fs: out
	mkdir -p out/fs

obj:
	mkdir -p obj

out:
	mkdir -p out