diff options
| author | wires <wires@noreply.wires.systems> | 2025-03-19 17:09:41 -0400 |
|---|---|---|
| committer | wires <wires@noreply.wires.systems> | 2025-03-19 17:09:41 -0400 |
| commit | 8466e9b4d2fbca85d53d8dadc87914b4766c43de (patch) | |
| tree | 99a0d7a23e805f4ad3e30814ee9a09ebb00ae08b /build.zig | |
| download | zosimos-8466e9b4d2fbca85d53d8dadc87914b4766c43de.tar.gz | |
initial commit
Diffstat (limited to 'build.zig')
| -rw-r--r-- | build.zig | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/build.zig b/build.zig new file mode 100644 index 0000000..2c55128 --- /dev/null +++ b/build.zig @@ -0,0 +1,47 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.resolveTargetQuery(.{ + .cpu_arch = .aarch64, + .os_tag = .freestanding, + }); + + const optimize = b.standardOptimizeOption(.{}); + + const kernel = b.addExecutable(.{ + .name = "kernel.elf", + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }); + kernel.setLinkerScript(b.path("src/Link.ld")); + kernel.addIncludePath(b.path("include")); + kernel.addAssemblyFile(b.path("src/startup.s")); + + b.installArtifact(kernel); + + const kernel_bin = b.addObjCopy(kernel.getEmittedBin(), .{ + .format = .bin, + .basename = "kernel.img", + }); + const install_kernel = b.addInstallFile( + kernel_bin.getOutput(), + "boot/kernel8.img", + ); + b.getInstallStep().dependOn(&install_kernel.step); + + const firmware = b.dependency("rpi_firmware", .{}); + b.installDirectory(.{ + .source_dir = firmware.path("boot"), + .install_dir = .prefix, + .install_subdir = "boot", + .include_extensions = &.{ + "start4.elf", + "start4db.elf", + "fixup4.dat", + "bcm2711-rpi-4-b.dtb", + }, + }); + + b.installFile("config.txt", "boot/config.txt"); +} |