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.

88 lines
3.1KB

  1. #! /usr/bin/python3
  2. # encoding: utf-8
  3. import os.path
  4. import re # subst_func
  5. from waflib import Logs, Options
  6. def options(opt):
  7. opt.add_option('--enable-pkg-config-dbus-service-dir', action='store_true', default=False, help='force D-Bus service install dir to be one returned by pkg-config')
  8. def configure(conf):
  9. conf.env['BUILD_JACKDBUS'] = False
  10. if not conf.check_cfg(package='dbus-1 >= 1.0.0', args='--cflags --libs', mandatory=False):
  11. print(Logs.colors.RED + 'ERROR !! jackdbus will not be built because libdbus-dev is missing' + Logs.colors.NORMAL)
  12. return
  13. dbus_dir = conf.check_cfg(package='dbus-1', args='--variable=session_bus_services_dir')
  14. if not dbus_dir:
  15. print(Logs.colors.RED + 'ERROR !! jackdbus will not be built because service dir is unknown' + Logs.colors.NORMAL)
  16. return
  17. dbus_dir = dbus_dir.strip()
  18. conf.env['DBUS_SERVICES_DIR_REAL'] = dbus_dir
  19. if Options.options.enable_pkg_config_dbus_service_dir:
  20. conf.env['DBUS_SERVICES_DIR'] = dbus_dir
  21. else:
  22. conf.env['DBUS_SERVICES_DIR'] = os.path.normpath(conf.env['PREFIX'] + '/share/dbus-1/services')
  23. if not conf.check_cfg(package='expat', args='--cflags --libs', mandatory=False):
  24. print(Logs.colors.RED + 'ERROR !! jackdbus will not be built because of expat is missing' + Logs.colors.NORMAL)
  25. return
  26. conf.env['BUILD_JACKDBUS'] = True
  27. def build(bld):
  28. obj = bld(features = ['c', 'cprogram'], idx=17)
  29. if bld.env['IS_LINUX']:
  30. sysdeps_dbus_include = ['../linux', '../posix']
  31. if bld.env['IS_FREEBSD']:
  32. sysdeps_dbus_include = ['../freebsd', '../posix']
  33. if bld.env['IS_MACOSX']:
  34. sysdeps_dbus_include = ['../macosx', '../posix']
  35. obj.includes = sysdeps_dbus_include + ['.', '../', '../common', '../common/jack']
  36. obj.defines = ['HAVE_CONFIG_H','SERVER_SIDE']
  37. obj.source = [
  38. 'jackdbus.c',
  39. 'controller.c',
  40. 'params.c',
  41. 'controller_iface_configure.c',
  42. 'controller_iface_control.c',
  43. 'controller_iface_introspectable.c',
  44. 'controller_iface_patchbay.c',
  45. 'controller_iface_session_manager.c',
  46. 'controller_iface_transport.c',
  47. 'xml.c',
  48. 'xml_expat.c',
  49. #'xml_nop.c',
  50. 'xml_write_raw.c',
  51. 'sigsegv.c',
  52. 'reserve.c',
  53. ]
  54. obj.use = ['serverlib']
  55. if bld.env['IS_LINUX']:
  56. obj.source += [
  57. '../linux/uptime.c',
  58. ]
  59. obj.use += ['PTHREAD', 'DL', 'RT', 'DBUS-1', 'EXPAT', 'STDC++']
  60. if bld.env['IS_FREEBSD']:
  61. obj.use += ['PTHREAD', 'EXECINFO', 'LIBSYSINFO', 'DBUS-1', 'EXPAT']
  62. if bld.env['IS_MACOSX']:
  63. obj.source += [
  64. '../macosx/uptime.c',
  65. ]
  66. obj.use += ['PTHREAD', 'DL', 'DBUS-1', 'EXPAT']
  67. obj.target = 'jackdbus'
  68. # process org.jackaudio.service.in -> org.jackaudio.service
  69. obj = bld(
  70. features = 'subst',
  71. source = 'org.jackaudio.service.in',
  72. target = 'org.jackaudio.service',
  73. install_path = '${DBUS_SERVICES_DIR}/',
  74. BINDIR = bld.env['PREFIX'] + '/bin')