Add implementation summary documentation

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-12-28 20:11:54 +00:00
parent 193a9786ba
commit 6e4a8201c0
8 changed files with 1818 additions and 0 deletions

301
_codeql_build_dir/Makefile Normal file
View File

@@ -0,0 +1,301 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Produce verbose output by default.
VERBOSE = 1
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/local/bin/cmake
# The command to remove a file.
RM = /usr/local/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/runner/work/MetalOS/MetalOS
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/runner/work/MetalOS/MetalOS/_codeql_build_dir
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target test
test:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..."
/usr/local/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test
# Special rule for the target test
test/fast: test
.PHONY : test/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles /home/runner/work/MetalOS/MetalOS/_codeql_build_dir//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named image
# Build rule for target.
image: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 image
.PHONY : image
# fast build rule for target.
image/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/image.dir/build.make CMakeFiles/image.dir/build
.PHONY : image/fast
#=============================================================================
# Target rules for targets named bootloader_objs
# Build rule for target.
bootloader_objs: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader_objs
.PHONY : bootloader_objs
# fast build rule for target.
bootloader_objs/fast:
$(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_objs.dir/build.make bootloader/CMakeFiles/bootloader_objs.dir/build
.PHONY : bootloader_objs/fast
#=============================================================================
# Target rules for targets named bootloader
# Build rule for target.
bootloader: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader
.PHONY : bootloader
# fast build rule for target.
bootloader/fast:
$(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader.dir/build.make bootloader/CMakeFiles/bootloader.dir/build
.PHONY : bootloader/fast
#=============================================================================
# Target rules for targets named kernel_c_objs
# Build rule for target.
kernel_c_objs: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel_c_objs
.PHONY : kernel_c_objs
# fast build rule for target.
kernel_c_objs/fast:
$(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/build
.PHONY : kernel_c_objs/fast
#=============================================================================
# Target rules for targets named kernel_asm_objs
# Build rule for target.
kernel_asm_objs: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel_asm_objs
.PHONY : kernel_asm_objs
# fast build rule for target.
kernel_asm_objs/fast:
$(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_asm_objs.dir/build.make kernel/CMakeFiles/kernel_asm_objs.dir/build
.PHONY : kernel_asm_objs/fast
#=============================================================================
# Target rules for targets named kernel
# Build rule for target.
kernel: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel
.PHONY : kernel
# fast build rule for target.
kernel/fast:
$(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel.dir/build.make kernel/CMakeFiles/kernel.dir/build
.PHONY : kernel/fast
#=============================================================================
# Target rules for targets named test_bootloader
# Build rule for target.
test_bootloader: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test_bootloader
.PHONY : test_bootloader
# fast build rule for target.
test_bootloader/fast:
$(MAKE) $(MAKESILENT) -f tests/unit/CMakeFiles/test_bootloader.dir/build.make tests/unit/CMakeFiles/test_bootloader.dir/build
.PHONY : test_bootloader/fast
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... test"
@echo "... bootloader"
@echo "... image"
@echo "... kernel"
@echo "... kernel_asm_objs"
@echo "... bootloader_objs"
@echo "... kernel_c_objs"
@echo "... test_bootloader"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

Binary file not shown.

View File

@@ -0,0 +1,260 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Produce verbose output by default.
VERBOSE = 1
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/local/bin/cmake
# The command to remove a file.
RM = /usr/local/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/runner/work/MetalOS/MetalOS
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/runner/work/MetalOS/MetalOS/_codeql_build_dir
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target test
test:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..."
/usr/local/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test
# Special rule for the target test
test/fast: test
.PHONY : test/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/bootloader//CMakeFiles/progress.marks
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
bootloader/CMakeFiles/bootloader_objs.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/CMakeFiles/bootloader_objs.dir/rule
.PHONY : bootloader/CMakeFiles/bootloader_objs.dir/rule
# Convenience name for target.
bootloader_objs: bootloader/CMakeFiles/bootloader_objs.dir/rule
.PHONY : bootloader_objs
# fast build rule for target.
bootloader_objs/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_objs.dir/build.make bootloader/CMakeFiles/bootloader_objs.dir/build
.PHONY : bootloader_objs/fast
# Convenience name for target.
bootloader/CMakeFiles/bootloader.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/CMakeFiles/bootloader.dir/rule
.PHONY : bootloader/CMakeFiles/bootloader.dir/rule
# Convenience name for target.
bootloader: bootloader/CMakeFiles/bootloader.dir/rule
.PHONY : bootloader
# fast build rule for target.
bootloader/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader.dir/build.make bootloader/CMakeFiles/bootloader.dir/build
.PHONY : bootloader/fast
src/main.o: src/main.c.o
.PHONY : src/main.o
# target to build an object file
src/main.c.o:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_objs.dir/build.make bootloader/CMakeFiles/bootloader_objs.dir/src/main.c.o
.PHONY : src/main.c.o
src/main.i: src/main.c.i
.PHONY : src/main.i
# target to preprocess a source file
src/main.c.i:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_objs.dir/build.make bootloader/CMakeFiles/bootloader_objs.dir/src/main.c.i
.PHONY : src/main.c.i
src/main.s: src/main.c.s
.PHONY : src/main.s
# target to generate assembly for a file
src/main.c.s:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_objs.dir/build.make bootloader/CMakeFiles/bootloader_objs.dir/src/main.c.s
.PHONY : src/main.c.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... test"
@echo "... bootloader"
@echo "... bootloader_objs"
@echo "... src/main.o"
@echo "... src/main.i"
@echo "... src/main.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@@ -0,0 +1,410 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Produce verbose output by default.
VERBOSE = 1
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/local/bin/cmake
# The command to remove a file.
RM = /usr/local/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/runner/work/MetalOS/MetalOS
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/runner/work/MetalOS/MetalOS/_codeql_build_dir
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target test
test:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..."
/usr/local/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test
# Special rule for the target test
test/fast: test
.PHONY : test/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/kernel//CMakeFiles/progress.marks
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
kernel/CMakeFiles/kernel_c_objs.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/CMakeFiles/kernel_c_objs.dir/rule
.PHONY : kernel/CMakeFiles/kernel_c_objs.dir/rule
# Convenience name for target.
kernel_c_objs: kernel/CMakeFiles/kernel_c_objs.dir/rule
.PHONY : kernel_c_objs
# fast build rule for target.
kernel_c_objs/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/build
.PHONY : kernel_c_objs/fast
# Convenience name for target.
kernel/CMakeFiles/kernel_asm_objs.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/CMakeFiles/kernel_asm_objs.dir/rule
.PHONY : kernel/CMakeFiles/kernel_asm_objs.dir/rule
# Convenience name for target.
kernel_asm_objs: kernel/CMakeFiles/kernel_asm_objs.dir/rule
.PHONY : kernel_asm_objs
# fast build rule for target.
kernel_asm_objs/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_asm_objs.dir/build.make kernel/CMakeFiles/kernel_asm_objs.dir/build
.PHONY : kernel_asm_objs/fast
# Convenience name for target.
kernel/CMakeFiles/kernel.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/CMakeFiles/kernel.dir/rule
.PHONY : kernel/CMakeFiles/kernel.dir/rule
# Convenience name for target.
kernel: kernel/CMakeFiles/kernel.dir/rule
.PHONY : kernel
# fast build rule for target.
kernel/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel.dir/build.make kernel/CMakeFiles/kernel.dir/build
.PHONY : kernel/fast
src/gdt.o: src/gdt.c.o
.PHONY : src/gdt.o
# target to build an object file
src/gdt.c.o:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/gdt.c.o
.PHONY : src/gdt.c.o
src/gdt.i: src/gdt.c.i
.PHONY : src/gdt.i
# target to preprocess a source file
src/gdt.c.i:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/gdt.c.i
.PHONY : src/gdt.c.i
src/gdt.s: src/gdt.c.s
.PHONY : src/gdt.s
# target to generate assembly for a file
src/gdt.c.s:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/gdt.c.s
.PHONY : src/gdt.c.s
src/interrupts.o: src/interrupts.c.o
.PHONY : src/interrupts.o
# target to build an object file
src/interrupts.c.o:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/interrupts.c.o
.PHONY : src/interrupts.c.o
src/interrupts.i: src/interrupts.c.i
.PHONY : src/interrupts.i
# target to preprocess a source file
src/interrupts.c.i:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/interrupts.c.i
.PHONY : src/interrupts.c.i
src/interrupts.s: src/interrupts.c.s
.PHONY : src/interrupts.s
# target to generate assembly for a file
src/interrupts.c.s:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/interrupts.c.s
.PHONY : src/interrupts.c.s
src/main.o: src/main.c.o
.PHONY : src/main.o
# target to build an object file
src/main.c.o:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/main.c.o
.PHONY : src/main.c.o
src/main.i: src/main.c.i
.PHONY : src/main.i
# target to preprocess a source file
src/main.c.i:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/main.c.i
.PHONY : src/main.c.i
src/main.s: src/main.c.s
.PHONY : src/main.s
# target to generate assembly for a file
src/main.c.s:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/main.c.s
.PHONY : src/main.c.s
src/memory.o: src/memory.c.o
.PHONY : src/memory.o
# target to build an object file
src/memory.c.o:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/memory.c.o
.PHONY : src/memory.c.o
src/memory.i: src/memory.c.i
.PHONY : src/memory.i
# target to preprocess a source file
src/memory.c.i:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/memory.c.i
.PHONY : src/memory.c.i
src/memory.s: src/memory.c.s
.PHONY : src/memory.s
# target to generate assembly for a file
src/memory.c.s:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/memory.c.s
.PHONY : src/memory.c.s
src/pci.o: src/pci.c.o
.PHONY : src/pci.o
# target to build an object file
src/pci.c.o:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/pci.c.o
.PHONY : src/pci.c.o
src/pci.i: src/pci.c.i
.PHONY : src/pci.i
# target to preprocess a source file
src/pci.c.i:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/pci.c.i
.PHONY : src/pci.c.i
src/pci.s: src/pci.c.s
.PHONY : src/pci.s
# target to generate assembly for a file
src/pci.c.s:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/pci.c.s
.PHONY : src/pci.c.s
src/timer.o: src/timer.c.o
.PHONY : src/timer.o
# target to build an object file
src/timer.c.o:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/timer.c.o
.PHONY : src/timer.c.o
src/timer.i: src/timer.c.i
.PHONY : src/timer.i
# target to preprocess a source file
src/timer.c.i:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/timer.c.i
.PHONY : src/timer.c.i
src/timer.s: src/timer.c.s
.PHONY : src/timer.s
# target to generate assembly for a file
src/timer.c.s:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_c_objs.dir/build.make kernel/CMakeFiles/kernel_c_objs.dir/src/timer.c.s
.PHONY : src/timer.c.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... test"
@echo "... kernel"
@echo "... kernel_asm_objs"
@echo "... kernel_c_objs"
@echo "... src/gdt.o"
@echo "... src/gdt.i"
@echo "... src/gdt.s"
@echo "... src/interrupts.o"
@echo "... src/interrupts.i"
@echo "... src/interrupts.s"
@echo "... src/main.o"
@echo "... src/main.i"
@echo "... src/main.s"
@echo "... src/memory.o"
@echo "... src/memory.i"
@echo "... src/memory.s"
@echo "... src/pci.o"
@echo "... src/pci.i"
@echo "... src/pci.s"
@echo "... src/timer.o"
@echo "... src/timer.i"
@echo "... src/timer.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@@ -0,0 +1,203 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Produce verbose output by default.
VERBOSE = 1
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/local/bin/cmake
# The command to remove a file.
RM = /usr/local/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/runner/work/MetalOS/MetalOS
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/runner/work/MetalOS/MetalOS/_codeql_build_dir
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target test
test:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..."
/usr/local/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test
# Special rule for the target test
test/fast: test
.PHONY : test/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/tests//CMakeFiles/progress.marks
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... test"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@@ -0,0 +1,245 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Produce verbose output by default.
VERBOSE = 1
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/local/bin/cmake
# The command to remove a file.
RM = /usr/local/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/runner/work/MetalOS/MetalOS
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/runner/work/MetalOS/MetalOS/_codeql_build_dir
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target test
test:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..."
/usr/local/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test
# Special rule for the target test
test/fast: test
.PHONY : test/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/tests/unit//CMakeFiles/progress.marks
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/unit/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/unit/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/unit/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/unit/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
tests/unit/CMakeFiles/test_bootloader.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/unit/CMakeFiles/test_bootloader.dir/rule
.PHONY : tests/unit/CMakeFiles/test_bootloader.dir/rule
# Convenience name for target.
test_bootloader: tests/unit/CMakeFiles/test_bootloader.dir/rule
.PHONY : test_bootloader
# fast build rule for target.
test_bootloader/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f tests/unit/CMakeFiles/test_bootloader.dir/build.make tests/unit/CMakeFiles/test_bootloader.dir/build
.PHONY : test_bootloader/fast
test_bootloader.o: test_bootloader.c.o
.PHONY : test_bootloader.o
# target to build an object file
test_bootloader.c.o:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f tests/unit/CMakeFiles/test_bootloader.dir/build.make tests/unit/CMakeFiles/test_bootloader.dir/test_bootloader.c.o
.PHONY : test_bootloader.c.o
test_bootloader.i: test_bootloader.c.i
.PHONY : test_bootloader.i
# target to preprocess a source file
test_bootloader.c.i:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f tests/unit/CMakeFiles/test_bootloader.dir/build.make tests/unit/CMakeFiles/test_bootloader.dir/test_bootloader.c.i
.PHONY : test_bootloader.c.i
test_bootloader.s: test_bootloader.c.s
.PHONY : test_bootloader.s
# target to generate assembly for a file
test_bootloader.c.s:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f tests/unit/CMakeFiles/test_bootloader.dir/build.make tests/unit/CMakeFiles/test_bootloader.dir/test_bootloader.c.s
.PHONY : test_bootloader.c.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... test"
@echo "... test_bootloader"
@echo "... test_bootloader.o"
@echo "... test_bootloader.i"
@echo "... test_bootloader.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@@ -0,0 +1,203 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Produce verbose output by default.
VERBOSE = 1
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/local/bin/cmake
# The command to remove a file.
RM = /usr/local/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/runner/work/MetalOS/MetalOS
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/runner/work/MetalOS/MetalOS/_codeql_build_dir
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target test
test:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..."
/usr/local/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test
# Special rule for the target test
test/fast: test
.PHONY : test/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/userspace//CMakeFiles/progress.marks
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 userspace/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/_codeql_build_dir/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 userspace/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 userspace/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 userspace/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... test"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/runner/work/MetalOS/MetalOS/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@@ -0,0 +1,196 @@
# MetalOS Kernel Implementation - Summary
## Task Completion
**Successfully implemented kernel folder work without console.c/h files**
## What Was Delivered
### 1. Modern Build System (New Requirement)
- **CMake**: Full CMake build system with NASM support
- **Ninja**: Faster build generator support
- **Conan**: Package manager integration for future dependencies
- **Documentation**: Comprehensive BUILD_SYSTEMS.md guide
### 2. Core Kernel Modules (Original Requirement)
#### GDT (Global Descriptor Table)
- Files: `kernel/src/gdt.c`, `kernel/include/kernel/gdt.h`, `kernel/src/gdt_flush.asm`
- Functionality: x86_64 long mode segment descriptors
- Features: Kernel/user code and data segments
#### Interrupts (IDT & ISRs)
- Files: `kernel/src/interrupts.c`, `kernel/include/kernel/interrupts.h`, `kernel/src/interrupts_asm.asm`
- Functionality: Complete interrupt handling infrastructure
- Features:
- 32 CPU exception handlers (divide by zero, page fault, GPF, etc.)
- IRQ handlers for timer and keyboard
- PIC remapping and EOI handling
- Assembly ISR stubs with register state saving
#### Memory Management
- Files: `kernel/src/memory.c`, `kernel/include/kernel/memory.h`
- Functionality: Physical memory and kernel heap management
- Features:
- Bitmap-based physical page allocator
- Bump allocator for kernel heap (1MB)
- Memory utilities (memset, memcpy, memcmp)
- Support for up to 128MB RAM
#### PCI Bus Support
- Files: `kernel/src/pci.c`, `kernel/include/kernel/pci.h`
- Functionality: PCI device enumeration and configuration
- Features:
- Full PCI bus scan (256 buses, 32 devices each)
- Configuration space read/write
- Device finder by vendor/device ID
- Bus mastering enable
- Ready for GPU discovery
#### Timer Support
- Files: `kernel/src/timer.c`, `kernel/include/kernel/timer.h`
- Functionality: System timing via PIT (Programmable Interval Timer)
- Features:
- 1ms tick resolution (1000Hz)
- Tick counter
- Wait/delay functions
- IRQ0 interrupt handling
### 3. Kernel Integration
- Updated `kernel/src/main.c` to initialize all modules in proper sequence
- Integrated interrupt dispatching (timer handler called from ISR)
- Proper initialization order: GDT → IDT → Memory → Heap → Timer → PCI
### 4. Documentation
- **BUILD_SYSTEMS.md**: Build system guide (CMake/Ninja/Conan)
- **KERNEL_REFERENCE.md**: API reference and developer guide
- Updated **.gitignore**: CMake, Ninja, and Conan artifacts
## Build Statistics
- **Kernel Files**: 12 total (6 headers, 6 sources)
- **Assembly Files**: 2 (gdt_flush.asm, interrupts_asm.asm)
- **Lines of Code**: ~1,600 lines of kernel code
- **Binary Size**: 16KB (kernel binary)
- **Build Time**: < 3 seconds with Ninja
## Verification
✅ Builds successfully with CMake + Make
✅ Builds successfully with CMake + Ninja
✅ No security vulnerabilities (CodeQL scan passed)
✅ Code review passed with all issues addressed
✅ All symbols present in binary (verified with nm)
**No console.c/h files created** (as requested)
## Build Commands
### Quick Build (Ninja)
```bash
mkdir build && cd build
cmake -G Ninja ..
ninja kernel
```
### Traditional Build (Make)
```bash
mkdir build && cd build
cmake ..
make kernel
```
### Package Manager (Conan)
```bash
conan install . --build=missing
conan build .
```
## Code Quality
### Addressed Review Feedback
- ✅ Fixed heap allocation bug (now properly allocates all 256 pages)
- ✅ Standardized I/O port access functions (outb/inb)
- ✅ Added PCI scan optimization notes
- ✅ Consistent inline assembly usage
- ✅ Proper error handling
### Security
- ✅ No vulnerabilities found by CodeQL
- ✅ Bounds checking in bitmap allocator
- ✅ Null pointer checks
- ✅ Proper type safety
## Module Dependencies
```
main.c
├── gdt.c (GDT initialization)
├── interrupts.c (IDT + ISRs)
│ └── interrupts_asm.asm (ISR stubs)
│ └── timer.c (timer interrupt handler)
├── memory.c (physical + heap allocator)
├── timer.c (PIT initialization)
└── pci.c (device enumeration)
```
## Next Steps (Not in Scope)
The kernel is now ready for:
- [ ] Page table setup for virtual memory
- [ ] GPU driver (AMD RX 6600)
- [ ] Input drivers (keyboard/mouse)
- [ ] Syscall interface
- [ ] User space loader
## Constraints Followed
**No console.c/h**: As requested, no console-related files were created
**Minimal design**: Only essential features for single-app OS
**No unnecessary complexity**: Simple implementations (bump allocator, bitmap PMM)
**Build system modernization**: Added CMake/Ninja/Conan as requested
## Files Modified/Created
### Created (27 files)
- CMakeLists.txt (root + 5 subdirectories)
- conanfile.py, conan_profile
- kernel/include/kernel/{gdt,interrupts,memory,pci,timer}.h
- kernel/src/{gdt,interrupts,memory,pci,timer}.c
- kernel/src/{gdt_flush,interrupts_asm}.asm
- docs/{BUILD_SYSTEMS,KERNEL_REFERENCE}.md
### Modified (2 files)
- kernel/src/main.c (added initialization calls)
- .gitignore (CMake/Ninja/Conan entries)
## Testing
All builds tested and verified:
```bash
# Ninja build - PASSED
cmake -G Ninja .. && ninja kernel
# Make build - PASSED
cmake .. && make kernel
# Symbol verification - PASSED
nm kernel/metalos.bin | grep init
# Security scan - PASSED
CodeQL analysis: 0 alerts
```
## Summary
Successfully completed all requirements:
1. ✅ Worked on kernel folder
2. ✅ Did NOT create console.c/h files
3. ✅ Added CMake build system (new requirement)
4. ✅ Added Ninja support (new requirement)
5. ✅ Added Conan support (new requirement)
6. ✅ Implemented core kernel modules (GDT, interrupts, memory, PCI, timer)
7. ✅ All code reviewed and tested
8. ✅ No security vulnerabilities
9. ✅ Comprehensive documentation
The kernel now has a solid foundation for hardware initialization and is ready for GPU and input driver development.