$NetBSD: patch-wscript,v 1.4 2021/10/21 13:45:12 jperkin Exp $ - Add NetBSD support. - Ensure man pages are installed on all Unixes. --- wscript.orig 2021-07-15 06:18:26.000000000 +0000 +++ wscript @@ -192,6 +192,7 @@ def detect_platform(conf): # ('KEY, 'Human readable name', ['strings', 'to', 'check', 'for']) ('IS_LINUX', 'Linux', ['gnu0', 'gnukfreebsd', 'linux', 'posix']), ('IS_MACOSX', 'MacOS X', ['darwin']), + ('IS_NETBSD', 'NetBSD', ['netbsd']), ('IS_SUN', 'SunOS', ['sunos']), ('IS_WINDOWS', 'Windows', ['cygwin', 'msys', 'win32']) ] @@ -231,6 +232,11 @@ def configure(conf): conf.env.append_unique('CXXFLAGS', ['-Wall', '-Wno-invalid-offsetof']) conf.env.append_unique('CXXFLAGS', '-std=gnu++11') + # Needed to work around "error: ::vfscanf has not been declared" failures + # prior to NetBSD 9.99.x. + if conf.env['IS_NETBSD']: + conf.env.append_unique('CXXFLAGS', '-D_NETBSD_SOURCE') + if not conf.env['IS_MACOSX']: conf.env.append_unique('LDFLAGS', '-Wl,--no-undefined') else: @@ -531,6 +537,9 @@ def obj_add_includes(bld, obj): if bld.env['IS_SUN']: obj.includes += ['posix', 'solaris'] + if bld.env['IS_NETBSD']: + obj.includes += ['posix', 'netbsd'] + if bld.env['IS_WINDOWS']: obj.includes += ['windows'] @@ -582,6 +591,10 @@ def create_driver_obj(bld, **kw): else: driver.env['cxxshlib_PATTERN'] = 'jack_%s.so' + if bld.env['IS_SUN']: + driver.env.append_value('LINKFLAGS', '-lnsl') + driver.env.append_value('LINKFLAGS', '-lsocket') + obj_add_includes(bld, driver) return driver @@ -678,6 +691,11 @@ def build_drivers(bld): 'windows/portaudio/JackPortAudioDriver.cpp', ] + sun_src = [ + 'common/memops.c', + 'netbsd/sun/JackSunDriver.cpp' + ] + winmme_src = [ 'windows/winmme/JackWinMMEDriver.cpp', 'windows/winmme/JackWinMMEInputPort.cpp', @@ -779,6 +797,12 @@ def build_drivers(bld): target = 'oss', source = oss_src) + if bld.env['IS_NETBSD']: + create_driver_obj( + bld, + target = 'sun', + source = sun_src) + def build(bld): if not bld.variant and bld.env['BUILD_WITH_32_64']: Options.commands.append(bld.cmd + '_' + lib32) @@ -821,9 +845,10 @@ def build(bld): bld.recurse('tools') if bld.env['IS_LINUX']: - bld.recurse('man') bld.recurse('systemd') if not bld.env['IS_WINDOWS']: + bld.recurse('man') + if not bld.env['IS_WINDOWS']: bld.recurse('tests') if bld.env['BUILD_JACKDBUS']: bld.recurse('dbus')