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.

77 lines
3.1KB

  1. #! /usr/bin/env python
  2. # encoding: utf-8
  3. def configure(conf):
  4. conf.check_cfg(package='alsa', atleast_version='1.0.0', args='--cflags --libs')
  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')
  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')
  9. conf.env['BUILD_DRIVER_FFADO'] = conf.is_defined('HAVE_LIBFFADO')
  10. def create_jack_driver_obj(bld, target, sources, uselib = None):
  11. driver = bld.new_task_gen('cxx', 'shlib')
  12. driver.features.append('cc')
  13. driver.env['shlib_PATTERN'] = 'jack_%s.so'
  14. driver.defines = ['HAVE_CONFIG_H','SERVER_SIDE', 'HAVE_PPOLL']
  15. if bld.env['HAVE_CELT']:
  16. if bld.env['HAVE_CELT_API_0_5']:
  17. driver.defines += ['HAVE_CELT', 'HAVE_CELT_API_0_5']
  18. elif bld.env['HAVE_CELT_API_0_7']:
  19. driver.defines += ['HAVE_CELT', 'HAVE_CELT_API_0_7']
  20. driver.includes = ['.', '../linux', '../posix', '../common', '../common/jack', '../dbus']
  21. driver.target = target
  22. driver.source = sources
  23. driver.install_path = '${ADDON_DIR}/'
  24. if uselib:
  25. driver.uselib = uselib
  26. driver.uselib_local = 'serverlib'
  27. return driver
  28. def build(bld):
  29. if bld.env['BUILD_JACKD'] == True:
  30. jackd = bld.new_task_gen('cxx', 'program')
  31. jackd.includes = ['../linux', '../posix', '../common/jack', '../common', '../dbus']
  32. jackd.defines = 'HAVE_CONFIG_H'
  33. jackd.source = ['../common/Jackdmp.cpp']
  34. if bld.env['IS_LINUX'] and bld.env['BUILD_JACKDBUS']:
  35. jackd.source += ['../dbus/reserve.c', '../dbus/audio_reserve.c']
  36. jackd.uselib = 'PTHREAD DL RT DBUS-1'
  37. else:
  38. jackd.uselib = 'PTHREAD DL RT'
  39. jackd.uselib_local = 'serverlib'
  40. jackd.target = 'jackd'
  41. create_jack_driver_obj(bld, 'dummy', '../common/JackDummyDriver.cpp')
  42. alsa_driver_src = ['alsa/JackAlsaDriver.cpp',
  43. 'alsa/alsa_rawmidi.c',
  44. 'alsa/alsa_seqmidi.c',
  45. 'alsa/alsa_midi_jackmp.cpp',
  46. '../common/memops.c',
  47. 'alsa/generic_hw.c',
  48. 'alsa/hdsp.c',
  49. 'alsa/hammerfall.c',
  50. 'alsa/ice1712.c'
  51. ]
  52. if bld.env['BUILD_DRIVER_ALSA'] == True:
  53. create_jack_driver_obj(bld, 'alsa', alsa_driver_src, "ALSA")
  54. if bld.env['BUILD_DRIVER_FREEBOB'] == True:
  55. create_jack_driver_obj(bld, 'freebob', 'freebob/JackFreebobDriver.cpp', "LIBFREEBOB")
  56. if bld.env['BUILD_DRIVER_FFADO'] == True:
  57. create_jack_driver_obj(bld, 'firewire', 'firewire/JackFFADODriver.cpp', "LIBFFADO")
  58. create_jack_driver_obj(bld, 'net', '../common/JackNetDriver.cpp')
  59. create_jack_driver_obj(bld, 'loopback', '../common/JackLoopbackDriver.cpp')
  60. create_jack_driver_obj(bld, 'netone', [ '../common/JackNetOneDriver.cpp',
  61. '../common/netjack.c',
  62. '../common/netjack_packet.c' ], "SAMPLERATE CELT" )