Fix a tiny memory-leak when calling vfork
[ardour.git] / libs / fluidsynth / wscript
1 #!/usr/bin/env python
2 from waflib.extras import autowaf as autowaf
3 from waflib import TaskGen
4 import os
5 import sys
6
7 # Version of this package (even if built as a child)
8 MAJOR = '2'
9 MINOR = '0'
10 MICRO = '1'
11 LIBFLUIDSYNTH_VERSION = "%s.%s.%s" % (MAJOR, MINOR, MICRO)
12
13 # Variables for 'waf dist'
14 APPNAME = 'libltc'
15 VERSION = LIBFLUIDSYNTH_VERSION
16 I18N_PACKAGE = 'libfluidsynth'
17
18 # Mandatory variables
19 top = '.'
20 out = 'build'
21
22 def options(opt):
23     autowaf.set_options(opt)
24
25 def configure(conf):
26     if conf.is_defined('USE_EXTERNAL_LIBS'):
27         autowaf.check_pkg(conf, 'fluidsynth', uselib_store='LIBFLUIDSYNTH', atleast_version=LIBFLUIDSYNTH_VERSION, mandatory=True)
28     else:
29         conf.load('compiler_c')
30         autowaf.configure(conf)
31
32 def build(bld):
33     if bld.is_defined('USE_EXTERNAL_LIBS'):
34         return
35     bld (export_includes = ['fluidsynth'],
36          name = 'libfluidsynth_includes'
37          )
38     obj = bld.stlib (source = [
39         'src/fluid_midi.c',
40         'src/fluid_adsr_env.c',
41         'src/fluid_chorus.c',
42         'src/fluid_iir_filter.c',
43         'src/fluid_lfo.c',
44         'src/fluid_rev.c',
45         'src/fluid_rvoice.c',
46         'src/fluid_rvoice_dsp.c',
47         'src/fluid_rvoice_event.c',
48         'src/fluid_rvoice_mixer.c',
49         'src/fluid_defsfont.c',
50         'src/fluid_chan.c',
51         'src/fluid_event.c',
52         'src/fluid_gen.c',
53         'src/fluid_mod.c',
54         'src/fluid_synth.c',
55         'src/fluid_tuning.c',
56         'src/fluid_voice.c',
57         'src/fluid_conv.c',
58         'src/fluid_hash.c',
59         'src/fluid_list.c',
60         'src/fluid_ringbuffer.c',
61         'src/fluid_samplecache.c',
62         'src/fluid_settings.c',
63         'src/fluid_sffile.c',
64         'src/fluid_sfont.c',
65         'src/fluid_synth_monopoly.c',
66         'src/fluid_sys.c'
67         ],
68         cflags = [ bld.env['compiler_flags_dict']['pic'], '-fvisibility=hidden', '-std=gnu99' ],
69         includes = ['.', 'src/' ],
70                target = 'libfluidsynth',
71                use    = 'libfluidsynth_includes',
72                uselib = 'GLIB',
73                defines = [ 'HAVE_CONFIG_H', 'DEFAULT_SOUNDFONT=""' ]
74                )
75
76     # wine-gcc hacks:
77     # defining __MINGW32__ for wine-gcc is a workaround for fluidsynth's include
78     # strategy (which is made for mingw or windows) without it
79     # winsock2.h will complain about undeclared "u_short"
80     # we also need to explicitly define  _WIN32
81     if bld.is_defined('WINDOWS_VST_SUPPORT') and not bld.env['build_target'] == 'mingw':
82         obj.defines += [ '_WIN32', '__MINGW32__' ]
83
84 def shutdown():
85     autowaf.shutdown()