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