Rewrite the lunabuild toolchain with enhanced feature (#60)
[lunaix-os.git] / lunaix-os / arch / x86 / LBuild
index 7d50ca31978b9d28f2ea45e9bb488814b02af6e7..cd3432807938f3c9a338b341084119712ce206ff 100644 (file)
@@ -1,28 +1,26 @@
-use("hal")
+from . import hal
 
-sources([
+src.c += (
     "exceptions/interrupts.c",
     "exceptions/isrdef.c",
-    "exceptions/intr_routines.c",
-    "exceptions/isrm.c",
     "exceptions/intrhnds.S",
-])
+)
 
-sources([
+src.c += (
     "boot/mb_parser.c",
     "boot/kpt_setup.c",
-    "boot/boot_helper.c"
-])
+    "boot/boot_helper.c",
+)
 
-sources([
+src.c += (
     "mm/fault.c",
     "mm/tlb.c",
     "mm/pmm.c",
     "mm/gdt.c",
     "mm/vmutils.c"
-])
+)
 
-sources([
+src.c += (
     "klib/fast_crc.c",
     "klib/fast_str.c",
     "exec/exec.c",
@@ -31,12 +29,13 @@ sources([
     "gdbstub.c",
     "trace.c",
     "hart.c",
-    "failsafe.S"
-])
+    "failsafe.S",
+    "syscall_lut.S"
+)
 
-sources({
-    config("arch"): {
-        "x86_64": [
+match config.arch:
+    case "x86_64":
+        src.c += (
             "hart64.c",
             "syscall64.S",
             "exceptions/interrupt64.S",
@@ -45,8 +44,9 @@ sources({
             "boot/x86_64/prologue64.S",
             "boot/x86_64/kremap64.c",
             "exec/elf64.c"
-        ],
-        "i386": [
+        )
+    case "i386":
+        src.c += (
             "hart32.c",
             "syscall32.S",
             "exceptions/interrupt32.S",
@@ -55,28 +55,21 @@ sources({
             "boot/i386/prologue32.S",
             "boot/i386/kremap32.c",
             "exec/elf32.c"
-        ]
-    }
-})
+        )
 
-headers([
-    "includes"
-])
+src.h += "includes"
 
-
-if config("arch") == "x86_64":
-    compile_opts([
+if config.arch == "x86_64":
+    flag.cc += (
         "-m64", 
         "-fno-unwind-tables", 
         "-fno-asynchronous-unwind-tables",
         "-mcmodel=large"
-    ])
-    linking_opts([
-        "-m64",
-    ])
+    )
+    flag.ld += "-m64"
 else:
-    compile_opts("-m32")
-    linking_opts("-m32")
+    flag.cc += "-m32"
+    flag.ld += "-m32"
 
-if not config("x86_enable_sse_feature"):
-    compile_opts("-mno-sse")
\ No newline at end of file
+if not config.x86_enable_sse_feature:
+    flag.cc += "-mno-sse"
\ No newline at end of file