mirror of
https://github.com/johndoe6345789/MetalOS.git
synced 2026-04-24 13:45:02 +00:00
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:
42
.github/workflows/qemu-test.yml
vendored
42
.github/workflows/qemu-test.yml
vendored
@@ -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
|
||||
|
||||
35
.github/workflows/release.yml
vendored
35
.github/workflows/release.yml
vendored
@@ -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
|
||||
|
||||
|
||||
16
.github/workflows/unit-tests.yml
vendored
16
.github/workflows/unit-tests.yml
vendored
@@ -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
2
.gitignore
vendored
@@ -18,6 +18,8 @@
|
||||
# Build directories
|
||||
build/
|
||||
build-*/
|
||||
cmake-build/
|
||||
cmake-build-*/
|
||||
bootloader/build/
|
||||
kernel/build/
|
||||
_codeql_build_dir/
|
||||
|
||||
@@ -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
144
Makefile
@@ -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
|
||||
28
README.md
28
README.md
@@ -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.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
test_bootloader 1 0.00139881
|
||||
---
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)"
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user