$NetBSD: patch-wscript,v 1.5 2023/01/07 21:20:19 triaxx Exp $ - Add NetBSD support. - Ensure man pages are installed on all Unixes. --- wscript.orig 2022-04-15 19:14:06.000000000 +0000 +++ wscript @@ -234,6 +234,7 @@ def detect_platform(conf): ('IS_LINUX', 'Linux', ['gnu0', 'gnukfreebsd', 'linux', 'posix']), ('IS_FREEBSD', 'FreeBSD', ['freebsd']), ('IS_MACOSX', 'MacOS X', ['darwin']), + ('IS_NETBSD', 'NetBSD', ['netbsd']), ('IS_SUN', 'SunOS', ['sunos']), ('IS_WINDOWS', 'Windows', ['cygwin', 'msys', 'win32']) ] @@ -276,6 +277,11 @@ def configure(conf): conf.check(lib='execinfo', uselib='EXECINFO', define_name='EXECINFO') conf.check_cfg(package='libsysinfo', args='--cflags --libs') + # 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: @@ -568,6 +574,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'] @@ -624,6 +633,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 @@ -726,6 +739,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', @@ -834,6 +852,11 @@ 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']: @@ -858,9 +881,10 @@ def build(bld): bld.recurse('tools') if bld.env['IS_LINUX'] or bld.env['IS_FREEBSD']: - bld.recurse('man') bld.recurse('systemd') if not bld.env['IS_WINDOWS'] and bld.env['BUILD_JACK_EXAMPLE_TOOLS']: + bld.recurse('man') + if not bld.env['IS_WINDOWS'] and bld.env['BUILD_JACK_EXAMPLE_TOOLS']: bld.recurse('tests') if bld.env['BUILD_JACKDBUS']: bld.recurse('dbus')