actually maybe let's not just yet
This commit is contained in:
parent
2dd27016f4
commit
c8ce196828
4 changed files with 28 additions and 53 deletions
30
build.zig
30
build.zig
|
@ -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| {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue