Move platform-specific flags to a separate file

This commit is contained in:
2025-12-07 01:03:25 +01:00
parent de5350010b
commit 8cd6eee737
3 changed files with 35 additions and 38 deletions

View File

@ -5,41 +5,3 @@ objcopy := llvm-objcopy
platform ?= i386_pc
build ?= release
ifeq ($(platform),i386_pc)
clang_res_dir := $(shell $(cc) -print-resource-dir)
kernel_cflags := --target=i386-none-elf \
-nostdinc \
-nostdlib \
-ffreestanding \
-fno-builtin \
-std=c11 \
-pedantic \
-Wall \
-Wextra
ifeq ($(build),debug)
kernel_cflags += -O0 -g
endif
ifeq ($(build),release)
kernel_cflags += -Oz
endif
kernel_ldflags := -mcpu=i386 \
--target=i386-none-elf \
-nostdlib \
-ffreestanding \
-fno-builtin \
-fuse-ld=lld \
-flto \
-static \
-Wl,--build-id=none \
$(clang_res_dir)/lib/*/libclang_rt.builtins-i386.a
ifeq ($(build),debug)
kernel_ldflags += -g
endif
endif

View File

@ -2,6 +2,7 @@ include $(srctree)/build/make.config
here := $(srctree)/kernel
include $(here)/make.$(platform).flags
include $(here)/make.src
all: $(srctree)/out/kernel.elf

34
kernel/make.i386_pc.flags Normal file
View File

@ -0,0 +1,34 @@
clang_res_dir := $(shell $(cc) -print-resource-dir)
kernel_cflags := --target=i386-none-elf \
-nostdinc \
-nostdlib \
-ffreestanding \
-fno-builtin \
-std=c11 \
-pedantic \
-Wall \
-Wextra
ifeq ($(build),debug)
kernel_cflags += -O0 -g
endif
ifeq ($(build),release)
kernel_cflags += -Oz
endif
kernel_ldflags := -mcpu=i386 \
--target=i386-none-elf \
-nostdlib \
-ffreestanding \
-fno-builtin \
-fuse-ld=lld \
-flto \
-static \
-Wl,--build-id=none \
$(clang_res_dir)/lib/*/libclang_rt.builtins-i386.a
ifeq ($(build),debug)
kernel_ldflags += -g
endif