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/
kernel/target/
bin/

View File

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

View File

@ -1,5 +1,5 @@
[package]
name = "kernel"
name = "mxrox_kernel"
version = "0.1.0"
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
cp 'src/grub.cfg' target/iso/boot/grub
cp '$<' target/iso/boot
grub-mkrescue -o '$@' target/iso
bin/main.iso: bin/kernel.elf bin_dir
cp 'grub.cfg' bin/iso/boot/grub
cp '$<' bin/iso/boot
grub-mkrescue -o '$@' bin/iso
target/boot.o: src/boot.s target_dir
bin/boot.o: boot.s bin_dir
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 $^
target/kernel.o: kernel/ target_dir
cd kernel && cargo build --release
cp kernel/target/x86-unknown-bare_metal/release/deps/kernel-*.o target/kernel.o
bin/kernel.o: bin_dir
rustup override set nightly
cargo build --release
cp target/x86-unknown-bare_metal/release/deps/mxrox_kernel-*.o $@
target_dir:
mkdir -p target
mkdir -p target/iso
mkdir -p target/iso/lib
mkdir -p target/iso/boot
mkdir -p target/iso/boot/grub
bin_dir:
mkdir -p bin
mkdir -p bin/iso
mkdir -p bin/iso/lib
mkdir -p bin/iso/boot
mkdir -p bin/iso/boot/grub
build: target/main.iso
build: bin/main.iso
clean:
rm -rf bin
rm -rf target
rm -rf kernel/target
rm -rf kernel/Cargo.lock
mkdir target
rm -rf Cargo.lock
mkdir bin
run-kernel: target/kernel.elf
run-kernel: bin/kernel.elf
qemu-system-i386 -kernel '$<'
run: target/main.iso
run: bin/main.iso
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" # Генерация объектного файла
]