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.

81 lines
2.8KB

  1. #
  2. # Copyright (C) 2008 Nedko Arnaudov
  3. #
  4. # This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation, version 2 of the License.
  7. #
  8. # This program is distributed in the hope that it will be useful,
  9. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. # GNU General Public License for more details.
  12. #
  13. # You should have received a copy of the GNU General Public License
  14. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. #
  16. import os
  17. from string import Template
  18. from SCons.Script.SConscript import SConsEnvironment
  19. def pkg_config_get_value(module, args):
  20. return env.backtick('pkg-config ' + args + ' ' + module).strip()
  21. def merge_pkg_config_append_string(env, envvar, module, args):
  22. value = pkg_config_get_value(module, args)
  23. #print value
  24. if env._dict.has_key(envvar):
  25. env._dict[envvar] += value
  26. else:
  27. env._dict[envvar] = value
  28. def merge_pkg_config_libs(env, module):
  29. for lib in pkg_config_get_value(module, "--libs").split(' '):
  30. if lib[:2] == '-l':
  31. env._dict['LIBS'].append(lib[2:])
  32. elif lib[:2] == '-L':
  33. env._dict['LIBPATH'].append(lib[2:])
  34. def merge_pkg_config_variable(env, envvar, module, pkgvar):
  35. merge_pkg_config_append_string(env, envvar, module, '--variable=' + pkgvar)
  36. def merge_pkg_config_std(env, module):
  37. merge_pkg_config_append_string(env, 'CCFLAGS', module, '--cflags')
  38. merge_pkg_config_libs(env, module)
  39. Import('env')
  40. jackenv = env.Copy()
  41. #print "LIBS (orig): " + repr(jackenv['LIBS'])
  42. #print "SERVERLIB: " + repr(jackenv['SERVERLIB'])
  43. jackenv.Append(LIBS=[jackenv['SERVERLIB'], 'dl', 'expat'])
  44. merge_pkg_config_variable(jackenv, 'DBUS_SERVICES_DIR', 'dbus-1', 'session_bus_services_dir')
  45. merge_pkg_config_std(jackenv, 'dbus-1')
  46. #print "CFLAGS: " + jackenv['CFLAGS']
  47. #print "CCFLAGS: " + jackenv['CCFLAGS']
  48. #print "LINKFLAGS: " + repr(jackenv['LINKFLAGS'])
  49. #print "LIBPATH: " + repr(jackenv['LIBPATH'])
  50. #print "LIBS: " + repr(jackenv['LIBS'])
  51. #print "DBUS_SERVICES_DIR: " + jackenv['DBUS_SERVICES_DIR']
  52. jackenv.Install(env['INSTALL_BINDIR'], jackenv.Program('jackdbus', [
  53. 'jackdbus.c',
  54. 'controller.c',
  55. 'controller_iface_configure.c',
  56. 'controller_iface_control.c',
  57. 'controller_iface_introspectable.c',
  58. 'controller_iface_patchbay.c',
  59. 'controller_iface_transport.c',
  60. 'xml.c',
  61. 'xml_expat.c',
  62. # 'xml_libxml.c',
  63. # 'xml_nop.c',
  64. 'xml_write_raw.c',
  65. 'sigsegv.c',
  66. ]))
  67. jackenv.ScanReplace('org.jackaudio.service.in')
  68. jackenv.Install(jackenv['DESTDIR'] + jackenv['DBUS_SERVICES_DIR'], 'org.jackaudio.service')
  69. jackenv.Alias('install', jackenv['DESTDIR'] + jackenv['DBUS_SERVICES_DIR'])