From 04322d9ff7ed7652258daafee28c47196c43b5b8 Mon Sep 17 00:00:00 2001 From: apio Date: Sun, 18 Jun 2023 20:18:19 +0200 Subject: [PATCH] kernel: Add a customizable configuration file system --- .gitignore | 1 + kernel/CMakeLists.txt | 4 ++++ kernel/config.cmake.template | 12 ++++++++++++ 3 files changed, 17 insertions(+) create mode 100644 kernel/config.cmake.template diff --git a/.gitignore b/.gitignore index 695174ea..61b4b406 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ initrd/bin/** initrd/tests/** base/ .fakeroot +kernel/config.cmake diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index fce169bf..eae441b3 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -103,6 +103,10 @@ if(MOON_DEBUG) include(debug.cmake) endif() +if(EXISTS config.cmake) + include(config.cmake) +endif() + target_link_options(moon PRIVATE -lgcc -Wl,--build-id=none -z max-page-size=0x1000 -mcmodel=kernel) set_target_properties(moon PROPERTIES CXX_STANDARD 20) diff --git a/kernel/config.cmake.template b/kernel/config.cmake.template new file mode 100644 index 00000000..c3de68f7 --- /dev/null +++ b/kernel/config.cmake.template @@ -0,0 +1,12 @@ +# Copy this file and rename it to 'config.cmake' before making your own changes. + +# config.cmake: Configuration file for the kernel. +# Edit/add values to customize kernel compilation flags/defines. +# This file is automatically ignored by git. +# To use an example configuration line, just remove the hashtag '#' at the beginning. + +# Example: Adding a compiler definition. This will define PCI_DEBUG in the kernel source. +# target_compile_definitions(moon PRIVATE PCI_DEBUG) + +# Example: Adding a compiler flag. This will optimize the kernel aggressively (warning: untested, use at your own discretion). +# target_compile_options(moon PRIVATE -O3)