$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']