b31d9b5d56452cd3b6f2e26f5df82cdc1fa74208
[ardour.git] / libs / backends / jack / wscript
1 #!/usr/bin/env python
2 from waflib.extras import autowaf as autowaf
3 from waflib import Options
4 import os
5 import sys
6 import re
7
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'
14
15 # Mandatory variables
16 top = '.'
17 out = 'build'
18
19 def options(opt):
20     autowaf.set_options(opt)
21
22 def configure(conf):
23     autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.121.0')
24
25     #
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
28     # kind of dependency.
29     #
30     if Options.options.dist_target == 'mingw':
31         autowaf.check_pkg(conf, 'portaudio-2.0', uselib_store='PORTAUDIO',
32                           atleast_version='19')
33     autowaf.configure(conf)
34
35 def build(bld):
36     obj = bld(features = 'cxx cxxshlib')
37     obj.source = [ 
38             'jack_api.cc',
39             'jack_connection.cc',
40             'jack_audiobackend.cc',
41             'jack_portengine.cc',
42             'jack_utils.cc',
43             'jack_session.cc',
44             ]
45     obj.includes = ['.']
46     obj.name     = 'jack_audiobackend'
47     obj.target   = 'jack_audiobackend'
48     if (bld.env['build_target'] == 'mingw'):
49         obj.uselib   = [ 'JACK', 'PORTAUDIO' ]
50     else:
51         obj.uselib   = [ 'JACK' ]
52     obj.use      = 'libardour libpbd'
53     obj.vnum     = JACKBACKEND_VERSION
54     obj.install_path  = os.path.join(bld.env['LIBDIR'], 'ardour3', 'backends')
55     obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"', 
56                    'ARDOURBACKEND_DLL_EXPORTS'
57                    ]
58
59     #
60     # device discovery code in the jack backend needs ALSA
61     # on Linux.
62     # 
63
64     if re.search ("linux", sys.platform) != None:
65        obj.uselib += [ 'ALSA' ]
66