summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnna (navi) Figueiredo Gomes <navi@vlhl.dev>2024-01-11 17:13:02 +0100
committerAnna (navi) Figueiredo Gomes <navi@vlhl.dev>2024-01-11 17:29:37 +0100
commitad0123d2368973927f536061b416cb7571aced63 (patch)
tree0ba170f056c91e03e1eed9ec9240da8cc8d97bae
parent0ee22520f50b4f006a554c79dd0e5f1d5d780d4d (diff)
add options to meson (and use fs module for linker script)
Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
-rw-r--r--meson.build30
-rw-r--r--meson.options2
2 files changed, 25 insertions, 7 deletions
diff --git a/meson.build b/meson.build
index 76539ce..8f56ec0 100644
--- a/meson.build
+++ b/meson.build
@@ -10,24 +10,29 @@ if not meson.is_cross_build()
error('must be invoked with "meson setup --cross-file=toolchain.txt"')
endif
+fs = import('fs')
+linker_script = fs.copyfile('util/linker.ld')
+
files = [
'src/asm/boot.asm',
'src/asm/long.asm',
'src/nrvn.c',
- 'src/vga.c',
+ 'src/acpi.c',
'src/idt.c',
'src/mem.c',
- 'src/acpi.c',
- 'src/ps2.c',
+ 'src/memory.c',
+ 'src/pci.c',
'src/pic.c',
- 'src/memory.c'
+ 'src/ps2.c',
+ 'src/vga.c',
+ linker_script
]
ld_args = [
'-ffreestanding',
'-nostdlib',
'-T',
- join_paths(meson.current_source_dir(), 'util', 'linker.ld')
+ linker_script.full_path()
]
kernel = executable('nrvn', files,
@@ -38,8 +43,19 @@ kernel = executable('nrvn', files,
iso = custom_target('iso',
- input: [import('fs').copyfile('util/grub.cfg'), kernel],
+ input: [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'])
+qemu_args = [
+ '-cdrom', iso,
+ '-m', get_option('ram'),
+]
+
+qemu_kvm = []
+if get_option('kvm')
+ qemu_kvm += '-enable-kvm'
+endif
+
+run_target('run', command: [find_program('qemu'), qemu_args, qemu_kvm])
+run_target('run-gdb', command: [find_program('qemu'), qemu_args, '-s', '-S'])
diff --git a/meson.options b/meson.options
new file mode 100644
index 0000000..9d3e751
--- /dev/null
+++ b/meson.options
@@ -0,0 +1,2 @@
+option('ram', type: 'string', value: '512M', description: 'how much ram to give qemu')
+option('kvm', type: 'boolean', value: 'true', description: 'run qemu with -enable-kvm')