aboutsummaryrefslogtreecommitdiff
path: root/arch/i686/toolchain.mk
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i686/toolchain.mk')
-rw-r--r--arch/i686/toolchain.mk42
1 files changed, 42 insertions, 0 deletions
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
+