mingw: all code is position independent
[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 I18N_PACKAGE = 'jack-backend'
9
10 # Mandatory variables
11 top = '.'
12 out = 'build'
13
14 def options(opt):
15     autowaf.set_options(opt)
16
17 def configure(conf):
18     autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.121.0')
19
20     #
21     # PortAudio is currently used to get a list of audio device names.
22     # We should find a better way to do this that doesn't involve this
23     # kind of dependency.
24     #
25     if Options.options.dist_target == 'mingw':
26         autowaf.check_pkg(conf, 'portaudio-2.0', uselib_store='PORTAUDIO',
27                           atleast_version='19')
28     autowaf.configure(conf)
29
30     if Options.options.libjack_link == 'auto':
31         if Options.options.dist_target == 'mingw' or sys.platform == 'darwin':
32             conf.env['libjack_link'] = "weak"
33         else:
34             conf.env['libjack_link'] = "link"
35     elif Options.options.libjack_link == 'weak':
36         conf.env['libjack_link'] = "weak"
37     else:
38         conf.env['libjack_link'] = "link"
39
40     if not Options.options.libjack_meta:
41         conf.define ('NO_JACK_METADATA', 1)
42
43
44 def build(bld):
45     obj = bld(features = 'c cxx cxxshlib')
46     obj.source = [ 
47             'jack_api.cc',
48             'jack_connection.cc',
49             'jack_audiobackend.cc',
50             'jack_portengine.cc',
51             'jack_utils.cc',
52             'jack_session.cc',
53             'weak_libjack.c',
54             ]
55     obj.includes = ['.']
56     obj.name     = 'jack_audiobackend'
57     obj.target   = 'jack_audiobackend'
58     obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"', 
59                    'ARDOURBACKEND_DLL_EXPORTS'
60                    ]
61     obj.use      = 'libardour libpbd ardouralsautil'
62     obj.install_path  = os.path.join(bld.env['LIBDIR'], 'backends')
63     if bld.env['build_target'] != 'mingw':
64         obj.cxxflags = [ '-fPIC' ]
65         obj.cflags   = [ '-fPIC' ]
66
67     if (bld.env['build_target'] == 'mingw'):
68         obj.uselib   = [ 'PORTAUDIO' ]
69     else:
70         obj.uselib   = [ ]
71
72     if bld.env['libjack_link'] == 'link':
73         obj.uselib   += [ 'JACK' ]
74     else:
75         obj.defines += [ 'USE_WEAK_JACK' ]
76         obj.deps = [ 'weak_libjack.def' ]
77
78     #
79     # device discovery code in the jack backend needs ALSA
80     # on Linux.
81     # 
82
83     if re.search ("linux", sys.platform) != None:
84        obj.uselib += [ 'ALSA' ]
85