Guest User

Untitled

a guest
Apr 29th, 2023
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. const std = @import("std");
  2.  
  3. pub fn build(b: *std.Build) void {
  4. const target = std.zig.CrossTarget{
  5. .cpu_arch = .riscv64,
  6. .os_tag = .freestanding,
  7. };
  8.  
  9. const optimize = b.standardOptimizeOption(.{});
  10.  
  11. const exe = b.addExecutable(.{
  12. .name = "kernel",
  13. .root_source_file = .{ .path = "kernel/main.c" },
  14. .target = target,
  15. .optimize = optimize,
  16. });
  17.  
  18. exe.setLinkerScriptPath("kernel/kernel.ld");
  19. exe.addIncludePath("kernel");
  20. exe.addCSourceFiles(&.{
  21. "kernel/bio.c",
  22. "kernel/console.c",
  23. "kernel/exec.c",
  24. "kernel/file.c",
  25. "kernel/fs.c",
  26. "kernel/kalloc.c",
  27. "kernel/log.c",
  28. "kernel/main.c",
  29. "kernel/pipe.c",
  30. "kernel/plic.c",
  31. "kernel/printf.c",
  32. "kernel/proc.c",
  33. "kernel/ramdisk.c",
  34. "kernel/sleeplock.c",
  35. "kernel/spinlock.c",
  36. "kernel/start.c",
  37. "kernel/string.c",
  38. "kernel/syscall.c",
  39. "kernel/sysfile.c",
  40. "kernel/sysproc.c",
  41. "kernel/trap.c",
  42. "kernel/uart.c",
  43. "kernel/virtio_disk.c",
  44. "kernel/vm.c",
  45. }, &.{
  46. "-Wall",
  47. "-Werror",
  48. "-O",
  49. "-fno-omit-frame-pointer",
  50. "-ggdb",
  51. "-gdwarf-2",
  52. "-MD",
  53. "-mcmodel=medany",
  54. "-ffreestanding",
  55. "-fno-common",
  56. "-nostdlib",
  57. "-mno-relax",
  58. "-fno-pie",
  59. "-no-pie",
  60. });
  61.  
  62. b.installArtifact(exe);
  63.  
  64. const run_cmd = b.addRunArtifact(exe);
  65.  
  66. run_cmd.step.dependOn(b.getInstallStep());
  67.  
  68. if (b.args) |args| {
  69. run_cmd.addArgs(args);
  70. }
  71.  
  72. const run_step = b.step("run", "Run the app");
  73. run_step.dependOn(&run_cmd.step);
  74.  
  75. const unit_tests = b.addTest(.{
  76. .root_source_file = .{ .path = "src/main.zig" },
  77. .target = target,
  78. .optimize = optimize,
  79. });
  80.  
  81. const run_unit_tests = b.addRunArtifact(unit_tests);
  82.  
  83. const test_step = b.step("test", "Run unit tests");
  84. test_step.dependOn(&run_unit_tests.step);
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment