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"); }