| 
							- #! /usr/bin/env python
 - # encoding: utf-8
 - 
 - import Params
 - import os.path
 - import re # subst_func
 - 
 - def set_options(opt):
 -     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')
 - 
 - def configure(conf):
 -     conf.check_pkg('dbus-1', pkgvars=['session_bus_services_dir'])
 - 
 -     if Params.g_options.enable_pkg_config_dbus_service_dir:
 -         conf.env['DBUS_SERVICES_DIR'] = conf.env['DBUS-1_SESSION_BUS_SERVICES_DIR'][0]
 -     else:
 -         conf.env['DBUS_SERVICES_DIR'] = os.path.normpath(conf.env['PREFIX'] + '/share/dbus-1/services')
 - 
 -     conf.check_tool('misc')
 - 
 -     e = conf.create_header_configurator()
 -     e.name = 'expat.h'
 -     e.define = 'HAVE_EXPAT'
 -     e.run()
 - 
 -     if conf.is_defined('HAVE_EXPAT'):
 -         conf.env['LIB_EXPAT'] = ['expat']
 - 
 -     conf.env['BUILD_JACKDBUS'] = conf.is_defined('HAVE_EXPAT') and conf.is_defined('HAVE_DBUS_1')
 - 
 - # by default waf subst tool uses @VAR@ while scons legacy is ${VAR}
 - # so we use same template as scons for now
 - def subst_func(tsk):
 -     "Substitutes variables in a .in file"
 - 
 -     m4_re = re.compile('\$\{(\w+)\}', re.M)
 - 
 -     env = tsk.env()
 -     infile = tsk.m_inputs[0].abspath(env)
 -     outfile = tsk.m_outputs[0].abspath(env)
 - 
 -     file = open(infile, 'r')
 -     code = file.read()
 -     file.close()
 - 
 -     s = m4_re.sub(r'%(\1)s', code)
 - 
 -     dict = tsk.dict
 -     if not dict:
 -         names = m4_re.findall(code)
 -         for i in names:
 -             if env[i] and type(env[i]) is types.ListType :
 -                 dict[i] = " ".join(env[i])
 -             else: dict[i] = env[i]
 - 
 -     file = open(outfile, 'w')
 -     file.write(s % dict)
 -     file.close()
 - 
 -     return 0
 - 
 - def build(bld):
 -     if bld.env()["BUILD_JACKDBUS"] != True:
 -         return
 - 
 -     obj = bld.create_obj('cc', 'program')
 -     obj.includes = ['.', '../../common', '../../common/jack']
 -     obj.source = [
 -         'jackdbus.c',
 -         'controller.c',
 -         'controller_iface_configure.c',
 -         'controller_iface_control.c',
 -         'controller_iface_introspectable.c',
 -         'controller_iface_patchbay.c',
 -         'controller_iface_transport.c',
 -         'xml.c',
 -         'xml_expat.c',
 -         #'xml_libxml.c',
 -         #'xml_nop.c',
 -         'xml_write_raw.c',
 -         'sigsegv.c',
 -         ]
 -     if bld.env()['IS_LINUX']:
 -         obj.uselib = 'PTHREAD DL RT DBUS-1 EXPAT'
 -     if bld.env()['IS_MACOSX']:
 -         obj.uselib = 'PTHREAD DL DBUS-1 EXPAT'
 -     obj.uselib_local = 'serverlib'
 -     obj.target       = 'jackdbus'
 - 
 -     # process org.jackaudio.service.in -> org.jackaudio.service
 -     obj = bld.create_obj('subst')
 -     obj.source = 'org.jackaudio.service.in'
 -     obj.target = 'org.jackaudio.service'
 -     obj.dict = {'BINDIR': bld.env()['PREFIX'] + '/bin'}
 -     obj.inst_var = bld.env()['DBUS_SERVICES_DIR']
 -     obj.inst_dir = '/'
 -     obj.fun = subst_func # @VAR@ -> ${VAR}
 
 
  |