Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const std = @import("std");
- pub fn build(b: *std.Build) void {
- const target = std.zig.CrossTarget{
- .cpu_arch = .riscv64,
- .os_tag = .freestanding,
- };
- const optimize = b.standardOptimizeOption(.{});
- const exe = b.addExecutable(.{
- .name = "kernel",
- .root_source_file = .{ .path = "kernel/main.c" },
- .target = target,
- .optimize = optimize,
- });
- exe.setLinkerScriptPath("kernel/kernel.ld");
- exe.addIncludePath("kernel");
- exe.addCSourceFiles(&.{
- "kernel/bio.c",
- "kernel/console.c",
- "kernel/exec.c",
- "kernel/file.c",
- "kernel/fs.c",
- "kernel/kalloc.c",
- "kernel/log.c",
- "kernel/main.c",
- "kernel/pipe.c",
- "kernel/plic.c",
- "kernel/printf.c",
- "kernel/proc.c",
- "kernel/ramdisk.c",
- "kernel/sleeplock.c",
- "kernel/spinlock.c",
- "kernel/start.c",
- "kernel/string.c",
- "kernel/syscall.c",
- "kernel/sysfile.c",
- "kernel/sysproc.c",
- "kernel/trap.c",
- "kernel/uart.c",
- "kernel/virtio_disk.c",
- "kernel/vm.c",
- }, &.{
- "-Wall",
- "-Werror",
- "-O",
- "-fno-omit-frame-pointer",
- "-ggdb",
- "-gdwarf-2",
- "-MD",
- "-mcmodel=medany",
- "-ffreestanding",
- "-fno-common",
- "-nostdlib",
- "-mno-relax",
- "-fno-pie",
- "-no-pie",
- });
- b.installArtifact(exe);
- const run_cmd = b.addRunArtifact(exe);
- run_cmd.step.dependOn(b.getInstallStep());
- if (b.args) |args| {
- run_cmd.addArgs(args);
- }
- const run_step = b.step("run", "Run the app");
- run_step.dependOn(&run_cmd.step);
- const unit_tests = b.addTest(.{
- .root_source_file = .{ .path = "src/main.zig" },
- .target = target,
- .optimize = optimize,
- });
- const run_unit_tests = b.addRunArtifact(unit_tests);
- const test_step = b.step("test", "Run unit tests");
- test_step.dependOn(&run_unit_tests.step);
- }
Advertisement
Add Comment
Please, Sign In to add comment