commit c1990dd02647405b0c13aab59f75d05cbb202336
Author: Mohamed Akram <mohd.akram@outlook.com>
Date:   Wed May 1 21:54:17 2024 +0400

    build-sys: Fix running on macOS
    
    Ensure modules are built as .so files so that they are found by ltdl at
    runtime.
    
    Fix HAVE_COREAUDIO not being set on macOS leading to sound not working
    in the default configuration.
    
    Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/3808
    Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/817>

diff --git meson.build meson.build
index ba3d01dac..1aec95adc 100644
--- meson.build
+++ meson.build
@@ -152,8 +152,6 @@ cdata.set_quoted('PA_SRCDIR', join_paths(meson.current_source_dir(), 'src'))
 cdata.set_quoted('PA_BUILDDIR', meson.current_build_dir())
 if host_machine.system() == 'windows'
   cdata.set_quoted('PA_SOEXT', '.dll')
-elif host_machine.system() == 'darwin'
-  cdata.set_quoted('PA_SOEXT', '.dylib')
 else
   cdata.set_quoted('PA_SOEXT', '.so')
 endif
@@ -192,6 +190,7 @@ endif
 # rather than ending up in the config.h file?
 if host_machine.system() == 'darwin'
   cdata.set('OS_IS_DARWIN', 1)
+  cdata.set('HAVE_COREAUDIO', 1)
   cdata.set('_DARWIN_C_SOURCE', '200112L') # Needed to get NSIG on Mac OS
 elif host_machine.system() == 'windows'
   cdata.set('OS_IS_WIN32', 1)
diff --git src/modules/meson.build src/modules/meson.build
index 3636ce0de..05267c93a 100644
--- src/modules/meson.build
+++ src/modules/meson.build
@@ -311,6 +311,12 @@ else
   no_undefined_args = []
 endif
 
+module_suffix = []
+if host_machine.system() == 'darwin'
+  # meson defaults to dylib but ltdl expects so
+  module_suffix = 'so'
+endif
+
 foreach m : all_modules
   name = m[0]
   sources = m[1]
@@ -331,5 +337,6 @@ foreach m : all_modules
     link_args : [nodelete_link_args, no_undefined_args],
     link_with : extra_libs,
     name_prefix : '',
+    name_suffix : module_suffix,
     implicit_include_directories : false)
 endforeach
