jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
4.2KB

  1. #! /usr/bin/env python
  2. # encoding: utf-8
  3. def configure(conf):
  4. conf.check_cfg(package='alsa', atleast_version='1.0.18', args='--cflags --libs', mandatory=False)
  5. conf.env['BUILD_DRIVER_ALSA'] = conf.is_defined('HAVE_ALSA')
  6. conf. check_cfg(package='libfreebob', atleast_version='1.0.0', args='--cflags --libs', mandatory=False)
  7. conf.env['BUILD_DRIVER_FREEBOB'] = conf.is_defined('HAVE_LIBFREEBOB')
  8. conf. check_cfg(package='libffado', atleast_version='1.999.17', args='--cflags --libs', mandatory=False)
  9. conf.env['BUILD_DRIVER_FFADO'] = conf.is_defined('HAVE_LIBFFADO')
  10. conf.define('HAVE_PPOLL', 1 )
  11. def create_jack_driver_obj(bld, target, sources, uselib = None):
  12. driver = bld(features = ['cxx', 'cxxshlib'])
  13. driver.env['cxxshlib_PATTERN'] = 'jack_%s.so'
  14. #driver.defines = ['HAVE_CONFIG_H','SERVER_SIDE', 'HAVE_PPOLL']
  15. driver.defines = ['HAVE_CONFIG_H','SERVER_SIDE', 'HAVE_PPOLL', 'HAVE_TIMERFD']
  16. driver.includes = ['.', '../linux', '../posix', '../common', '../common/jack', '../dbus', '../']
  17. driver.target = target
  18. driver.source = sources
  19. driver.install_path = '${ADDON_DIR}/'
  20. driver.use = []#['serverlib']
  21. if uselib:
  22. driver.use += uselib
  23. #driver.uselib_local = 'serverlib'
  24. return driver
  25. def build(bld):
  26. if bld.env['BUILD_JACKD'] == True:
  27. jackd = bld(features = ['cxx', 'cxxprogram'])
  28. jackd.includes = ['../linux', '../posix', '../common/jack', '../common', '../dbus', '../']
  29. jackd.defines = ['HAVE_CONFIG_H','SERVER_SIDE']
  30. jackd.source = ['../common/Jackdmp.cpp']
  31. jackd.use = ['serverlib']
  32. if bld.env['IS_LINUX'] and bld.env['BUILD_JACKDBUS']:
  33. jackd.source += ['../dbus/reserve.c', '../dbus/audio_reserve.c']
  34. jackd.use += ['PTHREAD', 'DL', 'RT', 'DBUS-1']
  35. else:
  36. jackd.use += ['PTHREAD', 'DL', 'RT']
  37. jackd.target = 'jackd'
  38. create_jack_driver_obj(bld, 'dummy', '../common/JackDummyDriver.cpp')
  39. alsa_driver_src = [
  40. 'alsa/JackAlsaDriver.cpp',
  41. 'alsa/alsa_rawmidi.c',
  42. 'alsa/alsa_seqmidi.c',
  43. 'alsa/alsa_midi_jackmp.cpp',
  44. '../common/memops.c',
  45. 'alsa/generic_hw.c',
  46. 'alsa/hdsp.c',
  47. 'alsa/alsa_driver.c',
  48. 'alsa/hammerfall.c',
  49. 'alsa/ice1712.c'
  50. ]
  51. alsarawmidi_driver_src = ['alsarawmidi/JackALSARawMidiDriver.cpp',
  52. 'alsarawmidi/JackALSARawMidiInputPort.cpp',
  53. 'alsarawmidi/JackALSARawMidiOutputPort.cpp',
  54. 'alsarawmidi/JackALSARawMidiPort.cpp',
  55. 'alsarawmidi/JackALSARawMidiReceiveQueue.cpp',
  56. 'alsarawmidi/JackALSARawMidiSendQueue.cpp',
  57. 'alsarawmidi/JackALSARawMidiUtil.cpp'
  58. ]
  59. ffado_driver_src = ['firewire/JackFFADODriver.cpp',
  60. 'firewire/JackFFADOMidiInputPort.cpp',
  61. 'firewire/JackFFADOMidiOutputPort.cpp',
  62. 'firewire/JackFFADOMidiReceiveQueue.cpp',
  63. 'firewire/JackFFADOMidiSendQueue.cpp'
  64. ]
  65. if bld.env['BUILD_DRIVER_ALSA'] == True:
  66. create_jack_driver_obj(bld, 'alsa', alsa_driver_src, ["ALSA"])
  67. create_jack_driver_obj(bld, 'alsarawmidi', alsarawmidi_driver_src,
  68. ["ALSA"])
  69. if bld.env['BUILD_DRIVER_FREEBOB'] == True:
  70. create_jack_driver_obj(bld, 'freebob', 'freebob/JackFreebobDriver.cpp', ["LIBFREEBOB"])
  71. if bld.env['BUILD_DRIVER_FFADO'] == True:
  72. create_jack_driver_obj(bld, 'firewire', ffado_driver_src, ["LIBFFADO"])
  73. create_jack_driver_obj(bld, 'net', '../common/JackNetDriver.cpp')
  74. create_jack_driver_obj(bld, 'loopback', '../common/JackLoopbackDriver.cpp')
  75. create_jack_driver_obj(bld, 'netone', [ '../common/JackNetOneDriver.cpp',
  76. '../common/netjack.c',
  77. '../common/netjack_packet.c' ], ["SAMPLERATE", "CELT"])