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/*)))
|
HEADERS := $(sort $(dir $(wildcard ./include/*))) $(sort $(dir $(wildcard ./include_std/*)))
|
||||||
INCLUDE_DIR = -I./include -I./include_std
|
INCLUDE_DIR = -I./include -I./include_std
|
||||||
|
|
||||||
BMP_SOURCES := $(shell find ./ -type f -name '*.bmp')
|
define find-sources
|
||||||
PSF_SOURCES := $(shell find ./ -type f -name '*.psf')
|
$(shell find ./ -type f -name '$1' $(shell echo $(foreach arch,$(filter-out $(OSARCH),$(AVAILABLE_ARCHS)), -not -path \"./arch/$(arch)/*\")) -print0 | xargs -0)
|
||||||
ifeq ($(OSARCH), amd64)
|
endef
|
||||||
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/*")
|
BMP_SOURCES := $(call find-sources,*.bmp)
|
||||||
C_SOURCES := $(shell find ./ -type f -name '*.c' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
PSF_SOURCES := $(call find-sources,*.psf)
|
||||||
CXX_SOURCES := $(shell find ./ -type f -name '*.cpp' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
S_SOURCES := $(call find-sources,*.S)
|
||||||
else ifeq ($(OSARCH), i386)
|
s_SOURCES := $(call find-sources,*.s)
|
||||||
S_SOURCES := $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
C_SOURCES := $(call find-sources,*.c)
|
||||||
s_SOURCES := $(shell find ./ -type f -name '*.s' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
CXX_SOURCES := $(call find-sources,*.cpp)
|
||||||
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
|
|
||||||
|
|
||||||
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)
|
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)
|
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.
|
# Operating system name.
|
||||||
OSNAME = Fennix
|
OSNAME = Fennix
|
||||||
|
|
||||||
# OS architecture: amd64, i386, aarch64
|
# OS architecture, check AVAILABLE_ARCHS for available options.
|
||||||
OSARCH = amd64
|
OSARCH = i386
|
||||||
|
|
||||||
# Kernel version.
|
# Kernel version.
|
||||||
KERNEL_VERSION = dev
|
KERNEL_VERSION = dev
|
||||||
@ -53,28 +53,27 @@ USE_LIBC = internal
|
|||||||
# Do not change anything below this line unless
|
# Do not change anything below this line unless
|
||||||
# you know what you are doing.
|
# you know what you are doing.
|
||||||
|
|
||||||
ifeq ($(OSARCH), amd64)
|
# Available architectures. Do not change
|
||||||
COMPILER_ARCH = x86_64
|
export AVAILABLE_ARCHS := amd64 i386 aarch64
|
||||||
__CONF_QEMU_PATH := $(__CONF_QEMU_PATH)/bin/qemu-system-x86_64
|
|
||||||
else ifeq ($(OSARCH), i386)
|
ifneq ($(filter $(OSARCH),$(AVAILABLE_ARCHS)),$(OSARCH))
|
||||||
COMPILER_ARCH = i386
|
$(error OSARCH=$(OSARCH) is not a supported architecture. Choose one of: $(AVAILABLE_ARCHS))
|
||||||
__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
|
|
||||||
endif
|
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_CC := $(TOOLCHAIN_PREFIX)gcc
|
||||||
export __CONF_CXX := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-g++
|
export __CONF_CXX := $(TOOLCHAIN_PREFIX)g++
|
||||||
export __CONF_LD := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-ld
|
export __CONF_LD := $(TOOLCHAIN_PREFIX)ld
|
||||||
export __CONF_AS := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-as
|
export __CONF_AS := $(TOOLCHAIN_PREFIX)as
|
||||||
export __CONF_AR := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-ar
|
export __CONF_AR := $(TOOLCHAIN_PREFIX)ar
|
||||||
export __CONF_NM := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-nm
|
export __CONF_NM := $(TOOLCHAIN_PREFIX)nm
|
||||||
export __CONF_OBJCOPY := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-objcopy
|
export __CONF_OBJCOPY := $(TOOLCHAIN_PREFIX)objcopy
|
||||||
export __CONF_OBJDUMP := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-objdump
|
export __CONF_OBJDUMP := $(TOOLCHAIN_PREFIX)objdump
|
||||||
export __CONF_GDB := $(COMPILER_PATH)/bin/$(COMPILER_ARCH)-fennix-gdb
|
export __CONF_GDB := $(TOOLCHAIN_PREFIX)gdb
|
||||||
|
|
||||||
export DEBUG
|
export DEBUG
|
||||||
export OSNAME
|
export OSNAME
|
||||||
|
Loading…
x
Reference in New Issue
Block a user