From 286e739933e0e330008c37397f7c403b53361293 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Feb 2021 16:42:13 +0000 Subject: [PATCH 01/44] First cut at a Meson build --- .hgignore | 1 + meson.build | 416 ++++++++++++++++++++++++++++++++++++++++++++++ meson_options.txt | 18 ++ 3 files changed, 435 insertions(+) create mode 100644 meson.build create mode 100644 meson_options.txt diff --git a/.hgignore b/.hgignore index 2aef9ed..2070702 100644 --- a/.hgignore +++ b/.hgignore @@ -22,3 +22,4 @@ re:^x64/Debug/ re:^x64/Release/ re:^Release/ re:^Debug/ +build/ diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..3a349ad --- /dev/null +++ b/meson.build @@ -0,0 +1,416 @@ + +project( + 'Rubber Band Library', + 'c', 'cpp', + version: '1.9.0', + license: 'GPL-2.0', + default_options: [ + 'cpp_std=c++98', + 'warning_level=2', + 'buildtype=release', + 'b_ndebug=if-release', + 'b_lundef=true', + ], + meson_version: '>= 0.54.0' +) + +rubberband_dynamic_library_version = '2.1.2' + +system = build_machine.system() +architecture = host_machine.cpu_family() +pkg = import('pkgconfig') + + +# Define the project source sets + +public_headers = [ + 'rubberband/rubberband-c.h', + 'rubberband/RubberBandStretcher.h', +] + +library_sources = [ + 'src/rubberband-c.cpp', + 'src/RubberBandStretcher.cpp', + 'src/StretcherProcess.cpp', + 'src/StretchCalculator.cpp', + 'src/base/Profiler.cpp', + 'src/dsp/AudioCurveCalculator.cpp', + 'src/audiocurves/CompoundAudioCurve.cpp', + 'src/audiocurves/SpectralDifferenceAudioCurve.cpp', + 'src/audiocurves/HighFrequencyAudioCurve.cpp', + 'src/audiocurves/SilentAudioCurve.cpp', + 'src/audiocurves/ConstantAudioCurve.cpp', + 'src/audiocurves/PercussiveAudioCurve.cpp', + 'src/dsp/Resampler.cpp', + 'src/dsp/FFT.cpp', + 'src/system/Allocators.cpp', + 'src/system/sysutils.cpp', + 'src/system/Thread.cpp', + 'src/StretcherChannelData.cpp', + 'src/StretcherImpl.cpp', +] + +jni_sources = [ + 'src/jni/RubberBandStretcherJNI.cpp', +] + +java_sources = [ + 'com/breakfastquay/rubberband/RubberBandStretcher.java', +] + +program_sources = [ + 'main/main.cpp', +] + +vamp_sources = [ + 'vamp/RubberBandVampPlugin.cpp', + 'vamp/libmain.cpp', +] + +ladspa_sources = [ + 'ladspa/RubberBandPitchShifter.cpp', + 'ladspa/libmain.cpp', +] + +general_include_dirs = [ + 'rubberband', + 'src', +] + + +# Scan for any dependencies we may use later; all are optional +# We collect these first so our summary messages about selected build +# features all appear together at the end + +fftw3_dep = dependency('fftw3', version: '>= 3.0.0', required: false) +samplerate_dep = dependency('samplerate', version: '>= 0.1.8', required: false) +sndfile_dep = dependency('sndfile', version: '>= 1.0.16', required: false) +vamp_dep = dependency('vamp-sdk', version: '>= 2.9', required: false) +thread_dep = dependency('threads') +have_ladspa = meson.get_compiler('cpp').has_header('ladspa.h') + + +# Check FFT and resampler options and set up dependencies and paths + +feature_dependencies = [] +feature_defines = [] +feature_libraries = [] +feature_sources = [] +pkgconfig_requirements = [] + +resampler = get_option('resampler') +fft = get_option('fft') +ipp_path = get_option('ipp_path') + +if fft == 'auto' + if system == 'darwin' + fft = 'vdsp' + else + fft = 'kissfft' + endif +endif + +if resampler == 'auto' + if samplerate_dep.found() + resampler = 'libsamplerate' + else + resampler = 'speex' + endif +endif + +ipp_needed = false + +if fft == 'kissfft' + message('For FFT: using KissFFT') + if fftw3_dep.found() + message('(to use FFTW instead, reconfigure with -Dfft=fftw)') + endif + feature_sources += ['src/kissfft/kiss_fft.c', 'src/kissfft/kiss_fftr.c'] + feature_defines += ['-DUSE_KISSFFT'] + +elif fft == 'fftw' + if fftw3_dep.found() + message('For FFT: using FFTW') + else + error('For FFT: FFTW selected, but dependency not found') + endif + feature_dependencies += fftw3_dep + feature_defines += ['-DHAVE_FFTW3', '-DFFTW_DOUBLE_ONLY'] + pkgconfig_requirements += fftw3_dep + +elif fft == 'vdsp' + message('For FFT: using vDSP') + feature_defines += ['-DHAVE_VDSP'] + feature_libraries += ['-framework', 'Accelerate'] + +elif fft == 'ipp' + if ipp_path != '' + message('For FFT: IPP selected') + message('IPP path defined as ' + ipp_path) + else + error('For FFT: IPP selected, but ipp_path not specified') + endif + ipp_needed = true + +else + error('Unknown or unsupported FFT option: ' + fft) + +endif # fft + +if resampler == 'libsamplerate' + if samplerate_dep.found() + message('For resampler: using libsamplerate') + else + error('For resampler: libsamplerate selected, but dependency not found') + endif + feature_dependencies += samplerate_dep + feature_defines += ['-DHAVE_LIBSAMPLERATE'] + pkgconfig_requirements += samplerate_dep + +elif resampler == 'speex' + message('For resampler: speex selected') + message('(consider libsamplerate if time-varying pitch shift is required)') + feature_sources += ['src/speex/resample.c'] + feature_defines += ['-DUSE_SPEEX'] + +elif resampler == 'ipp' + if ipp_path != '' + message('For resampler: IPP selected') + message('(consider libsamplerate if time-varying pitch shift is required)') + message('IPP path defined as ' + ipp_path) + else + error('For resampler: IPP selected, but ipp_path not specified') + endif + ipp_needed = true + +else + error('Unknown or unsupported resampler option: ' + resampler) + +endif # resampler + +if ipp_needed + feature_defines += [ + '-DHAVE_IPP', + '-DUSE_IPP_STATIC', + '-I' + ipp_path / 'include' + ] + if architecture == 'x86' + feature_libraries += [ + '-L' + ipp_path / 'lib/ia32', + ] + elif architecture == 'x86_64' + feature_libraries += [ + '-L' + ipp_path / 'lib/intel64', + ] + else + error('IPP is not supported for this architecture') + endif + if system == 'windows' + feature_libraries += [ + '-lippsmt', '-lippvmmt', '-lippcoremt', + ] + elif system == 'linux' + feature_libraries += [ + '-Wl,-Bstatic', '-lipps', '-lippvm', '-lippcore', '-Wl,-Bdynamic', + ] + else + feature_libraries += [ + '-lipps', '-lippvm', '-lippcore', + ] + endif +endif # ipp_needed + + +# General platform and compiler expectations + +ladspa_symbol_args = [] +vamp_symbol_args = [] + +if get_option('buildtype').startswith('release') + feature_defines += ['-DNO_THREAD_CHECKS', '-DNO_TIMING', '-DNDEBUG'] +endif + +if system == 'darwin' + feature_defines += ['-DUSE_PTHREADS', '-DMALLOC_IS_ALIGNED'] + ladspa_symbol_args += [ + '-exported_symbols_list', meson.source_root() / 'ladspa/ladspa-plugin.list' + ] + vamp_symbol_args += [ + '-exported_symbols_list', meson.source_root() / 'vamp/vamp-plugin.list' + ] +elif system == 'windows' + if meson.get_compiler('cpp').get_id() == 'msvc' + feature_defines += ['-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES'] + ladspa_symbol_args += ['-EXPORT:ladspa_descriptor'] + vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor'] + endif +else + feature_defines += ['-DUSE_PTHREADS', '-DHAVE_POSIX_MEMALIGN'] + ladspa_symbol_args += [ + '-Wl,--version-script=' + meson.source_root() / 'ladspa/ladspa-plugin.map' + ] + vamp_symbol_args += [ + '-Wl,--version-script=' + meson.source_root() / 'vamp/vamp-plugin.map' + ] +endif + + +# And the build targets: Static and dynamic libraries, command-line +# utility, LADSPA plugin, Vamp plugin + +message('Will build Rubber Band Library static library') +rubberband_static = static_library( + 'rubberband', + library_sources, + feature_sources, + include_directories: [ + general_include_dirs, + ], + cpp_args: [ + feature_defines, + ], + c_args: [ + feature_defines, + ], + dependencies: [ + feature_dependencies, + thread_dep, + ], + pic: true, + install: true, +) + +rubberband_static_dep = declare_dependency( + link_with: rubberband_static, +) + +if system != 'windows' + message('Will build Rubber Band Library dynamic library') + rubberband_dynamic = shared_library( + 'rubberband', + objects: rubberband_static.extract_all_objects(), + link_args: [ + feature_libraries, + ], + dependencies: [ + feature_dependencies, + thread_dep, + ], + version: rubberband_dynamic_library_version, + install: true, + ) +endif + +if have_ladspa + message('Will build LADSPA plugin') + rubberband_ladspa = shared_library( + 'ladspa-rubberband', + ladspa_sources, + include_directories: [ + general_include_dirs, + ], + cpp_args: [ + feature_defines, + ], + c_args: [ + feature_defines, + ], + link_args: [ + feature_libraries, + ladspa_symbol_args, + ], + dependencies: [ + rubberband_static_dep, + feature_dependencies, + thread_dep, + ], + name_prefix: '', + install: true, + install_dir: get_option('libdir') / 'ladspa', + ) + install_data( + 'ladspa/ladspa-rubberband.cat', + install_dir: get_option('libdir') / 'ladspa', + ) + install_data( + 'ladspa/ladspa-rubberband.rdf', + install_dir: get_option('datadir') / 'ladspa/rdf', + ) +else + message('Not building LADSPA plugin: ladspa.h header not found') +endif + +if vamp_dep.found() + message('Will build Vamp plugin') + rubberband_vamp = shared_library( + 'vamp-rubberband', + vamp_sources, + include_directories: [ + general_include_dirs, + ], + cpp_args: [ + feature_defines, + ], + c_args: [ + feature_defines, + ], + link_args: [ + feature_libraries, + vamp_symbol_args, + ], + dependencies: [ + rubberband_static_dep, + feature_dependencies, + vamp_dep, + thread_dep, + ], + name_prefix: '', + install: true, + install_dir: get_option('libdir') / 'vamp', + ) + install_data( + 'vamp/vamp-rubberband.cat', + install_dir: get_option('libdir') / 'vamp', + ) +else + message('Not building Vamp plugin: Vamp dependency not found') +endif + +if sndfile_dep.found() + message('Will build command-line utility') + rubberband_program = executable( + 'rubberband', + program_sources, + include_directories: [ + general_include_dirs, + ], + cpp_args: [ + feature_defines, + ], + c_args: [ + feature_defines, + ], + link_args: [ + feature_libraries, + ], + dependencies: [ + rubberband_static_dep, + feature_dependencies, + sndfile_dep, + thread_dep, + ], + install: true, + ) +else + message('Not building command-line utility: dependency libsndfile not found') +endif + +pkg.generate( + name: 'rubberband', + description: 'Audio time-stretching and pitch-shifting library', + url: 'https://breakfastquay.com/rubberband/', + version: meson.project_version(), + requires: pkgconfig_requirements, + libraries: '-L${libdir} -lrubberband', + extra_cflags: '-I${includedir}', +) diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..c3e255f --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,18 @@ + +option('fft', + type: 'combo', + choices: ['auto', 'kissfft', 'fftw', 'vdsp', 'ipp'], + value: 'auto', + description: 'FFT library to use. The default (auto) will use vDSP if available, KissFFT otherwise.') + +option('resampler', + type: 'combo', + choices: ['auto', 'libsamplerate', 'speex', 'ipp'], + value: 'auto', + description: 'Resampler library to use. Recommended is libsamplerate. The default (auto) will use libsamplerate if available, speex otherwise.') + +option('ipp_path', + type: 'string', + value: '', + description: 'Path to Intel IPP libraries, if selected for any of the other options.') + From 424be79394de5de55680b344271571793ed09537 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Feb 2021 17:08:17 +0000 Subject: [PATCH 02/44] Mac architecture selection --- meson.build | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 3a349ad..748d83d 100644 --- a/meson.build +++ b/meson.build @@ -97,6 +97,7 @@ feature_defines = [] feature_libraries = [] feature_sources = [] pkgconfig_requirements = [] +arch_flags = [] resampler = get_option('resampler') fft = get_option('fft') @@ -238,13 +239,26 @@ if system == 'darwin' vamp_symbol_args += [ '-exported_symbols_list', meson.source_root() / 'vamp/vamp-plugin.list' ] + if architecture == 'aarch64' + arch_flags = [ + '-mmacosx-version-min=11', + '-arch', 'arm64' + ] + elif architecture == 'x86_64' + arch_flags = [ + '-mmacosx-version-min=10.11', + '-arch', 'x86_64', + ] + endif # architecture + elif system == 'windows' if meson.get_compiler('cpp').get_id() == 'msvc' feature_defines += ['-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES'] ladspa_symbol_args += ['-EXPORT:ladspa_descriptor'] vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor'] endif -else + +else # system not darwin or windows feature_defines += ['-DUSE_PTHREADS', '-DHAVE_POSIX_MEMALIGN'] ladspa_symbol_args += [ '-Wl,--version-script=' + meson.source_root() / 'ladspa/ladspa-plugin.map' @@ -252,7 +266,7 @@ else vamp_symbol_args += [ '-Wl,--version-script=' + meson.source_root() / 'vamp/vamp-plugin.map' ] -endif +endif # system # And the build targets: Static and dynamic libraries, command-line @@ -267,9 +281,11 @@ rubberband_static = static_library( general_include_dirs, ], cpp_args: [ + arch_flags, feature_defines, ], c_args: [ + arch_flags, feature_defines, ], dependencies: [ @@ -290,6 +306,7 @@ if system != 'windows' 'rubberband', objects: rubberband_static.extract_all_objects(), link_args: [ + arch_flags, feature_libraries, ], dependencies: [ @@ -310,12 +327,15 @@ if have_ladspa general_include_dirs, ], cpp_args: [ + arch_flags, feature_defines, ], c_args: [ + arch_flags, feature_defines, ], link_args: [ + arch_flags, feature_libraries, ladspa_symbol_args, ], @@ -349,12 +369,15 @@ if vamp_dep.found() general_include_dirs, ], cpp_args: [ + arch_flags, feature_defines, ], c_args: [ + arch_flags, feature_defines, ], link_args: [ + arch_flags, feature_libraries, vamp_symbol_args, ], @@ -385,12 +408,15 @@ if sndfile_dep.found() general_include_dirs, ], cpp_args: [ + arch_flags, feature_defines, ], c_args: [ + arch_flags, feature_defines, ], link_args: [ + arch_flags, feature_libraries, ], dependencies: [ From c23d30fc4ac2bcf3df36e99d0de1417ab666324c Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Feb 2021 17:28:20 +0000 Subject: [PATCH 03/44] Windows fixes --- meson.build | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 748d83d..bbb98c0 100644 --- a/meson.build +++ b/meson.build @@ -5,8 +5,7 @@ project( version: '1.9.0', license: 'GPL-2.0', default_options: [ - 'cpp_std=c++98', - 'warning_level=2', + 'cpp_std=c++11', 'buildtype=release', 'b_ndebug=if-release', 'b_lundef=true', @@ -146,7 +145,7 @@ elif fft == 'vdsp' elif fft == 'ipp' if ipp_path != '' - message('For FFT: IPP selected') + message('For FFT: using IPP') message('IPP path defined as ' + ipp_path) else error('For FFT: IPP selected, but ipp_path not specified') @@ -169,14 +168,14 @@ if resampler == 'libsamplerate' pkgconfig_requirements += samplerate_dep elif resampler == 'speex' - message('For resampler: speex selected') + message('For resampler: using Speex') message('(consider libsamplerate if time-varying pitch shift is required)') feature_sources += ['src/speex/resample.c'] feature_defines += ['-DUSE_SPEEX'] elif resampler == 'ipp' if ipp_path != '' - message('For resampler: IPP selected') + message('For resampler: using IPP') message('(consider libsamplerate if time-varying pitch shift is required)') message('IPP path defined as ' + ipp_path) else @@ -227,6 +226,9 @@ endif # ipp_needed ladspa_symbol_args = [] vamp_symbol_args = [] +platform_static_name_prefix = [] +platform_static_name_suffix = [] + if get_option('buildtype').startswith('release') feature_defines += ['-DNO_THREAD_CHECKS', '-DNO_TIMING', '-DNDEBUG'] endif @@ -253,9 +255,13 @@ if system == 'darwin' elif system == 'windows' if meson.get_compiler('cpp').get_id() == 'msvc' - feature_defines += ['-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES'] + feature_defines += ['-DWIN32', '-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES'] ladspa_symbol_args += ['-EXPORT:ladspa_descriptor'] vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor'] + # Meson likes libxxx.a even on Windows, and so might we for a + # new library, but not here + platform_static_name_prefix = '' + platform_static_name_suffix = 'lib' endif else # system not darwin or windows @@ -292,6 +298,8 @@ rubberband_static = static_library( feature_dependencies, thread_dep, ], + name_prefix: platform_static_name_prefix, + name_suffix: platform_static_name_suffix, pic: true, install: true, ) From 4be543a4b2d573cc114708bbea6a79ceb57f0ecb Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 10:13:45 +0000 Subject: [PATCH 04/44] Export DLL symbols --- rubberband/RubberBandStretcher.h | 10 +++++- rubberband/rubberband-c.h | 59 ++++++++++++++++++-------------- 2 files changed, 43 insertions(+), 26 deletions(-) diff --git a/rubberband/RubberBandStretcher.h b/rubberband/RubberBandStretcher.h index ad16ca3..1bc0829 100644 --- a/rubberband/RubberBandStretcher.h +++ b/rubberband/RubberBandStretcher.h @@ -28,6 +28,13 @@ #define RUBBERBAND_API_MAJOR_VERSION 2 #define RUBBERBAND_API_MINOR_VERSION 6 +#undef RUBBERBAND_DLLEXPORT +#ifdef _MSC_VER +#define RUBBERBAND_DLLEXPORT __declspec(dllexport) +#else +#define RUBBERBAND_DLLEXPORT +#endif + #include #include #include @@ -60,7 +67,8 @@ namespace RubberBand { -class RubberBandStretcher +class RUBBERBAND_DLLEXPORT +RubberBandStretcher { public: /** diff --git a/rubberband/rubberband-c.h b/rubberband/rubberband-c.h index 41bcfac..2a5e56d 100644 --- a/rubberband/rubberband-c.h +++ b/rubberband/rubberband-c.h @@ -32,6 +32,13 @@ extern "C" { #define RUBBERBAND_API_MAJOR_VERSION 2 #define RUBBERBAND_API_MINOR_VERSION 6 +#undef RB_EXTERN +#ifdef _MSC_VER +#define RB_EXTERN extern __declspec(dllexport) +#else +#define RB_EXTERN extern +#endif + /** * This is a C-linkage interface to the Rubber Band time stretcher. * @@ -91,52 +98,54 @@ typedef int RubberBandOptions; struct RubberBandState_; typedef struct RubberBandState_ *RubberBandState; -extern RubberBandState rubberband_new(unsigned int sampleRate, +RB_EXTERN RubberBandState rubberband_new(unsigned int sampleRate, unsigned int channels, RubberBandOptions options, double initialTimeRatio, double initialPitchScale); -extern void rubberband_delete(RubberBandState); +RB_EXTERN void rubberband_delete(RubberBandState); -extern void rubberband_reset(RubberBandState); +RB_EXTERN void rubberband_reset(RubberBandState); -extern void rubberband_set_time_ratio(RubberBandState, double ratio); -extern void rubberband_set_pitch_scale(RubberBandState, double scale); +RB_EXTERN void rubberband_set_time_ratio(RubberBandState, double ratio); +RB_EXTERN void rubberband_set_pitch_scale(RubberBandState, double scale); -extern double rubberband_get_time_ratio(const RubberBandState); -extern double rubberband_get_pitch_scale(const RubberBandState); +RB_EXTERN double rubberband_get_time_ratio(const RubberBandState); +RB_EXTERN double rubberband_get_pitch_scale(const RubberBandState); -extern unsigned int rubberband_get_latency(const RubberBandState); +RB_EXTERN unsigned int rubberband_get_latency(const RubberBandState); -extern void rubberband_set_transients_option(RubberBandState, RubberBandOptions options); -extern void rubberband_set_detector_option(RubberBandState, RubberBandOptions options); -extern void rubberband_set_phase_option(RubberBandState, RubberBandOptions options); -extern void rubberband_set_formant_option(RubberBandState, RubberBandOptions options); -extern void rubberband_set_pitch_option(RubberBandState, RubberBandOptions options); +RB_EXTERN void rubberband_set_transients_option(RubberBandState, RubberBandOptions options); +RB_EXTERN void rubberband_set_detector_option(RubberBandState, RubberBandOptions options); +RB_EXTERN void rubberband_set_phase_option(RubberBandState, RubberBandOptions options); +RB_EXTERN void rubberband_set_formant_option(RubberBandState, RubberBandOptions options); +RB_EXTERN void rubberband_set_pitch_option(RubberBandState, RubberBandOptions options); -extern void rubberband_set_expected_input_duration(RubberBandState, unsigned int samples); +RB_EXTERN void rubberband_set_expected_input_duration(RubberBandState, unsigned int samples); -extern unsigned int rubberband_get_samples_required(const RubberBandState); +RB_EXTERN unsigned int rubberband_get_samples_required(const RubberBandState); -extern void rubberband_set_max_process_size(RubberBandState, unsigned int samples); -extern void rubberband_set_key_frame_map(RubberBandState, unsigned int keyframecount, unsigned int *from, unsigned int *to); +RB_EXTERN void rubberband_set_max_process_size(RubberBandState, unsigned int samples); +RB_EXTERN void rubberband_set_key_frame_map(RubberBandState, unsigned int keyframecount, unsigned int *from, unsigned int *to); -extern void rubberband_study(RubberBandState, const float *const *input, unsigned int samples, int final); -extern void rubberband_process(RubberBandState, const float *const *input, unsigned int samples, int final); +RB_EXTERN void rubberband_study(RubberBandState, const float *const *input, unsigned int samples, int final); +RB_EXTERN void rubberband_process(RubberBandState, const float *const *input, unsigned int samples, int final); -extern int rubberband_available(const RubberBandState); -extern unsigned int rubberband_retrieve(const RubberBandState, float *const *output, unsigned int samples); +RB_EXTERN int rubberband_available(const RubberBandState); +RB_EXTERN unsigned int rubberband_retrieve(const RubberBandState, float *const *output, unsigned int samples); -extern unsigned int rubberband_get_channel_count(const RubberBandState); +RB_EXTERN unsigned int rubberband_get_channel_count(const RubberBandState); -extern void rubberband_calculate_stretch(RubberBandState); +RB_EXTERN void rubberband_calculate_stretch(RubberBandState); -extern void rubberband_set_debug_level(RubberBandState, int level); -extern void rubberband_set_default_debug_level(int level); +RB_EXTERN void rubberband_set_debug_level(RubberBandState, int level); +RB_EXTERN void rubberband_set_default_debug_level(int level); #ifdef __cplusplus } #endif +#undef RB_EXTERN + #endif From bea927e658c865dd47a7a7079f0de4cde1418429 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 10:14:00 +0000 Subject: [PATCH 05/44] Ignore a couple more files & dirs --- .hgignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.hgignore b/.hgignore index 2070702..7c0b5fe 100644 --- a/.hgignore +++ b/.hgignore @@ -22,4 +22,6 @@ re:^x64/Debug/ re:^x64/Release/ re:^Release/ re:^Debug/ -build/ +build +build_* +UpgradeLog* From caeed3427d9c1df8bddb7296deeb4a5338586491 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 10:16:02 +0000 Subject: [PATCH 06/44] Tidy & wording --- meson.build | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/meson.build b/meson.build index bbb98c0..4247200 100644 --- a/meson.build +++ b/meson.build @@ -17,6 +17,8 @@ rubberband_dynamic_library_version = '2.1.2' system = build_machine.system() architecture = host_machine.cpu_family() +cpp = meson.get_compiler('cpp') + pkg = import('pkgconfig') @@ -86,7 +88,7 @@ samplerate_dep = dependency('samplerate', version: '>= 0.1.8', required: false) sndfile_dep = dependency('sndfile', version: '>= 1.0.16', required: false) vamp_dep = dependency('vamp-sdk', version: '>= 2.9', required: false) thread_dep = dependency('threads') -have_ladspa = meson.get_compiler('cpp').has_header('ladspa.h') +have_ladspa = cpp.has_header('ladspa.h') # Check FFT and resampler options and set up dependencies and paths @@ -254,7 +256,7 @@ if system == 'darwin' endif # architecture elif system == 'windows' - if meson.get_compiler('cpp').get_id() == 'msvc' + if cpp.get_id() == 'msvc' feature_defines += ['-DWIN32', '-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES'] ladspa_symbol_args += ['-EXPORT:ladspa_descriptor'] vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor'] @@ -308,23 +310,21 @@ rubberband_static_dep = declare_dependency( link_with: rubberband_static, ) -if system != 'windows' - message('Will build Rubber Band Library dynamic library') - rubberband_dynamic = shared_library( - 'rubberband', - objects: rubberband_static.extract_all_objects(), - link_args: [ - arch_flags, - feature_libraries, - ], - dependencies: [ - feature_dependencies, - thread_dep, - ], - version: rubberband_dynamic_library_version, - install: true, - ) -endif +message('Will build Rubber Band Library dynamic library') +rubberband_dynamic = shared_library( + 'rubberband', + objects: rubberband_static.extract_all_objects(), + link_args: [ + arch_flags, + feature_libraries, + ], + dependencies: [ + feature_dependencies, + thread_dep, + ], + version: rubberband_dynamic_library_version, + install: true, +) if have_ladspa message('Will build LADSPA plugin') @@ -436,7 +436,7 @@ if sndfile_dep.found() install: true, ) else - message('Not building command-line utility: dependency libsndfile not found') + message('Not building command-line utility: libsndfile dependency not found') endif pkg.generate( From 18c06ab8c431854056407c467f4755f761e36a8e Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 11:12:20 +0000 Subject: [PATCH 07/44] Windows build fixes --- meson.build | 192 ++++++++++++++++++++++++++-------------------- meson_options.txt | 15 ++++ 2 files changed, 124 insertions(+), 83 deletions(-) diff --git a/meson.build b/meson.build index 4247200..6a25029 100644 --- a/meson.build +++ b/meson.build @@ -63,6 +63,13 @@ program_sources = [ 'main/main.cpp', ] +if system == 'windows' + program_sources += [ + 'src/getopt/getopt.c', + 'src/getopt/getopt_long.c' + ] +endif + vamp_sources = [ 'vamp/RubberBandVampPlugin.cpp', 'vamp/libmain.cpp', @@ -103,6 +110,7 @@ arch_flags = [] resampler = get_option('resampler') fft = get_option('fft') ipp_path = get_option('ipp_path') +ipp_needed = false if fft == 'auto' if system == 'darwin' @@ -120,7 +128,10 @@ if resampler == 'auto' endif endif -ipp_needed = false +extra_include_args = [] +foreach d: get_option('extra_include_dirs') + extra_include_args += '-I' + d +endforeach if fft == 'kissfft' message('For FFT: using KissFFT') @@ -133,12 +144,16 @@ if fft == 'kissfft' elif fft == 'fftw' if fftw3_dep.found() message('For FFT: using FFTW') + pkgconfig_requirements += fftw3_dep else - error('For FFT: FFTW selected, but dependency not found') + fftw_dep = cpp.find_library('fftw3', + dirs: get_option('extra_lib_dirs'), + has_headers: ['fftw3.h'], + header_args: extra_include_args, + required: true) endif feature_dependencies += fftw3_dep feature_defines += ['-DHAVE_FFTW3', '-DFFTW_DOUBLE_ONLY'] - pkgconfig_requirements += fftw3_dep elif fft == 'vdsp' message('For FFT: using vDSP') @@ -162,12 +177,16 @@ endif # fft if resampler == 'libsamplerate' if samplerate_dep.found() message('For resampler: using libsamplerate') + pkgconfig_requirements += samplerate_dep else - error('For resampler: libsamplerate selected, but dependency not found') + samplerate_dep = cpp.find_library('samplerate', + dirs: get_option('extra_lib_dirs'), + has_headers: ['samplerate.h'], + header_args: extra_include_args, + required: true) endif feature_dependencies += samplerate_dep feature_defines += ['-DHAVE_LIBSAMPLERATE'] - pkgconfig_requirements += samplerate_dep elif resampler == 'speex' message('For resampler: using Speex') @@ -222,6 +241,31 @@ if ipp_needed endif endif # ipp_needed +if not vamp_dep.found() + vamp_dep = cpp.find_library('VampPluginSDK', + dirs: get_option('extra_lib_dirs'), + has_headers: ['vamp-sdk.h'], + header_args: extra_include_args, + required: false) + if not vamp_dep.found() + vamp_dep = cpp.find_library('vamp-sdk', + dirs: get_option('extra_lib_dirs'), + has_headers: ['vamp-sdk.h'], + header_args: extra_include_args, + required: false) + endif +endif +have_vamp = vamp_dep.found() + +if not sndfile_dep.found() + sndfile_dep = cpp.find_library('sndfile', + dirs: get_option('extra_lib_dirs'), + has_headers: ['sndfile.h'], + header_args: extra_include_args, + required: false) +endif +have_sndfile = sndfile_dep.found() + # General platform and compiler expectations @@ -257,13 +301,9 @@ if system == 'darwin' elif system == 'windows' if cpp.get_id() == 'msvc' - feature_defines += ['-DWIN32', '-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES'] + feature_defines += ['-DWIN32', '-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API='] ladspa_symbol_args += ['-EXPORT:ladspa_descriptor'] vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor'] - # Meson likes libxxx.a even on Windows, and so might we for a - # new library, but not here - platform_static_name_prefix = '' - platform_static_name_suffix = 'lib' endif else # system not darwin or windows @@ -277,29 +317,41 @@ else # system not darwin or windows endif # system +general_include_dirs += get_option('extra_include_dirs') +general_compile_args = [ arch_flags, feature_defines ] +general_dependencies = [ feature_dependencies, thread_dep ] + +if system == 'windows' + if get_option('no_shared') + rubberband_static_name = 'rubberband' + else + rubberband_static_name = 'rubberband-static' + endif + rubberband_dynamic_name = 'rubberband' + rubberband_program_name = 'rubberband-program' + # Meson likes libxxx.a even on Windows, and so might we for a + # new library, but not here + platform_static_name_prefix = '' + platform_static_name_suffix = 'lib' +else + rubberband_static_name = 'rubberband' + rubberband_dynamic_name = 'rubberband' + rubberband_program_name = 'rubberband' +endif + + # And the build targets: Static and dynamic libraries, command-line # utility, LADSPA plugin, Vamp plugin message('Will build Rubber Band Library static library') rubberband_static = static_library( - 'rubberband', + rubberband_static_name, library_sources, feature_sources, - include_directories: [ - general_include_dirs, - ], - cpp_args: [ - arch_flags, - feature_defines, - ], - c_args: [ - arch_flags, - feature_defines, - ], - dependencies: [ - feature_dependencies, - thread_dep, - ], + include_directories: general_include_dirs, + cpp_args: general_compile_args, + c_args: general_compile_args, + dependencies: general_dependencies, name_prefix: platform_static_name_prefix, name_suffix: platform_static_name_suffix, pic: true, @@ -310,38 +362,31 @@ rubberband_static_dep = declare_dependency( link_with: rubberband_static, ) -message('Will build Rubber Band Library dynamic library') -rubberband_dynamic = shared_library( - 'rubberband', - objects: rubberband_static.extract_all_objects(), - link_args: [ - arch_flags, - feature_libraries, - ], - dependencies: [ - feature_dependencies, - thread_dep, - ], - version: rubberband_dynamic_library_version, - install: true, -) +if not get_option('no_shared') + message('Will build Rubber Band Library dynamic library') + rubberband_dynamic = shared_library( + rubberband_dynamic_name, + objects: rubberband_static.extract_all_objects(), + link_args: [ + arch_flags, + feature_libraries, + ], + dependencies: general_dependencies, + version: rubberband_dynamic_library_version, + install: true, + ) +else + message('Not building Rubber Band Library dynamic library: no_shared option set') +endif if have_ladspa message('Will build LADSPA plugin') rubberband_ladspa = shared_library( 'ladspa-rubberband', ladspa_sources, - include_directories: [ - general_include_dirs, - ], - cpp_args: [ - arch_flags, - feature_defines, - ], - c_args: [ - arch_flags, - feature_defines, - ], + include_directories: general_include_dirs, + cpp_args: general_compile_args, + c_args: general_compile_args, link_args: [ arch_flags, feature_libraries, @@ -349,8 +394,7 @@ if have_ladspa ], dependencies: [ rubberband_static_dep, - feature_dependencies, - thread_dep, + general_dependencies, ], name_prefix: '', install: true, @@ -368,22 +412,14 @@ else message('Not building LADSPA plugin: ladspa.h header not found') endif -if vamp_dep.found() +if have_vamp message('Will build Vamp plugin') rubberband_vamp = shared_library( 'vamp-rubberband', vamp_sources, - include_directories: [ - general_include_dirs, - ], - cpp_args: [ - arch_flags, - feature_defines, - ], - c_args: [ - arch_flags, - feature_defines, - ], + include_directories: general_include_dirs, + cpp_args: general_compile_args, + c_args: general_compile_args, link_args: [ arch_flags, feature_libraries, @@ -391,9 +427,8 @@ if vamp_dep.found() ], dependencies: [ rubberband_static_dep, - feature_dependencies, + general_dependencies, vamp_dep, - thread_dep, ], name_prefix: '', install: true, @@ -407,31 +442,22 @@ else message('Not building Vamp plugin: Vamp dependency not found') endif -if sndfile_dep.found() +if have_sndfile message('Will build command-line utility') rubberband_program = executable( - 'rubberband', + rubberband_program_name, program_sources, - include_directories: [ - general_include_dirs, - ], - cpp_args: [ - arch_flags, - feature_defines, - ], - c_args: [ - arch_flags, - feature_defines, - ], + include_directories: general_include_dirs, + cpp_args: general_compile_args, + c_args: general_compile_args, link_args: [ arch_flags, feature_libraries, ], dependencies: [ rubberband_static_dep, - feature_dependencies, + general_dependencies, sndfile_dep, - thread_dep, ], install: true, ) diff --git a/meson_options.txt b/meson_options.txt index c3e255f..1703806 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -16,3 +16,18 @@ option('ipp_path', value: '', description: 'Path to Intel IPP libraries, if selected for any of the other options.') +option('extra_include_dirs', + type: 'array', + value: [], + description: 'Additional local header directories to search for dependencies.') + +option('extra_lib_dirs', + type: 'array', + value: [], + description: 'Additional local library directories to search for dependencies.') + +option('no_shared', + type: 'boolean', + value: 'false', + description: 'Do not build shared libraries. On Windows this will also ensure that the static library is called simply rubberband.lib, not rubberband-static.lib as it is in the default build.') + From a90f72e6c501971e850c8a3f0cfc11f88996a53a Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 12:06:07 +0000 Subject: [PATCH 08/44] CI update --- .build.yml | 8 +++++--- .travis.yml | 27 --------------------------- meson.build | 2 +- 3 files changed, 6 insertions(+), 31 deletions(-) delete mode 100644 .travis.yml diff --git a/.build.yml b/.build.yml index 5bd899e..b66fa42 100644 --- a/.build.yml +++ b/.build.yml @@ -1,4 +1,4 @@ -image: ubuntu/18.04 +image: ubuntu/20.04 packages: - pkg-config - libsamplerate0-dev @@ -6,15 +6,17 @@ packages: - libfftw3-dev - ladspa-sdk - vamp-plugin-sdk + - meson + - ninja-build sources: - hg+https://hg.sr.ht/~breakfastquay/rubberband tasks: - setup: | cd rubberband - ./configure + meson build - build: | cd rubberband - make + ninja -C build triggers: - action: email condition: always diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 11e4a96..0000000 --- a/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -dist: - - trusty - -language: - - cpp - -sudo: - - false - -os: - - osx - -cache: - directories: - - $HOME/Library/Caches/Homebrew - - /usr/local/Homebrew - -before_cache: - - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi - - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then find /usr/local/Homebrew \! -regex ".+\.git.+" -delete; fi - -before_install: - - if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then brew update ; brew install libsndfile ; fi - -script: - - if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then make -f Makefile.macos && make -f Makefile.ios clean && make -f Makefile.ios ; else ./configure && make ; fi - diff --git a/meson.build b/meson.build index 6a25029..5bd44ef 100644 --- a/meson.build +++ b/meson.build @@ -10,7 +10,7 @@ project( 'b_ndebug=if-release', 'b_lundef=true', ], - meson_version: '>= 0.54.0' + meson_version: '>= 0.53.0' ) rubberband_dynamic_library_version = '2.1.2' From ea04acbcacfdcfcd3d3519d2b56220969f982aea Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 12:13:09 +0000 Subject: [PATCH 09/44] See if we can work around a curious error from Meson 0.53 --- meson.build | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 5bd44ef..ee32c9b 100644 --- a/meson.build +++ b/meson.build @@ -130,7 +130,7 @@ endif extra_include_args = [] foreach d: get_option('extra_include_dirs') - extra_include_args += '-I' + d + extra_include_args += [ '-I' + d ] endforeach if fft == 'kissfft' @@ -272,9 +272,6 @@ have_sndfile = sndfile_dep.found() ladspa_symbol_args = [] vamp_symbol_args = [] -platform_static_name_prefix = [] -platform_static_name_suffix = [] - if get_option('buildtype').startswith('release') feature_defines += ['-DNO_THREAD_CHECKS', '-DNO_TIMING', '-DNDEBUG'] endif @@ -337,6 +334,8 @@ else rubberband_static_name = 'rubberband' rubberband_dynamic_name = 'rubberband' rubberband_program_name = 'rubberband' + platform_static_name_prefix = 'lib' + platform_static_name_suffix = 'a' endif From 63cd0182e449cb8e8a27b1e69f32d7c4e1279317 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 13:21:17 +0000 Subject: [PATCH 10/44] Experimental CI update --- .appveyor.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 36094aa..f2be469 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -8,11 +8,15 @@ platform: install: - cinst wget + - cinst meson - c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w32-setup.exe - c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe - ps: .\libsndfile-1.0.28-w32-setup.exe /silent /sp- /norestart - ps: .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart build_script: - - msbuild rubberband.sln + - meson build + - ninja -C build + + From fd5357a3ad3da160cf79dbe0b9c278f4a3f0b2cf Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 13:36:48 +0000 Subject: [PATCH 11/44] How very odd, it defaults to clang --- .appveyor.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index f2be469..d614012 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -3,20 +3,18 @@ configuration: - Release platform: - - x86 - x64 install: - cinst wget - cinst meson - - c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w32-setup.exe - c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe - - ps: .\libsndfile-1.0.28-w32-setup.exe /silent /sp- /norestart - ps: .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart +environment: + CC: cl + CXX: cl + build_script: - meson build - ninja -C build - - - From c70aa501fb7538c2cc5327aa584bcec84d91d9bc Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Feb 2021 14:01:40 +0000 Subject: [PATCH 12/44] Let's try this approach --- .appveyor.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index d614012..c3126d7 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,4 +1,7 @@ +image: + - Visual Studio 2019 + configuration: - Release @@ -11,10 +14,7 @@ install: - c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe - ps: .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart -environment: - CC: cl - CXX: cl - build_script: + - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" - meson build - ninja -C build From eb5023e0cf1e69cf16d13b19455e5fc2c5bf4ed5 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 10 Feb 2021 11:09:50 +0000 Subject: [PATCH 13/44] Clarify v2 or later --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index ee32c9b..17c46d1 100644 --- a/meson.build +++ b/meson.build @@ -3,7 +3,7 @@ project( 'Rubber Band Library', 'c', 'cpp', version: '1.9.0', - license: 'GPL-2.0', + license: 'GPL-2.0-or-later', default_options: [ 'cpp_std=c++11', 'buildtype=release', From cfb4bd6b4f8daa9031f9808b0fdf11a91c982aa6 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 10 Feb 2021 11:28:05 +0000 Subject: [PATCH 14/44] Summary info --- meson.build | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 17c46d1..c7fcaff 100644 --- a/meson.build +++ b/meson.build @@ -87,8 +87,6 @@ general_include_dirs = [ # Scan for any dependencies we may use later; all are optional -# We collect these first so our summary messages about selected build -# features all appear together at the end fftw3_dep = dependency('fftw3', version: '>= 3.0.0', required: false) samplerate_dep = dependency('samplerate', version: '>= 0.1.8', required: false) @@ -107,6 +105,9 @@ feature_sources = [] pkgconfig_requirements = [] arch_flags = [] +config_summary = {} +target_summary = {} + resampler = get_option('resampler') fft = get_option('fft') ipp_path = get_option('ipp_path') @@ -134,6 +135,7 @@ foreach d: get_option('extra_include_dirs') endforeach if fft == 'kissfft' + config_summary += { 'FFT': 'KissFFT' } message('For FFT: using KissFFT') if fftw3_dep.found() message('(to use FFTW instead, reconfigure with -Dfft=fftw)') @@ -143,6 +145,7 @@ if fft == 'kissfft' elif fft == 'fftw' if fftw3_dep.found() + config_summary += { 'FFT': 'FFTW' } message('For FFT: using FFTW') pkgconfig_requirements += fftw3_dep else @@ -156,12 +159,14 @@ elif fft == 'fftw' feature_defines += ['-DHAVE_FFTW3', '-DFFTW_DOUBLE_ONLY'] elif fft == 'vdsp' + config_summary += { 'FFT': 'vDSP' } message('For FFT: using vDSP') feature_defines += ['-DHAVE_VDSP'] feature_libraries += ['-framework', 'Accelerate'] elif fft == 'ipp' if ipp_path != '' + config_summary += { 'FFT': 'Intel IPP' } message('For FFT: using IPP') message('IPP path defined as ' + ipp_path) else @@ -176,6 +181,7 @@ endif # fft if resampler == 'libsamplerate' if samplerate_dep.found() + config_summary += { 'Resampler': 'libsamplerate' } message('For resampler: using libsamplerate') pkgconfig_requirements += samplerate_dep else @@ -189,6 +195,7 @@ if resampler == 'libsamplerate' feature_defines += ['-DHAVE_LIBSAMPLERATE'] elif resampler == 'speex' + config_summary += { 'Resampler': 'Speex' } message('For resampler: using Speex') message('(consider libsamplerate if time-varying pitch shift is required)') feature_sources += ['src/speex/resample.c'] @@ -196,6 +203,7 @@ elif resampler == 'speex' elif resampler == 'ipp' if ipp_path != '' + config_summary += { 'Resampler': 'Intel IPP' } message('For resampler: using IPP') message('(consider libsamplerate if time-varying pitch shift is required)') message('IPP path defined as ' + ipp_path) @@ -273,7 +281,10 @@ ladspa_symbol_args = [] vamp_symbol_args = [] if get_option('buildtype').startswith('release') + config_summary += { 'Build type': 'Release' } feature_defines += ['-DNO_THREAD_CHECKS', '-DNO_TIMING', '-DNDEBUG'] +else + config_summary += { 'Build type': 'Debug' } endif if system == 'darwin' @@ -285,11 +296,13 @@ if system == 'darwin' '-exported_symbols_list', meson.source_root() / 'vamp/vamp-plugin.list' ] if architecture == 'aarch64' + config_summary += { 'Architecture': 'ARM (macOS 11 or newer)' } arch_flags = [ '-mmacosx-version-min=11', '-arch', 'arm64' ] elif architecture == 'x86_64' + config_summary += { 'Architecture': 'Intel (macOS 10.11 or newer)' } arch_flags = [ '-mmacosx-version-min=10.11', '-arch', 'x86_64', @@ -326,6 +339,8 @@ if system == 'windows' endif rubberband_dynamic_name = 'rubberband' rubberband_program_name = 'rubberband-program' + rubberband_ladspa_name = 'ladspa-rubberband' + rubberband_vamp_name = 'vamp-rubberband' # Meson likes libxxx.a even on Windows, and so might we for a # new library, but not here platform_static_name_prefix = '' @@ -334,6 +349,8 @@ else rubberband_static_name = 'rubberband' rubberband_dynamic_name = 'rubberband' rubberband_program_name = 'rubberband' + rubberband_ladspa_name = 'ladspa-rubberband' + rubberband_vamp_name = 'vamp-rubberband' platform_static_name_prefix = 'lib' platform_static_name_suffix = 'a' endif @@ -343,6 +360,7 @@ endif # utility, LADSPA plugin, Vamp plugin message('Will build Rubber Band Library static library') +target_summary += { 'Static library': [ true, 'Name: ' + rubberband_static_name ] } rubberband_static = static_library( rubberband_static_name, library_sources, @@ -362,7 +380,8 @@ rubberband_static_dep = declare_dependency( ) if not get_option('no_shared') - message('Will build Rubber Band Library dynamic library') + target_summary += { 'Shared library': [ true, 'Name: ' + rubberband_dynamic_name ] } + message('Will build Rubber Band Library shared library') rubberband_dynamic = shared_library( rubberband_dynamic_name, objects: rubberband_static.extract_all_objects(), @@ -375,13 +394,15 @@ if not get_option('no_shared') install: true, ) else + target_summary += { 'Shared library': false } message('Not building Rubber Band Library dynamic library: no_shared option set') endif if have_ladspa + target_summary += { 'LADSPA plugin': [ true, 'Name: ' + rubberband_ladspa_name ] } message('Will build LADSPA plugin') rubberband_ladspa = shared_library( - 'ladspa-rubberband', + rubberband_ladspa_name, ladspa_sources, include_directories: general_include_dirs, cpp_args: general_compile_args, @@ -408,13 +429,15 @@ if have_ladspa install_dir: get_option('datadir') / 'ladspa/rdf', ) else + target_summary += { 'LADSPA plugin': false } message('Not building LADSPA plugin: ladspa.h header not found') endif if have_vamp + target_summary += { 'Vamp plugin': [ true, 'Name: ' + rubberband_vamp_name ] } message('Will build Vamp plugin') rubberband_vamp = shared_library( - 'vamp-rubberband', + rubberband_vamp_name, vamp_sources, include_directories: general_include_dirs, cpp_args: general_compile_args, @@ -438,10 +461,12 @@ if have_vamp install_dir: get_option('libdir') / 'vamp', ) else + target_summary += { 'Vamp plugin': false } message('Not building Vamp plugin: Vamp dependency not found') endif if have_sndfile + target_summary += { 'Command-line utility': [ true, 'Name: ' + rubberband_program_name ] } message('Will build command-line utility') rubberband_program = executable( rubberband_program_name, @@ -461,6 +486,7 @@ if have_sndfile install: true, ) else + target_summary += { 'Command-line utility': false } message('Not building command-line utility: libsndfile dependency not found') endif @@ -473,3 +499,12 @@ pkg.generate( libraries: '-L${libdir} -lrubberband', extra_cflags: '-I${includedir}', ) + +summary({'prefix': get_option('prefix'), + 'bindir': get_option('bindir'), + 'libdir': get_option('libdir'), + 'datadir': get_option('datadir'), + }, section: 'Directories') + +summary(config_summary, section: 'Configuration', bool_yn: true) +summary(target_summary, section: 'Build targets', bool_yn: true) From 2b06851c757ba6c87fab0605fd3ee27046d5f969 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 10 Feb 2021 13:47:14 +0000 Subject: [PATCH 15/44] Move .NET code into dotnet/ --- dotnet/README.md | 41 +++++++++++++++++++ .../rubberband-dll}/dllmain.cpp | 0 .../rubberband-dll}/rubberband-dll.cpp | 0 .../rubberband-dll}/stdafx.cpp | 0 .../rubberband-dll}/stdafx.h | 0 .../rubberband-dll}/targetver.h | 0 .../rubberband-sharp}/Install.ps1 | 0 .../RubberBandNativeMethods.cs | 0 .../RubberBandNativeMethodsWin32.cs | 0 .../RubberBandNativeMethodsx64.cs | 0 .../rubberband-sharp}/RubberBandStretcher.cs | 0 .../rubberband-sharp}/rubberband-sharp.csproj | 0 .../rubberband-sharp}/rubberband-sharp.nuspec | 0 .../rubberband-sharp.targets | 0 14 files changed, 41 insertions(+) create mode 100644 dotnet/README.md rename {rubberband-dll => dotnet/rubberband-dll}/dllmain.cpp (100%) rename {rubberband-dll => dotnet/rubberband-dll}/rubberband-dll.cpp (100%) rename {rubberband-dll => dotnet/rubberband-dll}/stdafx.cpp (100%) rename {rubberband-dll => dotnet/rubberband-dll}/stdafx.h (100%) rename {rubberband-dll => dotnet/rubberband-dll}/targetver.h (100%) rename {rubberband-sharp => dotnet/rubberband-sharp}/Install.ps1 (100%) rename {rubberband-sharp => dotnet/rubberband-sharp}/RubberBandNativeMethods.cs (100%) rename {rubberband-sharp => dotnet/rubberband-sharp}/RubberBandNativeMethodsWin32.cs (100%) rename {rubberband-sharp => dotnet/rubberband-sharp}/RubberBandNativeMethodsx64.cs (100%) rename {rubberband-sharp => dotnet/rubberband-sharp}/RubberBandStretcher.cs (100%) rename {rubberband-sharp => dotnet/rubberband-sharp}/rubberband-sharp.csproj (100%) rename {rubberband-sharp => dotnet/rubberband-sharp}/rubberband-sharp.nuspec (100%) rename {rubberband-sharp => dotnet/rubberband-sharp}/rubberband-sharp.targets (100%) diff --git a/dotnet/README.md b/dotnet/README.md new file mode 100644 index 0000000..084eccc --- /dev/null +++ b/dotnet/README.md @@ -0,0 +1,41 @@ + +This directory contains a .NET interface for Rubber Band Library, +generously contributed by Jonathan Gilbert under a BSD-like +licence. The directory `rubberband-sharp` contains a managed-code +interface to Rubber Band in C#. It loads and uses the DLL defined in +`rubberband-dll`, that wraps the Rubber Band Library with an API +understood by the `rubberband-sharp` code. + +If you make use of this interface, please ensure you comply with the +terms of its licence, in addition to the GPL licence accompanying +Rubber Band Library itself: + +``` +[files in rubberband-dll and rubberband-sharp] + +Copyright 2018-2019 Jonathan Gilbert + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Jonathan Gilbert +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written +authorization. +``` diff --git a/rubberband-dll/dllmain.cpp b/dotnet/rubberband-dll/dllmain.cpp similarity index 100% rename from rubberband-dll/dllmain.cpp rename to dotnet/rubberband-dll/dllmain.cpp diff --git a/rubberband-dll/rubberband-dll.cpp b/dotnet/rubberband-dll/rubberband-dll.cpp similarity index 100% rename from rubberband-dll/rubberband-dll.cpp rename to dotnet/rubberband-dll/rubberband-dll.cpp diff --git a/rubberband-dll/stdafx.cpp b/dotnet/rubberband-dll/stdafx.cpp similarity index 100% rename from rubberband-dll/stdafx.cpp rename to dotnet/rubberband-dll/stdafx.cpp diff --git a/rubberband-dll/stdafx.h b/dotnet/rubberband-dll/stdafx.h similarity index 100% rename from rubberband-dll/stdafx.h rename to dotnet/rubberband-dll/stdafx.h diff --git a/rubberband-dll/targetver.h b/dotnet/rubberband-dll/targetver.h similarity index 100% rename from rubberband-dll/targetver.h rename to dotnet/rubberband-dll/targetver.h diff --git a/rubberband-sharp/Install.ps1 b/dotnet/rubberband-sharp/Install.ps1 similarity index 100% rename from rubberband-sharp/Install.ps1 rename to dotnet/rubberband-sharp/Install.ps1 diff --git a/rubberband-sharp/RubberBandNativeMethods.cs b/dotnet/rubberband-sharp/RubberBandNativeMethods.cs similarity index 100% rename from rubberband-sharp/RubberBandNativeMethods.cs rename to dotnet/rubberband-sharp/RubberBandNativeMethods.cs diff --git a/rubberband-sharp/RubberBandNativeMethodsWin32.cs b/dotnet/rubberband-sharp/RubberBandNativeMethodsWin32.cs similarity index 100% rename from rubberband-sharp/RubberBandNativeMethodsWin32.cs rename to dotnet/rubberband-sharp/RubberBandNativeMethodsWin32.cs diff --git a/rubberband-sharp/RubberBandNativeMethodsx64.cs b/dotnet/rubberband-sharp/RubberBandNativeMethodsx64.cs similarity index 100% rename from rubberband-sharp/RubberBandNativeMethodsx64.cs rename to dotnet/rubberband-sharp/RubberBandNativeMethodsx64.cs diff --git a/rubberband-sharp/RubberBandStretcher.cs b/dotnet/rubberband-sharp/RubberBandStretcher.cs similarity index 100% rename from rubberband-sharp/RubberBandStretcher.cs rename to dotnet/rubberband-sharp/RubberBandStretcher.cs diff --git a/rubberband-sharp/rubberband-sharp.csproj b/dotnet/rubberband-sharp/rubberband-sharp.csproj similarity index 100% rename from rubberband-sharp/rubberband-sharp.csproj rename to dotnet/rubberband-sharp/rubberband-sharp.csproj diff --git a/rubberband-sharp/rubberband-sharp.nuspec b/dotnet/rubberband-sharp/rubberband-sharp.nuspec similarity index 100% rename from rubberband-sharp/rubberband-sharp.nuspec rename to dotnet/rubberband-sharp/rubberband-sharp.nuspec diff --git a/rubberband-sharp/rubberband-sharp.targets b/dotnet/rubberband-sharp/rubberband-sharp.targets similarity index 100% rename from rubberband-sharp/rubberband-sharp.targets rename to dotnet/rubberband-sharp/rubberband-sharp.targets From 0c38a07faf6ea88f6d83c2c5137a797639795097 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 10 Feb 2021 14:24:17 +0000 Subject: [PATCH 16/44] Cross files for macOS and iOS architectures --- cross/ios-simulator.txt | 19 +++++++++++++++++++ cross/ios.txt | 20 ++++++++++++++++++++ cross/macos-arm64.txt | 20 ++++++++++++++++++++ cross/macos-x86_64.txt | 19 +++++++++++++++++++ meson.build | 32 +++++++++++++++++++++++--------- 5 files changed, 101 insertions(+), 9 deletions(-) create mode 100644 cross/ios-simulator.txt create mode 100644 cross/ios.txt create mode 100644 cross/macos-arm64.txt create mode 100644 cross/macos-x86_64.txt diff --git a/cross/ios-simulator.txt b/cross/ios-simulator.txt new file mode 100644 index 0000000..b03149c --- /dev/null +++ b/cross/ios-simulator.txt @@ -0,0 +1,19 @@ +[constants] +sysroot = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk' +common_args = [ '-isysroot', sysroot, '-arch', 'x86_64', '-mios-version-min=8' ] + +[host_machine] +cpu_family = 'x86_64' +cpu = 'x86_64' +system = 'darwin' +endian = 'little' + +[binaries] +c = 'cc' +cpp = 'c++' +strip = 'strip' + +[built-in options] +c_args = common_args +cpp_args = common_args + [ '-stdlib=libc++' ] +cpp_link_args = cpp_args diff --git a/cross/ios.txt b/cross/ios.txt new file mode 100644 index 0000000..c9a913a --- /dev/null +++ b/cross/ios.txt @@ -0,0 +1,20 @@ +[constants] +sysroot = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk' +common_args = [ '-isysroot', sysroot, '-arch', 'arm64', '-arch', 'armv7', '-mios-version-min=8' ] + +[host_machine] +cpu_family = 'aarch64' +cpu = 'aarch64' +system = 'darwin' +endian = 'little' + +[binaries] +c = 'cc' +cpp = 'c++' +strip = 'strip' + +[built-in options] +b_bitcode = true +c_args = common_args +cpp_args = common_args + [ '-stdlib=libc++' ] +cpp_link_args = cpp_args diff --git a/cross/macos-arm64.txt b/cross/macos-arm64.txt new file mode 100644 index 0000000..1a7c322 --- /dev/null +++ b/cross/macos-arm64.txt @@ -0,0 +1,20 @@ +[host_machine] +cpu_family = 'aarch64' +cpu = 'aarch64' +system = 'darwin' +endian = 'little' + +[properties] +needs_exe_wrapper = false + +[binaries] +c = 'cc' +cpp = 'c++' +strip = 'strip' + +[built-in options] +c_args = ['-arch', 'arm64'] +cpp_args = ['-arch', 'arm64'] +cpp_link_args = ['-arch', 'arm64'] + + diff --git a/cross/macos-x86_64.txt b/cross/macos-x86_64.txt new file mode 100644 index 0000000..ad979a4 --- /dev/null +++ b/cross/macos-x86_64.txt @@ -0,0 +1,19 @@ +[host_machine] +cpu_family = 'x86_64' +cpu = 'x86_64' +system = 'darwin' +endian = 'little' + +[properties] +needs_exe_wrapper = false + +[binaries] +c = 'cc' +cpp = 'c++' +strip = 'strip' + +[built-in options] +c_args = ['-arch', 'x86_64'] +cpp_args = ['-arch', 'x86_64'] +cpp_link_args = ['-arch', 'x86_64'] + diff --git a/meson.build b/meson.build index c7fcaff..9f5f8b8 100644 --- a/meson.build +++ b/meson.build @@ -295,19 +295,32 @@ if system == 'darwin' vamp_symbol_args += [ '-exported_symbols_list', meson.source_root() / 'vamp/vamp-plugin.list' ] + + have_version_min = false + foreach arg: get_option('cpp_args') + message('arg is ' + arg) + if arg.contains('version-min') + have_version_min = true + endif + endforeach + if architecture == 'aarch64' - config_summary += { 'Architecture': 'ARM (macOS 11 or newer)' } - arch_flags = [ - '-mmacosx-version-min=11', - '-arch', 'arm64' + mac_platform_arguments = [ + '-arch', 'arm64', ] + if not have_version_min + mac_platform_arguments += [ '-mmacosx-version-min=11' ] + endif elif architecture == 'x86_64' - config_summary += { 'Architecture': 'Intel (macOS 10.11 or newer)' } - arch_flags = [ - '-mmacosx-version-min=10.11', + mac_platform_arguments = [ '-arch', 'x86_64', ] - endif # architecture + if not have_version_min + mac_platform_arguments += [ '-mmacosx-version-min=10.13' ] + endif + else # begin architecture != 'aarch64' or 'x86_64' + error('Build for architecture ' + architecture + ' is not supported on this platform') + endif # end architecture elif system == 'windows' if cpp.get_id() == 'msvc' @@ -506,5 +519,6 @@ summary({'prefix': get_option('prefix'), 'datadir': get_option('datadir'), }, section: 'Directories') -summary(config_summary, section: 'Configuration', bool_yn: true) +summary(config_summary + { 'Architecture': architecture }, + section: 'Configuration', bool_yn: true) summary(target_summary, section: 'Build targets', bool_yn: true) From 06767bf01d466d5867adc21b505d4f95a6ca97b2 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 10 Feb 2021 14:24:23 +0000 Subject: [PATCH 17/44] Move these to dotnet also --- rubberband-dll.vcxproj => dotnet/rubberband-dll.vcxproj | 0 .../rubberband-dll.vcxproj.filters | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename rubberband-dll.vcxproj => dotnet/rubberband-dll.vcxproj (100%) rename rubberband-dll.vcxproj.filters => dotnet/rubberband-dll.vcxproj.filters (100%) diff --git a/rubberband-dll.vcxproj b/dotnet/rubberband-dll.vcxproj similarity index 100% rename from rubberband-dll.vcxproj rename to dotnet/rubberband-dll.vcxproj diff --git a/rubberband-dll.vcxproj.filters b/dotnet/rubberband-dll.vcxproj.filters similarity index 100% rename from rubberband-dll.vcxproj.filters rename to dotnet/rubberband-dll.vcxproj.filters From 093e7cc5d871d1c119db1c7cacaf8b70f82e1ca5 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 10 Feb 2021 14:36:42 +0000 Subject: [PATCH 18/44] Push old build files (undifferentiated and so far un-updated and untested) into otherbuilds/ --- Makefile.in => otherbuilds/Makefile.in | 0 Makefile.ios => otherbuilds/Makefile.ios | 0 Makefile.macos => otherbuilds/Makefile.macos | 0 Makefile.macos-universal => otherbuilds/Makefile.macos-universal | 0 configure => otherbuilds/configure | 0 configure.ac => otherbuilds/configure.ac | 0 .../rubberband-library.vcxproj | 0 .../rubberband-program.vcxproj | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename Makefile.in => otherbuilds/Makefile.in (100%) rename Makefile.ios => otherbuilds/Makefile.ios (100%) rename Makefile.macos => otherbuilds/Makefile.macos (100%) rename Makefile.macos-universal => otherbuilds/Makefile.macos-universal (100%) rename configure => otherbuilds/configure (100%) rename configure.ac => otherbuilds/configure.ac (100%) rename rubberband-library.vcxproj => otherbuilds/rubberband-library.vcxproj (100%) rename rubberband-program.vcxproj => otherbuilds/rubberband-program.vcxproj (100%) diff --git a/Makefile.in b/otherbuilds/Makefile.in similarity index 100% rename from Makefile.in rename to otherbuilds/Makefile.in diff --git a/Makefile.ios b/otherbuilds/Makefile.ios similarity index 100% rename from Makefile.ios rename to otherbuilds/Makefile.ios diff --git a/Makefile.macos b/otherbuilds/Makefile.macos similarity index 100% rename from Makefile.macos rename to otherbuilds/Makefile.macos diff --git a/Makefile.macos-universal b/otherbuilds/Makefile.macos-universal similarity index 100% rename from Makefile.macos-universal rename to otherbuilds/Makefile.macos-universal diff --git a/configure b/otherbuilds/configure similarity index 100% rename from configure rename to otherbuilds/configure diff --git a/configure.ac b/otherbuilds/configure.ac similarity index 100% rename from configure.ac rename to otherbuilds/configure.ac diff --git a/rubberband-library.vcxproj b/otherbuilds/rubberband-library.vcxproj similarity index 100% rename from rubberband-library.vcxproj rename to otherbuilds/rubberband-library.vcxproj diff --git a/rubberband-program.vcxproj b/otherbuilds/rubberband-program.vcxproj similarity index 100% rename from rubberband-program.vcxproj rename to otherbuilds/rubberband-program.vcxproj From 8bb3e18ffbb2e67cf14b0737019290b5d97d4cde Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 13:46:59 +0000 Subject: [PATCH 19/44] Update project so that it builds from the dotnet dir --- .hgignore | 8 +- dotnet/rubberband-dll.vcxproj | 11 +- .../rubberband-library.vcxproj | 116 +++++++++--------- rubberband.sln => dotnet/rubberband.sln | 30 ++--- 4 files changed, 80 insertions(+), 85 deletions(-) rename {otherbuilds => dotnet}/rubberband-library.vcxproj (66%) rename rubberband.sln => dotnet/rubberband.sln (75%) diff --git a/.hgignore b/.hgignore index 7c0b5fe..a10ed24 100644 --- a/.hgignore +++ b/.hgignore @@ -18,10 +18,10 @@ doc/html *.rej cov-int *~ -re:^x64/Debug/ -re:^x64/Release/ -re:^Release/ -re:^Debug/ +x64/Debug/ +x64/Release/ +Release/ +Debug/ build build_* UpgradeLog* diff --git a/dotnet/rubberband-dll.vcxproj b/dotnet/rubberband-dll.vcxproj index c641bcf..fbe8b31 100644 --- a/dotnet/rubberband-dll.vcxproj +++ b/dotnet/rubberband-dll.vcxproj @@ -22,32 +22,33 @@ {32C11C5C-3D27-4E57-B72C-161A48AAA95E} rubberbanddll Win32Proj + 10.0 DynamicLibrary false - v140 + v142 true Unicode DynamicLibrary false - v140 + v142 true Unicode DynamicLibrary true - v140 + v142 Unicode DynamicLibrary true - v140 + v142 Unicode @@ -151,7 +152,7 @@ true NDEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true - $(SolutionDir)rubberband;%(AdditionalIncludeDirectories) + $(SolutionDir)\..\rubberband;%(AdditionalIncludeDirectories) Windows diff --git a/otherbuilds/rubberband-library.vcxproj b/dotnet/rubberband-library.vcxproj similarity index 66% rename from otherbuilds/rubberband-library.vcxproj rename to dotnet/rubberband-library.vcxproj index 823f714..4aa1ce8 100644 --- a/otherbuilds/rubberband-library.vcxproj +++ b/dotnet/rubberband-library.vcxproj @@ -22,23 +22,24 @@ {020CEB11-EF4E-400E-971D-A35DB69D7CF9} rubberband-library Win32Proj + 10.0 StaticLibrary - v140 + v142 StaticLibrary - v140 + v142 StaticLibrary - v140 + v142 StaticLibrary - v140 + v142 @@ -63,6 +64,7 @@ Debug\ Debug\ true + $(SourcePath) true @@ -74,7 +76,7 @@ Disabled - .;.\src;%(AdditionalIncludeDirectories) + .;..\src;%(AdditionalIncludeDirectories) __MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions) true EnableFastChecks @@ -88,7 +90,7 @@ Disabled - .;.\src;%(AdditionalIncludeDirectories) + .;..\src;%(AdditionalIncludeDirectories) __MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -106,7 +108,7 @@ true Speed true - .;.\src;%(AdditionalIncludeDirectories) + .;..\src;%(AdditionalIncludeDirectories) __MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions) MultiThreadedDLL false @@ -124,7 +126,7 @@ true Speed true - .;.\src;%(AdditionalIncludeDirectories) + ..;..\src;%(AdditionalIncludeDirectories) __MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions) MultiThreadedDLL false @@ -137,57 +139,57 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/rubberband.sln b/dotnet/rubberband.sln similarity index 75% rename from rubberband.sln rename to dotnet/rubberband.sln index eeb002f..52d3187 100644 --- a/rubberband.sln +++ b/dotnet/rubberband.sln @@ -1,15 +1,10 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31005.135 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubberband-library", "rubberband-library.vcxproj", "{020CEB11-EF4E-400E-971D-A35DB69D7CF9}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubberband-program", "rubberband-program.vcxproj", "{06838307-FEAA-4DB0-8E08-AF19698E9C40}" - ProjectSection(ProjectDependencies) = postProject - {020CEB11-EF4E-400E-971D-A35DB69D7CF9} = {020CEB11-EF4E-400E-971D-A35DB69D7CF9} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubberband-dll", "rubberband-dll.vcxproj", "{32C11C5C-3D27-4E57-B72C-161A48AAA95E}" ProjectSection(ProjectDependencies) = postProject {020CEB11-EF4E-400E-971D-A35DB69D7CF9} = {020CEB11-EF4E-400E-971D-A35DB69D7CF9} @@ -30,32 +25,26 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|Any CPU.ActiveCfg = Debug|x64 + {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|Any CPU.Build.0 = Debug|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x64.ActiveCfg = Debug|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x64.Build.0 = Debug|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x86.ActiveCfg = Debug|Win32 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x86.Build.0 = Debug|Win32 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|Any CPU.ActiveCfg = Release|Win32 + {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|Any CPU.Build.0 = Release|Win32 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x64.ActiveCfg = Release|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x64.Build.0 = Release|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x86.ActiveCfg = Release|Win32 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x86.Build.0 = Release|Win32 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x64.ActiveCfg = Debug|x64 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x64.Build.0 = Debug|x64 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x86.ActiveCfg = Debug|Win32 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x86.Build.0 = Debug|Win32 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|Any CPU.ActiveCfg = Release|Win32 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x64.ActiveCfg = Release|x64 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x64.Build.0 = Release|x64 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x86.ActiveCfg = Release|Win32 - {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x86.Build.0 = Release|Win32 - {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|Any CPU.ActiveCfg = Debug|x64 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|Any CPU.Build.0 = Debug|x64 {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|x64.ActiveCfg = Debug|x64 {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|x64.Build.0 = Debug|x64 {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|x86.ActiveCfg = Debug|Win32 {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|x86.Build.0 = Debug|Win32 {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|Any CPU.ActiveCfg = Release|Win32 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|Any CPU.Build.0 = Release|Win32 {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|x64.ActiveCfg = Release|x64 {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|x64.Build.0 = Release|x64 {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|x86.ActiveCfg = Release|Win32 @@ -76,4 +65,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3CFE825B-BD44-4909-B002-AFE8DA45D614} + EndGlobalSection EndGlobal From 8a40dd20459c28295d4ff27b772b0de9a0c6d002 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:03:16 +0000 Subject: [PATCH 20/44] Some build workflows --- .github/workflows/macos-ios.yml | 10 +++++++--- .github/workflows/windows-dotnet.yml | 20 +++++++++++++++++++ .github/workflows/windows.yml | 29 ++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/windows-dotnet.yml create mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/macos-ios.yml b/.github/workflows/macos-ios.yml index ff09c11..2cb296b 100644 --- a/.github/workflows/macos-ios.yml +++ b/.github/workflows/macos-ios.yml @@ -14,9 +14,13 @@ jobs: steps: - uses: actions/checkout@v2 - name: deps - run: brew install libsndfile vamp-plugin-sdk + run: brew install libsndfile libsamplerate vamp-plugin-sdk meson ninja + - name: configure macos + run: meson build_macos + - name: configure ios + run: meson build_ios --cross-file cross/ios.txt - name: make macos - run: make -f Makefile.macos clean library program vamp + run: ninja -C build_macos - name: make ios - run: make -f Makefile.ios clean all + run: ninja -C build_ios diff --git a/.github/workflows/windows-dotnet.yml b/.github/workflows/windows-dotnet.yml new file mode 100644 index 0000000..3f6f9c6 --- /dev/null +++ b/.github/workflows/windows-dotnet.yml @@ -0,0 +1,20 @@ +name: Windows CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: windows-2019 + + steps: + - uses: actions/checkout@v2 + - name: make + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" + msbuild dotnet\rubberband.sln + diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000..39d747a --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,29 @@ +name: Windows CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: windows-2019 + + steps: + - uses: actions/checkout@v2 + - name: deps + run: | + cinst wget + cinst meson + c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe + .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart + - name: configure + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" + meson build + - name: make + run: | + ninja -C build + From 144320ac8a15f92474f22dac0314cfd8589020ad Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:04:35 +0000 Subject: [PATCH 21/44] Let's not pin these to a branch --- .github/workflows/macos-ios.yml | 2 -- .github/workflows/windows-dotnet.yml | 2 -- .github/workflows/windows.yml | 2 -- 3 files changed, 6 deletions(-) diff --git a/.github/workflows/macos-ios.yml b/.github/workflows/macos-ios.yml index 2cb296b..f17deb7 100644 --- a/.github/workflows/macos-ios.yml +++ b/.github/workflows/macos-ios.yml @@ -2,9 +2,7 @@ name: macOS and iOS CI on: push: - branches: [ master ] pull_request: - branches: [ master ] jobs: build: diff --git a/.github/workflows/windows-dotnet.yml b/.github/workflows/windows-dotnet.yml index 3f6f9c6..f757a23 100644 --- a/.github/workflows/windows-dotnet.yml +++ b/.github/workflows/windows-dotnet.yml @@ -2,9 +2,7 @@ name: Windows CI on: push: - branches: [ master ] pull_request: - branches: [ master ] jobs: build: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 39d747a..1b6d197 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -2,9 +2,7 @@ name: Windows CI on: push: - branches: [ master ] pull_request: - branches: [ master ] jobs: build: From bf5c5dfc0a051f78905930073fea88e939362813 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:15:30 +0000 Subject: [PATCH 22/44] Untabify --- .github/workflows/windows-dotnet.yml | 2 +- .github/workflows/windows.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/windows-dotnet.yml b/.github/workflows/windows-dotnet.yml index f757a23..750b2a2 100644 --- a/.github/workflows/windows-dotnet.yml +++ b/.github/workflows/windows-dotnet.yml @@ -14,5 +14,5 @@ jobs: - name: make run: | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" - msbuild dotnet\rubberband.sln + msbuild dotnet\rubberband.sln diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 1b6d197..5bcc282 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -14,13 +14,13 @@ jobs: - name: deps run: | cinst wget - cinst meson - c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe - .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart + cinst meson + c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe + .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart - name: configure run: | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" - meson build + meson build - name: make run: | ninja -C build From 588a3fc50c211bc1af6f1063fc1e0a0b98b51883 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:15:38 +0000 Subject: [PATCH 23/44] Paths --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 46e9002..17e1fe5 100644 --- a/README.md +++ b/README.md @@ -43,9 +43,9 @@ that licence. Please refer to your licence agreement for more details. Rubber Band includes a .NET interface generously contributed by Jonathan Gilbert under a BSD-like licence. The files in the -rubberband-dll and rubberband-sharp directories fall under this -licence. If you make use of this interface, please ensure you comply -with the terms of its licence. +dotnet/rubberband-dll and dotnet/rubberband-sharp directories fall +under this licence. If you make use of this interface, please ensure +you comply with the terms of its licence. Rubber Band may link with other libraries or be compiled with other source code, depending on its build configuration. It is your From 7137ef98448b5d8f2fb39e637a9b2ce262c4ae72 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:20:22 +0000 Subject: [PATCH 24/44] Was that necessary, I wonder? --- .github/workflows/windows.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 5bcc282..34bb6da 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -19,7 +19,6 @@ jobs: .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart - name: configure run: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" meson build - name: make run: | From 7615221ab1815b9bb587da8fb0e4a173e781b67f Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:21:47 +0000 Subject: [PATCH 25/44] Let's see if this builds the program too --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index c3126d7..2c1ca07 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -16,5 +16,5 @@ install: build_script: - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" - - meson build + - meson build -Dextra_include_dirs="C:\Program Files (x86)\Mega-Nerd\libsndfile\include" -Dextra_lib_dirs="C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\" - ninja -C build From 05ebfcca60a8a79d39a94420c3c0f67c1f3d364e Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:34:05 +0000 Subject: [PATCH 26/44] CI tweaks --- .appveyor.yml | 2 +- .github/workflows/windows-dotnet.yml | 3 +-- .github/workflows/windows.yml | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 2c1ca07..61362b6 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -16,5 +16,5 @@ install: build_script: - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" - - meson build -Dextra_include_dirs="C:\Program Files (x86)\Mega-Nerd\libsndfile\include" -Dextra_lib_dirs="C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\" + - meson build -Dextra_include_dirs="C:\Program Files\Mega-Nerd\libsndfile\include" -Dextra_lib_dirs="C:\Program Files\Mega-Nerd\libsndfile\lib\" - ninja -C build diff --git a/.github/workflows/windows-dotnet.yml b/.github/workflows/windows-dotnet.yml index 750b2a2..f52ea86 100644 --- a/.github/workflows/windows-dotnet.yml +++ b/.github/workflows/windows-dotnet.yml @@ -1,4 +1,4 @@ -name: Windows CI +name: Windows .NET CI on: push: @@ -13,6 +13,5 @@ jobs: - uses: actions/checkout@v2 - name: make run: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" msbuild dotnet\rubberband.sln diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 34bb6da..0f5caf5 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -19,8 +19,8 @@ jobs: .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart - name: configure run: | - meson build + c:\ProgramData\chocolatey\bin\meson build - name: make run: | - ninja -C build + c:\ProgramData\chocolatey\bin\ninja -C build From 0d13c8b0ce6d926ec9d226db522ba40eddf868e2 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:41:09 +0000 Subject: [PATCH 27/44] We seem to be getting double-quotes in the string --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 61362b6..7678a37 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -16,5 +16,5 @@ install: build_script: - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" - - meson build -Dextra_include_dirs="C:\Program Files\Mega-Nerd\libsndfile\include" -Dextra_lib_dirs="C:\Program Files\Mega-Nerd\libsndfile\lib\" + - meson build -Dextra_include_dirs='C:\Program Files\Mega-Nerd\libsndfile\include' -Dextra_lib_dirs='C:\Program Files\Mega-Nerd\libsndfile\lib' - ninja -C build From 6e40891fe507473bc40c8b902ffe049972f31992 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:50:17 +0000 Subject: [PATCH 28/44] Further CI tweaks --- .appveyor.yml | 8 +++++--- .github/workflows/windows-dotnet.yml | 17 ----------------- .github/workflows/windows.yml | 26 -------------------------- 3 files changed, 5 insertions(+), 46 deletions(-) delete mode 100644 .github/workflows/windows-dotnet.yml delete mode 100644 .github/workflows/windows.yml diff --git a/.appveyor.yml b/.appveyor.yml index 7678a37..0a12e7d 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -11,10 +11,12 @@ platform: install: - cinst wget - cinst meson - - c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe - - ps: .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart + - cinst libsndfile build_script: - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" - - meson build -Dextra_include_dirs='C:\Program Files\Mega-Nerd\libsndfile\include' -Dextra_lib_dirs='C:\Program Files\Mega-Nerd\libsndfile\lib' + - meson build "-Dextra_include_dirs=C:\Program Files\libsndfile\include" "-Dextra_lib_dirs=C:\Program Files\libsndfile\lib" - ninja -C build + # And test the .NET FFI interface build, which is completely separate + - msbuild dotnet\rubberband.sln + diff --git a/.github/workflows/windows-dotnet.yml b/.github/workflows/windows-dotnet.yml deleted file mode 100644 index f52ea86..0000000 --- a/.github/workflows/windows-dotnet.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Windows .NET CI - -on: - push: - pull_request: - -jobs: - build: - - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v2 - - name: make - run: | - msbuild dotnet\rubberband.sln - diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml deleted file mode 100644 index 0f5caf5..0000000 --- a/.github/workflows/windows.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Windows CI - -on: - push: - pull_request: - -jobs: - build: - - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v2 - - name: deps - run: | - cinst wget - cinst meson - c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe - .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart - - name: configure - run: | - c:\ProgramData\chocolatey\bin\meson build - - name: make - run: | - c:\ProgramData\chocolatey\bin\ninja -C build - From 06a6114dfe14f6e8f7bab326c21a43cf68ba0ea4 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 14:56:45 +0000 Subject: [PATCH 29/44] Fixes to .NET builds --- dotnet/rubberband-dll.vcxproj | 8 ++++---- dotnet/rubberband-library.vcxproj | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dotnet/rubberband-dll.vcxproj b/dotnet/rubberband-dll.vcxproj index fbe8b31..6688409 100644 --- a/dotnet/rubberband-dll.vcxproj +++ b/dotnet/rubberband-dll.vcxproj @@ -92,7 +92,7 @@ true _DEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true - $(SolutionDir)rubberband;%(AdditionalIncludeDirectories) + $(SolutionDir)\..\rubberband;%(AdditionalIncludeDirectories) Windows @@ -110,7 +110,7 @@ true WIN32;_DEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true - $(SolutionDir)rubberband;%(AdditionalIncludeDirectories) + $(SolutionDir)\..\rubberband;%(AdditionalIncludeDirectories) Windows @@ -130,7 +130,7 @@ true WIN32;NDEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true - $(SolutionDir)rubberband;%(AdditionalIncludeDirectories) + $(SolutionDir)\..\rubberband;%(AdditionalIncludeDirectories) Windows @@ -181,4 +181,4 @@ - \ No newline at end of file + diff --git a/dotnet/rubberband-library.vcxproj b/dotnet/rubberband-library.vcxproj index 4aa1ce8..93125a2 100644 --- a/dotnet/rubberband-library.vcxproj +++ b/dotnet/rubberband-library.vcxproj @@ -76,7 +76,7 @@ Disabled - .;..\src;%(AdditionalIncludeDirectories) + ..;..\src;%(AdditionalIncludeDirectories) __MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions) true EnableFastChecks @@ -90,7 +90,7 @@ Disabled - .;..\src;%(AdditionalIncludeDirectories) + ..;..\src;%(AdditionalIncludeDirectories) __MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -108,7 +108,7 @@ true Speed true - .;..\src;%(AdditionalIncludeDirectories) + ..;..\src;%(AdditionalIncludeDirectories) __MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions) MultiThreadedDLL false @@ -194,4 +194,4 @@ - \ No newline at end of file + From 753a4f21bade3e898185a3008435af68afe95ecd Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 15:00:25 +0000 Subject: [PATCH 30/44] .NET somewhat mysterious --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 0a12e7d..fe8e8e5 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -18,5 +18,5 @@ build_script: - meson build "-Dextra_include_dirs=C:\Program Files\libsndfile\include" "-Dextra_lib_dirs=C:\Program Files\libsndfile\lib" - ninja -C build # And test the .NET FFI interface build, which is completely separate - - msbuild dotnet\rubberband.sln + - msbuild dotnet\rubberband.sln /t:Restore;Build From a3c17ff9632f7ccfce7ced122ed156fd9cd8dc06 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 11 Feb 2021 17:40:30 +0000 Subject: [PATCH 31/44] Move this to otherbuilds --- Android.mk => otherbuilds/Android.mk | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Android.mk => otherbuilds/Android.mk (100%) diff --git a/Android.mk b/otherbuilds/Android.mk similarity index 100% rename from Android.mk rename to otherbuilds/Android.mk From 6ae0bd26a5f8fa75deeedd2b4b4559de5a6e2b09 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 24 Feb 2021 09:29:07 +0000 Subject: [PATCH 32/44] Make otherbuilds files build only static libraries --- otherbuilds/Makefile.ios | 13 +- otherbuilds/{Makefile.in => Makefile.linux} | 164 +- otherbuilds/Makefile.macos | 105 +- otherbuilds/Makefile.macos-universal | 107 +- otherbuilds/configure | 5635 ------------------- otherbuilds/configure.ac | 80 - 6 files changed, 41 insertions(+), 6063 deletions(-) rename otherbuilds/{Makefile.in => Makefile.linux} (57%) delete mode 100755 otherbuilds/configure delete mode 100644 otherbuilds/configure.ac diff --git a/otherbuilds/Makefile.ios b/otherbuilds/Makefile.ios index b8ab5f7..7c12f82 100644 --- a/otherbuilds/Makefile.ios +++ b/otherbuilds/Makefile.ios @@ -1,7 +1,8 @@ CXX := clang++ CC := clang -OPTFLAGS := -ffast-math -freciprocal-math -O3 -ftree-vectorize + +OPTFLAGS := -DNDEBUG -ffast-math -freciprocal-math -O3 -ftree-vectorize # For the device ARCHFLAGS_DEV := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch armv7 -arch arm64 -fembed-bitcode @@ -137,9 +138,9 @@ distclean: clean rm -f $(STATIC_TARGET_DEV) $(STATIC_TARGET_SIM) depend: - touch Makefile.dev_depends Makefile.sim_depends - makedepend -f Makefile.dev_depends -o.dev.o -Y $(LIBRARY_SOURCES) - makedepend -f Makefile.sim_depends -o.sim.o -Y $(LIBRARY_SOURCES) + touch otherbuilds/Makefile.dev_depends otherbuilds/Makefile.sim_depends + makedepend -f otherbuilds/Makefile.dev_depends -o.dev.o -Y $(LIBRARY_SOURCES) + makedepend -f otherbuilds/Makefile.sim_depends -o.sim.o -Y $(LIBRARY_SOURCES) --include Makefile.dev_depends --include Makefile.sim_depends +-include otherbuilds/Makefile.dev_depends +-include otherbuilds/Makefile.sim_depends diff --git a/otherbuilds/Makefile.in b/otherbuilds/Makefile.linux similarity index 57% rename from otherbuilds/Makefile.in rename to otherbuilds/Makefile.linux index 78a7bae..f73b0f8 100644 --- a/otherbuilds/Makefile.in +++ b/otherbuilds/Makefile.linux @@ -1,75 +1,27 @@ -PREFIX := @prefix@ -CXX := @CXX@ -CC := @CC@ -CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DNDEBUG -I. -Isrc -Irubberband @CXXFLAGS@ @SRC_CFLAGS@ @SNDFILE_CFLAGS@ @FFTW_CFLAGS@ @Vamp_CFLAGS@ $(OPTFLAGS) -CFLAGS := @CFLAGS@ $(OPTFLAGS) -LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS) -WITH_PROGRAMS := @WITH_PROGRAMS@ -WITH_VAMP := @WITH_VAMP@ -WITH_LADSPA := @WITH_LADSPA@ +CXX := g++ +CC := gcc -JNI_CXXFLAGS := -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -JAVAC := $(JAVA_HOME)/bin/javac -JAR := $(JAVA_HOME)/bin/jar +OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize -LIBRARY_LIBS := @SRC_LIBS@ @FFTW_LIBS@ -PROGRAM_LIBS := @SNDFILE_LIBS@ $(LIBRARY_LIBS) -VAMP_PLUGIN_LIBS := @Vamp_LIBS@ $(LIBRARY_LIBS) -LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS) +ARCHFLAGS := + +CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE -DUSE_KISSFFT -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DHAVE_POSIX_MEMALIGN -DNDEBUG + +CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -MKDIR := mkdir AR := ar - -INSTALL_BINDIR := $(PREFIX)/bin -INSTALL_INCDIR := $(PREFIX)/include/rubberband -INSTALL_LIBDIR := $(PREFIX)/lib -INSTALL_VAMPDIR := $(PREFIX)/lib/vamp -INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa -INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf -INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig +MKDIR := mkdir LIBNAME := librubberband -JNINAME := librubberband-jni -JARNAME := rubberband.jar -DYNAMIC_EXTENSION := .so -DYNAMIC_FULL_VERSION := 2.1.2 -DYNAMIC_ABI_VERSION := 2 -DYNAMIC_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,-soname=$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) -VAMP_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=vamp/vamp-plugin.map -LADSPA_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=ladspa/ladspa-plugin.map - -PROGRAM_TARGET := bin/rubberband STATIC_TARGET := lib/$(LIBNAME).a -DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION) -JNI_TARGET := lib/$(JNINAME)$(DYNAMIC_EXTENSION) -JAR_TARGET := lib/$(JARNAME) -VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION) -LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION) -ALL_TARGETS := lib $(STATIC_TARGET) $(DYNAMIC_TARGET) +default: $(STATIC_TARGET) -ifeq ($(WITH_PROGRAMS), yes) - ALL_TARGETS += bin $(PROGRAM_TARGET) -endif +all: $(STATIC_TARGET) -ifeq ($(WITH_VAMP), yes) - ALL_TARGETS += $(VAMP_TARGET) -endif - -ifeq ($(WITH_LADSPA), yes) - ALL_TARGETS += $(LADSPA_TARGET) -endif - -all: $(ALL_TARGETS) static: $(STATIC_TARGET) -dynamic: $(DYNAMIC_TARGET) -library: $(STATIC_TARGET) $(DYNAMIC_TARGET) -jni: $(JNI_TARGET) $(JAR_TARGET) -program: $(PROGRAM_TARGET) -vamp: $(VAMP_TARGET) -ladspa: $(LADSPA_TARGET) PUBLIC_INCLUDES := \ rubberband/rubberband-c.h \ @@ -119,109 +71,27 @@ LIBRARY_SOURCES := \ src/system/sysutils.cpp \ src/system/Thread.cpp \ src/StretcherChannelData.cpp \ - src/StretcherImpl.cpp - -JNI_SOURCE := \ - src/jni/RubberBandStretcherJNI.cpp - -JAVA_SOURCE := \ - com/breakfastquay/rubberband/RubberBandStretcher.java - -PROGRAM_SOURCES := \ - main/main.cpp - -VAMP_HEADERS := \ - vamp/RubberBandVampPlugin.h - -VAMP_SOURCES := \ - vamp/RubberBandVampPlugin.cpp \ - vamp/libmain.cpp - -LADSPA_HEADERS := \ - ladspa/RubberBandPitchShifter.h - -LADSPA_SOURCES := \ - ladspa/RubberBandPitchShifter.cpp \ - ladspa/libmain.cpp + src/StretcherImpl.cpp \ + src/kissfft/kiss_fft.c \ + src/kissfft/kiss_fftr.c LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o) LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o) -JNI_OBJECT := $(JNI_SOURCE:.cpp=.o) -JAVA_OBJECT := $(JAVA_SOURCE:.java=.class) -PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o) -VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o) -LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o) - -$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) - $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(LDFLAGS) $(STATIC_TARGET): $(LIBRARY_OBJECTS) $(AR) rsc $@ $^ -$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS) - $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS) - -$(JNI_OBJECT): $(JNI_SOURCE) - $(CXX) -c $(JNI_CXXFLAGS) $(CXXFLAGS) $^ -o $@ - -$(JNI_TARGET): $(LIBRARY_OBJECTS) $(JNI_OBJECT) - $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS) - -$(JAR_TARGET): $(JAVA_SOURCE) - $(JAVAC) $^ - $(JAR) cvf $@ $(JAVA_OBJECT) - -$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS) - $(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS) - -$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS) - $(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS) - -bin: - $(MKDIR) $@ lib: $(MKDIR) $@ -install: all - $(MKDIR) -p $(DESTDIR)$(INSTALL_INCDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LIBDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_PKGDIR) - cp -p $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR) - cp -p $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR) - rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) - rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) - rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) - cp -p $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) - ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) - ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) - test -f $(JNI_TARGET) && cp -fp $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) || true - sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \ - > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc -ifeq ($(WITH_PROGRAMS), yes) - $(MKDIR) -p $(DESTDIR)$(INSTALL_BINDIR) - cp -p $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR) -endif -ifeq ($(WITH_VAMP), yes) - $(MKDIR) -p $(DESTDIR)$(INSTALL_VAMPDIR) - cp -p $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR) - cp -p vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR) -endif -ifeq ($(WITH_LADSPA), yes) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LADSPADIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LRDFDIR) - cp -p $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR) - cp -p ladspa/ladspa-rubberband.cat $(DESTDIR)$(INSTALL_LADSPADIR) - cp -p ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR) -endif - clean: - rm -f $(LIBRARY_OBJECTS) $(JNI_OBJECT) $(JAVA_OBJECT) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS) + rm -f $(LIBRARY_OBJECTS) distclean: clean - rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(JNI_TARGET) $(JAR_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) + rm -f $(STATIC_TARGET) depend: - makedepend -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) + makedepend -f otherbuilds/Makefile.linux -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) # DO NOT DELETE diff --git a/otherbuilds/Makefile.macos b/otherbuilds/Makefile.macos index 0279574..96c612a 100644 --- a/otherbuilds/Makefile.macos +++ b/otherbuilds/Makefile.macos @@ -1,57 +1,27 @@ -PREFIX := /usr/local CXX := clang++ -stdlib=libc++ CC := clang -ARCHFLAGS := -mmacosx-version-min=10.7 OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize +ARCHFLAGS := -mmacosx-version-min=10.7 + CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -LDFLAGS := $(ARCHFLAGS) -lpthread $(LDFLAGS) -LIBRARY_LIBS := -framework Accelerate -PROGRAM_LIBS := -L$(PREFIX)/lib -lsndfile $(LIBRARY_LIBS) -VAMP_PLUGIN_LIBS := -L$(PREFIX)/lib -lvamp-sdk $(LIBRARY_LIBS) -LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS) - -MKDIR := mkdir AR := ar - -INSTALL_BINDIR := $(PREFIX)/bin -INSTALL_INCDIR := $(PREFIX)/include/rubberband -INSTALL_LIBDIR := $(PREFIX)/lib -INSTALL_VAMPDIR := $(PREFIX)/lib/vamp -INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa -INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf -INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig +MKDIR := mkdir LIBNAME := librubberband -DYNAMIC_EXTENSION := .dylib -DYNAMIC_FULL_VERSION := 2.1.2 -DYNAMIC_ABI_VERSION := 2 -DYNAMIC_LDFLAGS := -dynamiclib -install_name $(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) -current_version $(DYNAMIC_FULL_VERSION) -compatibility_version $(DYNAMIC_ABI_VERSION) -VAMP_LDFLAGS := -dynamiclib -install_name vamp-rubberband.dylib -exported_symbols_list vamp/vamp-plugin.list -LADSPA_LDFLAGS := -dynamiclib -install_name ladspa-rubberband.dylib -exported_symbols_list ladspa/ladspa-plugin.list - -PROGRAM_TARGET := bin/rubberband STATIC_TARGET := lib/$(LIBNAME).a -DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION) -VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION) -LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION) -default: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) +default: lib $(STATIC_TARGET) -all: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) +all: lib $(STATIC_TARGET) static: lib $(STATIC_TARGET) -dynamic: lib $(DYNAMIC_TARGET) -library: static dynamic -program: bin $(PROGRAM_TARGET) -vamp: lib $(VAMP_TARGET) -ladspa: lib $(LADSPA_TARGET) PUBLIC_INCLUDES := \ rubberband/rubberband-c.h \ @@ -111,83 +81,24 @@ LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \ LIBRARY_SOURCES := $(LIBRARY_SOURCES) \ src/speex/resample.c -PROGRAM_SOURCES := \ - main/main.cpp - -VAMP_HEADERS := \ - vamp/RubberBandVampPlugin.h - -VAMP_SOURCES := \ - vamp/RubberBandVampPlugin.cpp \ - vamp/libmain.cpp - -LADSPA_HEADERS := \ - ladspa/RubberBandPitchShifter.h - -LADSPA_SOURCES := \ - ladspa/RubberBandPitchShifter.cpp \ - ladspa/libmain.cpp - LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o) LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o) -PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o) -VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o) -LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o) - -$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) - $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(LDFLAGS) - $(STATIC_TARGET): $(LIBRARY_OBJECTS) rm -f $@ $(AR) rsc $@ $^ -$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS) - $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS) - -$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS) - $(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS) - -$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS) - $(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS) - -bin: - $(MKDIR) $@ lib: $(MKDIR) $@ -install: default - $(MKDIR) -p $(DESTDIR)$(INSTALL_BINDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_INCDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LIBDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_VAMPDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LADSPADIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LRDFDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_PKGDIR) - cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR) - cp $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR) - cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR) - rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) - rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) - cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) - ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) - ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) - cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR) - cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR) - cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR) - cp ladspa/ladspa-rubberband.cat $(DESTDIR)$(INSTALL_LADSPADIR) - cp ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR) - sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \ - > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc - clean: - rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS) + rm -f $(LIBRARY_OBJECTS) distclean: clean - rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) + rm -f $(STATIC_TARGET) depend: - makedepend -f Makefile.osx -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) + makedepend -f otherbuilds/Makefile.macos -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) # DO NOT DELETE diff --git a/otherbuilds/Makefile.macos-universal b/otherbuilds/Makefile.macos-universal index 719fc02..aa03954 100644 --- a/otherbuilds/Makefile.macos-universal +++ b/otherbuilds/Makefile.macos-universal @@ -1,57 +1,27 @@ -PREFIX := /usr/local CXX := clang++ -stdlib=libc++ CC := clang +OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize + ARCHFLAGS := -arch arm64 -arch x86_64 -mmacosx-version-min=10.7 -OPTFLAGS := -DNDEBUG -ffast-math -O3 CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -LDFLAGS := $(ARCHFLAGS) -lpthread $(LDFLAGS) -LIBRARY_LIBS := -framework Accelerate -PROGRAM_LIBS := -L$(PREFIX)/lib -lsndfile $(LIBRARY_LIBS) -VAMP_PLUGIN_LIBS := -L$(PREFIX)/lib -lvamp-sdk $(LIBRARY_LIBS) -LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS) - -MKDIR := mkdir AR := ar - -INSTALL_BINDIR := $(PREFIX)/bin -INSTALL_INCDIR := $(PREFIX)/include/rubberband -INSTALL_LIBDIR := $(PREFIX)/lib -INSTALL_VAMPDIR := $(PREFIX)/lib/vamp -INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa -INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf -INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig +MKDIR := mkdir LIBNAME := librubberband -DYNAMIC_EXTENSION := .dylib -DYNAMIC_FULL_VERSION := 2.1.2 -DYNAMIC_ABI_VERSION := 2 -DYNAMIC_LDFLAGS := -dynamiclib -install_name $(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) -current_version $(DYNAMIC_FULL_VERSION) -compatibility_version $(DYNAMIC_ABI_VERSION) -VAMP_LDFLAGS := -dynamiclib -install_name vamp-rubberband.dylib -exported_symbols_list vamp/vamp-plugin.list -LADSPA_LDFLAGS := -dynamiclib -install_name ladspa-rubberband.dylib -exported_symbols_list ladspa/ladspa-plugin.list - -PROGRAM_TARGET := bin/rubberband STATIC_TARGET := lib/$(LIBNAME).a -DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION) -VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION) -LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION) -default: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) +default: $(STATIC_TARGET) -all: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) +all: $(STATIC_TARGET) -static: lib $(STATIC_TARGET) -dynamic: lib $(DYNAMIC_TARGET) -library: static dynamic -program: bin $(PROGRAM_TARGET) -vamp: lib $(VAMP_TARGET) -ladspa: lib $(LADSPA_TARGET) +static: $(STATIC_TARGET) PUBLIC_INCLUDES := \ rubberband/rubberband-c.h \ @@ -111,83 +81,24 @@ LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \ LIBRARY_SOURCES := $(LIBRARY_SOURCES) \ src/speex/resample.c -PROGRAM_SOURCES := \ - main/main.cpp - -VAMP_HEADERS := \ - vamp/RubberBandVampPlugin.h - -VAMP_SOURCES := \ - vamp/RubberBandVampPlugin.cpp \ - vamp/libmain.cpp - -LADSPA_HEADERS := \ - ladspa/RubberBandPitchShifter.h - -LADSPA_SOURCES := \ - ladspa/RubberBandPitchShifter.cpp \ - ladspa/libmain.cpp - LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o) LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o) -PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o) -VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o) -LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o) - -$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) - $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(LDFLAGS) - $(STATIC_TARGET): $(LIBRARY_OBJECTS) rm -f $@ $(AR) rsc $@ $^ -$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS) - $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS) - -$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS) - $(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS) - -$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS) - $(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS) - -bin: - $(MKDIR) $@ lib: $(MKDIR) $@ -install: default - $(MKDIR) -p $(DESTDIR)$(INSTALL_BINDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_INCDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LIBDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_VAMPDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LADSPADIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LRDFDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_PKGDIR) - cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR) - cp $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR) - cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR) - rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) - rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) - cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) - ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) - ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) - cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR) - cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR) - cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR) - cp ladspa/ladspa-rubberband.cat $(DESTDIR)$(INSTALL_LADSPADIR) - cp ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR) - sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \ - > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc - clean: - rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS) + rm -f $(LIBRARY_OBJECTS) distclean: clean - rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) + rm -f $(STATIC_TARGET) depend: - makedepend -f Makefile.osx -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) + makedepend -f otherbuilds/Makefile.macos-universal -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) # DO NOT DELETE diff --git a/otherbuilds/configure b/otherbuilds/configure deleted file mode 100755 index 9af6123..0000000 --- a/otherbuilds/configure +++ /dev/null @@ -1,5635 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.70 for RubberBand 1.9.0. -# -# Report bugs to . -# -# -# Copyright (C) 1992-1996, 1998-2017, 2020 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: -if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - - -# Reset variables that may have inherited troublesome values from -# the environment. - -# IFS needs to be set, to space, tab, and newline, in precisely that order. -# (If _AS_PATH_WALK were called with IFS unset, it would have the -# side effect of setting IFS to empty, thus disabling word splitting.) -# Quoting is to prevent editors from complaining about space-tab. -as_nl=' -' -export as_nl -IFS=" "" $as_nl" - -PS1='$ ' -PS2='> ' -PS4='+ ' - -# Ensure predictable behavior from utilities with locale-dependent output. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# We cannot yet rely on "unset" to work, but we need these variables -# to be unset--not just set to an empty or harmless value--now, to -# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct -# also avoids known problems related to "unset" and subshell syntax -# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). -for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH -do eval test \${$as_var+y} \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done - -# Ensure that fds 0, 1, and 2 are open. -if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi -if (exec 3>&2) ; then :; else exec 2>/dev/null; fi - -# The user is always right. -if ${PATH_SEPARATOR+false} :; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - test -r "$as_dir$0" && as_myself=$as_dir$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="as_nop=: -if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else \$as_nop - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ) -then : - -else \$as_nop - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -blah=\$(echo \$(echo blah)) -test x\"\$blah\" = xblah || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" - if (eval "$as_required") 2>/dev/null -then : - as_have_required=yes -else $as_nop - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null -then : - -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null -then : - CONFIG_SHELL=$as_shell as_have_required=yes - if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null -then : - break 2 -fi -fi - done;; - esac - as_found=false -done -IFS=$as_save_IFS -if $as_found -then : - -else $as_nop - if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null -then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi -fi - - - if test "x$CONFIG_SHELL" != x -then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno -then : - printf "%s\n" "$0: This script requires a shell more modern than all" - printf "%s\n" "$0: the shells that I found on your system." - if test ${ZSH_VERSION+y} ; then - printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" - printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." - else - printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and -$0: chris.cannam@breakfastquay.com about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null -then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else $as_nop - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null -then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else $as_nop - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - printf "%s\n" "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -# Determine whether it's possible to make 'echo' print without a newline. -# These variables are no longer used directly by Autoconf, but are AC_SUBSTed -# for compatibility with existing Makefiles. -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -# For backward compatibility with old third-party macros, we provide -# the shell variables $as_echo and $as_echo_n. New code should use -# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. -as_echo='printf %s\n' -as_echo_n='printf %s' - - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='RubberBand' -PACKAGE_TARNAME='rubberband' -PACKAGE_VERSION='1.9.0' -PACKAGE_STRING='RubberBand 1.9.0' -PACKAGE_BUGREPORT='chris.cannam@breakfastquay.com' -PACKAGE_URL='' - -ac_unique_file="src/StretcherImpl.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_STDIO_H -# include -#endif -#ifdef HAVE_STDLIB_H -# include -#endif -#ifdef HAVE_STRING_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_header_c_list= -ac_subst_vars='LTLIBOBJS -LIBOBJS -Vamp_LIBS -Vamp_CFLAGS -FFTW_LIBS -FFTW_CFLAGS -SNDFILE_LIBS -SNDFILE_CFLAGS -SRC_LIBS -SRC_CFLAGS -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -ac_ct_CC -CFLAGS -CC -OBJEXT -EXEEXT -ac_ct_CXX -CPPFLAGS -LDFLAGS -CXXFLAGS -CXX -WITH_LADSPA -WITH_VAMP -WITH_PROGRAMS -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -runstatedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_programs -enable_vamp -enable_ladspa -' - ac_precious_vars='build_alias -host_alias -target_alias -CXX -CXXFLAGS -LDFLAGS -LIBS -CPPFLAGS -CCC -CC -CFLAGS -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -SRC_CFLAGS -SRC_LIBS -SNDFILE_CFLAGS -SNDFILE_LIBS -FFTW_CFLAGS -FFTW_LIBS -Vamp_CFLAGS -Vamp_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" - ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" - ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" - ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" - ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures RubberBand 1.9.0 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/rubberband] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of RubberBand 1.9.0:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-programs disable compilation of programs - --disable-vamp disable compilation of Vamp plugin - --disable-ladspa disable compilation of LADSPA plugin - -Some influential environment variables: - CXX C++ compiler command - CXXFLAGS C++ compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CC C compiler command - CFLAGS C compiler flags - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - SRC_CFLAGS C compiler flags for SRC, overriding pkg-config - SRC_LIBS linker flags for SRC, overriding pkg-config - SNDFILE_CFLAGS - C compiler flags for SNDFILE, overriding pkg-config - SNDFILE_LIBS - linker flags for SNDFILE, overriding pkg-config - FFTW_CFLAGS C compiler flags for FFTW, overriding pkg-config - FFTW_LIBS linker flags for FFTW, overriding pkg-config - Vamp_CFLAGS C compiler flags for Vamp, overriding pkg-config - Vamp_LIBS linker flags for Vamp, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for configure.gnu first; this name is used for a wrapper for - # Metaconfig's "Configure" on case-insensitive file systems. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -RubberBand configure 1.9.0 -generated by GNU Autoconf 2.70 - -Copyright (C) 2020 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_cxx_try_compile LINENO -# ---------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest.beam - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext -then : - ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_compile - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest.beam - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext -then : - ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -printf %s "checking for $2... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$3=yes" -else $as_nop - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile -ac_configure_args_raw= -for ac_arg -do - case $ac_arg in - *\'*) - ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append ac_configure_args_raw " '$ac_arg'" -done - -case $ac_configure_args_raw in - *$as_nl*) - ac_safe_unquote= ;; - *) - ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. - ac_unsafe_a="$ac_unsafe_z#~" - ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" - ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; -esac - -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by RubberBand $as_me 1.9.0, which was -generated by GNU Autoconf 2.70. Invocation command line was - - $ $0$ac_configure_args_raw - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - printf "%s\n" "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Sanitize IFS. - IFS=" "" $as_nl" - # Save into config.log some information that might help in debugging. - { - echo - - printf "%s\n" "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - printf "%s\n" "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - printf "%s\n" "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - printf "%s\n" "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - printf "%s\n" "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - printf "%s\n" "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - printf "%s\n" "$as_me: caught signal $ac_signal" - printf "%s\n" "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -printf "%s\n" "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - ac_site_files="$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - ac_site_files="$prefix/share/config.site $prefix/etc/config.site" -else - ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" -fi - -for ac_site_file in $ac_site_files -do - case $ac_site_file in #( - */*) : - ;; #( - *) : - ac_site_file=./$ac_site_file ;; -esac - if test -f "$ac_site_file" && test -r "$ac_site_file"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -printf "%s\n" "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -printf "%s\n" "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Test code for whether the C++ compiler supports C++98 (global declarations) -ac_cxx_conftest_cxx98_globals=' -// Does the compiler advertise C++98 conformance? -#if !defined __cplusplus || __cplusplus < 199711L -# error "Compiler does not advertise C++98 conformance" -#endif - -// These inclusions are to reject old compilers that -// lack the unsuffixed header files. -#include -#include - -// and are *not* freestanding headers in C++98. -extern void assert (int); -namespace std { - extern int strcmp (const char *, const char *); -} - -// Namespaces, exceptions, and templates were all added after "C++ 2.0". -using std::exception; -using std::strcmp; - -namespace { - -void test_exception_syntax() -{ - try { - throw "test"; - } catch (const char *s) { - // Extra parentheses suppress a warning when building autoconf itself, - // due to lint rules shared with more typical C programs. - assert (!(strcmp) (s, "test")); - } -} - -template struct test_template -{ - T const val; - explicit test_template(T t) : val(t) {} - template T add(U u) { return static_cast(u) + val; } -}; - -} // anonymous namespace -' - -# Test code for whether the C++ compiler supports C++98 (body of main) -ac_cxx_conftest_cxx98_main=' - assert (argc); - assert (! argv[0]); -{ - test_exception_syntax (); - test_template tt (2.0); - assert (tt.add (4) == 6.0); - assert (true && !false); -} -' - -# Test code for whether the C++ compiler supports C++11 (global declarations) -ac_cxx_conftest_cxx11_globals=' -// Does the compiler advertise C++ 2011 conformance? -#if !defined __cplusplus || __cplusplus < 201103L -# error "Compiler does not advertise C++11 conformance" -#endif - -namespace cxx11test -{ - constexpr int get_val() { return 20; } - - struct testinit - { - int i; - double d; - }; - - class delegate - { - public: - delegate(int n) : n(n) {} - delegate(): delegate(2354) {} - - virtual int getval() { return this->n; }; - protected: - int n; - }; - - class overridden : public delegate - { - public: - overridden(int n): delegate(n) {} - virtual int getval() override final { return this->n * 2; } - }; - - class nocopy - { - public: - nocopy(int i): i(i) {} - nocopy() = default; - nocopy(const nocopy&) = delete; - nocopy & operator=(const nocopy&) = delete; - private: - int i; - }; - - // for testing lambda expressions - template Ret eval(Fn f, Ret v) - { - return f(v); - } - - // for testing variadic templates and trailing return types - template auto sum(V first) -> V - { - return first; - } - template auto sum(V first, Args... rest) -> V - { - return first + sum(rest...); - } -} -' - -# Test code for whether the C++ compiler supports C++11 (body of main) -ac_cxx_conftest_cxx11_main=' -{ - // Test auto and decltype - auto a1 = 6538; - auto a2 = 48573953.4; - auto a3 = "String literal"; - - int total = 0; - for (auto i = a3; *i; ++i) { total += *i; } - - decltype(a2) a4 = 34895.034; -} -{ - // Test constexpr - short sa[cxx11test::get_val()] = { 0 }; -} -{ - // Test initializer lists - cxx11test::testinit il = { 4323, 435234.23544 }; -} -{ - // Test range-based for - int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, - 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; - for (auto &x : array) { x += 23; } -} -{ - // Test lambda expressions - using cxx11test::eval; - assert (eval ([](int x) { return x*2; }, 21) == 42); - double d = 2.0; - assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); - assert (d == 5.0); - assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); - assert (d == 5.0); -} -{ - // Test use of variadic templates - using cxx11test::sum; - auto a = sum(1); - auto b = sum(1, 2); - auto c = sum(1.0, 2.0, 3.0); -} -{ - // Test constructor delegation - cxx11test::delegate d1; - cxx11test::delegate d2(); - cxx11test::delegate d3(45); -} -{ - // Test override and final - cxx11test::overridden o1(55464); -} -{ - // Test nullptr - char *c = nullptr; -} -{ - // Test template brackets - test_template<::test_template> v(test_template(12)); -} -{ - // Unicode literals - char const *utf8 = u8"UTF-8 string \u2500"; - char16_t const *utf16 = u"UTF-8 string \u2500"; - char32_t const *utf32 = U"UTF-32 string \u2500"; -} -' - -# Test code for whether the C compiler supports C++11 (complete). -ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals} -${ac_cxx_conftest_cxx11_globals} - -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_cxx_conftest_cxx98_main} - ${ac_cxx_conftest_cxx11_main} - return ok; -} -" - -# Test code for whether the C compiler supports C++98 (complete). -ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals} -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_cxx_conftest_cxx98_main} - return ok; -} -" - -# Test code for whether the C compiler supports C89 (global declarations) -ac_c_conftest_c89_globals=' -/* Does the compiler advertise C89 conformance? - Do not test the value of __STDC__, because some compilers set it to 0 - while being otherwise adequately conformant. */ -#if !defined __STDC__ -# error "Compiler does not advertise C89 conformance" -#endif - -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ -struct buf { int x; }; -struct buf * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not \xHH hex character constants. - These do not provoke an error unfortunately, instead are silently treated - as an "x". The following induces an error, until -std is added to get - proper ANSI mode. Curiously \x00 != x always comes out true, for an - array size at least. It is necessary to write \x00 == 0 to get something - that is true only with -std. */ -int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) '\''x'\'' -int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), - int, int);' - -# Test code for whether the C compiler supports C89 (body of main). -ac_c_conftest_c89_main=' -ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); -' - -# Test code for whether the C compiler supports C99 (global declarations) -ac_c_conftest_c99_globals=' -// Does the compiler advertise C99 conformance? -#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L -# error "Compiler does not advertise C99 conformance" -#endif - -#include -extern int puts (const char *); -extern int printf (const char *, ...); -extern int dprintf (int, const char *, ...); -extern void *malloc (size_t); - -// Check varargs macros. These examples are taken from C99 6.10.3.5. -// dprintf is used instead of fprintf to avoid needing to declare -// FILE and stderr. -#define debug(...) dprintf (2, __VA_ARGS__) -#define showlist(...) puts (#__VA_ARGS__) -#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) -static void -test_varargs_macros (void) -{ - int x = 1234; - int y = 5678; - debug ("Flag"); - debug ("X = %d\n", x); - showlist (The first, second, and third items.); - report (x>y, "x is %d but y is %d", x, y); -} - -// Check long long types. -#define BIG64 18446744073709551615ull -#define BIG32 4294967295ul -#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) -#if !BIG_OK - #error "your preprocessor is broken" -#endif -#if BIG_OK -#else - #error "your preprocessor is broken" -#endif -static long long int bignum = -9223372036854775807LL; -static unsigned long long int ubignum = BIG64; - -struct incomplete_array -{ - int datasize; - double data[]; -}; - -struct named_init { - int number; - const wchar_t *name; - double average; -}; - -typedef const char *ccp; - -static inline int -test_restrict (ccp restrict text) -{ - // See if C++-style comments work. - // Iterate through items via the restricted pointer. - // Also check for declarations in for loops. - for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) - continue; - return 0; -} - -// Check varargs and va_copy. -static bool -test_varargs (const char *format, ...) -{ - va_list args; - va_start (args, format); - va_list args_copy; - va_copy (args_copy, args); - - const char *str = ""; - int number = 0; - float fnumber = 0; - - while (*format) - { - switch (*format++) - { - case '\''s'\'': // string - str = va_arg (args_copy, const char *); - break; - case '\''d'\'': // int - number = va_arg (args_copy, int); - break; - case '\''f'\'': // float - fnumber = va_arg (args_copy, double); - break; - default: - break; - } - } - va_end (args_copy); - va_end (args); - - return *str && number && fnumber; -} -' - -# Test code for whether the C compiler supports C99 (body of main). -ac_c_conftest_c99_main=' - // Check bool. - _Bool success = false; - success |= (argc != 0); - - // Check restrict. - if (test_restrict ("String literal") == 0) - success = true; - char *restrict newvar = "Another string"; - - // Check varargs. - success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); - test_varargs_macros (); - - // Check flexible array members. - struct incomplete_array *ia = - malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); - ia->datasize = 10; - for (int i = 0; i < ia->datasize; ++i) - ia->data[i] = i * 1.234; - - // Check named initializers. - struct named_init ni = { - .number = 34, - .name = L"Test wide string", - .average = 543.34343, - }; - - ni.number = 58; - - int dynamic_array[ni.number]; - dynamic_array[0] = argv[0][0]; - dynamic_array[ni.number - 1] = 543; - - // work around unused variable warnings - ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' - || dynamic_array[ni.number - 1] != 543); -' - -# Test code for whether the C compiler supports C11 (global declarations) -ac_c_conftest_c11_globals=' -// Does the compiler advertise C11 conformance? -#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L -# error "Compiler does not advertise C11 conformance" -#endif - -// Check _Alignas. -char _Alignas (double) aligned_as_double; -char _Alignas (0) no_special_alignment; -extern char aligned_as_int; -char _Alignas (0) _Alignas (int) aligned_as_int; - -// Check _Alignof. -enum -{ - int_alignment = _Alignof (int), - int_array_alignment = _Alignof (int[100]), - char_alignment = _Alignof (char) -}; -_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); - -// Check _Noreturn. -int _Noreturn does_not_return (void) { for (;;) continue; } - -// Check _Static_assert. -struct test_static_assert -{ - int x; - _Static_assert (sizeof (int) <= sizeof (long int), - "_Static_assert does not work in struct"); - long int y; -}; - -// Check UTF-8 literals. -#define u8 syntax error! -char const utf8_literal[] = u8"happens to be ASCII" "another string"; - -// Check duplicate typedefs. -typedef long *long_ptr; -typedef long int *long_ptr; -typedef long_ptr long_ptr; - -// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. -struct anonymous -{ - union { - struct { int i; int j; }; - struct { int k; long int l; } w; - }; - int m; -} v1; -' - -# Test code for whether the C compiler supports C11 (body of main). -ac_c_conftest_c11_main=' - _Static_assert ((offsetof (struct anonymous, i) - == offsetof (struct anonymous, w.k)), - "Anonymous union alignment botch"); - v1.i = 2; - v1.w.k = 5; - ok |= v1.i != 5; -' - -# Test code for whether the C compiler supports C11 (complete). -ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} -${ac_c_conftest_c99_globals} -${ac_c_conftest_c11_globals} - -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_c_conftest_c89_main} - ${ac_c_conftest_c99_main} - ${ac_c_conftest_c11_main} - return ok; -} -" - -# Test code for whether the C compiler supports C99 (complete). -ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} -${ac_c_conftest_c99_globals} - -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_c_conftest_c89_main} - ${ac_c_conftest_c99_main} - return ok; -} -" - -# Test code for whether the C compiler supports C89 (complete). -ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} - -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_c_conftest_c89_main} - return ok; -} -" - -as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" -as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" -as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" -as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" -as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" -as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" -as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" -as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" -as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' - and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -# Check whether --enable-programs was given. -if test ${enable_programs+y} -then : - enableval=$enable_programs; case "${enableval}" in - yes | no ) WITH_PROGRAMS="${enableval}" ;; - *) as_fn_error $? "bad value ${enableval} for --disable-programs" "$LINENO" 5 ;; - esac -else $as_nop - WITH_PROGRAMS="yes" - -fi - - - -# Check whether --enable-vamp was given. -if test ${enable_vamp+y} -then : - enableval=$enable_vamp; case "${enableval}" in - yes | no ) WITH_VAMP="${enableval}" ;; - *) as_fn_error $? "bad value ${enableval} for --disable-vamp" "$LINENO" 5 ;; - esac -else $as_nop - WITH_VAMP="yes" - -fi - - - -# Check whether --enable-ladspa was given. -if test ${enable_ladspa+y} -then : - enableval=$enable_ladspa; case "${enableval}" in - yes | no ) WITH_LADSPA="${enableval}" ;; - *) as_fn_error $? "bad value ${enableval} for --disable-ladspa" "$LINENO" 5 ;; - esac -else $as_nop - WITH_LADSPA="yes" - -fi - - - - - - - - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CXX+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -printf "%s\n" "$CXX" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_CXX+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -printf "%s\n" "$ac_ct_CXX" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 -printf %s "checking whether the C++ compiler works... " >&6; } -ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else $as_nop - ac_file='' -fi -if test -z "$ac_file" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C++ compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 -printf %s "checking for C++ compiler default output file name... " >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -printf "%s\n" "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -printf %s "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -printf "%s\n" "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -printf %s "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot run C++ compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -printf "%s\n" "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -printf %s "checking for suffix of object files... " >&6; } -if test ${ac_cv_objext+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -printf "%s\n" "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 -printf %s "checking whether the compiler supports GNU C++... " >&6; } -if test ${ac_cv_cxx_compiler_gnu+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO" -then : - ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+y} -ac_save_CXXFLAGS=$CXXFLAGS -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -printf %s "checking whether $CXX accepts -g... " >&6; } -if test ${ac_cv_prog_cxx_g+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO" -then : - ac_cv_prog_cxx_g=yes -else $as_nop - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO" -then : - -else $as_nop - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO" -then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } -if test $ac_test_CXXFLAGS; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 -printf %s "checking for $CXX option to enable C++11 features... " >&6; } -if test ${ac_cv_prog_cxx_cxx11+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_cxx11=no -ac_save_CXX=$CXX -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_cxx_conftest_cxx11_program -_ACEOF -for ac_arg in '' -std=gnu++11 -std=c++11 -std=gnu++0x -std=c++0x -qlanglvl=extended0x -AA -do - CXX="$ac_save_CXX $ac_arg" - if ac_fn_cxx_try_compile "$LINENO" -then : - ac_cv_prog_cxx_cxx11=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cxx_cxx11" != "xno" && break -done -rm -f conftest.$ac_ext -CXX=$ac_save_CXX - -fi -# AC_CACHE_VAL -ac_prog_cxx_stdcxx_options= -case "x$ac_cv_prog_cxx_cxx11" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cxx_stdcxx_options=" $ac_cv_prog_cxx_cxx11" - CXX=$CXX$ac_prog_cxx_stdcxx_options - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 -printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } ;; -esac -if test "x$ac_cv_prog_cxx_cxx11" != xno -then : - ac_prog_cxx_stdcxx=cxx11 - ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 - ac_cv_prog_cxx_cxx98=$ac_cv_prog_cxx_cxx11 -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 -printf %s "checking for $CXX option to enable C++98 features... " >&6; } -if test ${ac_cv_prog_cxx_cxx98+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_cxx98=no -ac_save_CXX=$CXX -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_cxx_conftest_cxx98_program -_ACEOF -for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA -do - CXX="$ac_save_CXX $ac_arg" - if ac_fn_cxx_try_compile "$LINENO" -then : - ac_cv_prog_cxx_cxx98=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cxx_cxx98" != "xno" && break -done -rm -f conftest.$ac_ext -CXX=$ac_save_CXX - -fi -# AC_CACHE_VAL -ac_prog_cxx_stdcxx_options= -case "x$ac_cv_prog_cxx_cxx98" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cxx_stdcxx_options=" $ac_cv_prog_cxx_cxx98" - CXX=$CXX$ac_prog_cxx_stdcxx_options - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 -printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } ;; -esac -if test "x$ac_cv_prog_cxx_cxx98" != xno -then : - ac_prog_cxx_stdcxx=cxx98 - ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 -else $as_nop - ac_prog_cxx_stdcxx=no - ac_cv_prog_cxx_stdcxx=no -fi - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. -set dummy ${ac_tool_prefix}clang; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}clang" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "clang", so it can be a program name with args. -set dummy clang; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="clang" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -fi - - -test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion -version; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 -printf %s "checking whether the compiler supports GNU C... " >&6; } -if test ${ac_cv_c_compiler_gnu+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+y} -ac_save_CFLAGS=$CFLAGS -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -printf %s "checking whether $CC accepts -g... " >&6; } -if test ${ac_cv_prog_cc_g+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_g=yes -else $as_nop - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - -else $as_nop - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -printf "%s\n" "$ac_cv_prog_cc_g" >&6; } -if test $ac_test_CFLAGS; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 -printf %s "checking for $CC option to enable C11 features... " >&6; } -if test ${ac_cv_prog_cc_c11+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c11=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_c_conftest_c11_program -_ACEOF -for ac_arg in '' -std=gnu11 -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_c11=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cc_c11" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c11" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c11" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 -printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c11" != xno -then : - ac_prog_cc_stdc=c11 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 -printf %s "checking for $CC option to enable C99 features... " >&6; } -if test ${ac_cv_prog_cc_c99+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c99=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_c_conftest_c89_program -_ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99 -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_c99=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cc_c99" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c99" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c99" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 -printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c99" != xno -then : - ac_prog_cc_stdc=c99 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 -printf %s "checking for $CC option to enable C89 features... " >&6; } -if test ${ac_cv_prog_cc_c89+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_c_conftest_c89_program -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c89" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c89" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno -then : - ac_prog_cc_stdc=c89 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 -else $as_nop - ac_prog_cc_stdc=no - ac_cv_prog_cc_stdc=no -fi - -fi - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_PKG_CONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -printf "%s\n" "$PKG_CONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - PKG_CONFIG="" - fi -fi - -pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SRC" >&5 -printf %s "checking for SRC... " >&6; } - -if test -n "$SRC_CFLAGS"; then - pkg_cv_SRC_CFLAGS="$SRC_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate\""; } >&5 - ($PKG_CONFIG --exists --print-errors "samplerate") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SRC_CFLAGS=`$PKG_CONFIG --cflags "samplerate" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$SRC_LIBS"; then - pkg_cv_SRC_LIBS="$SRC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate\""; } >&5 - ($PKG_CONFIG --exists --print-errors "samplerate") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SRC_LIBS=`$PKG_CONFIG --libs "samplerate" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - SRC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "samplerate" 2>&1` - else - SRC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "samplerate" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$SRC_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (samplerate) were not met: - -$SRC_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables SRC_CFLAGS -and SRC_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables SRC_CFLAGS -and SRC_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - SRC_CFLAGS=$pkg_cv_SRC_CFLAGS - SRC_LIBS=$pkg_cv_SRC_LIBS - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - -fi - - - -if test "x$WITH_PROGRAMS" = "xyes"; then - -pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5 -printf %s "checking for SNDFILE... " >&6; } - -if test -n "$SNDFILE_CFLAGS"; then - pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sndfile") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$SNDFILE_LIBS"; then - pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sndfile") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sndfile" 2>&1` - else - SNDFILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sndfile" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$SNDFILE_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (sndfile) were not met: - -$SNDFILE_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables SNDFILE_CFLAGS -and SNDFILE_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables SNDFILE_CFLAGS -and SNDFILE_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS - SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - -fi -fi - - - - -pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FFTW" >&5 -printf %s "checking for FFTW... " >&6; } - -if test -n "$FFTW_CFLAGS"; then - pkg_cv_FFTW_CFLAGS="$FFTW_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fftw3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "fftw3") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_FFTW_CFLAGS=`$PKG_CONFIG --cflags "fftw3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$FFTW_LIBS"; then - pkg_cv_FFTW_LIBS="$FFTW_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fftw3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "fftw3") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_FFTW_LIBS=`$PKG_CONFIG --libs "fftw3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - FFTW_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "fftw3" 2>&1` - else - FFTW_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "fftw3" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$FFTW_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (fftw3) were not met: - -$FFTW_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables FFTW_CFLAGS -and FFTW_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables FFTW_CFLAGS -and FFTW_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - FFTW_CFLAGS=$pkg_cv_FFTW_CFLAGS - FFTW_LIBS=$pkg_cv_FFTW_LIBS - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - -fi - - - -if test "x$WITH_LADSPA" = "xyes"; then - -ac_header= ac_cache= -for ac_item in $ac_header_c_list -do - if test $ac_cache; then - ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" - if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then - printf "%s\n" "#define $ac_item 1" >> confdefs.h - fi - ac_header= ac_cache= - elif test $ac_header; then - ac_cache=$ac_item - else - ac_header=$ac_item - fi -done - - - - - - - - -if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes -then : - -printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h - -fi - for ac_header in ladspa.h -do : - ac_fn_c_check_header_compile "$LINENO" "ladspa.h" "ac_cv_header_ladspa_h" "$ac_includes_default" -if test "x$ac_cv_header_ladspa_h" = xyes -then : - printf "%s\n" "#define HAVE_LADSPA_H 1" >>confdefs.h - -else $as_nop - as_fn_error $? "LADSPA header not found - -Consider installing the LADSPA SDK or configure with --disable-ladspa" "$LINENO" 5 -fi - -done -fi -ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = xyes -then : - printf "%s\n" "#define HAVE_PTHREAD_H 1" >>confdefs.h - -fi - - -if test "x$WITH_VAMP" = "xyes"; then - -pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Vamp" >&5 -printf %s "checking for Vamp... " >&6; } - -if test -n "$Vamp_CFLAGS"; then - pkg_cv_Vamp_CFLAGS="$Vamp_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"vamp-sdk\""; } >&5 - ($PKG_CONFIG --exists --print-errors "vamp-sdk") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_Vamp_CFLAGS=`$PKG_CONFIG --cflags "vamp-sdk" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$Vamp_LIBS"; then - pkg_cv_Vamp_LIBS="$Vamp_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"vamp-sdk\""; } >&5 - ($PKG_CONFIG --exists --print-errors "vamp-sdk") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_Vamp_LIBS=`$PKG_CONFIG --libs "vamp-sdk" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - Vamp_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "vamp-sdk" 2>&1` - else - Vamp_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "vamp-sdk" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$Vamp_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (vamp-sdk) were not met: - -$Vamp_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables Vamp_CFLAGS -and Vamp_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables Vamp_CFLAGS -and Vamp_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - Vamp_CFLAGS=$pkg_cv_Vamp_CFLAGS - Vamp_LIBS=$pkg_cv_Vamp_LIBS - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - -fi -fi - - - -if test "x$GCC" = "xyes"; then - case " $CFLAGS " in - *[\ \ ]-fPIC\ -Wall[\ \ ]*) ;; - *) CFLAGS="$CFLAGS -fPIC -Wall" ;; - esac - case " $CXXFLAGS " in - *[\ \ ]-fPIC\ -Wall[\ \ ]*) ;; - *) CXXFLAGS="$CXXFLAGS -fPIC -Wall" ;; - esac -fi - -ac_config_files="$ac_config_files Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -printf "%s\n" "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: -if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - - -# Reset variables that may have inherited troublesome values from -# the environment. - -# IFS needs to be set, to space, tab, and newline, in precisely that order. -# (If _AS_PATH_WALK were called with IFS unset, it would have the -# side effect of setting IFS to empty, thus disabling word splitting.) -# Quoting is to prevent editors from complaining about space-tab. -as_nl=' -' -export as_nl -IFS=" "" $as_nl" - -PS1='$ ' -PS2='> ' -PS4='+ ' - -# Ensure predictable behavior from utilities with locale-dependent output. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# We cannot yet rely on "unset" to work, but we need these variables -# to be unset--not just set to an empty or harmless value--now, to -# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct -# also avoids known problems related to "unset" and subshell syntax -# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). -for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH -do eval test \${$as_var+y} \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done - -# Ensure that fds 0, 1, and 2 are open. -if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi -if (exec 3>&2) ; then :; else exec 2>/dev/null; fi - -# The user is always right. -if ${PATH_SEPARATOR+false} :; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - test -r "$as_dir$0" && as_myself=$as_dir$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - printf "%s\n" "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null -then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else $as_nop - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null -then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else $as_nop - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - -# Determine whether it's possible to make 'echo' print without a newline. -# These variables are no longer used directly by Autoconf, but are AC_SUBSTed -# for compatibility with existing Makefiles. -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -# For backward compatibility with old third-party macros, we provide -# the shell variables $as_echo and $as_echo_n. New code should use -# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. -as_echo='printf %s\n' -as_echo_n='printf %s' - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by RubberBand $as_me 1.9.0, which was -generated by GNU Autoconf 2.70. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to ." - -_ACEOF -ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` -ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config='$ac_cs_config_escaped' -ac_cs_version="\\ -RubberBand config.status 1.9.0 -configured by $0, generated by GNU Autoconf 2.70, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2020 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - printf "%s\n" "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - printf "%s\n" "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - printf "%s\n" "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - printf "%s\n" "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - - -eval set X " :F $CONFIG_FILES " -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -printf "%s\n" "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`printf "%s\n" "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - - - - esac - -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - - diff --git a/otherbuilds/configure.ac b/otherbuilds/configure.ac deleted file mode 100644 index aca9b2e..0000000 --- a/otherbuilds/configure.ac +++ /dev/null @@ -1,80 +0,0 @@ - -AC_INIT([RubberBand],[1.9.0],[chris.cannam@breakfastquay.com]) - -AC_ARG_ENABLE(programs, - [ --disable-programs disable compilation of programs], - [case "${enableval}" in - yes | no ) WITH_PROGRAMS="${enableval}" ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-programs) ;; - esac], - [WITH_PROGRAMS="yes"] -) -AC_SUBST(WITH_PROGRAMS) - -AC_ARG_ENABLE(vamp, - [ --disable-vamp disable compilation of Vamp plugin], - [case "${enableval}" in - yes | no ) WITH_VAMP="${enableval}" ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-vamp) ;; - esac], - [WITH_VAMP="yes"] -) -AC_SUBST(WITH_VAMP) - -AC_ARG_ENABLE(ladspa, - [ --disable-ladspa disable compilation of LADSPA plugin], - [case "${enableval}" in - yes | no ) WITH_LADSPA="${enableval}" ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-ladspa) ;; - esac], - [WITH_LADSPA="yes"] -) -AC_SUBST(WITH_LADSPA) - -AC_CONFIG_SRCDIR(src/StretcherImpl.h) -AC_PROG_CXX -AC_PROG_CC - -PKG_CHECK_MODULES([SRC],[samplerate]) -AC_SUBST(SRC_CFLAGS) -AC_SUBST(SRC_LIBS) - -if test "x$WITH_PROGRAMS" = "xyes"; then - PKG_CHECK_MODULES([SNDFILE],[sndfile]) -fi -AC_SUBST(SNDFILE_CFLAGS) -AC_SUBST(SNDFILE_LIBS) - -PKG_CHECK_MODULES([FFTW],[fftw3]) -AC_SUBST(FFTW_CFLAGS) -AC_SUBST(FFTW_LIBS) - -if test "x$WITH_LADSPA" = "xyes"; then - AC_CHECK_HEADERS(ladspa.h, [], [AC_MSG_ERROR([LADSPA header not found - -Consider installing the LADSPA SDK or configure with --disable-ladspa])]) -fi -AC_CHECK_HEADERS(pthread.h) - -if test "x$WITH_VAMP" = "xyes"; then - PKG_CHECK_MODULES([Vamp],[vamp-sdk]) -fi -AC_SUBST(Vamp_CFLAGS) -AC_SUBST(Vamp_LIBS) - -changequote(,)dnl -if test "x$GCC" = "xyes"; then - case " $CFLAGS " in - *[\ \ ]-fPIC\ -Wall[\ \ ]*) ;; - *) CFLAGS="$CFLAGS -fPIC -Wall" ;; - esac - case " $CXXFLAGS " in - *[\ \ ]-fPIC\ -Wall[\ \ ]*) ;; - *) CXXFLAGS="$CXXFLAGS -fPIC -Wall" ;; - esac -fi -changequote([,])dnl - -AC_CONFIG_FILES([Makefile]) -AC_OUTPUT - From 779ebb005dff854b0d7b0d03c50947e3f9797f1c Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 26 Feb 2021 11:03:09 +0000 Subject: [PATCH 33/44] Check the otherbuilds builds in the CI run --- .build.yml | 1 + .github/workflows/macos-ios.yml | 3 +++ otherbuilds/check.sh | 13 +++++++++++++ 3 files changed, 17 insertions(+) create mode 100755 otherbuilds/check.sh diff --git a/.build.yml b/.build.yml index b66fa42..903c7c3 100644 --- a/.build.yml +++ b/.build.yml @@ -17,6 +17,7 @@ tasks: - build: | cd rubberband ninja -C build + ./otherbuilds/check.sh triggers: - action: email condition: always diff --git a/.github/workflows/macos-ios.yml b/.github/workflows/macos-ios.yml index f17deb7..2c1e5f9 100644 --- a/.github/workflows/macos-ios.yml +++ b/.github/workflows/macos-ios.yml @@ -21,4 +21,7 @@ jobs: run: ninja -C build_macos - name: make ios run: ninja -C build_ios + - name: check otherbuilds + run: otherbuilds/check.sh + diff --git a/otherbuilds/check.sh b/otherbuilds/check.sh new file mode 100755 index 0000000..9d4d006 --- /dev/null +++ b/otherbuilds/check.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -eu +if [ ! -d /Applications ]; then + make -f otherbuilds/Makefile.linux + g++ main/main.cpp lib/librubberband.a -Isrc -o test -lsndfile -lsamplerate -lpthread + ./test -V +else + make -f otherbuilds/Makefile.macos + c++ main/main.cpp lib/librubberband.a -Isrc -o test -lsndfile -lsamplerate -framework Accelerate + ./test -V + make -f otherbuilds/Makefile.macos clean + make -f otherbuilds/Makefile.ios +fi From 2dffd9eb9005d0014131202a8cbaa3a6e334f58b Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 26 Feb 2021 11:09:47 +0000 Subject: [PATCH 34/44] Create target dir --- otherbuilds/Makefile.ios | 4 +--- otherbuilds/Makefile.linux | 16 +++++++--------- otherbuilds/Makefile.macos | 10 ++++------ 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/otherbuilds/Makefile.ios b/otherbuilds/Makefile.ios index 7c12f82..f6b8abe 100644 --- a/otherbuilds/Makefile.ios +++ b/otherbuilds/Makefile.ios @@ -20,7 +20,7 @@ CFLAGS_SIM := $(ARCHFLAGS_SIM) $(OPTFLAGS) AR := ar LIPO := lipo -MKDIR := mkdir +MKDIR := mkdir -p LIBNAME := librubberband @@ -29,9 +29,7 @@ STATIC_TARGET_DEV := lib/$(LIBNAME).dev.a STATIC_TARGET_SIM := lib/$(LIBNAME).sim.a default: lib $(STATIC_TARGET) - all: lib $(STATIC_TARGET) - static: lib $(STATIC_TARGET) PUBLIC_INCLUDES := \ diff --git a/otherbuilds/Makefile.linux b/otherbuilds/Makefile.linux index f73b0f8..a8e5443 100644 --- a/otherbuilds/Makefile.linux +++ b/otherbuilds/Makefile.linux @@ -10,18 +10,16 @@ CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -AR := ar -MKDIR := mkdir +AR := ar +MKDIR := mkdir -p -LIBNAME := librubberband +LIBNAME := librubberband -STATIC_TARGET := lib/$(LIBNAME).a +STATIC_TARGET := lib/$(LIBNAME).a -default: $(STATIC_TARGET) - -all: $(STATIC_TARGET) - -static: $(STATIC_TARGET) +default: lib $(STATIC_TARGET) +all: lib $(STATIC_TARGET) +static: lib $(STATIC_TARGET) PUBLIC_INCLUDES := \ rubberband/rubberband-c.h \ diff --git a/otherbuilds/Makefile.macos b/otherbuilds/Makefile.macos index 96c612a..eae185f 100644 --- a/otherbuilds/Makefile.macos +++ b/otherbuilds/Makefile.macos @@ -10,17 +10,15 @@ CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -I/usr/local/include CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -AR := ar -MKDIR := mkdir +AR := ar +MKDIR := mkdir -p -LIBNAME := librubberband +LIBNAME := librubberband -STATIC_TARGET := lib/$(LIBNAME).a +STATIC_TARGET := lib/$(LIBNAME).a default: lib $(STATIC_TARGET) - all: lib $(STATIC_TARGET) - static: lib $(STATIC_TARGET) PUBLIC_INCLUDES := \ From 8b86e0862cdec9b5099398267db71c3d0d4c8736 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 26 Feb 2021 11:43:21 +0000 Subject: [PATCH 35/44] Add include path --- otherbuilds/check.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/otherbuilds/check.sh b/otherbuilds/check.sh index 9d4d006..19aee02 100755 --- a/otherbuilds/check.sh +++ b/otherbuilds/check.sh @@ -2,11 +2,11 @@ set -eu if [ ! -d /Applications ]; then make -f otherbuilds/Makefile.linux - g++ main/main.cpp lib/librubberband.a -Isrc -o test -lsndfile -lsamplerate -lpthread + g++ main/main.cpp lib/librubberband.a -I. -Isrc -o test -lsndfile -lsamplerate -lpthread ./test -V else make -f otherbuilds/Makefile.macos - c++ main/main.cpp lib/librubberband.a -Isrc -o test -lsndfile -lsamplerate -framework Accelerate + c++ main/main.cpp lib/librubberband.a -I. -Isrc -o test -lsndfile -lsamplerate -framework Accelerate ./test -V make -f otherbuilds/Makefile.macos clean make -f otherbuilds/Makefile.ios From 120edca223bd831542d7f0d0511212db804c5805 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Mar 2021 10:31:00 +0000 Subject: [PATCH 36/44] Build updates for Windows --- cross/windows-cl.txt | 9 + cross/windows-clang.txt | 9 + main/main.cpp | 1 + meson.build | 13 +- otherbuilds/Makefile.linux | 2 +- ...ram.vcxproj => rubberband-library.vcxproj} | 154 +++++++++--------- src/base/Scavenger.h | 2 +- src/system/sysutils.h | 16 +- 8 files changed, 119 insertions(+), 87 deletions(-) create mode 100644 cross/windows-cl.txt create mode 100644 cross/windows-clang.txt rename otherbuilds/{rubberband-program.vcxproj => rubberband-library.vcxproj} (52%) diff --git a/cross/windows-cl.txt b/cross/windows-cl.txt new file mode 100644 index 0000000..a690ccc --- /dev/null +++ b/cross/windows-cl.txt @@ -0,0 +1,9 @@ + +[properties] +needs_exe_wrapper = false + +[binaries] +c = 'cl' +cpp = 'cl' + + diff --git a/cross/windows-clang.txt b/cross/windows-clang.txt new file mode 100644 index 0000000..82a9d35 --- /dev/null +++ b/cross/windows-clang.txt @@ -0,0 +1,9 @@ + +[properties] +needs_exe_wrapper = false + +[binaries] +c = 'clang' +cpp = 'clang++' + + diff --git a/main/main.cpp b/main/main.cpp index 4231ffc..f22383e 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -54,6 +54,7 @@ using RubberBand::gettimeofday; #ifdef _MSC_VER using RubberBand::usleep; +#define strdup _strdup #endif double tempo_convert(const char *str) diff --git a/meson.build b/meson.build index 9f5f8b8..e9722b3 100644 --- a/meson.build +++ b/meson.build @@ -5,7 +5,9 @@ project( version: '1.9.0', license: 'GPL-2.0-or-later', default_options: [ - 'cpp_std=c++11', + # All Rubber Band code is actually C++98, but some compilers no + # longer support that + 'cpp_std=c++14', 'buildtype=release', 'b_ndebug=if-release', 'b_lundef=true', @@ -271,6 +273,13 @@ if not sndfile_dep.found() has_headers: ['sndfile.h'], header_args: extra_include_args, required: false) + if not sndfile_dep.found() + sndfile_dep = cpp.find_library('sndfile-1', + dirs: get_option('extra_lib_dirs'), + has_headers: ['sndfile.h'], + header_args: extra_include_args, + required: false) + endif endif have_sndfile = sndfile_dep.found() @@ -323,8 +332,8 @@ if system == 'darwin' endif # end architecture elif system == 'windows' + feature_defines += ['-D_WIN32', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API='] if cpp.get_id() == 'msvc' - feature_defines += ['-DWIN32', '-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API='] ladspa_symbol_args += ['-EXPORT:ladspa_descriptor'] vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor'] endif diff --git a/otherbuilds/Makefile.linux b/otherbuilds/Makefile.linux index a8e5443..324b038 100644 --- a/otherbuilds/Makefile.linux +++ b/otherbuilds/Makefile.linux @@ -6,7 +6,7 @@ OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize ARCHFLAGS := -CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE -DUSE_KISSFFT -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DHAVE_POSIX_MEMALIGN -DNDEBUG +CXXFLAGS := -std=c++98 $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE -DUSE_KISSFFT -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DHAVE_POSIX_MEMALIGN -DNDEBUG CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) diff --git a/otherbuilds/rubberband-program.vcxproj b/otherbuilds/rubberband-library.vcxproj similarity index 52% rename from otherbuilds/rubberband-program.vcxproj rename to otherbuilds/rubberband-library.vcxproj index 00cd8e6..93125a2 100644 --- a/otherbuilds/rubberband-program.vcxproj +++ b/otherbuilds/rubberband-library.vcxproj @@ -19,26 +19,27 @@ - {06838307-FEAA-4DB0-8E08-AF19698E9C40} - rubberband-program + {020CEB11-EF4E-400E-971D-A35DB69D7CF9} + rubberband-library Win32Proj + 10.0 - Application - v140 + StaticLibrary + v142 - Application - v140 + StaticLibrary + v142 - Application - v140 + StaticLibrary + v142 - Application - v140 + StaticLibrary + v142 @@ -62,67 +63,43 @@ Debug\ Debug\ - true - MinimumRecommendedRules.ruleset - - + true + $(SourcePath) - true - MinimumRecommendedRules.ruleset - - + true Release\ Release\ - - MinimumRecommendedRules.ruleset - - - - - - MinimumRecommendedRules.ruleset - - Disabled - .;.\rubberband;.\src;C:\Program Files (x86)\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories) - __MSVC__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + ..;..\src;%(AdditionalIncludeDirectories) + __MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL - Level3 + Level2 EditAndContinue + false - - .\Debug\rubberband-library.lib;C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies) - true - Console - MachineX86 - Disabled - .;.\rubberband;.\src;C:\Program Files\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories) - __MSVC__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + ..;..\src;%(AdditionalIncludeDirectories) + __MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL - Level3 + Level2 ProgramDatabase + false - - .\x64\Debug\rubberband-library.lib;C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies) - true - Console - @@ -131,23 +108,16 @@ true Speed true - .;.\rubberband;.\src;C:\Program Files (x86)\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories) - __MSVC__;WIN32;NDEBUG;_CONSOLE;WANT_TIMING;%(PreprocessorDefinitions) + ..;..\src;%(AdditionalIncludeDirectories) + __MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions) MultiThreadedDLL + false StreamingSIMDExtensions Fast Level2 ProgramDatabase - - .\Release\rubberband-library.lib;C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies) - false - Console - true - true - MachineX86 - @@ -156,9 +126,10 @@ true Speed true - .;.\rubberband;.\src;C:\Program Files\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories) - __MSVC__;WIN32;NDEBUG;_CONSOLE;WANT_TIMING;%(PreprocessorDefinitions) + ..;..\src;%(AdditionalIncludeDirectories) + __MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions) MultiThreadedDLL + false StreamingSIMDExtensions Fast @@ -166,30 +137,61 @@ Level2 ProgramDatabase - - .\x64\Release\rubberband-library.lib;C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies) - false - Console - true - true - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + diff --git a/src/base/Scavenger.h b/src/base/Scavenger.h index e5b9b24..e8b6b5b 100644 --- a/src/base/Scavenger.h +++ b/src/base/Scavenger.h @@ -29,7 +29,7 @@ #include #include -#ifndef WIN32 +#ifndef _MSC_VER #include #endif diff --git a/src/system/sysutils.h b/src/system/sysutils.h index 9a0f53a..86a2896 100644 --- a/src/system/sysutils.h +++ b/src/system/sysutils.h @@ -24,13 +24,6 @@ #ifndef RUBBERBAND_SYSUTILS_H #define RUBBERBAND_SYSUTILS_H -#ifdef _MSC_VER -# if _MSC_VER < 1800 -# include "float_cast/float_cast.h" -# endif -# define R__ __restrict -#endif - #ifdef __clang__ # define R__ __restrict__ #else @@ -39,6 +32,15 @@ # endif #endif +#ifdef _MSC_VER +# if _MSC_VER < 1800 +# include "float_cast/float_cast.h" +# endif +# ifndef R__ +# define R__ __restrict +# endif +#endif + #ifndef R__ # define R__ #endif From d68c4b7abb3a7c760510202e071e2e1381c48ed1 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Mar 2021 10:33:27 +0000 Subject: [PATCH 37/44] Untabify --- meson.build | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/meson.build b/meson.build index e9722b3..2b933bf 100644 --- a/meson.build +++ b/meson.build @@ -152,10 +152,10 @@ elif fft == 'fftw' pkgconfig_requirements += fftw3_dep else fftw_dep = cpp.find_library('fftw3', - dirs: get_option('extra_lib_dirs'), - has_headers: ['fftw3.h'], - header_args: extra_include_args, - required: true) + dirs: get_option('extra_lib_dirs'), + has_headers: ['fftw3.h'], + header_args: extra_include_args, + required: true) endif feature_dependencies += fftw3_dep feature_defines += ['-DHAVE_FFTW3', '-DFFTW_DOUBLE_ONLY'] @@ -188,10 +188,10 @@ if resampler == 'libsamplerate' pkgconfig_requirements += samplerate_dep else samplerate_dep = cpp.find_library('samplerate', - dirs: get_option('extra_lib_dirs'), - has_headers: ['samplerate.h'], - header_args: extra_include_args, - required: true) + dirs: get_option('extra_lib_dirs'), + has_headers: ['samplerate.h'], + header_args: extra_include_args, + required: true) endif feature_dependencies += samplerate_dep feature_defines += ['-DHAVE_LIBSAMPLERATE'] @@ -253,32 +253,32 @@ endif # ipp_needed if not vamp_dep.found() vamp_dep = cpp.find_library('VampPluginSDK', - dirs: get_option('extra_lib_dirs'), - has_headers: ['vamp-sdk.h'], - header_args: extra_include_args, - required: false) + dirs: get_option('extra_lib_dirs'), + has_headers: ['vamp-sdk.h'], + header_args: extra_include_args, + required: false) if not vamp_dep.found() vamp_dep = cpp.find_library('vamp-sdk', - dirs: get_option('extra_lib_dirs'), - has_headers: ['vamp-sdk.h'], - header_args: extra_include_args, - required: false) + dirs: get_option('extra_lib_dirs'), + has_headers: ['vamp-sdk.h'], + header_args: extra_include_args, + required: false) endif endif have_vamp = vamp_dep.found() if not sndfile_dep.found() sndfile_dep = cpp.find_library('sndfile', - dirs: get_option('extra_lib_dirs'), - has_headers: ['sndfile.h'], - header_args: extra_include_args, - required: false) + dirs: get_option('extra_lib_dirs'), + has_headers: ['sndfile.h'], + header_args: extra_include_args, + required: false) if not sndfile_dep.found() sndfile_dep = cpp.find_library('sndfile-1', - dirs: get_option('extra_lib_dirs'), - has_headers: ['sndfile.h'], - header_args: extra_include_args, - required: false) + dirs: get_option('extra_lib_dirs'), + has_headers: ['sndfile.h'], + header_args: extra_include_args, + required: false) endif endif have_sndfile = sndfile_dep.found() @@ -529,5 +529,5 @@ summary({'prefix': get_option('prefix'), }, section: 'Directories') summary(config_summary + { 'Architecture': architecture }, - section: 'Configuration', bool_yn: true) + section: 'Configuration', bool_yn: true) summary(target_summary, section: 'Build targets', bool_yn: true) From 0a53a21100638c82d99bf1732f918ef241fd774a Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Mar 2021 11:17:53 +0000 Subject: [PATCH 38/44] Add iOS licensing note --- meson.build | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 2b933bf..4f2172c 100644 --- a/meson.build +++ b/meson.build @@ -307,7 +307,6 @@ if system == 'darwin' have_version_min = false foreach arg: get_option('cpp_args') - message('arg is ' + arg) if arg.contains('version-min') have_version_min = true endif @@ -531,3 +530,12 @@ summary({'prefix': get_option('prefix'), summary(config_summary + { 'Architecture': architecture }, section: 'Configuration', bool_yn: true) summary(target_summary, section: 'Build targets', bool_yn: true) + +if system == 'darwin' + foreach arg: get_option('cpp_args') + if arg.contains('iPhone') + summary({'Please note': 'You cannot legally distribute the Rubber Band Library\n in an iOS app on the App Store, unless you have first obtained a\n commercial licence.'}, section: '***') + break + endif + endforeach +endif From 14c852b60a103faab0d57f49d3cb5b52618382b2 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Mar 2021 11:31:11 +0000 Subject: [PATCH 39/44] Correct file path --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 17e1fe5..a84d579 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ documented separately from the C++ header. You should include only one of the two headers, not both. A .NET interface is also included, contributed by Jonathan Gilbert; -see the files in the `rubberband-sharp/` directory for details. +see the files in the `dotnet` directory for details. The source code for the command-line utility (`main/main.cpp`) provides a good example of how to use Rubber Band in offline mode; the From 00990b59c13fa58c1e93c73959b7c11e3d0473b6 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 8 Mar 2021 10:09:52 +0000 Subject: [PATCH 40/44] Add macOS universal cross file --- cross/macos-universal.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 cross/macos-universal.txt diff --git a/cross/macos-universal.txt b/cross/macos-universal.txt new file mode 100644 index 0000000..eb7970e --- /dev/null +++ b/cross/macos-universal.txt @@ -0,0 +1,20 @@ +[host_machine] +cpu_family = 'aarch64' +cpu = 'aarch64' +system = 'darwin' +endian = 'little' + +[properties] +needs_exe_wrapper = false + +[binaries] +c = 'cc' +cpp = 'c++' +strip = 'strip' + +[built-in options] +c_args = ['-arch', 'arm64', '-arch', 'x86_64'] +cpp_args = ['-arch', 'arm64', '-arch', 'x86_64'] +cpp_link_args = ['-arch', 'arm64', '-arch', 'x86_64'] + + From ac81e685b87202c196296729003053345b380f07 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 8 Mar 2021 10:10:05 +0000 Subject: [PATCH 41/44] Update build instructions --- README.md | 368 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 202 insertions(+), 166 deletions(-) diff --git a/README.md b/README.md index a84d579..a4c4050 100644 --- a/README.md +++ b/README.md @@ -70,13 +70,13 @@ our knowledge. See also the end of this README for detailed terms. 2. Using the Rubber Band command-line tool 3. Using the Rubber Band Library 4. Compiling Rubber Band - a. FFT and resampler selection - b. Other supported #defines - c. Building on Linux - d. Building on macOS - e. Building for iOS - f. Building on Windows with Visual C++ - g. Building for Android and Java integration + a. Building on Linux + b. Building on macOS + c. Building for iOS + d. Building on Windows + e. Building for Android and Java integration + f. FFT and resampler selection + g. Other supported #defines 5. Copyright notes for bundled libraries @@ -156,19 +156,183 @@ acquired a commercial licence from the author. ## 4. Compiling the Rubber Band Library -### 4a. FFT and resampler selection +The primary supported build system for the Rubber Band Library on all +platforms is Meson (https://mesonbuild.com). To build, ensure Meson +and Ninja are installed and run: + +``` +$ meson build && ninja -C build +``` + +This checks for necessary dependencies, reports what it finds, and if +all is well, builds the code into a subdirectory called `build`. It +will build everything it can find the requisite dependencies for: +static and dynamic libraries, LADSPA and Vamp plugins, and +command-line utility. + +Some configuration options are provided, described in the +`meson_options.txt` file. To set one of these, add a `-D` option to +Meson: + +``` +$ meson build -Dipp_path=/opt/intel/ipp +``` + +The options are documented in the library- and platform-specific +sections below. + +For those who don't wish to use Meson, some alternative build files +(Makefiles and Visual C++ projects) are included in the `otherbuilds` +directory. These build only the static library. + +If you are building this software using one of the bundled library +options (Speex or KissFFT), please be sure to review the terms for +those libraries in `src/speex/COPYING` and `src/kissfft/COPYING` as +applicable. + + +### 4a. Building on Linux + +For best results, and to make sure the command-line tool and plugins +are built, first ensure libsamplerate, libsndfile, and the LADSPA and +Vamp plugin headers are installed and can be found using +`pkg-config`. Then + +``` +$ meson build && ninja -C build +``` + +If you only need the static library and prefer a Makefile, try + +``` +$ make -f otherbuilds/Makefile.linux +``` + + +### 4b. Building on macOS + +Ensure the Xcode command-line tools are installed, and ideally also +install libsamplerate and libsndfile. + +To build for the native architecture of the build machine: + +``` +$ meson build && ninja -C build +``` + +To build for Intel (x86_64) regardless of the native architecture: + +``` +$ meson build --cross-file cross/macos-x86_64.txt && ninja -C build +``` + +To build for Apple Silicon (arm64) regardless of the native +architecture: + +``` +$ meson build --cross-file cross/macos-arm64.txt && ninja -C build +``` + +You can build a universal binary library for both architectures like +this: + +``` +$ meson build --cross-file cross/macos-universal.txt && ninja -C build +``` + +However, the resulting binary will be marked as loadable on macOS 11+ +only, even for Intel, which is probably not what you want (ideally the +Intel slice would support older versions of the OS). A Makefile that +handles this explicitly is also provided: + +``` +$ make -f otherbuilds/Makefile.macos-universal +``` + +This produces only a static library, but as a universal binary that is +compatible with macOS 10.7 onwards on Intel. + +Note that you cannot legally distribute applications using Rubber Band +in the Mac App Store, unless you have first obtained a commercial +licence for the Rubber Band Library. GPL code is not permitted in the +app store. See https://breakfastquay.com/technology/license.html for +commercial terms. + + +### 4c. Building for iOS + +Ensure the Xcode command-line tools are installed, and + +``` +$ meson build_ios --cross-file cross/ios.txt && ninja -C build +``` + +The resulting outputs will be found in `build_ios/` + +To build for the simulator, + +``` +$ meson build_sim --cross-file cross/ios-simulator.txt && ninja -C build +``` + +The resulting outputs will be found in `build_sim/`. + +Note that you cannot legally distribute applications using Rubber Band +in the iOS App Store, unless you have a first obtained a commercial +licence for the Rubber Band Library. GPL code is not permitted in the +app store. See https://breakfastquay.com/technology/license.html for +commercial terms. + + +### 4d. Building on Windows + +A Visual Studio solution, targeted to VC 2015, with two projects is +supplied. The `rubberband-library` project builds the Rubber Band +static libraries only. The `rubberband-program` project builds the +Rubber Band command-line tool (which requires the Rubber Band Library +and libsndfile). + +You will need to adjust the project settings so as to set the compile +flags according to your preference for FFT and resampler +implementation, and set the include path and library path +appropriately. The default is to use the bundled KissFFT and the +Speex resampler. + +If you prefer to add the Rubber Band Library files to an existing +build project instead of using the supplied one, the files in `src/` +(except for `RubberBandStretcherJNI.cpp`) and the API headers in +`rubberband/` should be all you need. + + +### 4e. Building for Android and Java integration + +Currently only a very old Android NDK build file is provided, as +`otherbuilds/Android.mk`. This includes compile definitions for a +shared library built for ARM architectures which can be loaded from a +Java application using the Java native interface (i.e. the Android +NDK). + +The Java side of the interface can be found in +`com/breakfastquay/rubberband/RubberBandStretcher.java`. + +See +https://hg.sr.ht/~breakfastquay/rubberband-android-simple-sample +for a very trivial example of integration with Android Java code. + +The supplied `.mk` file uses KissFFT and the Speex resampler. + + +### 4f. FFT and resampler selection Rubber Band requires additional library code for FFT calculation and resampling. Several libraries are supported. The selection is -controlled using preprocessor flags at compile time, as detailed in -the tables below. +controlled (in Meson) using `-D` options and (in the code itself) +using preprocessor flags set by the build system. These options and +flags are detailed in the tables below. -Flags that declare that you want to use an external library begin with -`HAVE_`; flags that select from the bundled options begin with `USE_`. - -You must enable one resampler implementation and one FFT -implementation. Do not enable more than one of either unless you know -what you're doing. +At least one resampler implementation and one FFT implementation must +be enabled. It is technically possible to enable more than one, but +it's confusing and not often useful. If you are building this software using one of the bundled library options (Speex or KissFFT), please be sure to review the terms for @@ -178,44 +342,42 @@ applicable. #### FFT libraries supported ``` -Name Flags required Notes ----- -------------- ----- +Library Build option CPP define Notes +---- ------------ ---------- ----- -FFTW3 -DHAVE_FFTW3 GPL. +KissFFT -Dfft=kissfft -DUSE_KISSFFT Default except on macOS/iOS. + Bundled, can be distributed with + either the Rubber Band GPL or + commercial licence. -Accelerate -DHAVE_VDSP Platform library on macOS and iOS. +Accelerate -Dfft=vdsp -DHAVE_VDSP Default on macOS/iOS. + Best option on these platforms. -Intel IPP -DHAVE_IPP Proprietary library, can only be used with - Rubber Band commercial licence. Define - USE_IPP_STATIC as well to build with static - IPP libraries. +FFTW3 -Dfft=fftw -DHAVE_FFTW3 GPL. -KissFFT -DUSE_KISSFFT Bundled, can be distributed with either the - Rubber Band GPL or commercial licence. - Single-precision. Slower than the above - options. +Intel IPP -Dfft=ipp -DHAVE_IPP Proprietary, can only be used with + Rubber Band commercial licence. ``` #### Resampler libraries supported ``` -Name Flags required Notes ----- -------------- ----- +Library Build option CPP define Notes +---- ------------ ---------- ----- -libsamplerate -DHAVE_LIBSAMPLERATE GPL until v0.1.8, BSD for v0.1.9 and later. - This is the preferred choice in almost - all cases. +libsamplerate -DHAVE_LIBSAMPLERATE + -Dresampler=libsamplerate Best choice in most cases. -libresample -DHAVE_LIBRESAMPLE LGPL. - -Speex -DUSE_SPEEX Bundled, can be distributed with either the - Rubber Band GPL or commercial licence. +Speex -DUSE_SPEEX + -Dresampler=speex Bundled, can be distributed with + either the Rubber Band GPL or + commercial licence. ``` -### 4b. Other supported #defines +### 4g. Other supported #defines -Other symbols you may define at compile time are as follows. (Usually -the supplied build files will handle these for you.) +Other known preprocessor symbols are as follows. (Usually the supplied +build files will handle these for you.) -DLACK_BAD_ALLOC Define on systems lacking std::bad_alloc in the C++ library. @@ -250,132 +412,6 @@ the supplied build files will handle these for you.) for mobile architectures. -### 4c. Building on Linux - -A GNU-style configure script is included for use on Linux and similar -systems. - -Run `./configure`, then adjust the generated Makefile according to -your preference for FFT and resampler implementations. The default is -to use FFTW3 and libsamplerate. - -The following Makefile targets are available: - - static -- build static libraries only - dynamic -- build dynamic libraries only - library -- build static and dynamic libraries only - program -- build the command-line tool - vamp -- build Vamp plugin - ladspa -- build LADSPA plugin - all -- build everything. - -The default target is "all". - - -### 4d. Building on macOS - -Two Makefiles for macOS are provided, as `Makefile.macos` and -`Makefile.macos-universal`. `Makefile.macos` will build for your -native machine architecture; `Makefile.macos-universal` will build a -universal binary with both x86_64 and arm64 slices. The latter -requires macOS 11+, although the resulting binaries should work with -macOS 10.7 or newer if all the dependent libraries are also built -appropriately. You will also need the Xcode command-line tools -installed. - -Adjust your selected Makefile according to your preference for -compiler and platform SDK, FFT and resampler implementations. The -default is to use the Accelerate framework and the Speex resampler. -Then run e.g. `make -f Makefile.macos library` in a terminal window to -build. - -(You probably don't want to use the configure script on macOS -- just -use your preferred Makefile directly.) - -The following Makefile targets are available: - - static -- build static libraries only - dynamic -- build dynamic libraries only - library -- build static and dynamic libraries only - program -- build the command-line tool - vamp -- build Vamp plugin - ladspa -- build LADSPA plugin - all -- build everything. - -The default target is to build the static and dynamic libraries and -the command line tool. The sndfile library is required for the -command line tool. - -If you prefer to add the Rubber Band Library files to an existing -build project instead of using the Makefile, the files in `src/` -(except for `RubberBandStretcherJNI.cpp`) and the API headers in -`rubberband/` should be all you need. - -Note that you cannot legally distribute applications using Rubber Band -in the Mac App Store, unless you have first obtained a commercial -licence for the Rubber Band Library. GPL code is not permitted in the -app store. See https://breakfastquay.com/technology/license.html for -commercial terms. - - -### 4e. Building for iOS - -A Makefile for iOS (compiling on macOS) is provided as `Makefile.ios`. -It produces a single static library containing both simulator and -device binaries, in both 32- and 64-bit architectures. - -Run e.g. `make -f Makefile.ios` in a terminal window to build. You -will need the Xcode command-line tools installed. - -If you prefer to add the Rubber Band Library files to an existing -build project instead of using the Makefile, the files in `src/` -(except for `RubberBandStretcherJNI.cpp`) and the API headers in -`rubberband/` should be all you need. - -Note that you cannot legally distribute applications using Rubber Band -in the iOS App Store, unless you have a first obtained a commercial -licence for the Rubber Band Library. GPL code is not permitted in the -app store. See https://breakfastquay.com/technology/license.html for -commercial terms. - - -### 4f. Building on Windows with Visual C++ - -A Visual Studio solution, targeted to VC 2015, with two projects is -supplied. The `rubberband-library` project builds the Rubber Band -static libraries only. The `rubberband-program` project builds the -Rubber Band command-line tool (which requires the Rubber Band Library -and libsndfile). - -You will need to adjust the project settings so as to set the compile -flags according to your preference for FFT and resampler -implementation, and set the include path and library path -appropriately. The default is to use the bundled KissFFT and the -Speex resampler. - -If you prefer to add the Rubber Band Library files to an existing -build project instead of using the supplied one, the files in `src/` -(except for `RubberBandStretcherJNI.cpp`) and the API headers in -`rubberband/` should be all you need. - - -### 4g. Building for Android and Java integration - -An Android NDK build file is provided as `Android.mk`. This includes -compile definitions for a shared library built for ARM architectures -which can be loaded from a Java application using the Java native -interface (i.e. the Android NDK). - -The Java side of the interface can be found in -`com/breakfastquay/rubberband/RubberBandStretcher.java`. - -See -https://hg.sr.ht/~breakfastquay/rubberband-android-simple-sample -for a very trivial example of integration with Android Java code. - -The supplied `.mk` file uses KissFFT and the Speex resampler. - - ## 5. Copyright notes for bundled libraries ### 5a. Speex From 1f3a8d6964a9dc9f5443366dc6cc596ad7b3d674 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 8 Mar 2021 10:14:05 +0000 Subject: [PATCH 42/44] Wording --- README.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a4c4050..d8eb84f 100644 --- a/README.md +++ b/README.md @@ -109,11 +109,15 @@ Rubber Band consists of: The Rubber Band command-line tool builds as bin/rubberband. The basic incantation is +``` $ rubberband -t -p +``` For example, +``` $ rubberband -t 1.5 -p 2.0 test.wav output.wav +``` stretches the file test.wav to 50% longer than its original duration, shifts it up in pitch by one octave, and writes the output to output.wav. @@ -193,16 +197,16 @@ applicable. ### 4a. Building on Linux -For best results, and to make sure the command-line tool and plugins -are built, first ensure libsamplerate, libsndfile, and the LADSPA and -Vamp plugin headers are installed and can be found using -`pkg-config`. Then +For best results, and to ensure the command-line tool and plugins are +built, first install libsamplerate, libsndfile, and the LADSPA and +Vamp plugin headers so they can be found using `pkg-config`. Then ``` $ meson build && ninja -C build ``` -If you only need the static library and prefer a Makefile, try +Alternatively, if you only need the static library and prefer a +Makefile, try ``` $ make -f otherbuilds/Makefile.linux @@ -249,8 +253,8 @@ handles this explicitly is also provided: $ make -f otherbuilds/Makefile.macos-universal ``` -This produces only a static library, but as a universal binary that is -compatible with macOS 10.7 onwards on Intel. +This produces only a static library, but it's a universal binary that +is compatible with macOS 10.7 onwards on the Intel side. Note that you cannot legally distribute applications using Rubber Band in the Mac App Store, unless you have first obtained a commercial From 8090559b1be2534fb48c094e82953605eca2edfc Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 8 Mar 2021 10:41:49 +0000 Subject: [PATCH 43/44] Update build docs for Windows --- README.md | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index d8eb84f..9afd028 100644 --- a/README.md +++ b/README.md @@ -205,6 +205,8 @@ Vamp plugin headers so they can be found using `pkg-config`. Then $ meson build && ninja -C build ``` +See "FFT and resampler selection" below for further build options. + Alternatively, if you only need the static library and prefer a Makefile, try @@ -256,6 +258,8 @@ $ make -f otherbuilds/Makefile.macos-universal This produces only a static library, but it's a universal binary that is compatible with macOS 10.7 onwards on the Intel side. +See "FFT and resampler selection" below for further build options. + Note that you cannot legally distribute applications using Rubber Band in the Mac App Store, unless you have first obtained a commercial licence for the Rubber Band Library. GPL code is not permitted in the @@ -271,7 +275,7 @@ Ensure the Xcode command-line tools are installed, and $ meson build_ios --cross-file cross/ios.txt && ninja -C build ``` -The resulting outputs will be found in `build_ios/` +The output files will be found in the `build_ios` directory. To build for the simulator, @@ -279,7 +283,9 @@ To build for the simulator, $ meson build_sim --cross-file cross/ios-simulator.txt && ninja -C build ``` -The resulting outputs will be found in `build_sim/`. +The output files will be found in the `build_sim` directory. + +See "FFT and resampler selection" below for further build options. Note that you cannot legally distribute applications using Rubber Band in the iOS App Store, unless you have a first obtained a commercial @@ -290,22 +296,27 @@ commercial terms. ### 4d. Building on Windows -A Visual Studio solution, targeted to VC 2015, with two projects is -supplied. The `rubberband-library` project builds the Rubber Band -static libraries only. The `rubberband-program` project builds the -Rubber Band command-line tool (which requires the Rubber Band Library -and libsndfile). +The default build on Windows also uses Meson, so ensure Meson and +Ninja are installed and available. Then, in a terminal window with the +compiler tools available in the path (e.g. a Visual Studio +command-line prompt for the relevant build architecture) run -You will need to adjust the project settings so as to set the compile -flags according to your preference for FFT and resampler -implementation, and set the include path and library path -appropriately. The default is to use the bundled KissFFT and the -Speex resampler. +``` +> meson build +> ninja -C build +``` -If you prefer to add the Rubber Band Library files to an existing -build project instead of using the supplied one, the files in `src/` -(except for `RubberBandStretcherJNI.cpp`) and the API headers in -`rubberband/` should be all you need. +The output files will be found in the `build` directory. + +The Rubber Band code is compatible with both the traditional Visual +C++ compiler (`cl`) and the Clang front-end (`clang`), and the build +system will use whichever appears (first) in your path. + +See "FFT and resampler selection" below for further build options. + +Alternatively, if you only need the static library and prefer a Visual +Studio project file, there is one targeted for VC 2015 in +`otherbuilds\rubberband-library.vcxproj`. ### 4e. Building for Android and Java integration From 9fcd9da253b7605ef0572ce15f5c8d357e3b63ad Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 8 Mar 2021 10:45:10 +0000 Subject: [PATCH 44/44] Note on C++ standard --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 9afd028..14b6fca 100644 --- a/README.md +++ b/README.md @@ -189,6 +189,11 @@ For those who don't wish to use Meson, some alternative build files (Makefiles and Visual C++ projects) are included in the `otherbuilds` directory. These build only the static library. +The Rubber Band Library is written entirely in C++ to the C++98 +standard. It is unlikely to make any difference (performance or +otherwise) which C++ standard your compiler uses - as long as it's no +older than C++98! + If you are building this software using one of the bundled library options (Speex or KissFFT), please be sure to review the terms for those libraries in `src/speex/COPYING` and `src/kissfft/COPYING` as