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