refactoring reformating or idk how it is named properly

This commit is contained in:
MeexReay 2025-01-28 00:41:21 +03:00
parent 5a986327f8
commit 60ba33753f
12 changed files with 41 additions and 40 deletions

15
.cargo/config.toml Normal file
View File

@ -0,0 +1,15 @@
[unstable]
build-std = ["core", "compiler_builtins"]
build-std-features = ["compiler-builtins-mem"]
[build]
target = "x86-unknown-bare_metal.json"
[target.x86-unknown-bare_metal]
rustflags = [
"-C", "opt-level=s",
"-C", "debuginfo=0",
"-C", "relocation-model=static",
"--emit=obj"
]

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
target/ target/
kernel/target/ bin/

View File

@ -3,5 +3,5 @@
version = 4 version = 4
[[package]] [[package]]
name = "kernel" name = "mxrox_kernel"
version = "0.1.0" version = "0.1.0"

View File

@ -1,5 +1,5 @@
[package] [package]
name = "kernel" name = "mxrox_kernel"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"

View File

@ -1,37 +1,38 @@
.PHONY: clean run run-iso target_dir .PHONY: clean run run-iso bin_dir
target/main.iso: target/kernel.elf target_dir bin/main.iso: bin/kernel.elf bin_dir
cp 'src/grub.cfg' target/iso/boot/grub cp 'grub.cfg' bin/iso/boot/grub
cp '$<' target/iso/boot cp '$<' bin/iso/boot
grub-mkrescue -o '$@' target/iso grub-mkrescue -o '$@' bin/iso
target/boot.o: src/boot.s target_dir bin/boot.o: boot.s bin_dir
nasm -f elf32 '$<' -o '$@' nasm -f elf32 '$<' -o '$@'
target/kernel.elf: src/linker.ld target/boot.o target/kernel.o bin/kernel.elf: linker.ld bin/boot.o bin/kernel.o
i686-elf-ld -m elf_i386 -nostdlib -o '$@' -T $^ i686-elf-ld -m elf_i386 -nostdlib -o '$@' -T $^
target/kernel.o: kernel/ target_dir bin/kernel.o: bin_dir
cd kernel && cargo build --release rustup override set nightly
cp kernel/target/x86-unknown-bare_metal/release/deps/kernel-*.o target/kernel.o cargo build --release
cp target/x86-unknown-bare_metal/release/deps/mxrox_kernel-*.o $@
target_dir: bin_dir:
mkdir -p target mkdir -p bin
mkdir -p target/iso mkdir -p bin/iso
mkdir -p target/iso/lib mkdir -p bin/iso/lib
mkdir -p target/iso/boot mkdir -p bin/iso/boot
mkdir -p target/iso/boot/grub mkdir -p bin/iso/boot/grub
build: target/main.iso build: bin/main.iso
clean: clean:
rm -rf bin
rm -rf target rm -rf target
rm -rf kernel/target rm -rf Cargo.lock
rm -rf kernel/Cargo.lock mkdir bin
mkdir target
run-kernel: target/kernel.elf run-kernel: bin/kernel.elf
qemu-system-i386 -kernel '$<' qemu-system-i386 -kernel '$<'
run: target/main.iso run: bin/main.iso
qemu-system-i386 -cdrom '$<' qemu-system-i386 -cdrom '$<'

View File

View File

@ -1,15 +0,0 @@
[unstable]
build-std = ["core", "compiler_builtins"]
build-std-features = ["compiler-builtins-mem"]
[build]
target = "x86-unknown-bare_metal.json"
[target.x86-unknown-bare_metal]
rustflags = [
"-C", "opt-level=s", # Эквивалент GCC -Os
"-C", "debuginfo=0", # Убирает отладочную информацию
"-C", "relocation-model=static", # Для freestanding
"--emit=obj" # Генерация объектного файла
]