1st chunk:
disable libinput support otherwise module-mmkbd-evdev.so is built
3nd chunk:
Should match b_lundef in meson(1).

Index: src/modules/meson.build
--- src/modules/meson.build.orig
+++ src/modules/meson.build
@@ -87,12 +87,6 @@ endif
 
 # Modules enabled by headers
 
-if cc.has_header('linux/input.h')
-  all_modules += [
-    [ 'module-mmkbd-evdev', 'module-mmkbd-evdev.c' ],
-  ]
-endif
-
 if cdata.has('HAVE_OSS_OUTPUT')
   subdir('oss')
   all_modules += [
@@ -107,6 +101,14 @@ if cc.has_function('mkfifo')
   ]
 endif
 
+# sndio(7)
+if host_machine.system() == 'openbsd'
+  libsndio_dep = dependency('sndio', required: true)
+  all_modules += [
+    [ 'module-sndio', 'module-sndio.c', [], [], [libsndio_dep], [] ],
+  ]
+endif
+
 # Modules enabled by dependencies
 
 if alsa_dep.found()
@@ -305,7 +307,7 @@ all_modules += [
 # FIXME: meson doesn't support multiple RPATH arguments currently
 rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir)
 
-if host_machine.system() != 'windows' and host_machine.system() != 'darwin'
+if host_machine.system() != 'windows' and host_machine.system() != 'darwin' and host_machine.system() != 'openbsd'
   no_undefined_args = ['-Wl,--no-undefined']
 else
   no_undefined_args = []
