furix
cute os
arch/x86_64/Makefile
537 bytes raw
1ifndef KERNEL_SRC
2$(error KERNEL_SRC undefined)
3endif
4
5ifndef KERNEL_ELF
6$(error KERNEL_ELF undefined)
7endif
8
9ifndef BUILD
10$(error BUILD undefined)
11endif
12
13CC := x86_64-elf-gcc
14
15CFLAGS += \
16 -mno-red-zone -mgeneral-regs-only \
17 -Iarch/x86_64/include
18
19LDFLAGS += \
20 -Tarch/x86_64/linker.ld
21
22ARCH_SRC := \
23 arch/x86_64/entry.S
24
25SRC := $(KERNEL_SRC) $(ARCH_SRC)
26OBJ := $(patsubst %,$(BUILD)/%.o,$(SRC))
27
28$(KERNEL_ELF): $(OBJ)
29 @mkdir -p $(dir $@)
30 $(CC) $(LDFLAGS) -o $@ $^
31
32$(BUILD)/%.o: %
33 @mkdir -p $(dir $@)
34 $(CC) $(CFLAGS) -o $@ -c $<