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.

131 lines
5.9KB

  1. #! /usr/bin/env python
  2. # encoding: utf-8
  3. from waflib import Context
  4. def configure(conf):
  5. conf.check_cfg(package='alsa', atleast_version='1.0.18', args='--cflags --libs', mandatory=False)
  6. conf.env['BUILD_DRIVER_ALSA'] = conf.is_defined('HAVE_ALSA')
  7. conf. check_cfg(package='libfreebob', atleast_version='1.0.0', args='--cflags --libs', mandatory=False)
  8. conf.env['BUILD_DRIVER_FREEBOB'] = conf.is_defined('HAVE_LIBFREEBOB')
  9. conf. check_cfg(package='libffado', atleast_version='1.999.17', args='--cflags --libs', mandatory=False)
  10. conf.env['BUILD_DRIVER_FFADO'] = conf.is_defined('HAVE_LIBFFADO')
  11. conf.check_cfg(package='gtkIOStream', atleast_version='1.4.0', args='--cflags --libs', mandatory=False)
  12. conf.env['BUILD_DRIVER_IIO'] = conf.is_defined('HAVE_GTKIOSTREAM')
  13. conf.check_cfg(package='eigen3', atleast_version='3.2.0', args='--cflags --libs', mandatory=False)
  14. conf.env['BUILD_DRIVER_IIO'] += conf.is_defined('HAVE_EIGEN3')
  15. conf.check_cfg(package='sox', atleast_version='14.4.1', args='--cflags --libs', mandatory=False)
  16. conf.env['BUILD_DRIVER_IIO'] += conf.is_defined('HAVE_SOX')
  17. #conf.env['BUILD_DRIVER_IIO'] += conf.is_defined('HAVE_EIGEN3')
  18. #print conf.env
  19. #conffile.write("\n".join(myconf))
  20. #conf.define('HAVE_PPOLL', 1 )
  21. conf.find_program("mkoctfile", var="MKOCTFILE")
  22. if conf.env.MKOCTFILE:
  23. conf.env['HAVE_OCTAVE']=1
  24. conf.env['define_key'] += ['HAVE_OCTAVE']
  25. conf.env['DEFINES'] += ['HAVE_OCTAVE=1']
  26. #conf.env('Octave')
  27. conf.env['INCLUDES_OCTAVE'] = conf.cmd_and_log([conf.env.MKOCTFILE, "--print", "INCFLAGS" ],
  28. output=Context.STDOUT).replace('\n', '').replace('-I','').split()
  29. lflags = conf.cmd_and_log([conf.env.MKOCTFILE, "--print", "LFLAGS" ],
  30. output=Context.STDOUT)
  31. conf.env['LIB_OCTAVE'] = conf.cmd_and_log([conf.env.MKOCTFILE, "--print", "OCTAVE_LIBS" ],
  32. output=Context.STDOUT).replace('\n', '').replace('-l','').split()
  33. #conf.append("INCFLAGS: " + incflags)
  34. #conf.append("LFLAGS: " + lflags)
  35. #conf.append("LIBS: " + libs)
  36. print conf.env
  37. #import pdb; pdb.set_trace()
  38. def create_jack_driver_obj(bld, target, sources, uselib = None):
  39. driver = bld(features = ['c', 'cxx', 'cxxshlib', 'cshlib'])
  40. driver.env['cxxshlib_PATTERN'] = 'jack_%s.so'
  41. #driver.defines = ['HAVE_CONFIG_H','SERVER_SIDE', 'HAVE_PPOLL']
  42. driver.defines = ['HAVE_CONFIG_H','SERVER_SIDE', 'HAVE_PPOLL', 'HAVE_TIMERFD']
  43. driver.includes = ['.', '../linux', '../posix', '../common', '../common/jack', '../dbus', '../']
  44. driver.target = target
  45. driver.source = sources
  46. driver.install_path = '${ADDON_DIR}/'
  47. driver.use = []
  48. if uselib:
  49. driver.use += uselib
  50. return driver
  51. def build(bld):
  52. if bld.env['BUILD_JACKD'] == True:
  53. jackd = bld(features = ['cxx', 'cxxprogram'])
  54. jackd.includes = ['../linux', '../posix', '../common/jack', '../common', '../dbus', '../']
  55. jackd.defines = ['HAVE_CONFIG_H','SERVER_SIDE']
  56. jackd.source = ['../common/Jackdmp.cpp']
  57. jackd.use = ['serverlib']
  58. if bld.env['IS_LINUX'] and bld.env['BUILD_JACKDBUS']:
  59. jackd.source += ['../dbus/reserve.c', '../dbus/audio_reserve.c']
  60. jackd.use += ['PTHREAD', 'DL', 'RT', 'M', 'STDC++', 'DBUS-1']
  61. else:
  62. jackd.use += ['PTHREAD', 'DL', 'RT', 'M', 'STDC++']
  63. jackd.target = 'jackd'
  64. create_jack_driver_obj(bld, 'dummy', '../common/JackDummyDriver.cpp')
  65. alsa_driver_src = [
  66. 'alsa/JackAlsaDriver.cpp',
  67. 'alsa/alsa_rawmidi.c',
  68. 'alsa/alsa_seqmidi.c',
  69. 'alsa/alsa_midi_jackmp.cpp',
  70. '../common/memops.c',
  71. 'alsa/generic_hw.c',
  72. 'alsa/hdsp.c',
  73. 'alsa/alsa_driver.c',
  74. 'alsa/hammerfall.c',
  75. 'alsa/ice1712.c'
  76. ]
  77. alsarawmidi_driver_src = ['alsarawmidi/JackALSARawMidiDriver.cpp',
  78. 'alsarawmidi/JackALSARawMidiInputPort.cpp',
  79. 'alsarawmidi/JackALSARawMidiOutputPort.cpp',
  80. 'alsarawmidi/JackALSARawMidiPort.cpp',
  81. 'alsarawmidi/JackALSARawMidiReceiveQueue.cpp',
  82. 'alsarawmidi/JackALSARawMidiSendQueue.cpp',
  83. 'alsarawmidi/JackALSARawMidiUtil.cpp'
  84. ]
  85. ffado_driver_src = ['firewire/JackFFADODriver.cpp',
  86. 'firewire/JackFFADOMidiInputPort.cpp',
  87. 'firewire/JackFFADOMidiOutputPort.cpp',
  88. 'firewire/JackFFADOMidiReceiveQueue.cpp',
  89. 'firewire/JackFFADOMidiSendQueue.cpp'
  90. ]
  91. iio_driver_src = ['iio/JackIIODriver.C']
  92. if bld.env['BUILD_DRIVER_ALSA'] == True:
  93. create_jack_driver_obj(bld, 'alsa', alsa_driver_src, ["ALSA"])
  94. create_jack_driver_obj(bld, 'alsarawmidi', alsarawmidi_driver_src,
  95. ["ALSA"])
  96. if bld.env['BUILD_DRIVER_FREEBOB'] == True:
  97. create_jack_driver_obj(bld, 'freebob', 'freebob/JackFreebobDriver.cpp', ["LIBFREEBOB"])
  98. if bld.env['BUILD_DRIVER_FFADO'] == True:
  99. create_jack_driver_obj(bld, 'firewire', ffado_driver_src, ["LIBFFADO"])
  100. if bld.env['BUILD_DRIVER_IIO'] == True:
  101. create_jack_driver_obj(bld, 'iio', iio_driver_src, ["GTKIOSTREAM", "EIGEN3", "OCTAVE"])
  102. create_jack_driver_obj(bld, 'net', '../common/JackNetDriver.cpp')
  103. create_jack_driver_obj(bld, 'loopback', '../common/JackLoopbackDriver.cpp')
  104. create_jack_driver_obj(bld, 'netone', [ '../common/JackNetOneDriver.cpp',
  105. '../common/netjack.c',
  106. '../common/netjack_packet.c' ], ["SAMPLERATE", "CELT"])