refactoring reformating or idk how it is named properly
This commit is contained in:
parent
5a986327f8
commit
60ba33753f
15
.cargo/config.toml
Normal file
15
.cargo/config.toml
Normal 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
2
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
target/
|
target/
|
||||||
kernel/target/
|
bin/
|
2
kernel/Cargo.lock → Cargo.lock
generated
2
kernel/Cargo.lock → Cargo.lock
generated
@ -3,5 +3,5 @@
|
|||||||
version = 4
|
version = 4
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kernel"
|
name = "mxrox_kernel"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
@ -1,5 +1,5 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kernel"
|
name = "mxrox_kernel"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
45
Makefile
45
Makefile
@ -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 '$<'
|
@ -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" # Генерация объектного файла
|
|
||||||
]
|
|
Loading…
Reference in New Issue
Block a user