Merge pull request #63 from Oichkatzelesfrettschen/eirikr/remove-netbsd-code-and-implement-meson-build-system

Introduce Meson build skeleton
This commit is contained in:
Eirikr Hinngart 2025-06-03 19:42:49 -07:00 committed by GitHub
commit 5b50529f8e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 146 additions and 0 deletions

10
meson.build Normal file
View File

@ -0,0 +1,10 @@
# Meson build configuration for the MINIX project
# The kernel sources are written in C11.
project(
'minix',
'c',
default_options: ['c_std=c11']
)
# Add the MINIX source directory to the build.
subdir('minix')

9
meson_options.txt Normal file
View File

@ -0,0 +1,9 @@
# Meson build options for MINIX
# Select the target architecture for the build.
option(
'arch',
type : 'string',
value : 'i386',
description : 'Target architecture'
)

122
minix/kernel/meson.build Normal file
View File

@ -0,0 +1,122 @@
# Meson build file for the MINIX kernel
#
# The kernel is built as a static library. The sources are
# grouped into core, system call handlers, and architecture-
# specific files for the i386 port.
# Source files for the core kernel implementation
kernel_sources = files(
'clock.c',
'cpulocals.c',
'debug.c',
'interrupt.c',
'main.c',
'proc.c',
'profile.c',
'smp.c',
'system.c',
'table.c',
'usermapped_data.c',
'utility.c',
'watchdog.c'
)
# System call handler sources
system_sources = files(
'system/do_abort.c',
'system/do_clear.c',
'system/do_copy.c',
'system/do_devio.c',
'system/do_diagctl.c',
'system/do_endksig.c',
'system/do_exec.c',
'system/do_exit.c',
'system/do_fork.c',
'system/do_getinfo.c',
'system/do_getksig.c',
'system/do_irqctl.c',
'system/do_kill.c',
'system/do_mcontext.c',
'system/do_memset.c',
'system/do_privctl.c',
'system/do_runctl.c',
'system/do_safecopy.c',
'system/do_safememset.c',
'system/do_schedctl.c',
'system/do_schedule.c',
'system/do_setalarm.c',
'system/do_setgrant.c',
'system/do_settime.c',
'system/do_sigreturn.c',
'system/do_sigsend.c',
'system/do_sprofile.c',
'system/do_statectl.c',
'system/do_stime.c',
'system/do_times.c',
'system/do_trace.c',
'system/do_umap.c',
'system/do_umap_remote.c',
'system/do_update.c',
'system/do_vdevio.c',
'system/do_vmctl.c',
'system/do_vtimer.c',
'system/do_vumap.c',
)
# Architecture-specific sources for the i386 port
# Only the i386 architecture is currently supported by the Meson build.
arch_i386_sources = files(
'arch/i386/acpi.c',
'arch/i386/apic.c',
'arch/i386/apic_asm.S',
'arch/i386/arch_clock.c',
'arch/i386/arch_do_vmctl.c',
'arch/i386/arch_reset.c',
'arch/i386/arch_smp.c',
'arch/i386/arch_system.c',
'arch/i386/arch_watchdog.c',
'arch/i386/breakpoints.c',
'arch/i386/debugreg.S',
'arch/i386/direct_tty_utils.c',
'arch/i386/do_iopenable.c',
'arch/i386/do_readbios.c',
'arch/i386/do_sdevio.c',
'arch/i386/exception.c',
'arch/i386/head.S',
'arch/i386/i8259.c',
'arch/i386/io_inb.S',
'arch/i386/io_inl.S',
'arch/i386/io_intr.S',
'arch/i386/io_inw.S',
'arch/i386/io_outb.S',
'arch/i386/io_outl.S',
'arch/i386/io_outw.S',
'arch/i386/klib.S',
'arch/i386/memory.c',
'arch/i386/mpx.S',
'arch/i386/oxpcie.c',
'arch/i386/pg_utils.c',
'arch/i386/pre_init.c',
'arch/i386/protect.c',
'arch/i386/trampoline.S',
'arch/i386/usermapped_data_arch.c',
'arch/i386/usermapped_glo_ipc.S',
)
# Combine the different source groups into the final list
all_kernel_sources = kernel_sources + system_sources + arch_i386_sources
# Build the kernel as a static library.
static_library(
'minixkernel',
all_kernel_sources,
include_directories: include_directories(
'.',
'arch/i386',
'system',
'..',
'../include',
'arch/i386/include',
'../include/arch/i386/include'
)
)

5
minix/meson.build Normal file
View File

@ -0,0 +1,5 @@
# Meson build file for MINIX core components
# The project currently only builds the kernel. Additional
# subdirectories can be added here when they gain Meson support.
subdir('kernel')