X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/28c176b668c841a3b7fb093faccf0efa39257603..c043fa535514a76091be87a45ad472a505f9dd33:/lunaix-os/arch/x86/LBuild diff --git a/lunaix-os/arch/x86/LBuild b/lunaix-os/arch/x86/LBuild index 7d50ca3..cd34328 100644 --- a/lunaix-os/arch/x86/LBuild +++ b/lunaix-os/arch/x86/LBuild @@ -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