From ad0123d2368973927f536061b416cb7571aced63 Mon Sep 17 00:00:00 2001 From: "Anna (navi) Figueiredo Gomes" Date: Thu, 11 Jan 2024 17:13:02 +0100 Subject: add options to meson (and use fs module for linker script) Signed-off-by: Anna (navi) Figueiredo Gomes --- meson.build | 30 +++++++++++++++++++++++------- meson.options | 2 ++ 2 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 meson.options 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') -- cgit v1.2.3