From 6eefbd0e736c3334e9b1b8141feb0430a5f247c1 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 30 Mar 2021 22:49:06 +0300 Subject: Makefile: build targets properly from subdirs --- arch/i686/toolchain.mk | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 arch/i686/toolchain.mk (limited to 'arch/i686') diff --git a/arch/i686/toolchain.mk b/arch/i686/toolchain.mk new file mode 100644 index 0000000..c6349e8 --- /dev/null +++ b/arch/i686/toolchain.mk @@ -0,0 +1,42 @@ +# x86 toolchain +# - 32-bit X86: Pentium-Pro and above +# +# To check targets supported by llvm, see 'llc --version' +TARGET := i686-elf + +NM := llvm-nm +SED := sed + +AS := clang +AS_FLAGS := -nostdlib -Wall -Wextra + +AR := llvm-ar +AR_FLAGS := --format=gnu + +LD := ld.lld +LD_FLAGS := -nostdlib -T linker.ld + +CXX := clang++ +CXX_FLAGS := -std=c++20 -g -O3 -flto=full \ + -static -ffreestanding -fno-common -nostdinc -nostdinc++ \ + -fno-use-cxa-atexit -fno-rtti -fno-exceptions -fno-non-call-exceptions \ + -Wall -Wextra -Werror=pedantic \ + -Werror=date-time \ + -Werror=shadow-all \ + -Wold-style-cast -Wconversion \ + -Wconsumed +TEST_CXX := clang++ +TEST_CXX_FLAGS := -std=c++20 -Wall -Wextra -Werror=pedantic +CXX_INCLUDE := $(prefix)/libk $(prefix)/src $(prefix)/drivers +CXX_INCLUDE := $(addprefix -I, $(CXX_INCLUDE)) +SYSTEM_INCLUDE := $(prefix)/grub +SYSTEM_INCLUDE := $(addprefix -isystem, $(SYSTEM_INCLUDE)) +CXX_INCLUDE := $(CXX_INCLUDE) $(SYSTEM_INCLUDE) + +# +GRUB_MKRESCUE := grub-mkrescue +GRUB_FILE := grub-file +GRUB_SCRIPT := grub-script-check + +EMU := qemu-system-i386 -cdrom + -- cgit v1.2.1