mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-28 15:34:31 +00:00
refactor: streamline source file discovery in Makefile and update OSARCH handling in config.mk
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
6cf3c62c83
commit
463d16f8bc
@ -6,24 +6,16 @@ GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD)
|
||||
HEADERS := $(sort $(dir $(wildcard ./include/*))) $(sort $(dir $(wildcard ./include_std/*)))
|
||||
INCLUDE_DIR = -I./include -I./include_std
|
||||
|
||||
BMP_SOURCES := $(shell find ./ -type f -name '*.bmp')
|
||||
PSF_SOURCES := $(shell find ./ -type f -name '*.psf')
|
||||
ifeq ($(OSARCH), amd64)
|
||||
S_SOURCES := $(shell find ./ -type f -name '*.S' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
||||
s_SOURCES := $(shell find ./ -type f -name '*.s' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
||||
C_SOURCES := $(shell find ./ -type f -name '*.c' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
||||
CXX_SOURCES := $(shell find ./ -type f -name '*.cpp' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
||||
else ifeq ($(OSARCH), i386)
|
||||
S_SOURCES := $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
||||
s_SOURCES := $(shell find ./ -type f -name '*.s' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
||||
C_SOURCES := $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
||||
CXX_SOURCES := $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
||||
else ifeq ($(OSARCH), aarch64)
|
||||
S_SOURCES := $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
||||
s_SOURCES := $(shell find ./ -type f -name '*.s' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
||||
C_SOURCES := $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
||||
CXX_SOURCES := $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
||||
endif # OSARCH
|
||||
define find-sources
|
||||
$(shell find ./ -type f -name '$1' $(shell echo $(foreach arch,$(filter-out $(OSARCH),$(AVAILABLE_ARCHS)), -not -path \"./arch/$(arch)/*\")) -print0 | xargs -0)
|
||||
endef
|
||||
|
||||
BMP_SOURCES := $(call find-sources,*.bmp)
|
||||
PSF_SOURCES := $(call find-sources,*.psf)
|
||||
S_SOURCES := $(call find-sources,*.S)
|
||||
s_SOURCES := $(call find-sources,*.s)
|
||||
C_SOURCES := $(call find-sources,*.c)
|
||||
CXX_SOURCES := $(call find-sources,*.cpp)
|
||||
|
||||
OBJ = $(BMP_SOURCES:.bmp=.o) $(PSF_SOURCES:.psf=.o) $(s_SOURCES:.s=.o) $(S_SOURCES:.S=.o) $(C_SOURCES:.c=.o) $(CXX_SOURCES:.cpp=.o)
|
||||
STACK_USAGE_OBJ = $(C_SOURCES:.c=.su) $(CXX_SOURCES:.cpp=.su)
|
||||
|
41
config.mk
41
config.mk
@ -5,8 +5,8 @@ DEBUG = 1
|
||||
# Operating system name.
|
||||
OSNAME = Fennix
|
||||
|
||||
# OS architecture: amd64, i386, aarch64
|
||||
OSARCH = amd64
|
||||
# OS architecture, check AVAILABLE_ARCHS for available options.
|
||||
OSARCH = i386
|
||||
|
||||
# Kernel version.
|
||||
KERNEL_VERSION = dev
|
||||
@ -53,28 +53,27 @@ USE_LIBC = internal
|
||||
# Do not change anything below this line unless
|
||||
# you know what you are doing.
|
||||
|
||||
ifeq ($(OSARCH), amd64)
|
||||
COMPILER_ARCH = x86_64
|
||||
__CONF_QEMU_PATH := $(__CONF_QEMU_PATH)/bin/qemu-system-x86_64
|
||||
else ifeq ($(OSARCH), i386)
|
||||
COMPILER_ARCH = i386
|
||||
__CONF_QEMU_PATH := $(__CONF_QEMU_PATH)/bin/qemu-system-i386
|
||||
else ifeq ($(OSARCH), aarch64)
|
||||
COMPILER_ARCH = aarch64
|
||||
__CONF_QEMU_PATH := $(__CONF_QEMU_PATH)/bin/qemu-system-aarch64
|
||||
# Available architectures. Do not change
|
||||
export AVAILABLE_ARCHS := amd64 i386 aarch64
|
||||
|
||||
ifneq ($(filter $(OSARCH),$(AVAILABLE_ARCHS)),$(OSARCH))
|
||||
$(error OSARCH=$(OSARCH) is not a supported architecture. Choose one of: $(AVAILABLE_ARCHS))
|
||||
endif
|
||||
|
||||
export __CONF_QEMU_PATH
|
||||
ARCH_MAP := amd64=x86_64 i386=i386 aarch64=aarch64
|
||||
COMPILER_ARCH := $(patsubst $(OSARCH)=%,%,$(filter $(OSARCH)=%,$(ARCH_MAP)))
|
||||
__CONF_QEMU_PATH := $(__CONF_QEMU_PATH)/bin/qemu-system-$(COMPILER_ARCH)
|
||||
TOOLCHAIN_PREFIX := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-
|
||||
|
||||
export __CONF_CC := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-gcc
|
||||
export __CONF_CXX := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-g++
|
||||
export __CONF_LD := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-ld
|
||||
export __CONF_AS := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-as
|
||||
export __CONF_AR := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-ar
|
||||
export __CONF_NM := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-nm
|
||||
export __CONF_OBJCOPY := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-objcopy
|
||||
export __CONF_OBJDUMP := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-objdump
|
||||
export __CONF_GDB := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-gdb
|
||||
export __CONF_CC := $(TOOLCHAIN_PREFIX)gcc
|
||||
export __CONF_CXX := $(TOOLCHAIN_PREFIX)g++
|
||||
export __CONF_LD := $(TOOLCHAIN_PREFIX)ld
|
||||
export __CONF_AS := $(TOOLCHAIN_PREFIX)as
|
||||
export __CONF_AR := $(TOOLCHAIN_PREFIX)ar
|
||||
export __CONF_NM := $(TOOLCHAIN_PREFIX)nm
|
||||
export __CONF_OBJCOPY := $(TOOLCHAIN_PREFIX)objcopy
|
||||
export __CONF_OBJDUMP := $(TOOLCHAIN_PREFIX)objdump
|
||||
export __CONF_GDB := $(TOOLCHAIN_PREFIX)gdb
|
||||
|
||||
export DEBUG
|
||||
export OSNAME
|
||||
|
Loading…
x
Reference in New Issue
Block a user