32 lines
1 KiB
Zig
32 lines
1 KiB
Zig
pub fn build(b: *Build) !void {
|
|
const optimize = std.builtin.OptimizeMode.Debug;
|
|
const target = b.resolveTargetQuery(.{
|
|
.cpu_arch = .x86,
|
|
.os_tag = .freestanding,
|
|
.abi = .none,
|
|
});
|
|
const exe = b.addExecutable(.{
|
|
.root_source_file = b.path("kernel.zig"),
|
|
.name = "multiboot",
|
|
.target = target,
|
|
.optimize = optimize,
|
|
});
|
|
exe.addCSourceFile(.{
|
|
.file = b.path("boot.s"),
|
|
});
|
|
exe.setLinkerScript(b.path("linker.ld"));
|
|
|
|
const iso_dir = b.addWriteFiles();
|
|
_ = iso_dir.addCopyFile(exe.getEmittedBin(), "boot/os.bin");
|
|
_ = iso_dir.addCopyFile(b.path("grub.cfg"), "boot/grub/grub.cfg");
|
|
const make_iso = b.addSystemCommand(&.{"i686-elf-grub-mkrescue"});
|
|
make_iso.addArg("-o");
|
|
const iso = make_iso.addOutputFileArg("lab.iso");
|
|
make_iso.addDirectoryArg(iso_dir.getDirectory());
|
|
|
|
b.getInstallStep()
|
|
.dependOn(&b.addInstallFile(iso, "lab.iso").step);
|
|
}
|
|
|
|
const std = @import("std");
|
|
const Build = std.Build;
|