From 1d516ac95a61d12dadaaf75c46f792d8e4308578 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 26 Feb 2009 01:22:20 +0000 Subject: Waf building of rubberband. Use rubberband over soundtouch with waf for the time being. git-svn-id: svn://localhost/ardour2/branches/3.0@4669 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/rb_effect.cc | 2 +- libs/ardour/wscript | 11 +++++--- libs/pbd/wscript | 6 ++--- libs/rubberband/SConscript | 2 +- libs/rubberband/src/FFT.cpp | 2 ++ libs/rubberband/wscript | 64 +++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 78 insertions(+), 9 deletions(-) create mode 100644 libs/rubberband/wscript (limited to 'libs') diff --git a/libs/ardour/rb_effect.cc b/libs/ardour/rb_effect.cc index b709c9bd1f..3cda2eb706 100644 --- a/libs/ardour/rb_effect.cc +++ b/libs/ardour/rb_effect.cc @@ -21,7 +21,7 @@ #include #include "pbd/error.h" -#include +#include "rubberband/RubberBandStretcher.h" #include "ardour/types.h" #include "ardour/stretch.h" diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 564c611d63..3001d063d3 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -38,8 +38,9 @@ def configure(conf): autowaf.check_pkg(conf, 'samplerate', uselib_store='SAMPLERATE', atleast_version='0.1.0') autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18') - autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18') - autowaf.check_pkg(conf, 'soundtouch-1.0', uselib_store='SOUNDTOUCH') + #autowaf.check_pkg(conf, 'soundtouch-1.0', uselib_store='SOUNDTOUCH') + + conf.env.append_value('CXXFLAGS', '-DUSE_RUBBERBAND') check_header_and_define(conf, 'sys/vfs.h', 'HAVE_SYS_VFS_H') check_header_and_define(conf, 'wordexp.h', 'HAVE_WORDEXP') @@ -215,8 +216,10 @@ def build(bld): os.path.normpath(bld.env['DATADIRNAME']), 'locale') + '\\\"' obj.cxxflags += ' -DVAMP_DIR=\\\"' + os.path.join( os.path.normpath(bld.env['LIBDIRNAME']), 'ardour3', 'vamp') + '\\\"' - obj.source += ' st_stretch.cc st_pitch.cc ' - obj.uselib += ' SOUNDTOUCH ' + obj.source += ' rb_effect.cc ' + obj.uselib_local += ' librubberband ' + #obj.source += ' st_stretch.cc st_pitch.cc ' + #obj.uselib += ' SOUNDTOUCH ' def shutdown(): autowaf.shutdown() diff --git a/libs/pbd/wscript b/libs/pbd/wscript index b5e0bce088..a523956617 100644 --- a/libs/pbd/wscript +++ b/libs/pbd/wscript @@ -77,15 +77,15 @@ def build(bld): xml++.cc ''' obj.export_incdirs = ['.'] - obj.cxxflags = '-DPACKAGE=\\\"libpbd\\\"' - if bld.env['PBD_HAVE_EXECINFO']: - obj.cxxflags += ' -DHAVE_EXECINFO ' obj.includes = ['.'] obj.name = 'libpbd' obj.target = 'pbd' obj.uselib = 'GLIBMM SIGCPP XML UUID' obj.vnum = LIBPBD_LIB_VERSION obj.install_path = '' + obj.cxxflags = '-DPACKAGE=\\\"libpbd\\\"' + if bld.env['PBD_HAVE_EXECINFO']: + obj.cxxflags += ' -DHAVE_EXECINFO ' def shutdown(): autowaf.shutdown() diff --git a/libs/rubberband/SConscript b/libs/rubberband/SConscript index adad16a8b3..9c3226526c 100644 --- a/libs/rubberband/SConscript +++ b/libs/rubberband/SConscript @@ -10,7 +10,7 @@ Import('env install_prefix libraries') rb = env.Clone() rb.Merge ([libraries['fftw3f'], - libraries['fftw3'], + libraries['fftw3'], libraries['vamp'], libraries['samplerate'], libraries['sndfile'] diff --git a/libs/rubberband/src/FFT.cpp b/libs/rubberband/src/FFT.cpp index 98201350a2..077c2c57a4 100644 --- a/libs/rubberband/src/FFT.cpp +++ b/libs/rubberband/src/FFT.cpp @@ -18,7 +18,9 @@ //#define FFT_MEASUREMENT 1 +#ifndef HAVE_FFTW3 #define HAVE_FFTW3 // for Ardour +#endif #ifdef HAVE_FFTW3 #include diff --git a/libs/rubberband/wscript b/libs/rubberband/wscript new file mode 100644 index 0000000000..d43ec08c16 --- /dev/null +++ b/libs/rubberband/wscript @@ -0,0 +1,64 @@ +#!/usr/bin/env python +import autowaf +import glob + +# Version of this package (even if built as a child) +LIBRUBBERBAND_VERSION = '0.0.0' + +# Library version (UNIX style major, minor, micro) +# major increment <=> incompatible changes +# minor increment <=> compatible changes (additions) +# micro increment <=> no interface changes +LIBRUBBERBAND_LIB_VERSION = '4.1.0' + +# Variables for 'waf dist' +APPNAME = 'librubberband' +VERSION = LIBRUBBERBAND_VERSION + +# Mandatory variables +srcdir = '.' +blddir = 'build' + +def set_options(opt): + autowaf.set_options(opt) + +def configure(conf): + autowaf.configure(conf) + autowaf.check_tool(conf, 'compiler_cxx') + autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') + autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') + autowaf.check_pkg(conf, 'uuid', uselib_store='UUID') + + conf.check(function_name='getmntent', header_name='mntent.h', define_name='HAVE_GETMNTENT') + + # This must be defined for librubberband only, it breaks ardour + conf.check(header_name='execinfo.h', define_name='PBD_HAVE_EXECINFO') + + conf.env.append_value('CXXFLAGS', '-DHAVE_WAFCONFIG_H') + conf.write_config_header('wafconfig.h') + + # Boost headers + autowaf.check_header(conf, 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'boost/weak_ptr.hpp') + +def build(bld): + # Library + obj = bld.new_task_gen('cxx', 'shlib') + prefix = 'libs/rubberband/' + sources = glob.glob(prefix + 'src/*.cpp') + obj.source = [ ] + for i in sources: + obj.source += [ i.replace(prefix, '') ] + obj.export_incdirs = ['.'] + obj.includes = ['.', 'rubberband'] + obj.name = 'librubberband' + obj.target = 'rubberband' + obj.uselib = 'FFTW3 FFTW3F SAMPLERATE SNDFILE' + obj.uselib_local = 'libvamp' + obj.vnum = LIBRUBBERBAND_LIB_VERSION + obj.install_path = '' + obj.cxxflags = '-DPACKAGE=\\\"librubberband\\\"' + +def shutdown(): + autowaf.shutdown() + -- cgit v1.2.3