2 from waflib.extras import autowaf as autowaf
3 from waflib import Options
8 # Library version (UNIX style major, minor, micro)
9 # major increment <=> incompatible changes
10 # minor increment <=> compatible changes (additions)
11 # micro increment <=> no interface changes
12 JACKBACKEND_VERSION = '1.0.0'
13 I18N_PACKAGE = 'jack-backend'
20 autowaf.set_options(opt)
23 autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.121.0')
26 # PortAudio is currently used to get a list of audio device names.
27 # We should find a better way to do this that doesn't involve this
30 if Options.options.dist_target == 'mingw':
31 autowaf.check_pkg(conf, 'portaudio-2.0', uselib_store='PORTAUDIO',
33 autowaf.configure(conf)
35 if Options.options.libjack_link == 'auto':
36 if Options.options.dist_target == 'mingw' or sys.platform == 'darwin':
37 conf.env['libjack_link'] = "weak"
39 conf.env['libjack_link'] = "link"
40 elif Options.options.libjack_link == 'weak':
41 conf.env['libjack_link'] = "weak"
43 conf.env['libjack_link'] = "link"
47 obj = bld(features = 'cxx cxxshlib')
51 'jack_audiobackend.cc',
58 obj.name = 'jack_audiobackend'
59 obj.target = 'jack_audiobackend'
60 obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"',
61 'ARDOURBACKEND_DLL_EXPORTS'
63 obj.use = 'libardour libpbd ardouralsautil'
64 obj.install_path = os.path.join(bld.env['LIBDIR'], 'backends')
66 if (bld.env['build_target'] == 'mingw'):
67 obj.uselib = [ 'PORTAUDIO' ]
70 obj.vnum = JACKBACKEND_VERSION
72 if bld.env['libjack_link'] == 'link':
73 obj.uselib += [ 'JACK' ]
75 obj.defines += [ 'USE_WEAK_JACK' ]
78 # device discovery code in the jack backend needs ALSA
82 if re.search ("linux", sys.platform) != None:
83 obj.uselib += [ 'ALSA' ]