wscript: fix darwin build, move flags to configure, clean up
[pd-aubio.git] / wscript
1 #! /usr/bin/python
2
3 # build puredata external
4
5 top = '.'
6 out = 'build'
7 APPNAME = 'pd-aubio'
8
9 # source VERSION
10 for l in open('VERSION').readlines(): exec (l.strip())
11 VERSION = '.'.join ([str(x) for x in [
12     PD_AUBIO_MAJOR_VERSION,
13     PD_AUBIO_MINOR_VERSION,
14     ]]) + PD_AUBIO_VERSION_STATUS
15
16 def options(ctx):
17     ctx.load('compiler_c')
18
19 def configure(ctx):
20     ctx.load('compiler_c')
21
22     if ctx.env['DEST_OS'] == 'linux':
23         ctx.env.cshlib_PATTERN = '%s.pd_linux'
24         ctx.env.LINKFLAGS_cshlib += ['--export_dynamic']
25     elif ctx.env['DEST_OS'] == 'darwin':
26         ctx.env.cshlib_PATTERN = '%s.pd_darwin'
27         # add default include path for both pd and pd-extended
28         # set CFLAGS for custom location
29         ctx.env.CFLAGS += ['-I/Applications/Pd-0.45-3.app/Contents/Resources/src']
30         ctx.env.CFLAGS += ['-I/Applications/Pd-extended.app/Contents/Resources/include']
31         ctx.env.CFLAGS += ['-arch', 'i386', '-arch', 'x86_64']
32         ctx.env.LINKFLAGS += ['-arch', 'i386', '-arch', 'x86_64']
33         ctx.env.LINKFLAGS_cshlib = ['-bundle', '-undefined', 'suppress', '-flat_namespace']
34     elif ctx.env['DEST_OS'] in ['win32', 'win64']:
35         ctx.env.cshlib_PATTERN = '%s.dll'
36         # do not use -fPIC -DPIC on windows
37         ctx.env.CFLAGS_cshlib = []
38         ctx.env.LINKFLAGS_cshlib +=  ['-export_dynamic', '-lpd']
39     else:
40         ctx.fatal("Sorry, i don't know how to build for %s yet" % ctx.env['DEST_OS'])
41
42     # check for puredata header
43     ctx.check(header_name='m_pd.h')
44
45     # required dependencies
46     ctx.check_cfg(package = 'aubio', atleast_version = '0.4.0',
47             args = '--cflags --libs')
48
49 def build(bld):
50
51     bld(features = 'c cshlib',
52         source = bld.path.ant_glob('*.c'),
53         uselib = ['AUBIO'],
54         target = 'aubio',
55         defines = ['PD', 'PACKAGE_VERSION=\"'+repr(VERSION)+"\""],
56         install_path = '${PREFIX}/lib/pd/extra')
57
58     bld.install_files('${PREFIX}/lib/pd/doc/5.reference',
59             bld.path.ant_glob('help/**.pd'))
60
61     bld.install_files('${PREFIX}/lib/pd/doc/aubio',
62             bld.path.ant_glob('examples/**.pd'))