diff options
author | Anna (navi) Figueiredo Gomes <navi@vlhl.dev> | 2024-01-07 20:19:20 +0100 |
---|---|---|
committer | Anna (navi) Figueiredo Gomes <navi@vlhl.dev> | 2024-01-07 20:19:24 +0100 |
commit | 0ee22520f50b4f006a554c79dd0e5f1d5d780d4d (patch) | |
tree | 0345608543d423f376909614700da4f11ace1b28 /meson.build | |
parent | 30d6e8f850d2fe26fffdeef0c38fc627ef8bab9a (diff) |
replace make with meson
Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..76539ce --- /dev/null +++ b/meson.build @@ -0,0 +1,45 @@ +project('nrvn', ['c', 'nasm'], + version : '0.1', + default_options : [ + 'warning_level=3', + 'b_pie=false', + 'b_staticpic=false' + ]) + +if not meson.is_cross_build() + error('must be invoked with "meson setup --cross-file=toolchain.txt"') +endif + +files = [ + 'src/asm/boot.asm', + 'src/asm/long.asm', + 'src/nrvn.c', + 'src/vga.c', + 'src/idt.c', + 'src/mem.c', + 'src/acpi.c', + 'src/ps2.c', + 'src/pic.c', + 'src/memory.c' +] + +ld_args = [ + '-ffreestanding', + '-nostdlib', + '-T', + join_paths(meson.current_source_dir(), 'util', 'linker.ld') +] + +kernel = executable('nrvn', files, + c_args: ['-ffreestanding'], + nasm_args: ['-felf64'], + link_args: ld_args, + include_directories: 'include/') + + +iso = custom_target('iso', + input: [import('fs').copyfile('util/grub.cfg'), kernel], + output: 'nrvn.iso', + command: ['util/build_iso.sh', '@PRIVATE_DIR@', '@INPUT@', '@OUTPUT@']) + +run_target('run', command: [find_program('qemu'), '-cdrom', iso, '-m', '2G']) |