Remove Makefiles and update documentation for pure CMake build system

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-12-28 20:54:40 +00:00
parent be0439448e
commit 408053665d
16 changed files with 81 additions and 1801 deletions

View File

@@ -25,6 +25,7 @@ jobs:
sudo apt-get update
sudo apt-get install -y \
build-essential \
cmake \
nasm \
qemu-system-x86 \
ovmf \
@@ -32,19 +33,21 @@ jobs:
xorriso \
imagemagick
- name: Build bootloader
- name: Configure CMake
run: |
cd bootloader
make
mkdir -p build
cd build
cmake ..
- name: Build kernel
- name: Build bootloader and kernel
run: |
cd kernel
make
cd build
cmake --build .
- name: Create bootable image
run: |
make image
cd build
cmake --build . --target image
- name: Start QEMU and capture screenshot
run: |
@@ -56,19 +59,22 @@ jobs:
XVFB_PID=$!
sleep 2
# Verify disk image exists (created by 'make image')
if [ ! -f build/metalos.img ]; then
echo "Error: build/metalos.img not found!"
# Verify disk image exists (created by cmake build)
if [ ! -f build/build/metalos.img ]; then
echo "Error: build/build/metalos.img not found!"
exit 1
fi
# Create directory for logs
mkdir -p build/logs
# Start QEMU in the background with a timeout
timeout 30s qemu-system-x86_64 \
-bios /usr/share/OVMF/OVMF_CODE.fd \
-drive format=raw,file=build/metalos.img \
-drive format=raw,file=build/build/metalos.img \
-m 512M \
-display gtk \
-serial file:build/serial.log \
-serial file:build/logs/serial.log \
-no-reboot &
QEMU_PID=$!
@@ -77,7 +83,7 @@ jobs:
# Take screenshot using ImageMagick (optional - don't fail if this doesn't work)
# Using subshell to prevent 'set -e' from affecting this optional step
{ import -window root build/qemu-screenshot.png; } || echo "Screenshot capture failed (non-fatal)"
{ import -window root build/logs/qemu-screenshot.png; } || echo "Screenshot capture failed (non-fatal)"
# Gracefully stop QEMU (don't fail if already stopped)
kill $QEMU_PID 2>/dev/null || true
@@ -91,9 +97,9 @@ jobs:
- name: Show serial output
if: always()
run: |
if [ -f build/serial.log ]; then
if [ -f build/logs/serial.log ]; then
echo "=== QEMU Serial Output ==="
cat build/serial.log
cat build/logs/serial.log
else
echo "No serial output captured"
fi
@@ -103,7 +109,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: qemu-screenshot
path: build/qemu-screenshot.png
path: build/logs/qemu-screenshot.png
if-no-files-found: warn
- name: Upload serial log
@@ -111,7 +117,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: serial-log
path: build/serial.log
path: build/logs/serial.log
if-no-files-found: warn
- name: Upload built disk image
@@ -119,5 +125,5 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: metalos-disk-image
path: build/metalos.img
path: build/build/metalos.img
if-no-files-found: warn

View File

@@ -24,25 +24,28 @@ jobs:
sudo apt-get update
sudo apt-get install -y \
build-essential \
cmake \
nasm \
qemu-system-x86 \
ovmf \
mtools \
xorriso
- name: Build bootloader
- name: Configure CMake
run: |
cd bootloader
make
mkdir -p build
cd build
cmake ..
- name: Build kernel
- name: Build bootloader and kernel
run: |
cd kernel
make
cd build
cmake --build .
- name: Create bootable image
run: |
make image
cd build
cmake --build . --target image
- name: Prepare release directory
run: |
@@ -51,29 +54,29 @@ jobs:
mkdir -p release
# Copy the bootable disk image (required)
if [ -f build/metalos.img ]; then
cp build/metalos.img release/
if [ -f build/build/metalos.img ]; then
cp build/build/metalos.img release/
echo "✓ Copied metalos.img"
else
echo "Error: build/metalos.img not found!"
echo "Error: build/build/metalos.img not found!"
exit 1
fi
# Copy bootloader if it exists (required)
if [ -f bootloader/bootx64.efi ]; then
cp bootloader/bootx64.efi release/
if [ -f build/bootloader/bootx64.efi ]; then
cp build/bootloader/bootx64.efi release/
echo "✓ Copied bootx64.efi"
else
echo "Error: bootloader/bootx64.efi not found!"
echo "Error: build/bootloader/bootx64.efi not found!"
exit 1
fi
# Copy kernel if it exists (required)
if [ -f kernel/metalos.bin ]; then
cp kernel/metalos.bin release/
if [ -f build/kernel/metalos.bin ]; then
cp build/kernel/metalos.bin release/
echo "✓ Copied metalos.bin"
else
echo "Error: kernel/metalos.bin not found!"
echo "Error: build/kernel/metalos.bin not found!"
exit 1
fi

View File

@@ -22,17 +22,23 @@ jobs:
set -e # Exit on any error
sudo apt-get update
sudo apt-get install -y build-essential
sudo apt-get install -y build-essential cmake
- name: Configure CMake
run: |
mkdir -p build
cd build
cmake ..
- name: Build unit tests
run: |
cd tests
make all
cd build
cmake --build .
- name: Run unit tests
run: |
cd tests
make test
cd build
ctest --output-on-failure
- name: Test summary
if: always()

2
.gitignore vendored
View File

@@ -18,6 +18,8 @@
# Build directories
build/
build-*/
cmake-build/
cmake-build-*/
bootloader/build/
kernel/build/
_codeql_build_dir/

View File

@@ -152,9 +152,19 @@ Closes #42
Every PR should be tested in QEMU:
```bash
make clean
make all
make qemu
mkdir build && cd build
cmake ..
cmake --build .
cmake --build . --target qemu
```
Or if you already have a build directory:
```bash
cd build
cmake --build . --target clean
cmake --build .
cmake --build . --target qemu
```
Verify:

144
Makefile
View File

@@ -1,144 +0,0 @@
# MetalOS Main Makefile
# Builds bootloader, kernel, and creates bootable image
.PHONY: all bootloader kernel image qemu qemu-debug qemu-gdb qemu-uefi-test test clean distclean
all: bootloader kernel
# Run unit tests
test:
@echo "Running unit tests..."
@cd tests && $(MAKE) test
bootloader:
@echo "Building bootloader..."
@cd bootloader && $(MAKE) || echo "Warning: Bootloader build failed (expected during Phase 1 development)"
kernel:
@echo "Building kernel..."
@cd kernel && $(MAKE) || echo "Warning: Kernel build failed (expected during Phase 1 development)"
# Create bootable disk image for UEFI/QEMU
image: bootloader kernel
@chmod +x scripts/create_image.sh
@./scripts/create_image.sh
# Run in QEMU with UEFI firmware (OVMF)
# Automatically detects OVMF path and display mode
# Set QEMU_DISPLAY=gtk or QEMU_DISPLAY=sdl to use graphical mode
QEMU_DISPLAY ?= none
qemu: image
@echo "Starting QEMU with UEFI firmware..."
@bash -c ' \
if [ -f /usr/share/OVMF/OVMF_CODE.fd ]; then \
OVMF="/usr/share/OVMF/OVMF_CODE.fd"; \
elif [ -f /usr/share/ovmf/OVMF.fd ]; then \
OVMF="/usr/share/ovmf/OVMF.fd"; \
elif [ -f /usr/share/edk2-ovmf/x64/OVMF_CODE.fd ]; then \
OVMF="/usr/share/edk2-ovmf/x64/OVMF_CODE.fd"; \
elif [ -f /usr/share/qemu/ovmf-x86_64.bin ]; then \
OVMF="/usr/share/qemu/ovmf-x86_64.bin"; \
else \
echo "Error: OVMF UEFI firmware not found!"; \
echo "Install with:"; \
echo " Ubuntu/Debian: sudo apt-get install ovmf"; \
echo " Arch Linux: sudo pacman -S edk2-ovmf"; \
echo " Fedora: sudo dnf install edk2-ovmf"; \
exit 1; \
fi; \
echo "Using OVMF firmware: $$OVMF"; \
echo "Display mode: $(QEMU_DISPLAY) (set QEMU_DISPLAY=gtk for graphical)"; \
qemu-system-x86_64 \
-drive if=pflash,format=raw,readonly=on,file=$$OVMF \
-drive format=raw,file=build/metalos.img \
-m 512M \
-serial stdio \
-display $(QEMU_DISPLAY) \
-net none \
'
qemu-debug: image
@echo "Starting QEMU with debug output..."
@bash -c ' \
if [ -f /usr/share/OVMF/OVMF_CODE.fd ]; then \
OVMF="/usr/share/OVMF/OVMF_CODE.fd"; \
elif [ -f /usr/share/ovmf/OVMF.fd ]; then \
OVMF="/usr/share/ovmf/OVMF.fd"; \
elif [ -f /usr/share/edk2-ovmf/x64/OVMF_CODE.fd ]; then \
OVMF="/usr/share/edk2-ovmf/x64/OVMF_CODE.fd"; \
else \
echo "Error: OVMF UEFI firmware not found!"; \
exit 1; \
fi; \
qemu-system-x86_64 \
-drive if=pflash,format=raw,readonly=on,file=$$OVMF \
-drive format=raw,file=build/metalos.img \
-m 512M \
-serial stdio \
-display $(QEMU_DISPLAY) \
-net none \
-d int,cpu_reset \
'
qemu-gdb: image
@echo "Starting QEMU with GDB server on port 1234..."
@bash -c ' \
if [ -f /usr/share/OVMF/OVMF_CODE.fd ]; then \
OVMF="/usr/share/OVMF/OVMF_CODE.fd"; \
elif [ -f /usr/share/ovmf/OVMF.fd ]; then \
OVMF="/usr/share/ovmf/OVMF.fd"; \
elif [ -f /usr/share/edk2-ovmf/x64/OVMF_CODE.fd ]; then \
OVMF="/usr/share/edk2-ovmf/x64/OVMF_CODE.fd"; \
else \
echo "Error: OVMF UEFI firmware not found!"; \
exit 1; \
fi; \
echo "QEMU will wait for GDB connection on localhost:1234"; \
echo "In another terminal, run: gdb kernel/metalos.bin"; \
echo "Then in GDB: target remote localhost:1234"; \
qemu-system-x86_64 \
-drive if=pflash,format=raw,readonly=on,file=$$OVMF \
-drive format=raw,file=build/metalos.img \
-m 512M \
-serial stdio \
-display $(QEMU_DISPLAY) \
-net none \
-s -S \
'
# Quick UEFI test - boots to UEFI shell without OS (for verifying QEMU+OVMF setup)
qemu-uefi-test:
@echo "Testing QEMU UEFI boot (no OS image)..."
@bash -c ' \
if [ -f /usr/share/OVMF/OVMF_CODE.fd ]; then \
OVMF="/usr/share/OVMF/OVMF_CODE.fd"; \
elif [ -f /usr/share/ovmf/OVMF.fd ]; then \
OVMF="/usr/share/ovmf/OVMF.fd"; \
elif [ -f /usr/share/edk2-ovmf/x64/OVMF_CODE.fd ]; then \
OVMF="/usr/share/edk2-ovmf/x64/OVMF_CODE.fd"; \
else \
echo "Error: OVMF UEFI firmware not found!"; \
exit 1; \
fi; \
echo "Using OVMF firmware: $$OVMF"; \
echo "This will boot to UEFI shell in nographic mode."; \
echo "You should see UEFI boot messages. Press Ctrl-A then X to exit QEMU."; \
qemu-system-x86_64 \
-drive if=pflash,format=raw,readonly=on,file=$$OVMF \
-m 512M \
-nographic \
-net none \
'
clean:
@echo "Cleaning build artifacts..."
@cd bootloader && $(MAKE) clean
@cd kernel && $(MAKE) clean
@cd tests && $(MAKE) clean
@rm -rf build
distclean: clean
@echo "Deep clean..."
@find . -name "*.o" -delete
@find . -name "*.d" -delete

View File

@@ -67,18 +67,18 @@ See [docs/ROADMAP.md](docs/ROADMAP.md) for detailed phase breakdown.
## Building
MetalOS supports **multiple build systems** - choose what works best for you!
MetalOS uses **CMake** as its build system for a modern, cross-platform build experience.
### Quick Start (Make - Traditional)
### Quick Start (CMake)
```bash
make all # Build bootloader, kernel, and userspace
make test # Run unit tests
make qemu # Test in QEMU with UEFI firmware
make clean # Clean build artifacts
mkdir build && cd build
cmake ..
cmake --build .
cmake --build . --target qemu
```
### CMake + Ninja (Fast Modern Build)
### Using Ninja (Faster Builds)
```bash
mkdir build && cd build
@@ -103,19 +103,15 @@ The easiest way to build MetalOS with all dependencies:
```bash
./scripts/docker-build.sh # Build Docker image
./scripts/docker-run.sh scripts/setup-deps.sh # Setup dependencies
./scripts/docker-run.sh make all # Build everything
./scripts/docker-run.sh make qemu # Test in QEMU
./scripts/docker-run.sh cmake --build build # Build everything
```
**See [docs/BUILD_SYSTEMS.md](docs/BUILD_SYSTEMS.md) for detailed comparison and usage of all build systems.**
**QEMU UEFI Testing**:
```bash
make qemu # Boot in QEMU with UEFI (headless)
make qemu QEMU_DISPLAY=gtk # Boot with graphical display
make qemu-debug # Boot with debug output
make qemu-gdb # Boot with GDB debugging
make qemu-uefi-test # Test UEFI firmware setup
cmake --build . --target qemu # Boot in QEMU with UEFI (headless)
cmake --build . --target qemu-debug # Boot with debug output
cmake --build . --target qemu-gdb # Boot with GDB debugging
cmake --build . --target qemu-uefi-test # Test UEFI firmware setup
```
See [docs/BUILD.md](docs/BUILD.md) for detailed build instructions and [docs/TESTING.md](docs/TESTING.md) for testing guide.

View File

@@ -1,55 +0,0 @@
# MetalOS Bootloader Makefile
# Builds UEFI bootloader (bootx64.efi)
# Cross-compiler setup
CC = gcc
LD = ld
OBJCOPY = objcopy
# Directories
SRC_DIR = src
INC_DIR = include
BUILD_DIR = build
# Compiler flags for UEFI
CFLAGS = -Wall -Wextra -Werror \
-ffreestanding -fno-stack-protector -fno-stack-check \
-fshort-wchar -mno-red-zone \
-I$(INC_DIR) \
-DEFI_FUNCTION_WRAPPER
# Linker flags for UEFI
LDFLAGS = -shared -Bsymbolic -nostdlib \
-znocombreloc -T uefi.lds
# Source files
SOURCES = $(wildcard $(SRC_DIR)/*.c)
OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SOURCES))
# Output
TARGET = bootx64.efi
.PHONY: all clean
all: $(BUILD_DIR) $(TARGET)
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
# Compile C files
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
# Link and create EFI binary
$(TARGET): $(OBJECTS)
$(LD) $(LDFLAGS) $(OBJECTS) -o $(BUILD_DIR)/bootx64.so
$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \
-j .dynsym -j .rel -j .rela -j .reloc \
--target=efi-app-x86_64 \
$(BUILD_DIR)/bootx64.so $@
clean:
rm -rf $(BUILD_DIR) $(TARGET)
# Note: This is a simplified Makefile
# A real implementation would use gnu-efi or proper UEFI SDK

View File

@@ -1,382 +0,0 @@
# 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
# 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/cmake-build
#=============================================================================
# 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/cmake-build/CMakeFiles /home/runner/work/MetalOS/MetalOS/cmake-build//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/cmake-build/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 qemu
# Build rule for target.
qemu: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 qemu
.PHONY : qemu
# fast build rule for target.
qemu/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/qemu.dir/build.make CMakeFiles/qemu.dir/build
.PHONY : qemu/fast
#=============================================================================
# Target rules for targets named qemu-debug
# Build rule for target.
qemu-debug: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 qemu-debug
.PHONY : qemu-debug
# fast build rule for target.
qemu-debug/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/qemu-debug.dir/build.make CMakeFiles/qemu-debug.dir/build
.PHONY : qemu-debug/fast
#=============================================================================
# Target rules for targets named qemu-gdb
# Build rule for target.
qemu-gdb: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 qemu-gdb
.PHONY : qemu-gdb
# fast build rule for target.
qemu-gdb/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/qemu-gdb.dir/build.make CMakeFiles/qemu-gdb.dir/build
.PHONY : qemu-gdb/fast
#=============================================================================
# Target rules for targets named qemu-uefi-test
# Build rule for target.
qemu-uefi-test: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 qemu-uefi-test
.PHONY : qemu-uefi-test
# fast build rule for target.
qemu-uefi-test/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/qemu-uefi-test.dir/build.make CMakeFiles/qemu-uefi-test.dir/build
.PHONY : qemu-uefi-test/fast
#=============================================================================
# Target rules for targets named bootloader_obj
# Build rule for target.
bootloader_obj: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader_obj
.PHONY : bootloader_obj
# fast build rule for target.
bootloader_obj/fast:
$(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_obj.dir/build.make bootloader/CMakeFiles/bootloader_obj.dir/build
.PHONY : bootloader_obj/fast
#=============================================================================
# Target rules for targets named bootloader_so
# Build rule for target.
bootloader_so: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader_so
.PHONY : bootloader_so
# fast build rule for target.
bootloader_so/fast:
$(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_so.dir/build.make bootloader/CMakeFiles/bootloader_so.dir/build
.PHONY : bootloader_so/fast
#=============================================================================
# Target rules for targets named bootloader_efi
# Build rule for target.
bootloader_efi: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader_efi
.PHONY : bootloader_efi
# fast build rule for target.
bootloader_efi/fast:
$(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_efi.dir/build.make bootloader/CMakeFiles/bootloader_efi.dir/build
.PHONY : bootloader_efi/fast
#=============================================================================
# Target rules for targets named kernel_obj
# Build rule for target.
kernel_obj: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel_obj
.PHONY : kernel_obj
# fast build rule for target.
kernel_obj/fast:
$(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/build
.PHONY : kernel_obj/fast
#=============================================================================
# Target rules for targets named kernel_elf
# Build rule for target.
kernel_elf: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel_elf
.PHONY : kernel_elf
# fast build rule for target.
kernel_elf/fast:
$(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_elf.dir/build.make kernel/CMakeFiles/kernel_elf.dir/build
.PHONY : kernel_elf/fast
#=============================================================================
# Target rules for targets named kernel_bin
# Build rule for target.
kernel_bin: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel_bin
.PHONY : kernel_bin
# fast build rule for target.
kernel_bin/fast:
$(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_bin.dir/build.make kernel/CMakeFiles/kernel_bin.dir/build
.PHONY : kernel_bin/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/CMakeFiles/test_bootloader.dir/build.make tests/CMakeFiles/test_bootloader.dir/build
.PHONY : test_bootloader/fast
#=============================================================================
# Target rules for targets named run_tests
# Build rule for target.
run_tests: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 run_tests
.PHONY : run_tests
# fast build rule for target.
run_tests/fast:
$(MAKE) $(MAKESILENT) -f tests/CMakeFiles/run_tests.dir/build.make tests/CMakeFiles/run_tests.dir/build
.PHONY : run_tests/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_efi"
@echo "... image"
@echo "... kernel_bin"
@echo "... qemu"
@echo "... qemu-debug"
@echo "... qemu-gdb"
@echo "... qemu-uefi-test"
@echo "... run_tests"
@echo "... bootloader_obj"
@echo "... bootloader_so"
@echo "... kernel_elf"
@echo "... kernel_obj"
@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

View File

@@ -1,2 +0,0 @@
test_bootloader 1 0.00139881
---

Binary file not shown.

View File

@@ -1,272 +0,0 @@
# 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
# 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/cmake-build
#=============================================================================
# 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/cmake-build && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/cmake-build/CMakeFiles /home/runner/work/MetalOS/MetalOS/cmake-build/bootloader//CMakeFiles/progress.marks
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/cmake-build/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(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/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(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_obj.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/CMakeFiles/bootloader_obj.dir/rule
.PHONY : bootloader/CMakeFiles/bootloader_obj.dir/rule
# Convenience name for target.
bootloader_obj: bootloader/CMakeFiles/bootloader_obj.dir/rule
.PHONY : bootloader_obj
# fast build rule for target.
bootloader_obj/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_obj.dir/build.make bootloader/CMakeFiles/bootloader_obj.dir/build
.PHONY : bootloader_obj/fast
# Convenience name for target.
bootloader/CMakeFiles/bootloader_so.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/CMakeFiles/bootloader_so.dir/rule
.PHONY : bootloader/CMakeFiles/bootloader_so.dir/rule
# Convenience name for target.
bootloader_so: bootloader/CMakeFiles/bootloader_so.dir/rule
.PHONY : bootloader_so
# fast build rule for target.
bootloader_so/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_so.dir/build.make bootloader/CMakeFiles/bootloader_so.dir/build
.PHONY : bootloader_so/fast
# Convenience name for target.
bootloader/CMakeFiles/bootloader_efi.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bootloader/CMakeFiles/bootloader_efi.dir/rule
.PHONY : bootloader/CMakeFiles/bootloader_efi.dir/rule
# Convenience name for target.
bootloader_efi: bootloader/CMakeFiles/bootloader_efi.dir/rule
.PHONY : bootloader_efi
# fast build rule for target.
bootloader_efi/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_efi.dir/build.make bootloader/CMakeFiles/bootloader_efi.dir/build
.PHONY : bootloader_efi/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/cmake-build && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_obj.dir/build.make bootloader/CMakeFiles/bootloader_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_obj.dir/build.make bootloader/CMakeFiles/bootloader_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f bootloader/CMakeFiles/bootloader_obj.dir/build.make bootloader/CMakeFiles/bootloader_obj.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_efi"
@echo "... bootloader_obj"
@echo "... bootloader_so"
@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/cmake-build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@@ -1,488 +0,0 @@
# 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
# 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/cmake-build
#=============================================================================
# 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/cmake-build && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/cmake-build/CMakeFiles /home/runner/work/MetalOS/MetalOS/cmake-build/kernel//CMakeFiles/progress.marks
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/cmake-build/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(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/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(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_obj.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/CMakeFiles/kernel_obj.dir/rule
.PHONY : kernel/CMakeFiles/kernel_obj.dir/rule
# Convenience name for target.
kernel_obj: kernel/CMakeFiles/kernel_obj.dir/rule
.PHONY : kernel_obj
# fast build rule for target.
kernel_obj/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/build
.PHONY : kernel_obj/fast
# Convenience name for target.
kernel/CMakeFiles/kernel_elf.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/CMakeFiles/kernel_elf.dir/rule
.PHONY : kernel/CMakeFiles/kernel_elf.dir/rule
# Convenience name for target.
kernel_elf: kernel/CMakeFiles/kernel_elf.dir/rule
.PHONY : kernel_elf
# fast build rule for target.
kernel_elf/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_elf.dir/build.make kernel/CMakeFiles/kernel_elf.dir/build
.PHONY : kernel_elf/fast
# Convenience name for target.
kernel/CMakeFiles/kernel_bin.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kernel/CMakeFiles/kernel_bin.dir/rule
.PHONY : kernel/CMakeFiles/kernel_bin.dir/rule
# Convenience name for target.
kernel_bin: kernel/CMakeFiles/kernel_bin.dir/rule
.PHONY : kernel_bin
# fast build rule for target.
kernel_bin/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_bin.dir/build.make kernel/CMakeFiles/kernel_bin.dir/build
.PHONY : kernel_bin/fast
src/apic.o: src/apic.c.o
.PHONY : src/apic.o
# target to build an object file
src/apic.c.o:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/apic.c.o
.PHONY : src/apic.c.o
src/apic.i: src/apic.c.i
.PHONY : src/apic.i
# target to preprocess a source file
src/apic.c.i:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/apic.c.i
.PHONY : src/apic.c.i
src/apic.s: src/apic.c.s
.PHONY : src/apic.s
# target to generate assembly for a file
src/apic.c.s:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/apic.c.s
.PHONY : src/apic.c.s
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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/pci.c.s
.PHONY : src/pci.c.s
src/smp.o: src/smp.c.o
.PHONY : src/smp.o
# target to build an object file
src/smp.c.o:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/smp.c.o
.PHONY : src/smp.c.o
src/smp.i: src/smp.c.i
.PHONY : src/smp.i
# target to preprocess a source file
src/smp.c.i:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/smp.c.i
.PHONY : src/smp.c.i
src/smp.s: src/smp.c.s
.PHONY : src/smp.s
# target to generate assembly for a file
src/smp.c.s:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/smp.c.s
.PHONY : src/smp.c.s
src/spinlock.o: src/spinlock.c.o
.PHONY : src/spinlock.o
# target to build an object file
src/spinlock.c.o:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/spinlock.c.o
.PHONY : src/spinlock.c.o
src/spinlock.i: src/spinlock.c.i
.PHONY : src/spinlock.i
# target to preprocess a source file
src/spinlock.c.i:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/spinlock.c.i
.PHONY : src/spinlock.c.i
src/spinlock.s: src/spinlock.c.s
.PHONY : src/spinlock.s
# target to generate assembly for a file
src/spinlock.c.s:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.dir/src/spinlock.c.s
.PHONY : src/spinlock.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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/cmake-build && $(MAKE) $(MAKESILENT) -f kernel/CMakeFiles/kernel_obj.dir/build.make kernel/CMakeFiles/kernel_obj.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_bin"
@echo "... kernel_elf"
@echo "... kernel_obj"
@echo "... src/apic.o"
@echo "... src/apic.i"
@echo "... src/apic.s"
@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/smp.o"
@echo "... src/smp.i"
@echo "... src/smp.s"
@echo "... src/spinlock.o"
@echo "... src/spinlock.i"
@echo "... src/spinlock.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/cmake-build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@@ -1,257 +0,0 @@
# 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
# 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/cmake-build
#=============================================================================
# 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/cmake-build && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/cmake-build/CMakeFiles /home/runner/work/MetalOS/MetalOS/cmake-build/tests//CMakeFiles/progress.marks
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/MetalOS/MetalOS/cmake-build/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(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/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
tests/CMakeFiles/test_bootloader.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test_bootloader.dir/rule
.PHONY : tests/CMakeFiles/test_bootloader.dir/rule
# Convenience name for target.
test_bootloader: tests/CMakeFiles/test_bootloader.dir/rule
.PHONY : test_bootloader
# fast build rule for target.
test_bootloader/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test_bootloader.dir/build.make tests/CMakeFiles/test_bootloader.dir/build
.PHONY : test_bootloader/fast
# Convenience name for target.
tests/CMakeFiles/run_tests.dir/rule:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/run_tests.dir/rule
.PHONY : tests/CMakeFiles/run_tests.dir/rule
# Convenience name for target.
run_tests: tests/CMakeFiles/run_tests.dir/rule
.PHONY : run_tests
# fast build rule for target.
run_tests/fast:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/run_tests.dir/build.make tests/CMakeFiles/run_tests.dir/build
.PHONY : run_tests/fast
unit/test_bootloader.o: unit/test_bootloader.c.o
.PHONY : unit/test_bootloader.o
# target to build an object file
unit/test_bootloader.c.o:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test_bootloader.dir/build.make tests/CMakeFiles/test_bootloader.dir/unit/test_bootloader.c.o
.PHONY : unit/test_bootloader.c.o
unit/test_bootloader.i: unit/test_bootloader.c.i
.PHONY : unit/test_bootloader.i
# target to preprocess a source file
unit/test_bootloader.c.i:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test_bootloader.dir/build.make tests/CMakeFiles/test_bootloader.dir/unit/test_bootloader.c.i
.PHONY : unit/test_bootloader.c.i
unit/test_bootloader.s: unit/test_bootloader.c.s
.PHONY : unit/test_bootloader.s
# target to generate assembly for a file
unit/test_bootloader.c.s:
cd /home/runner/work/MetalOS/MetalOS/cmake-build && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test_bootloader.dir/build.make tests/CMakeFiles/test_bootloader.dir/unit/test_bootloader.c.s
.PHONY : unit/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 "... run_tests"
@echo "... test_bootloader"
@echo "... unit/test_bootloader.o"
@echo "... unit/test_bootloader.i"
@echo "... unit/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/cmake-build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@@ -1,79 +0,0 @@
# MetalOS Kernel Makefile
# Cross-compiler (x86_64 bare metal)
CC = x86_64-elf-gcc
AS = nasm
LD = x86_64-elf-ld
OBJCOPY = x86_64-elf-objcopy
# Check if cross-compiler exists, fallback to regular gcc
ifeq ($(shell which $(CC) 2>/dev/null),)
CC = gcc
LD = ld
OBJCOPY = objcopy
endif
# Directories
SRC_DIR = src
INC_DIR = include
BUILD_DIR = build
# Compiler flags
CFLAGS = -Wall -Wextra -Werror \
-ffreestanding -fno-stack-protector \
-mno-red-zone -mcmodel=large \
-I$(INC_DIR) \
-O2
# Assembler flags
ASFLAGS = -f elf64
# Linker flags
LDFLAGS = -nostdlib -T linker.ld
# Source files
C_SOURCES = $(shell find $(SRC_DIR) -name '*.c')
ASM_SOURCES = $(shell find $(SRC_DIR) -name '*.asm')
# Object files
C_OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(C_SOURCES))
ASM_OBJECTS = $(patsubst $(SRC_DIR)/%.asm,$(BUILD_DIR)/%.o,$(ASM_SOURCES))
OBJECTS = $(C_OBJECTS) $(ASM_OBJECTS)
# Output
TARGET = metalos.bin
.PHONY: all clean
all: $(BUILD_DIR) $(TARGET)
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
mkdir -p $(BUILD_DIR)/core
mkdir -p $(BUILD_DIR)/hal
mkdir -p $(BUILD_DIR)/drivers
mkdir -p $(BUILD_DIR)/syscall
# Compile C files
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $< -o $@
# Assemble ASM files
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.asm
@mkdir -p $(dir $@)
$(AS) $(ASFLAGS) $< -o $@
# Link kernel
$(TARGET): $(OBJECTS)
$(LD) $(LDFLAGS) $(OBJECTS) -o $@
clean:
rm -rf $(BUILD_DIR) $(TARGET)
# Print variables for debugging
info:
@echo "C Sources: $(C_SOURCES)"
@echo "ASM Sources: $(ASM_SOURCES)"
@echo "Objects: $(OBJECTS)"
@echo "Compiler: $(CC)"

View File

@@ -1,64 +0,0 @@
# MetalOS Test Suite Makefile
CC = gcc
CFLAGS = -Wall -Wextra -std=c11 -I../tests/include -I../kernel/include -I../bootloader/include
LDFLAGS =
# Test source files
TEST_SOURCES = $(wildcard unit/*.c)
TEST_BINARIES = $(TEST_SOURCES:.c=)
# Default target
.PHONY: all
all: $(TEST_BINARIES)
# Build each test binary
unit/%: unit/%.c include/test_framework.h
@echo "Building test: $@"
$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
# Run all tests
.PHONY: test
test: all
@echo ""
@echo "╔════════════════════════════════════════════╗"
@echo "║ Running MetalOS Test Suite ║"
@echo "╚════════════════════════════════════════════╝"
@echo ""
@for test in $(TEST_BINARIES); do \
./$$test || exit 1; \
done
@echo ""
@echo "╔════════════════════════════════════════════╗"
@echo "║ All Test Suites Passed ✓ ║"
@echo "╚════════════════════════════════════════════╝"
@echo ""
# Run tests with verbose output
.PHONY: test-verbose
test-verbose: all
@for test in $(TEST_BINARIES); do \
echo "Running $$test..."; \
./$$test -v; \
echo ""; \
done
# Clean test binaries
.PHONY: clean
clean:
@echo "Cleaning test binaries..."
@rm -f $(TEST_BINARIES)
@rm -f unit/*.o
@echo "Clean complete"
# Help target
.PHONY: help
help:
@echo "MetalOS Test Suite Makefile"
@echo ""
@echo "Targets:"
@echo " all - Build all test binaries"
@echo " test - Build and run all tests"
@echo " test-verbose - Run tests with verbose output"
@echo " clean - Remove test binaries"
@echo " help - Show this help message"