From 0318cc1488de5d78dcd7ee47f26c99fef8e55545 Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Sat, 30 Mar 2013 00:35:11 -0500 Subject: [PATCH] wscript: always use installed external dependancies, simplify --- examples/wscript_build | 3 +- src/wscript_build | 14 ++--- wscript | 122 ++++++++++++++++------------------------- 3 files changed, 53 insertions(+), 86 deletions(-) diff --git a/examples/wscript_build b/examples/wscript_build index 3a4f0cd0..b89b9fd5 100644 --- a/examples/wscript_build +++ b/examples/wscript_build @@ -6,14 +6,13 @@ utilsio = bld( features = 'c', includes = '../src', source = ['utils.c', 'jackio.c'], - uselib = ['LASH', 'JACK'], target = 'utilsio') # loop over all *.c filenames in examples to build them all for source_file in ctx.path.ant_glob('*.c', excl = ['utils.c', 'jackio.c']): bld.program(features = 'c cprogram', includes = '../src', - use = ['aubio', 'LASH', 'JACK', 'SNDFILE', 'utilsio'], + use = ['aubio', 'FFTW3F', 'FFTW3', 'SNDFILE', 'JACK', 'LASH', 'SAMPLERATE', 'utilsio'], source = str(source_file), target = str(source_file).split('.')[0] ) diff --git a/src/wscript_build b/src/wscript_build index ed9ef389..dffcf095 100644 --- a/src/wscript_build +++ b/src/wscript_build @@ -2,16 +2,12 @@ source = ctx.path.ant_glob('*.c **/*.c') uselib = [] +uselib += ['FFTW3', 'FFTW3F'] +uselib += ['SAMPLERATE'] +uselib += ['SNDFILE'] +uselib += ['JACK'] +uselib += ['LASH'] -if 'HAVE_FFTW3' in conf.get_env(): - source.filter(lambda x: not x.endswith('ooura_fft8g.c')) - uselib += ['FFTW3', 'FFTW3F'] - -if 'HAVE_SAMPLERATE': - uselib += ['SAMPLERATE'] - -if 'HAVE_SNDFILE': - uselib += ['SNDFILE'] # build libaubio from waflib import Options diff --git a/wscript b/wscript index f78f89d0..1672a217 100644 --- a/wscript +++ b/wscript @@ -33,22 +33,20 @@ out = 'build' def options(ctx): ctx.add_option('--enable-double', action='store_true', default=False, help='compile aubio in double precision mode') - ctx.add_option('--enable-fftw', action='store_true', default=False, + ctx.add_option('--enable-fftw', action='store_true', default=None, help='compile with ooura instead of fftw') - ctx.add_option('--enable-fftw3f', action='store_true', default=False, + ctx.add_option('--enable-fftw3f', action='store_true', default=None, help='compile with fftw3 instead of fftw3f') ctx.add_option('--enable-complex', action='store_true', default=False, help='compile with C99 complex') - ctx.add_option('--enable-jack', action='store_true', default=False, + ctx.add_option('--enable-jack', action='store_true', default=None, help='compile with jack support') - ctx.add_option('--enable-lash', action='store_true', default=False, + ctx.add_option('--enable-lash', action='store_true', default=None, help='compile with lash support') - ctx.add_option('--enable-sndfile', action='store_true', default=False, + ctx.add_option('--enable-sndfile', action='store_true', default=None, help='compile with libsndfile support') - ctx.add_option('--enable-samplerate', action='store_true', default=False, + ctx.add_option('--enable-samplerate', action='store_true', default=None, help='compile with libsamplerate support') - ctx.add_option('--enable-swig', action='store_true', default=False, - help='compile with swig support (obsolete)') ctx.add_option('--with-target-platform', type='string', help='set target platform for cross-compilation', dest='target_platform') ctx.load('compiler_c') @@ -93,17 +91,27 @@ def configure(ctx): ctx.check(header_name='string.h') ctx.check(header_name='limits.h') + # check support for C99 __VA_ARGS__ macros + check_c99_varargs = ''' +#include +#define AUBIO_ERR(...) fprintf(stderr, __VA_ARGS__) +''' + if ctx.check_cc(fragment = check_c99_varargs, + type='cstlib', + msg = 'Checking for C99 __VA_ARGS__ macro'): + ctx.define('HAVE_C99_VARARGS_MACROS', 1) + # optionally use complex.h if (Options.options.enable_complex == True): ctx.check(header_name='complex.h') # check dependencies - if (Options.options.enable_sndfile == True): - ctx.check_cfg(package = 'sndfile', atleast_version = '1.0.4', - args = '--cflags --libs') - if (Options.options.enable_samplerate == True): + if (Options.options.enable_sndfile != False): + ctx.check_cfg(package = 'sndfile', atleast_version = '1.0.4', + args = '--cflags --libs', mandatory = False) + if (Options.options.enable_samplerate != False): ctx.check_cfg(package = 'samplerate', atleast_version = '0.0.15', - args = '--cflags --libs') + args = '--cflags --libs', mandatory = False) # double precision mode if (Options.options.enable_double == True): @@ -111,71 +119,35 @@ def configure(ctx): else: ctx.define('HAVE_AUBIO_DOUBLE', 0) - # check if pkg-config is installed, optional - try: - ctx.find_program('pkg-config', var='PKGCONFIG') - except ctx.errors.ConfigurationError: - ctx.msg('Could not find pkg-config', 'disabling fftw, jack, and lash') - ctx.msg('Could not find fftw', 'using ooura') - # optional dependancies using pkg-config - if ctx.env['PKGCONFIG']: - - if (Options.options.enable_fftw == True or Options.options.enable_fftw3f == True): - # one of fftwf or fftw3f - if (Options.options.enable_fftw3f == True): - ctx.check_cfg(package = 'fftw3f', atleast_version = '3.0.0', - args = '--cflags --libs') - if (Options.options.enable_double == True): - ctx.msg('Warning', 'fftw3f enabled, but aubio compiled in double precision!') - else: - # fftw3f not enabled, take most sensible one according to enable_double - if (Options.options.enable_double == True): - ctx.check_cfg(package = 'fftw3', atleast_version = '3.0.0', - args = '--cflags --libs') - else: - ctx.check_cfg(package = 'fftw3f', atleast_version = '3.0.0', - args = '--cflags --libs') - ctx.define('HAVE_FFTW3', 1) + if (Options.options.enable_fftw != False or Options.options.enable_fftw3f != False): + # one of fftwf or fftw3f + if (Options.options.enable_fftw3f != False): + ctx.check_cfg(package = 'fftw3f', atleast_version = '3.0.0', + args = '--cflags --libs', mandatory = False) + if (Options.options.enable_double == True): + ctx.msg('Warning', 'fftw3f enabled, but aubio compiled in double precision!') else: - # fftw disabled, use ooura - ctx.msg('Checking for FFT implementation', 'ooura') - pass - - if (Options.options.enable_jack == True): - ctx.check_cfg(package = 'jack', atleast_version = '0.15.0', - args = '--cflags --libs') - - if (Options.options.enable_lash == True): - ctx.check_cfg(package = 'lash-1.0', atleast_version = '0.5.0', - args = '--cflags --libs', uselib_store = 'LASH') - - # swig - if (Options.options.enable_swig == True): - try: - ctx.find_program('swig', var='SWIG') - except ctx.errors.ConfigurationError: - ctx.to_log('swig was not found, not looking for (ignoring)') - - if ctx.env['SWIG']: - ctx.check_tool('swig') - ctx.check_swig_version() - - # python - if ctx.find_program('python'): - ctx.check_tool('python') - ctx.check_python_version((2,4,2)) - ctx.check_python_headers() + # fftw3f not enabled, take most sensible one according to enable_double + if (Options.options.enable_double == True): + ctx.check_cfg(package = 'fftw3', atleast_version = '3.0.0', + args = '--cflags --libs', mandatory = False) + else: + ctx.check_cfg(package = 'fftw3f', atleast_version = '3.0.0', + args = '--cflags --libs', mandatory = False) + ctx.define('HAVE_FFTW3', 1) + else: + # fftw disabled, use ooura + ctx.msg('Checking for FFT implementation', 'ooura') + pass - # check support for C99 __VA_ARGS__ macros - check_c99_varargs = ''' -#include -#define AUBIO_ERR(...) fprintf(stderr, __VA_ARGS__) -''' - if ctx.check_cc(fragment = check_c99_varargs, - type='cstlib', - msg = 'Checking for C99 __VA_ARGS__ macro'): - ctx.define('HAVE_C99_VARARGS_MACROS', 1) + if (Options.options.enable_jack != False): + ctx.check_cfg(package = 'jack', atleast_version = '0.15.0', + args = '--cflags --libs', mandatory = False) + + if (Options.options.enable_lash != False): + ctx.check_cfg(package = 'lash-1.0', atleast_version = '0.5.0', + args = '--cflags --libs', uselib_store = 'LASH', mandatory = False) # write configuration header ctx.write_config_header('src/config.h') -- 2.26.2