Change-Id: I9ee88d6b2531622c8d46f69872d30750168c4e4a Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>pull/545/head
| @@ -0,0 +1,14 @@ | |||||
| .PHONY: all | |||||
| all: | |||||
| CC=${QNX_HOST}/usr/bin/aarch64-unknown-nto-qnx7.0.0-gcc CXX=${QNX_HOST}/usr/bin/aarch64-unknown-nto-qnx7.0.0-g++ AR=${QNX_HOST}/usr/bin/aarch64-unknown-nto-qnx7.0.0-ar LDFLAGS="-L${INSTALL_ROOT_nto}/aarch64le/lib -L${INSTALL_ROOT_nto}/aarch64le/usr/lib -L${QNX_TARGET}/aarch64le/lib -L${QNX_TARGET}/aarch64le/usr/lib" PKG_CONFIG_LIBDIR=${INSTALL_ROOT_nto}/usr/lib/pkgconfig ./waf configure --platform=qnx --prefix=/usr --libdir=/usr/lib64 | |||||
| ./waf build | |||||
| ./waf install --destdir=${INSTALL_ROOT_nto} | |||||
| .PHONY: install | |||||
| install: all | |||||
| .PHONY:clean | |||||
| clean: | |||||
| # ignore error codes otherwise it would for example fail if clean is called before configure | |||||
| -./waf clean | |||||
| @@ -28,6 +28,8 @@ def create_jack_process_obj(bld, target, sources, uselib = None, framework = Non | |||||
| env_includes = ['../macosx', '../posix', '../macosx/coreaudio'] | env_includes = ['../macosx', '../posix', '../macosx/coreaudio'] | ||||
| if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
| env_includes = ['../linux', '../posix', '../linux/alsa'] | env_includes = ['../linux', '../posix', '../linux/alsa'] | ||||
| if bld.env['IS_QNX']: | |||||
| env_includes = ['../qnx', '../posix'] | |||||
| if bld.env['IS_SUN']: | if bld.env['IS_SUN']: | ||||
| env_includes = ['../solaris', '../posix', '../solaris/oss'] | env_includes = ['../solaris', '../posix', '../solaris/oss'] | ||||
| if bld.env['IS_WINDOWS']: | if bld.env['IS_WINDOWS']: | ||||
| @@ -36,7 +38,7 @@ def create_jack_process_obj(bld, target, sources, uselib = None, framework = Non | |||||
| process.name = target | process.name = target | ||||
| process.target = target | process.target = target | ||||
| process.source = sources | process.source = sources | ||||
| if bld.env['IS_LINUX'] or bld.env['IS_MACOSX']: | |||||
| if bld.env['IS_LINUX'] or bld.env['IS_MACOSX'] or bld.env['IS_QNX']: | |||||
| process.env.append_value('CPPFLAGS', '-fvisibility=hidden') | process.env.append_value('CPPFLAGS', '-fvisibility=hidden') | ||||
| process.install_path = '${ADDON_DIR}/' | process.install_path = '${ADDON_DIR}/' | ||||
| process.use = [uselib.name] | process.use = [uselib.name] | ||||
| @@ -92,6 +94,22 @@ def build(bld): | |||||
| uselib.append('RT') | uselib.append('RT') | ||||
| uselib.append('DL') | uselib.append('DL') | ||||
| if bld.env['IS_QNX']: | |||||
| common_libsources += [ | |||||
| 'JackDebugClient.cpp', | |||||
| 'timestamps.c', | |||||
| 'promiscuous.c', | |||||
| '../posix/JackPosixThread.cpp', | |||||
| '../posix/JackPosixProcessSync.cpp', | |||||
| '../posix/JackPosixMutex.cpp', | |||||
| '../posix/JackSocket.cpp', | |||||
| '../posix/JackFifo.cpp', | |||||
| '../linux/JackLinuxTime.c', | |||||
| ] | |||||
| includes = ['../qnx', '../posix'] + includes | |||||
| uselib.append('SOCKET') | |||||
| # libdl and librt is included in libc in QNX | |||||
| if bld.env['IS_SUN']: | if bld.env['IS_SUN']: | ||||
| common_libsources += [ | common_libsources += [ | ||||
| 'JackDebugClient.cpp', | 'JackDebugClient.cpp', | ||||
| @@ -159,7 +177,7 @@ def build(bld): | |||||
| 'JackMetadata.cpp', | 'JackMetadata.cpp', | ||||
| ] | ] | ||||
| if bld.env['IS_LINUX']: | |||||
| if bld.env['IS_LINUX'] or bld.env['IS_QNX']: | |||||
| clientlib.source += [ | clientlib.source += [ | ||||
| '../posix/JackSocketClientChannel.cpp', | '../posix/JackSocketClientChannel.cpp', | ||||
| '../posix/JackPosixServerLaunch.cpp', | '../posix/JackPosixServerLaunch.cpp', | ||||
| @@ -187,7 +205,7 @@ def build(bld): | |||||
| clientlib.vnum = bld.env['JACK_API_VERSION'] | clientlib.vnum = bld.env['JACK_API_VERSION'] | ||||
| if bld.env['IS_LINUX']: | |||||
| if bld.env['IS_LINUX'] or bld.env['IS_QNX']: | |||||
| clientlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | clientlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | ||||
| if bld.env['IS_MACOSX']: | if bld.env['IS_MACOSX']: | ||||
| @@ -253,7 +271,7 @@ def build(bld): | |||||
| 'JackMetadata.cpp', | 'JackMetadata.cpp', | ||||
| ] | ] | ||||
| if bld.env['IS_LINUX']: | |||||
| if bld.env['IS_LINUX'] or bld.env['IS_QNX']: | |||||
| serverlib.source += [ | serverlib.source += [ | ||||
| '../posix/JackSocketServerChannel.cpp', | '../posix/JackSocketServerChannel.cpp', | ||||
| '../posix/JackSocketNotifyChannel.cpp', | '../posix/JackSocketNotifyChannel.cpp', | ||||
| @@ -289,7 +307,7 @@ def build(bld): | |||||
| serverlib.vnum = bld.env['JACK_API_VERSION'] | serverlib.vnum = bld.env['JACK_API_VERSION'] | ||||
| if bld.env['IS_LINUX']: | |||||
| if bld.env['IS_LINUX'] or bld.env['IS_QNX']: | |||||
| serverlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | serverlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | ||||
| if bld.env['IS_MACOSX']: | if bld.env['IS_MACOSX']: | ||||
| @@ -312,7 +330,7 @@ def build(bld): | |||||
| netlib.env['cxxshlib_PATTERN'] = 'lib%s.dll' | netlib.env['cxxshlib_PATTERN'] = 'lib%s.dll' | ||||
| netlib.install_path = '${BINDIR}' | netlib.install_path = '${BINDIR}' | ||||
| netlib.use += ['WS2_32', 'WINMM'] | netlib.use += ['WS2_32', 'WINMM'] | ||||
| elif bld.env['IS_MACOSX']: | |||||
| elif bld.env['IS_MACOSX'] or bld.env['IS_QNX']: | |||||
| netlib.install_path = '${LIBDIR}' | netlib.install_path = '${LIBDIR}' | ||||
| else: | else: | ||||
| netlib.use += ['RT'] | netlib.use += ['RT'] | ||||
| @@ -328,7 +346,7 @@ def build(bld): | |||||
| 'JackGlobals.cpp', | 'JackGlobals.cpp', | ||||
| 'ringbuffer.c'] | 'ringbuffer.c'] | ||||
| if bld.env['IS_LINUX']: | |||||
| if bld.env['IS_LINUX'] or bld.env['IS_QNX']: | |||||
| netlib.source += ['../posix/JackNetUnixSocket.cpp','../posix/JackPosixThread.cpp', '../posix/JackPosixMutex.cpp', '../linux/JackLinuxTime.c'] | netlib.source += ['../posix/JackNetUnixSocket.cpp','../posix/JackPosixThread.cpp', '../posix/JackPosixMutex.cpp', '../linux/JackLinuxTime.c'] | ||||
| netlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | netlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | ||||
| @@ -49,6 +49,8 @@ def build(bld): | |||||
| os_incdir = ['../linux', '../posix'] | os_incdir = ['../linux', '../posix'] | ||||
| if bld.env['IS_MACOSX']: | if bld.env['IS_MACOSX']: | ||||
| os_incdir = ['../macosx', '../posix'] | os_incdir = ['../macosx', '../posix'] | ||||
| if bld.env['IS_QNX']: | |||||
| os_incdir = ['../qnx', '../posix'] | |||||
| if bld.env['IS_SUN']: | if bld.env['IS_SUN']: | ||||
| os_incdir = ['../solaris', '../posix'] | os_incdir = ['../solaris', '../posix'] | ||||
| if bld.env['IS_WINDOWS']: | if bld.env['IS_WINDOWS']: | ||||
| @@ -76,7 +78,7 @@ def build(bld): | |||||
| prog.use = use | prog.use = use | ||||
| if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
| prog.use += ['RT', 'M'] | prog.use += ['RT', 'M'] | ||||
| if bld.env['IS_SUN']: | |||||
| if bld.env['IS_SUN'] or bld.env['IS_QNX']: | |||||
| prog.use += ['M'] | prog.use += ['M'] | ||||
| #prog.cflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation'] | #prog.cflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation'] | ||||
| #prog.cxxflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation'] | #prog.cxxflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation'] | ||||
| @@ -90,7 +92,7 @@ def build(bld): | |||||
| prog.use = ['clientlib'] | prog.use = ['clientlib'] | ||||
| if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
| prog.use += ['RT', 'READLINE'] | prog.use += ['RT', 'READLINE'] | ||||
| if bld.env['IS_MACOSX']: | |||||
| if bld.env['IS_MACOSX'] or bld.env['IS_QNX']: | |||||
| prog.use += ['READLINE'] | prog.use += ['READLINE'] | ||||
| if bld.env['IS_WINDOWS']: | if bld.env['IS_WINDOWS']: | ||||
| prog.use += ['READLINE'] | prog.use += ['READLINE'] | ||||
| @@ -101,7 +103,7 @@ def build(bld): | |||||
| prog.includes = os_incdir + ['../common/jack', '../common'] | prog.includes = os_incdir + ['../common/jack', '../common'] | ||||
| prog.source = 'capture_client.c' | prog.source = 'capture_client.c' | ||||
| prog.use = ['clientlib'] | prog.use = ['clientlib'] | ||||
| if bld.env['IS_MACOSX']: | |||||
| if bld.env['IS_MACOSX'] or bld.env['IS_QNX']: | |||||
| prog.use += ['SNDFILE'] | prog.use += ['SNDFILE'] | ||||
| if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
| prog.use += ['RT', 'SNDFILE'] | prog.use += ['RT', 'SNDFILE'] | ||||
| @@ -111,7 +113,7 @@ def build(bld): | |||||
| prog.uselib = ['SNDFILE'] | prog.uselib = ['SNDFILE'] | ||||
| prog.target = 'jack_rec' | prog.target = 'jack_rec' | ||||
| if bld.env['IS_LINUX'] or bld.env['IS_MACOSX']: | |||||
| if bld.env['IS_LINUX'] or bld.env['IS_MACOSX'] or bld.env['IS_QNX']: | |||||
| prog = bld(features = 'c cprogram') | prog = bld(features = 'c cprogram') | ||||
| prog.includes = os_incdir + ['.', '..', '../common/jack', '../common'] | prog.includes = os_incdir + ['.', '..', '../common/jack', '../common'] | ||||
| prog.source = ['netsource.c', '../common/netjack_packet.c'] | prog.source = ['netsource.c', '../common/netjack_packet.c'] | ||||
| @@ -20,6 +20,8 @@ def build(bld): | |||||
| prog.includes = ['..','../macosx', '../posix', '../common/jack', '../common'] | prog.includes = ['..','../macosx', '../posix', '../common/jack', '../common'] | ||||
| if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
| prog.includes = ['..','../linux', '../posix', '../common/jack', '../common'] | prog.includes = ['..','../linux', '../posix', '../common/jack', '../common'] | ||||
| if bld.env['IS_QNX']: | |||||
| prog.includes = ['..','../qnx', '../posix', '../common/jack', '../common'] | |||||
| if bld.env['IS_SUN']: | if bld.env['IS_SUN']: | ||||
| prog.includes = ['..','../solaris', '../posix', '../common/jack', '../common'] | prog.includes = ['..','../solaris', '../posix', '../common/jack', '../common'] | ||||
| prog.source = test_program_sources | prog.source = test_program_sources | ||||
| @@ -95,6 +95,15 @@ def options(opt): | |||||
| alsa.check_cfg( | alsa.check_cfg( | ||||
| package='alsa >= 1.0.18', | package='alsa >= 1.0.18', | ||||
| args='--cflags --libs') | args='--cflags --libs') | ||||
| # Check for QNX sound headers | |||||
| qsa = opt.add_auto_option( | |||||
| 'qsa', | |||||
| help='Enable QNX sound driver', | |||||
| conf_dest='BUILD_DRIVER_ALSA') | |||||
| qsa.check(lib='asound', uselib_store='ALSA') | |||||
| qsa.check( | |||||
| header_name=['sys/asoundlib.h'], | |||||
| msg='Checking for header sys/asoundlib.h') | |||||
| firewire = opt.add_auto_option( | firewire = opt.add_auto_option( | ||||
| 'firewire', | 'firewire', | ||||
| help='Enable FireWire driver (FFADO)', | help='Enable FireWire driver (FFADO)', | ||||
| @@ -185,6 +194,7 @@ def detect_platform(conf): | |||||
| platforms = [ | platforms = [ | ||||
| # ('KEY, 'Human readable name', ['strings', 'to', 'check', 'for']) | # ('KEY, 'Human readable name', ['strings', 'to', 'check', 'for']) | ||||
| ('IS_LINUX', 'Linux', ['gnu0', 'gnukfreebsd', 'linux', 'posix']), | ('IS_LINUX', 'Linux', ['gnu0', 'gnukfreebsd', 'linux', 'posix']), | ||||
| ('IS_QNX', 'QNX', ['qnx']), | |||||
| ('IS_MACOSX', 'MacOS X', ['darwin']), | ('IS_MACOSX', 'MacOS X', ['darwin']), | ||||
| ('IS_SUN', 'SunOS', ['sunos']), | ('IS_SUN', 'SunOS', ['sunos']), | ||||
| ('IS_WINDOWS', 'Windows', ['cygwin', 'msys', 'win32']) | ('IS_WINDOWS', 'Windows', ['cygwin', 'msys', 'win32']) | ||||
| @@ -293,7 +303,11 @@ def configure(conf): | |||||
| conf.check_cc(fragment=fragment, define_name='HAVE_NGREG', mandatory=False, | conf.check_cc(fragment=fragment, define_name='HAVE_NGREG', mandatory=False, | ||||
| msg='Checking for NGREG') | msg='Checking for NGREG') | ||||
| conf.env['LIB_PTHREAD'] = ['pthread'] | |||||
| if conf.env['IS_QNX']: | |||||
| conf.env['LIB_PTHREAD'] = ['c'] | |||||
| conf.env['LIB_SOCKET'] = ['socket'] | |||||
| else: | |||||
| conf.env['LIB_PTHREAD'] = ['pthread'] | |||||
| conf.env['LIB_DL'] = ['dl'] | conf.env['LIB_DL'] = ['dl'] | ||||
| conf.env['LIB_RT'] = ['rt'] | conf.env['LIB_RT'] = ['rt'] | ||||
| conf.env['LIB_M'] = ['m'] | conf.env['LIB_M'] = ['m'] | ||||
| @@ -496,6 +510,9 @@ def obj_add_includes(bld, obj): | |||||
| if bld.env['IS_MACOSX']: | if bld.env['IS_MACOSX']: | ||||
| obj.includes += ['macosx', 'posix'] | obj.includes += ['macosx', 'posix'] | ||||
| if bld.env['IS_QNX']: | |||||
| obj.includes += ['qnx', 'posix'] | |||||
| if bld.env['IS_SUN']: | if bld.env['IS_SUN']: | ||||
| obj.includes += ['posix', 'solaris'] | obj.includes += ['posix', 'solaris'] | ||||
| @@ -524,6 +541,10 @@ def build_jackd(bld): | |||||
| jackd.use += ['DL', 'PTHREAD'] | jackd.use += ['DL', 'PTHREAD'] | ||||
| jackd.framework = ['CoreFoundation'] | jackd.framework = ['CoreFoundation'] | ||||
| if bld.env['IS_QNX']: | |||||
| jackd.use += ['M', 'PTHREAD'] | |||||
| if bld.env['IS_SUN']: | if bld.env['IS_SUN']: | ||||
| jackd.use += ['DL', 'PTHREAD'] | jackd.use += ['DL', 'PTHREAD'] | ||||
| @@ -582,16 +603,20 @@ def build_drivers(bld): | |||||
| alsa_src = [ | alsa_src = [ | ||||
| 'common/memops.c', | 'common/memops.c', | ||||
| 'linux/alsa/JackAlsaDriver.cpp', | 'linux/alsa/JackAlsaDriver.cpp', | ||||
| 'linux/alsa/alsa_rawmidi.c', | |||||
| 'linux/alsa/alsa_seqmidi.c', | |||||
| 'linux/alsa/alsa_midi_jackmp.cpp', | |||||
| 'linux/alsa/generic_hw.c', | |||||
| 'linux/alsa/hdsp.c', | |||||
| 'linux/alsa/alsa_driver.c', | |||||
| 'linux/alsa/hammerfall.c', | |||||
| 'linux/alsa/ice1712.c' | |||||
| 'linux/alsa/alsa_driver.c' | |||||
| ] | ] | ||||
| if not bld.env['IS_QNX']: | |||||
| alsa_src += [ | |||||
| 'linux/alsa/alsa_rawmidi.c', | |||||
| 'linux/alsa/alsa_seqmidi.c', | |||||
| 'linux/alsa/alsa_midi_jackmp.cpp', | |||||
| 'linux/alsa/generic_hw.c', | |||||
| 'linux/alsa/hdsp.c', | |||||
| 'linux/alsa/hammerfall.c', | |||||
| 'linux/alsa/ice1712.c' | |||||
| ] | |||||
| alsarawmidi_src = [ | alsarawmidi_src = [ | ||||
| 'linux/alsarawmidi/JackALSARawMidiDriver.cpp', | 'linux/alsarawmidi/JackALSARawMidiDriver.cpp', | ||||
| 'linux/alsarawmidi/JackALSARawMidiInputPort.cpp', | 'linux/alsarawmidi/JackALSARawMidiInputPort.cpp', | ||||
| @@ -688,11 +713,12 @@ def build_drivers(bld): | |||||
| target = 'alsa', | target = 'alsa', | ||||
| source = alsa_src, | source = alsa_src, | ||||
| use = ['ALSA']) | use = ['ALSA']) | ||||
| create_driver_obj( | |||||
| bld, | |||||
| target = 'alsarawmidi', | |||||
| source = alsarawmidi_src, | |||||
| use = ['ALSA']) | |||||
| if not bld.env['IS_QNX']: | |||||
| create_driver_obj( | |||||
| bld, | |||||
| target = 'alsarawmidi', | |||||
| source = alsarawmidi_src, | |||||
| use = ['ALSA']) | |||||
| if bld.env['BUILD_DRIVER_FFADO']: | if bld.env['BUILD_DRIVER_FFADO']: | ||||
| create_driver_obj( | create_driver_obj( | ||||