summaryrefslogtreecommitdiff
path: root/makefile
blob: 325d23d7858eb2117a1136c25c06ed4f3b620a9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ASM="/home/jackson/opt/cross/bin/i686-elf-as"
CC="/home/jackson/opt/cross/bin/i686-elf-gcc"
VIRTUALIZER="qemu-system-i386"

all: boot.s kernel.c linker.ld
	$(ASM) boot.s -o boot.o
	$(CC) -c kernel.c -o kernel.o -std=gnu99 -ffreestanding -O2 -Wall -Wextra
	$(CC) -T linker.ld -o myos.bin -ffreestanding -O2 -nostdlib boot.o kernel.o -lgcc
iso: all isodir
	cp myos.bin isodir/boot/
	grub-mkrescue -o myos.iso isodir/
isodir: all
	mkdir -p isodir/boot/grub
	cp grub.cfg isodir/boot/grub/grub.cfg
	cp myos.bin isodir/boot/myos.bin
run: iso
	$(VIRTUALIZER) -cdrom myos.iso
clean:
	rm *.o *.bin *.iso
	rm -rf isodir