$NetBSD: patch-common_wscript,v 1.7 2023/01/07 21:20:19 triaxx Exp $ Add NetBSD support. --- common/wscript.orig 2022-04-15 19:14:06.000000000 +0000 +++ common/wscript @@ -31,6 +31,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_FREEBSD']: env_includes = ['../freebsd', '../posix', '../solaris/oss'] if bld.env['IS_SUN']: @@ -41,7 +43,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'] or bld.env['IS_FREEBSD']: + if bld.env['IS_LINUX'] or bld.env['IS_NETBSD'] or bld.env['IS_MACOSX'] or bld.env['IS_FREEBSD']: process.env.append_value('CPPFLAGS', '-fvisibility=hidden') process.install_path = '${ADDON_DIR}/' process.use = [uselib.name] @@ -98,6 +100,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_FREEBSD']: common_libsources += [ 'JackDebugClient.cpp', @@ -197,6 +214,12 @@ def build(bld): '../posix/JackPosixServerLaunch.cpp', ] + if bld.env['IS_NETBSD']: + clientlib.source += [ + '../posix/JackSocketClientChannel.cpp', + '../posix/JackPosixServerLaunch.cpp', + ] + if bld.env['IS_FREEBSD']: clientlib.source += [ '../posix/JackSocketClientChannel.cpp', @@ -232,6 +255,9 @@ 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_FREEBSD']: clientlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') @@ -240,7 +266,8 @@ def build(bld): 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 @@ -311,6 +338,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_FREEBSD']: serverlib.source += [ '../posix/JackSocketServerChannel.cpp', @@ -351,15 +386,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']) @@ -403,6 +444,15 @@ def build(bld): ] 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_FREEBSD']: netlib.source += [ '../posix/JackNetUnixSocket.cpp', @@ -420,6 +470,8 @@ def build(bld): '../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 += [ @@ -490,11 +542,23 @@ 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.env.append_value('LINKFLAGS', '-lsamplerate') + process.use += 'SAMPLERATE' + if bld.env['BUILD_ADAPTER'] and (bld.env['IS_SUN'] or bld.env['IS_FREEBSD']): audio_adapter_sources += ['../solaris/oss/JackOSSAdapter.cpp', 'memops.c'] process = create_jack_process_obj(bld, 'audioadapter', audio_adapter_sources, serverlib) process.use += 'SAMPLERATE' + if bld.env['BUILD_ADAPTER'] and bld.env['IS_SUN']: + 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',