actually maybe let's not just yet

This commit is contained in:
Dario48 2025-07-25 22:59:11 +02:00
parent 2dd27016f4
commit c8ce196828
4 changed files with 28 additions and 53 deletions

View file

@ -10,11 +10,11 @@ pub fn build(b: *std.Build) void {
.outputname = "bootloader.bin",
.flags = &.{"-f bin"},
});
//const kernel = addNasmFiles(b, AddNasmFilesOptions{
// .filename = "src/kernel.asm",
// .outputname = "kernel.bin",
// .flags = &.{"-f bin"},
//});
const kernel = addNasmFiles(b, AddNasmFilesOptions{
.filename = "src/kernel.asm",
.outputname = "kernel.bin",
.flags = &.{"-f bin"},
});
const target = b.standardTargetOptions(.{
.default_target = .{
@ -23,22 +23,10 @@ pub fn build(b: *std.Build) void {
},
});
const kernel_mod = b.addModule("kernel", .{
.root_source_file = b.path("src/kernel.zig"),
.target = target,
});
const kernel = b.addExecutable(.{
.root_module = kernel_mod,
.linkage = .static,
.name = "kernel",
});
const floppy = createFloppy(b, "main_floppy.img");
formatFloppyFat12(b, floppy);
var installToFloppy = installImgToFloppy(b, floppy, bootloader, &.{
NamedFile{ .file = kernel.getEmittedBin(), .name = "::kernel.bin" },
NamedFile{ .file = kernel, .name = "::kernel.bin" },
NamedFile{ .file = b.path("src/reference_implementations/test.txt"), .name = "::test.txt" },
});
@ -91,16 +79,16 @@ fn createFloppy(b: *std.Build, name: []const u8) LazyPath {
return Floppy;
}
fn formatFloppyFat12(b: *std.Build, floppy: LazyPath) void {
fn installImgToFloppy(b: *std.Build, floppy: LazyPath, bootloader: LazyPath, additional_files: []const NamedFile) *std.Build.Step.Run {
const mkfs = b.addSystemCommand(&.{ "mkfs.fat", "-F12", "-nNBOS" });
mkfs.addFileArg(floppy);
}
mkfs.has_side_effects = true;
fn installImgToFloppy(b: *std.Build, floppy: LazyPath, bootloader: LazyPath, additional_files: []const NamedFile) *std.Build.Step.Run {
const dd = b.addSystemCommand(&.{"dd"});
dd.addPrefixedFileArg("if=", bootloader);
dd.addPrefixedFileArg("of=", floppy);
dd.addArg("conv=notrunc");
dd.step.dependOn(&mkfs.step);
var last_step = dd;
for (additional_files) |f| {