$NetBSD: patch-common_wscript,v 1.5 2021/10/21 13:45:12 jperkin Exp $

Add NetBSD support.

--- common/wscript.orig	2021-07-15 06:18:26.000000000 +0000
+++ common/wscript
@@ -28,6 +28,8 @@ def create_jack_process_obj(bld, target,
         env_includes = ['../macosx', '../posix', '../macosx/coreaudio']
     if bld.env['IS_LINUX']:
         env_includes = ['../linux', '../posix', '../linux/alsa']
+    if bld.env['IS_NETBSD']:
+        env_includes = ['../netbsd', '../posix', '../netbsd/sun']
     if bld.env['IS_SUN']:
         env_includes = ['../solaris', '../posix', '../solaris/oss']
     if bld.env['IS_WINDOWS']:
@@ -36,7 +38,7 @@ def create_jack_process_obj(bld, target,
     process.name     = target
     process.target   = target
     process.source   = sources
-    if bld.env['IS_LINUX'] or bld.env['IS_MACOSX']:
+    if bld.env['IS_LINUX'] or bld.env['IS_NETBSD'] or bld.env['IS_MACOSX']:
         process.env.append_value('CPPFLAGS', '-fvisibility=hidden')
     process.install_path = '${ADDON_DIR}/'
     process.use = [uselib.name]
@@ -92,6 +94,21 @@ def build(bld):
         uselib.append('RT')
         uselib.append('DL')
 
+    if bld.env['IS_NETBSD']:
+        common_libsources += [
+            'JackDebugClient.cpp',
+            'timestamps.c',
+            'promiscuous.c',
+           '../posix/JackPosixThread.cpp',
+           '../posix/JackPosixSemaphore.cpp',
+           '../posix/JackPosixProcessSync.cpp',
+           '../posix/JackPosixMutex.cpp',
+           '../posix/JackSocket.cpp',
+           '../netbsd/JackNetBSDTime.c',
+           ]
+        includes = ['../netbsd', '../posix'] + includes
+        uselib.append('RT')
+
     if bld.env['IS_SUN']:
         common_libsources += [
             'JackDebugClient.cpp',
@@ -176,6 +193,12 @@ def build(bld):
             '../posix/JackPosixServerLaunch.cpp',
             ]
 
+    if bld.env['IS_NETBSD']:
+        clientlib.source += [
+            '../posix/JackSocketClientChannel.cpp',
+            '../posix/JackPosixServerLaunch.cpp',
+            ]
+
     if bld.env['IS_SUN']:
         clientlib.source += [
             '../posix/JackSocketClientChannel.cpp',
@@ -205,12 +228,16 @@ def build(bld):
     if bld.env['IS_LINUX']:
         clientlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
 
+    if bld.env['IS_NETBSD']:
+        clientlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
+
     if bld.env['IS_MACOSX']:
         clientlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
         clientlib.env.append_value('LINKFLAGS', '-single_module')
 
     if bld.env['IS_SUN']:
-        clientlib.env.append_value('LINKFLAGS', '-lnsl -lsocket')
+        clientlib.env.append_value('LINKFLAGS', '-lnsl')
+        clientlib.env.append_value('LINKFLAGS', '-lsocket')
 
     if bld.variant:
         # if there is variant defined, we expect it to be the 32bit client lib one
@@ -281,6 +308,14 @@ def build(bld):
             '../posix/JackNetUnixSocket.cpp',
             ]
 
+    if bld.env['IS_NETBSD']:
+        serverlib.source += [
+            '../posix/JackSocketServerChannel.cpp',
+            '../posix/JackSocketNotifyChannel.cpp',
+            '../posix/JackSocketServerNotifyChannel.cpp',
+            '../posix/JackNetUnixSocket.cpp',
+            ]
+
     if bld.env['IS_SUN']:
         serverlib.source += [
             '../posix/JackSocketServerChannel.cpp',
@@ -313,15 +348,21 @@ def build(bld):
     elif not bld.env['IS_WINDOWS']:
         serverlib.vnum = bld.env['JACK_API_VERSION']
 
+    serverlib.env.append_value('LINKFLAGS', '-lsamplerate')
+
     if bld.env['IS_LINUX']:
         serverlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
 
+    if bld.env['IS_NETBSD']:
+        serverlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
+
     if bld.env['IS_MACOSX']:
         serverlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
         serverlib.env.append_value('LINKFLAGS', '-single_module')
 
     if bld.env['IS_SUN']:
-        serverlib.env.append_value('LINKFLAGS', '-lnsl -lsocket')
+        serverlib.env.append_value('LINKFLAGS', '-lnsl')
+        serverlib.env.append_value('LINKFLAGS', '-lsocket')
 
     if bld.env['BUILD_NETLIB']:
         netlib = bld(features = ['c', 'cxx', 'cxxshlib', 'cshlib'])
@@ -360,10 +401,15 @@ def build(bld):
             netlib.source += ['../posix/JackNetUnixSocket.cpp','../posix/JackPosixThread.cpp', '../posix/JackPosixMutex.cpp', '../linux/JackLinuxTime.c']
             netlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
 
+        if bld.env['IS_NETBSD']:
+            netlib.source += ['../posix/JackNetUnixSocket.cpp','../posix/JackPosixThread.cpp', '../posix/JackPosixMutex.cpp', '../netbsd/JackNetBSDTime.c']
+            netlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
+
         if bld.env['IS_SUN']:
             netlib.source += ['../posix/JackNetUnixSocket.cpp','../posix/JackPosixThread.cpp', '../posix/JackPosixMutex.cpp', '../solaris/JackSolarisTime.c']
             netlib.env.append_value('CPPFLAGS', '-fvisibility=hidden')
-
+            netlib.env.append_value('LINKFLAGS', '-lnsl')
+            netlib.env.append_value('LINKFLAGS', '-lsocket')
 
         if bld.env['IS_MACOSX']:
             netlib.source += ['../posix/JackNetUnixSocket.cpp','../posix/JackPosixThread.cpp', '../posix/JackPosixMutex.cpp', '../macosx/JackMachThread.mm', '../macosx/JackMachTime.c']
@@ -422,10 +468,19 @@ def build(bld):
          process = create_jack_process_obj(bld, 'audioadapter', audio_adapter_sources, serverlib)
          process.use += ['ALSA', 'SAMPLERATE']
 
+    if bld.env['BUILD_ADAPTER'] and bld.env['IS_NETBSD']:
+         audio_adapter_sources += ['../netbsd/sun/JackSunAdapter.cpp']
+         process = create_jack_process_obj(bld, 'audioadapter', audio_adapter_sources, serverlib)
+         process.use += 'SAMPLERATE'
+
     if bld.env['BUILD_ADAPTER'] and bld.env['IS_SUN']:
          audio_adapter_sources += ['../solaris/oss/JackOSSAdapter.cpp', 'memops.c']
          process = create_jack_process_obj(bld, 'audioadapter', audio_adapter_sources, serverlib)
          process.use += 'SAMPLERATE'
+         process.env.append_value('LINKFLAGS', '-lsamplerate')
+         # This is clearly bogus and should be coming from the main flags but it is
+         # far too painful to try and trace why it is not, so a hack it is for now.
+         process.env.append_value('CFLAGS', '-fPIC')
 
     if bld.env['BUILD_ADAPTER'] and bld.env['IS_WINDOWS']:
          audio_adapter_sources += ['../windows/portaudio/JackPortAudioAdapter.cpp', '../windows/portaudio/JackPortAudioDevices.cpp']
