]> git.dujemihanovic.xyz Git - nameless-os.git/blob - kernel/Makefile
48115dd74f927a8246a1ec9edc2804a482350682
[nameless-os.git] / kernel / Makefile
1 KERNEL_OBJ = kernel.o entry.o
2
3 include drivers/Makefile
4 include arch/x86/Makefile
5
6 ASFLAGS_BASE = -f elf -g dwarf2
7 CFLAGS_BASE = -fgnu89-inline -ffreestanding -nostdlib -Iinclude \
8 -Iinclude/arch/x86 -g -DGIT_COMMIT=\"$(GIT_REV)\" \
9 -O2 -flto
10 LDFLAGS_BASE = -ffreestanding -nostdlib -lgcc -g -flto
11
12 kernel.elf kernel.dbg: $(KERNEL_OBJ)
13 $(REAL_CC) $(LDFLAGS_BASE) $(LDFLAGS) -T linker.ld $^ -o $@
14 $(CROSS_COMPILE)objcopy --only-keep-debug kernel.elf kernel.dbg
15 $(CROSS_COMPILE)objcopy --add-gnu-debuglink=kernel.dbg kernel.elf
16 $(CROSS_COMPILE)strip --strip-unneeded kernel.elf
17
18 clean:
19 -rm $(KERNEL_OBJ) kernel.elf kernel.dbg
20
21 # Implicit rules
22 %.o: %.c
23 $(REAL_CC) $(CFLAGS_BASE) $(CFLAGS) -c $< -o $@
24
25 %.o: %.s
26 $(AS) $(ASFLAGS_BASE) $(ASFLAGS) $< -o $@
27
28 .PHONY: clean