]> git.dujemihanovic.xyz Git - nameless-os.git/blob - Makefile
8d4b3653f3c8f16c9749254f8908bf568e48b17d
[nameless-os.git] / Makefile
1 AS = yasm
2 LD = i686-elf-ld
3 CC = i686-elf-gcc
4
5 KERNEL_OBJ = kernel/entry.o kernel/arch/x86/tty/tty.o kernel/kernel.o
6
7 all: boot.img
8
9 boot.img: boot/x86/boot kernel/kernel.bin
10 cat boot/x86/boot kernel/kernel.bin > $@
11 truncate -s1440K $@
12
13 boot/x86/boot: boot/x86/boot.s boot/x86/a20.s boot/x86/protected.s boot/x86/print.s
14 $(AS) -f bin boot/x86/boot.s -o $@
15
16 kernel/kernel.bin: ${KERNEL_OBJ}
17 $(LD) -o $@ -T kernel/linker.ld ${KERNEL_OBJ} --oformat=binary
18
19 kernel/entry.o: kernel/entry.s
20 $(AS) -f elf kernel/entry.s -o $@
21
22 kernel/arch/x86/tty/tty.o: kernel/arch/x86/tty/tty.c
23 $(CC) -g -o $@ -ffreestanding -c kernel/arch/x86/tty/tty.c
24
25 kernel/kernel.o: kernel/kernel.c
26 $(CC) -g -o $@ -Iinclude/arch/x86 -ffreestanding -c kernel/kernel.c
27
28 clean:
29 rm boot/x86/boot kernel/kernel.bin ${KERNEL_OBJ} boot.img
30
31 .PHONY: all clean