#! /usr/bin/python
#
-# TODO
-# - plugins/puredata: add pd compilation
-# - java: add swig compilation
-# - doc: add docbook2html and doxygen
+# - doc: add doxygen
# - tests: move to new unit test system
APPNAME = 'aubio'
help='compile aubio in double precision mode')
opt.add_option('--disable-fftw3f', action='store_true', default=False,
help='compile with fftw3 instead of fftw3f')
- opt.add_option('--disable-complex', action='store_true', default=False,
- help='compile without C99 complex')
+ opt.add_option('--enable-complex', action='store_true', default=False,
+ help='compile with C99 complex')
opt.add_option('--disable-jack', action='store_true', default=False,
help='compile without jack support')
opt.add_option('--disable-lash', action='store_true', default=False,
help='compile without lash support')
- opt.add_option('--enable-java', action='store_true', default=False,
- help='compile with java support')
+ opt.add_option('--disable-libsamplerate', action='store_true', default=False,
+ help='compile without libsamplerate support')
opt.add_option('--with-target-platform', type='string',
help='set target platform for cross-compilation', dest='target_platform')
opt.tool_options('compiler_cc')
opt.tool_options('compiler_cxx')
opt.tool_options('gnu_dirs')
- # include locally patched version of UnitTest until upstream incorporates patch
- # see http://code.google.com/p/waf/issues/detail?id=542
- opt.tool_options('UnitTest', tooldir='.')
+ opt.tool_options('UnitTest')
def configure(conf):
import Options
conf.check(header_name='stdio.h')
conf.check(header_name='math.h')
conf.check(header_name='string.h')
+ conf.check(header_name='limits.h')
# optionally use complex.h
- if (Options.options.disable_complex == False):
+ if (Options.options.enable_complex == True):
conf.check(header_name='complex.h')
- # required dependancies
+ # check dependencies
conf.check_cfg(package = 'sndfile', atleast_version = '1.0.4',
args = '--cflags --libs')
- conf.check_cfg(package = 'samplerate', atleast_version = '0.0.15',
- args = '--cflags --libs')
+ if (Options.options.disable_libsamplerate == False):
+ conf.check_cfg(package = 'libsamplerate', atleast_version = '0.0.15',
+ args = '--cflags --libs')
# double precision mode
if (Options.options.enable_double == True):
conf.check_python_version((2,4,2))
conf.check_python_headers()
- # java
- if (Options.options.enable_java == True):
- conf.fatal('Java build not yet implemented')
- conf.check_tool('java')
-
# check support for C99 __VA_ARGS__ macros
check_c99_varargs = '''
#include <stdio.h>
# write configuration header
conf.write_config_header('src/config.h')
- # check for puredata header
- conf.check(header_name='m_pd.h')
-
# add some defines used in examples
conf.define('AUBIO_PREFIX', conf.env['PREFIX'])
conf.define('PACKAGE', APPNAME)
bld.env['LIB_VERSION'] = LIB_VERSION
# add sub directories
- bld.add_subdirs('src ext examples cpp')
+ bld.add_subdirs('src examples')
if bld.env['SWIG']:
if bld.env['PYTHON']:
bld.add_subdirs('python/aubio python')
- if bld.env['JAVA']:
- pass
# create the aubio.pc file for pkg-config
aubiopc = bld.new_task_gen('subst')
source=bld.path.ant_glob('doc/*.sgml'))
bld.install_files('${MANDIR}/man1', bld.path.ant_glob('doc/*.1'))
- if bld.env['HAVE_M_PD_H']:
- bld.add_subdirs('plugins/puredata')
-
# install woodblock sound
bld.install_files('${PREFIX}/share/sounds/aubio/',
'sounds/woodblock.aiff')
def build_tests(bld):
for target_name in bld.path.ant_glob('tests/src/**/*.c').split():
this_target = bld.new_task_gen(
- features = 'cprogram cc test',
+ features = 'cc cprogram test',
source = target_name,
target = target_name.split('.')[0],
includes = 'src',
- install_path = None,
+ defines = 'AUBIO_UNSTABLE_API=1',
uselib_local = 'aubio')
- # phasevoc-jack also needs aubioext
+ # phasevoc-jack also needs jack
if target_name.endswith('test-phasevoc-jack.c'):
- this_target.includes = ['src', 'ext']
- this_target.uselib_local = ['aubio', 'aubioext']
+ this_target.includes = ['src', 'examples']
+ this_target.uselib_local = ['aubio']
+ this_target.uselib = ['JACK']
+ this_target.source += ' examples/jackio.c'