diff options
author | 3gg <3gg@shellblade.net> | 2025-02-08 15:05:52 -0800 |
---|---|---|
committer | 3gg <3gg@shellblade.net> | 2025-02-08 15:05:52 -0800 |
commit | 0e1595330211351823e68691fca013bb47772aeb (patch) | |
tree | 0bfc976de35175352a1c977723f7881c328f623f | |
parent | d9663547a1f4337e1a31d727abe15a8aafa0c9c8 (diff) |
Track changes to header files.
-rw-r--r-- | Makefile | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -1,3 +1,12 @@ | |||
1 | TOOLCHAIN := $(HOME)/bin/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf | ||
2 | TOOLCHAIN_BIN := $(TOOLCHAIN)/bin | ||
3 | TOOLCHAIN_LIB := $(TOOLCHAIN)/lib/gcc/aarch64-none-elf/14.2.1/include | ||
4 | |||
5 | AS := $(TOOLCHAIN_BIN)/aarch64-none-elf-as | ||
6 | CC := $(TOOLCHAIN_BIN)/aarch64-none-elf-gcc | ||
7 | LD := $(TOOLCHAIN_BIN)/aarch64-none-elf-ld | ||
8 | OBJCOPY := $(TOOLCHAIN_BIN)/aarch64-none-elf-objcopy | ||
9 | |||
1 | SRC_DIR := src | 10 | SRC_DIR := src |
2 | BUILD_DIR := build | 11 | BUILD_DIR := build |
3 | OBJ_DIR := $(BUILD_DIR) | 12 | OBJ_DIR := $(BUILD_DIR) |
@@ -8,20 +17,15 @@ ELF := $(BIN_DIR)/kernel8.elf | |||
8 | 17 | ||
9 | SRC := $(wildcard $(SRC_DIR)/*.c) | 18 | SRC := $(wildcard $(SRC_DIR)/*.c) |
10 | OBJ := $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) | 19 | OBJ := $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) |
20 | DEP := $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.d) | ||
11 | ASM_SRC := $(wildcard $(SRC_DIR)/*.s) | 21 | ASM_SRC := $(wildcard $(SRC_DIR)/*.s) |
12 | ASM_OBJ := $(ASM_SRC:$(SRC_DIR)/%.s=$(OBJ_DIR)/%.o) | 22 | ASM_OBJ := $(ASM_SRC:$(SRC_DIR)/%.s=$(OBJ_DIR)/%.o) |
13 | LINK := $(SRC_DIR)/link.ld | 23 | LINK := $(SRC_DIR)/link.ld |
14 | 24 | ||
15 | CPPFLAGS := -I$(SRC_DIR) -MMD -MP | 25 | CPPFLAGS := -MMD -MP -I$(TOOLCHAIN_LIB) -I$(SRC_DIR) |
16 | CFLAGS := -Wall -Wextra -O2 -ffreestanding -nostdinc -nostdlib -nostartfiles | 26 | CFLAGS := -Wall -Wextra -O2 -ffreestanding -nostdinc -nostdlib -nostartfiles |
17 | LDFLAGS := -nostdlib | 27 | LDFLAGS := -nostdlib |
18 | 28 | ||
19 | TOOLCHAIN := $(HOME)/bin/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin | ||
20 | AS := $(TOOLCHAIN)/aarch64-none-elf-as | ||
21 | CC := $(TOOLCHAIN)/aarch64-none-elf-gcc | ||
22 | LD := $(TOOLCHAIN)/aarch64-none-elf-ld | ||
23 | OBJCOPY := $(TOOLCHAIN)/aarch64-none-elf-objcopy | ||
24 | |||
25 | .PHONY: all clean | 29 | .PHONY: all clean |
26 | 30 | ||
27 | all: $(IMG) | 31 | all: $(IMG) |
@@ -36,7 +40,7 @@ $(ELF): $(OBJ) $(ASM_OBJ) | $(BIN_DIR) | |||
36 | 40 | ||
37 | $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR) | 41 | $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR) |
38 | @echo Building $< "->" $@ | 42 | @echo Building $< "->" $@ |
39 | $(CC) $(CFLAGS) -c $< -o $@ | 43 | $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ |
40 | 44 | ||
41 | $(OBJ_DIR)/%.o: $(SRC_DIR)/%.s | $(BUILD_DIR) | 45 | $(OBJ_DIR)/%.o: $(SRC_DIR)/%.s | $(BUILD_DIR) |
42 | @echo Building $< "->" $@ | 46 | @echo Building $< "->" $@ |
@@ -51,3 +55,5 @@ $(BUILD_DIR): | |||
51 | $(BIN_DIR): | 55 | $(BIN_DIR): |
52 | mkdir -p $(BIN_DIR) | 56 | mkdir -p $(BIN_DIR) |
53 | 57 | ||
58 | -include $(DEP) | ||
59 | |||