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 /Makefile | |
| parent | d9663547a1f4337e1a31d727abe15a8aafa0c9c8 (diff) | |
Track changes to header files.
Diffstat (limited to 'Makefile')
| -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 | |||
