[refactor] 通配CPP文件

This commit is contained in:
2026-06-06 10:34:50 +08:00
Unverified
parent 30d48d2881
commit 6729f2f5d3
+12 -47
View File
@@ -15,17 +15,14 @@ EFI_CFLAGS = -Iefi/inc -Iefi/inc/x86_64 -Iefi/inc/protocol \
BOOT_OBJ = build/boot.o BOOT_OBJ = build/boot.o
KERNEL_CPP = kernel/entry.cpp kernel/main.cpp kernel/serial.cpp kernel/fs.cpp \ KERNEL_ASMFLAGS = -Iinclude -Iefi/inc -ffreestanding -fno-stack-protector -fno-stack-check \
kernel/memory/heap.cpp kernel/memory/pmm.cpp \ -fshort-wchar -mno-red-zone -fcf-protection=none -g
kernel/scheduler/scheduler.cpp \
kernel/interrupt/gdt.cpp kernel/interrupt/idt.cpp \ KERNEL_CPP := $(shell find kernel graphics fonts -name '*.cpp' -type f)
kernel/interrupt/pic.cpp kernel/interrupt/pit.cpp \ KERNEL_ASM := $(shell find kernel -name '*.S' -type f)
kernel/graphics/layer.cpp \
graphics/context.cpp graphics/draw.cpp \ KERNEL_OBJ := $(KERNEL_CPP:%.cpp=build/%.o) $(KERNEL_ASM:%.S=build/%.o)
fonts/pixel_font.cpp \ KERNEL_DIRS := $(sort $(dir $(KERNEL_OBJ)))
fonts/ttf/ttf.cpp fonts/ttf/ttf_parse.cpp fonts/ttf/ttf_render.cpp
KERNEL_ASM = kernel/scheduler/context_switch.S kernel/interrupt/isr.S kernel/interrupt/idt_helpers.S
KERNEL_OBJ = $(KERNEL_CPP:%.cpp=build/%.o) $(KERNEL_ASM:%.S=build/%.o)
EFI_TOP_C = $(wildcard efi/lib/*.c) EFI_TOP_C = $(wildcard efi/lib/*.c)
EFI_TOP_S = $(wildcard efi/lib/*.S) EFI_TOP_S = $(wildcard efi/lib/*.S)
@@ -49,9 +46,7 @@ all: _bd $(EFI_OBJ) $(BOOT_OBJ) $(KERNEL_OBJ)
@echo "Done." @echo "Done."
_bd: _bd:
@mkdir -p build/graphics build/kernel build/fonts build/fonts/ttf build/kernel/memory \ @mkdir -p $(KERNEL_DIRS) build/efi/gnuefi build/efi/lib build/efi/lib/x86_64 build/efi/lib/runtime
build/kernel/scheduler build/kernel/interrupt build/kernel/graphics \
build/efi/lib build/efi/lib/x86_64 build/efi/lib/runtime build/efi/gnuefi
$(EFI_CRT0_OBJ): efi/gnuefi/crt0-efi-x86_64.S | _bd $(EFI_CRT0_OBJ): efi/gnuefi/crt0-efi-x86_64.S | _bd
@echo "Compile AS $<" @echo "Compile AS $<"
@@ -85,43 +80,13 @@ build/%.o: %.c
@echo "Compile C $<" @echo "Compile C $<"
@gcc $(CFLAGS) -c $< -o $@ @gcc $(CFLAGS) -c $< -o $@
build/kernel/%.o: kernel/%.cpp | _bd build/%.o: %.cpp | _bd
@echo "Compile CPP $<" @echo "Compile CPP $<"
@g++ $(KERNEL_CXXFLAGS) -c $< -o $@ @g++ $(KERNEL_CXXFLAGS) -c $< -o $@
build/kernel/memory/%.o: kernel/memory/%.cpp | _bd build/%.o: %.S | _bd
@echo "Compile CPP $<"
@g++ $(KERNEL_CXXFLAGS) -c $< -o $@
build/kernel/scheduler/%.o: kernel/scheduler/%.cpp | _bd
@echo "Compile CPP $<"
@g++ $(KERNEL_CXXFLAGS) -c $< -o $@
build/kernel/scheduler/%.o: kernel/scheduler/%.S | _bd
@echo "Compile AS $<" @echo "Compile AS $<"
@gcc -Iinclude -Iefi/inc -ffreestanding -fno-stack-protector -fno-stack-check \ @gcc $(KERNEL_ASMFLAGS) -c $< -o $@
-fshort-wchar -mno-red-zone -fcf-protection=none -g -c $< -o $@
build/kernel/interrupt/%.o: kernel/interrupt/%.cpp | _bd
@echo "Compile CPP $<"
@g++ $(KERNEL_CXXFLAGS) -c $< -o $@
build/kernel/interrupt/%.o: kernel/interrupt/%.S | _bd
@echo "Compile AS $<"
@gcc -Iinclude -Iefi/inc -ffreestanding -fno-stack-protector -fno-stack-check \
-fshort-wchar -mno-red-zone -fcf-protection=none -g -c $< -o $@
build/graphics/%.o: graphics/%.cpp | _bd
@echo "Compile CPP $<"
@g++ $(KERNEL_CXXFLAGS) -c $< -o $@
build/fonts/%.o: fonts/%.cpp | _bd
@echo "Compile CPP $<"
@g++ $(KERNEL_CXXFLAGS) -c $< -o $@
build/fonts/ttf/%.o: fonts/ttf/%.cpp | _bd
@echo "Compile CPP $<"
@g++ $(KERNEL_CXXFLAGS) -c $< -o $@
vdir: all vdir: all
@mkdir -p vdir/EFI/BOOT vdir/sys @mkdir -p vdir/EFI/BOOT vdir/sys