add_option_enable_disable(ctx, 'apple-audio', default = None,
help_str = 'use CoreFoundation (darwin only) (auto)',
help_disable_str = 'do not use CoreFoundation framework')
- add_option_enable_disable(ctx, 'atlas', default = None,
- help_str = 'use Atlas library (auto)',
+ add_option_enable_disable(ctx, 'atlas', default = False,
+ help_str = 'use Atlas library (no)',
help_disable_str = 'do not use Atlas library')
add_option_enable_disable(ctx, 'wavread', default = True,
help_str = 'compile with source_wavread (default)',
ctx.env.FRAMEWORK += ['CoreFoundation', 'AudioToolbox']
ctx.define('HAVE_SOURCE_APPLE_AUDIO', 1)
ctx.define('HAVE_SINK_APPLE_AUDIO', 1)
+ ctx.msg('Checking for AudioToolbox.framework', 'yes')
+ else:
+ ctx.msg('Checking for AudioToolbox.framework', 'no (disabled)', color = 'YELLOW')
if (ctx.options.enable_accelerate != False):
ctx.define('HAVE_ACCELERATE', 1)
ctx.env.FRAMEWORK += ['Accelerate']
+ ctx.msg('Checking for Accelerate framework', 'yes')
+ else:
+ ctx.msg('Checking for Accelerate framework', 'no (disabled)', color = 'YELLOW')
if target_platform in [ 'ios', 'iosimulator' ]:
MINSDKVER="6.1"
# the following defines will be passed as arguments to the compiler
# instead of being written to src/config.h
+ ctx.define('HAVE_CONFIG_H', 1)
# add some defines used in examples
ctx.define('AUBIO_PREFIX', ctx.env['PREFIX'])
bld.env['VERSION'] = VERSION
bld.env['LIB_VERSION'] = LIB_VERSION
- # add sub directories
+ # main source
bld.recurse('src')
+
+ # add sub directories
if bld.env['DEST_OS'] not in ['ios', 'iosimulator', 'android']:
bld.recurse('examples')
bld.recurse('tests')
+ # pkg-config template
bld( source = 'aubio.pc.in' )
+ # documentation
+ txt2man(bld)
+ doxygen(bld)
+ sphinx(bld)
+
+def txt2man(bld):
# build manpages from txt files using txt2man
if bld.env['TXT2MAN']:
from waflib import TaskGen
if 'MANDIR' not in bld.env:
- bld.env['MANDIR'] = bld.env['PREFIX'] + '/share/man'
+ bld.env['MANDIR'] = bld.env['DATAROOTDIR'] + '/man'
rule_str = '${TXT2MAN} -t `basename ${TGT} | cut -f 1 -d . | tr a-z A-Z`'
rule_str += ' -r ${PACKAGE}\\ ${VERSION} -P ${PACKAGE}'
rule_str += ' -v ${PACKAGE}\\ User\\\'s\\ manual'
)
bld( source = bld.path.ant_glob('doc/*.txt') )
+def doxygen(bld):
# build documentation from source files using doxygen
if bld.env['DOXYGEN']:
bld( name = 'doxygen', rule = 'doxygen ${SRC} > /dev/null',
source = 'doc/web.cfg',
cwd = 'doc')
- bld.install_files( '${PREFIX}' + '/share/doc/libaubio-doc',
+ bld.install_files( '${DATAROOTDIR}' + '/doc/libaubio-doc',
bld.path.ant_glob('doc/web/html/**'),
cwd = bld.path.find_dir ('doc/web'),
relative_trick = True)
+def sphinx(bld):
# build documentation from source files using sphinx-build
+ # note: build in ../doc/_build/html, otherwise waf wont install unsigned files
if bld.env['SPHINX']:
- bld( name = 'sphinx', rule = 'make html',
- source = ['doc/conf.py'] + bld.path.ant_glob('doc/**.rst'),
- cwd = 'doc')
- bld.install_files( '${PREFIX}' + '/share/doc/libaubio-doc/sphinx',
+ bld( name = 'sphinx',
+ rule = '${SPHINX} -b html -a -q `dirname ${SRC}` `dirname ${TGT}`',
+ source = 'doc/conf.py',
+ target = '../doc/_build/html/index.html')
+ bld.install_files( '${DATAROOTDIR}' + '/doc/libaubio-doc/sphinx',
bld.path.ant_glob('doc/_build/html/**'),
- cwd = bld.path.find_dir ('doc/_build/html'),
+ cwd = bld.path.find_dir('doc/_build/html'),
relative_trick = True)
+# register the previous rules as build rules
+from waflib.Build import BuildContext
+
+class build_txt2man(BuildContext):
+ cmd = 'txt2man'
+ fun = 'txt2man'
+
+class build_manpages(BuildContext):
+ cmd = 'manpages'
+ fun = 'txt2man'
+
+class build_sphinx(BuildContext):
+ cmd = 'sphinx'
+ fun = 'sphinx'
+
+class build_doxygen(BuildContext):
+ cmd = 'doxygen'
+ fun = 'doxygen'
+
def shutdown(bld):
from waflib import Logs
if bld.options.target_platform in ['ios', 'iosimulator']:
Logs.pprint('RED', msg)
def dist(ctx):
- ctx.excl = ' **/.waf-1* **/*~ **/*.pyc **/*.swp **/*.swo **/*.swn **/.lock-w* **/.git*'
+ ctx.excl = ' **/.waf* **/*~ **/*.pyc **/*.swp **/*.swo **/*.swn **/.lock-w* **/.git*'
ctx.excl += ' **/build/*'
ctx.excl += ' doc/_build'
ctx.excl += ' python/demos_*'
ctx.excl += ' **/python/lib/aubio/_aubio.so'
ctx.excl += ' **.egg-info'
ctx.excl += ' **/**.zip **/**.tar.bz2'
+ ctx.excl += ' **.tar.bz2'
ctx.excl += ' **/doc/full/* **/doc/web/*'
+ ctx.excl += ' **/doc/full.cfg'
ctx.excl += ' **/python/*.db'
ctx.excl += ' **/python.old/*'
ctx.excl += ' **/python/*/*.old'