diff options
| author | salmonik <salmonik@tuta.io> | 2026-07-31 02:58:31 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-07-31 02:58:31 +0200 |
| commit | 6a5c32fa6ae8ec34e3e5b44d7e5a78ded8fe729b (patch) | |
| tree | ed59a5bd59a94b3a731b28c68c507f18afc44b0b /Makefile | |
| parent | auto-version all strings from Cargo.toml via env!("CARGO_PKG_VERSION") (diff) | |
| download | rs-dos-6a5c32fa6ae8ec34e3e5b44d7e5a78ded8fe729b.tar.gz rs-dos-6a5c32fa6ae8ec34e3e5b44d7e5a78ded8fe729b.zip | |
restructure: rsnix kernel + shell crate + rsdos entry point
Architecture:
rs-dos/ (workspace root, was raisernics/)
├── rsnix/ — kernel lib crate (uefi, serial, gop, ps2, interrupts, memory)
├── shell/ — shell lib crate (prompt, commands, line input)
├── rsdos/ — binary crate (efi_main, init, panic handler)
└── rsboot/ — future git submodule
No functional changes — boots to shell prompt identically.
Version auto-pulled from Cargo.toml via env!("CARGO_PKG_VERSION").
Diffstat (limited to '')
| -rw-r--r-- | Makefile | 22 |
1 files changed, 9 insertions, 13 deletions
| @@ -4,10 +4,10 @@ export TARGET=x86_64-unknown-uefi | |||
| 4 | export PROFILE=debug | 4 | export PROFILE=debug |
| 5 | export OUT_DIR=target/$(TARGET)/$(PROFILE) | 5 | export OUT_DIR=target/$(TARGET)/$(PROFILE) |
| 6 | export ESP_DIR=esp | 6 | export ESP_DIR=esp |
| 7 | export KERNEL=$(OUT_DIR)/raisernics.efi | 7 | export KERNEL=$(OUT_DIR)/rsdos.efi |
| 8 | export BZIMAGE=$(ESP_DIR)/bzImage | 8 | export BZIMAGE=$(ESP_DIR)/bzImage |
| 9 | export INITRD=$(ESP_DIR)/initramfs.cpio.gz | 9 | export INITRD=$(ESP_DIR)/initramfs.cpio.gz |
| 10 | export BOOTLOADER=../rng/rsbl/../build/bootloader/BOOTX64.EFI | 10 | export BOOTLOADER=rsboot/rsboot.efi |
| 11 | export OVMF=/usr/share/edk2/x64/OVMF.4m.fd | 11 | export OVMF=/usr/share/edk2/x64/OVMF.4m.fd |
| 12 | export BOOT_EFI=$(ESP_DIR)/EFI/BOOT/BOOTX64.EFI | 12 | export BOOT_EFI=$(ESP_DIR)/EFI/BOOT/BOOTX64.EFI |
| 13 | 13 | ||
| @@ -15,7 +15,7 @@ export BOOT_EFI=$(ESP_DIR)/EFI/BOOT/BOOTX64.EFI | |||
| 15 | 15 | ||
| 16 | # ---- Build --------------------------------------------------------------- | 16 | # ---- Build --------------------------------------------------------------- |
| 17 | 17 | ||
| 18 | all: $(BZIMAGE) $(INITRD) $(BOOT_EFI) | 18 | all: $(BZIMAGE) $(INITRD) |
| 19 | 19 | ||
| 20 | release: PROFILE=release | 20 | release: PROFILE=release |
| 21 | release: export PROFILE=release | 21 | release: export PROFILE=release |
| @@ -26,16 +26,12 @@ release: all | |||
| 26 | # shellcheck disable=SC2034 | 26 | # shellcheck disable=SC2034 |
| 27 | CARGO_FLAGS= | 27 | CARGO_FLAGS= |
| 28 | 28 | ||
| 29 | $(OUT_DIR)/raisernics.efi: $(shell find src -name '*.rs') Cargo.toml build.rs | 29 | $(OUT_DIR)/rsdos.efi: $(shell find rsnix shell rsdos -name '*.rs') Cargo.toml rsnix/Cargo.toml shell/Cargo.toml rsdos/Cargo.toml |
| 30 | cargo build --target $(TARGET) $(CARGO_FLAGS) | 30 | cargo build --package rsdos --target $(TARGET) $(CARGO_FLAGS) |
| 31 | 31 | ||
| 32 | $(BZIMAGE): $(KERNEL) | $(ESP_DIR) | 32 | $(BZIMAGE): $(KERNEL) | $(ESP_DIR) |
| 33 | cp "$<" "$@" | 33 | cp "$<" "$@" |
| 34 | 34 | ||
| 35 | $(BOOT_EFI): $(BOOTLOADER) | $(ESP_DIR) | ||
| 36 | mkdir -p $(ESP_DIR)/EFI/BOOT | ||
| 37 | cp "$<" "$@" | ||
| 38 | |||
| 39 | $(ESP_DIR): | 35 | $(ESP_DIR): |
| 40 | mkdir -p $(ESP_DIR) | 36 | mkdir -p $(ESP_DIR) |
| 41 | 37 | ||
| @@ -95,7 +91,7 @@ run-image: all | |||
| 95 | # ---- Disk image ---------------------------------------------------------- | 91 | # ---- Disk image ---------------------------------------------------------- |
| 96 | 92 | ||
| 97 | image: all | 93 | image: all |
| 98 | ./tools/boot-image.sh raisernics.img | 94 | ./tools/boot-image.sh rs-dos.img |
| 99 | 95 | ||
| 100 | # ---- Utilities ----------------------------------------------------------- | 96 | # ---- Utilities ----------------------------------------------------------- |
| 101 | 97 | ||
| @@ -104,14 +100,14 @@ fmt: | |||
| 104 | 100 | ||
| 105 | clean: | 101 | clean: |
| 106 | cargo clean | 102 | cargo clean |
| 107 | rm -rf $(ESP_DIR) raisernics.img | 103 | rm -rf $(ESP_DIR) rs-dos.img |
| 108 | 104 | ||
| 109 | help: | 105 | help: |
| 110 | @echo "raisernics — Make targets" | 106 | @echo "rs-dos — Make targets" |
| 111 | @echo "" | 107 | @echo "" |
| 112 | @echo " make build kernel + ESP (default)" | 108 | @echo " make build kernel + ESP (default)" |
| 113 | @echo " make release build with --release (smaller binary)" | 109 | @echo " make release build with --release (smaller binary)" |
| 114 | @echo " make image create bootable USB image (raisernics.img)" | 110 | @echo " make image create bootable USB image (rs-dos.img)" |
| 115 | @echo " make run QEMU serial console (no graphics)" | 111 | @echo " make run QEMU serial console (no graphics)" |
| 116 | @echo " make run-gui QEMU with graphical window (GOP/PS2)" | 112 | @echo " make run-gui QEMU with graphical window (GOP/PS2)" |
| 117 | @echo " make debug QEMU + GDB stub on :1234" | 113 | @echo " make debug QEMU + GDB stub on :1234" |
