6 If built without any external dependencies aubio can be somewhat useful, for
7 instance to read, process, and write simple wav files.
9 To support more media input formas add more features to aubio, you can use one
10 or all of the `following libraries <extlibs>`_.
12 You may also want to know more about the `other options`_ and the `platform
15 The configure script will automatically for these extra libraries. To make sure
16 the library or feature is used, pass the `--enable-flag` to waf. To disable
17 this feature, use `--disable-feature`.
19 To find out more about the build commands, use the `--verbose` option.
24 External libraries are checked for using ``pkg-config``. Set the
25 ``PKG_CONFIG_PATH`` environment variable if you have them installed in an
31 If ``pkg-config`` is not found in ``PATH``, the configure step will
32 succeed, but none of the external libraries will be used.
37 `libav.org <https://libav.org/>`_, open source audio and video processing
40 If all of the following libraries are found, they will be used to compile
41 ``aubio_source_avcodec``. so that ``aubio_source`` will be able to decode audio
42 from all formats supported by `libav
43 <https://libav.org/documentation/general.html#Audio-Codecs>`_.
50 To enable this option, configure with ``--enable-avcodec``. The build will then
51 failed if the required libraries are not found. To disable this option,
52 configure with ``--disable-avcodec``
58 `libsndfile <http://www.mega-nerd.com/libsndfile/>`_, a C library for reading
59 and writing sampled sound files.
61 With libsndfile built in, ``aubio_source_sndfile`` will be built in and used by
64 To enable this option, configure with ``--enable-sndfile``. The build will then
65 fail if the required library is not found. To disable this option, configure
66 with ``--disable-sndfile``
71 `libsamplerate <http://www.mega-nerd.com/SRC/>`_, a sample rate converter for
74 With libsamplerate built in, ``aubio_source_sndfile`` will support resampling,
75 and ``aubio_resample`` will be fully functional.
77 To enable this option, configure with ``--enable-samplerate``. The build will
78 then fail if the required library is not found. To disable this option,
79 configure with ``--disable-samplerate``
84 `FFTW <http://fftw.org/>`_, a C subroutine for computing the discrete Fourier
87 With libfftw3 built in, ``aubio_fft`` will use `FFTW`_ to
88 compute Fast Fourier Transform (FFT), allowing aubio to compute FFT on length
89 that are not a power of 2.
91 To enable this option, configure with ``--enable-fftw3``. The build will
92 then fail if the required library is not found. To disable this option,
93 configure with ``--disable-fftw3``
98 On all platforms, you will need to have installed:
100 - a compiler (gcc, clang, msvc, ...)
101 - python (any version >= 2.7, including 3.x)
102 - a terminal to run command lines in
107 The following `External libraries`_ will be used if found: `libav`_,
108 `libsamplerate`_, `libsndfile`_, `libfftw3`_.
113 The following system frameworks will be used on Mac OS X systems:
115 - `Accelerate <https://developer.apple.com/reference/accelerate>`_ to compute
116 FFTs and other vectorized operations optimally.
118 - `CoreAudio <https://developer.apple.com/reference/coreaudio>`_ and
119 `AudioToolbox <https://developer.apple.com/reference/audiotoolbox>`_ to
120 decode audio from files and network streams.
124 To build a fat binary for both ``i386`` and ``x86_64``, use ``./waf configure
127 The following `External libraries`_ will also be checked: `libav`_,
128 `libsamplerate`_, `libsndfile`_, `libfftw3`_.
130 To build a fat binary on a darwin like system (macOS, tvOS, appleOS, ...)
131 platforms, configure with ``--enable-fat``.
136 To use a specific version of the compiler, ``--msvc_version``. To build for a
137 specific architecture, use ``--msvc_target``. For instance, to build aubio
138 for ``x86`` using ``msvc 12.0``, use:
142 waf configure --msvc_version='msvc 12.0' --msvc_target='x86'
145 The following `External libraries`_ will be used if found: `libav`_,
146 `libsamplerate`_, `libsndfile`_, `libfftw3`_.
151 The following system frameworks will be used on iOS and iOS Simulator.
153 - `Accelerate <https://developer.apple.com/reference/accelerate>`_ to compute
154 FFTs and other vectorized operations optimally.
156 - `CoreAudio <https://developer.apple.com/reference/coreaudio>`_ and
157 `AudioToolbox <https://developer.apple.com/reference/audiotoolbox>`_ to
158 decode audio from files and network streams.
160 To build aubio for iOS, configure with ``--with-target-platform=ios``. For the
161 iOS Simulator, use ``--with-target-platform=iosimulator`` instead.
163 By default, aubio is built with the following flags on iOS:
167 CFLAGS="-fembed-bitcode -arch arm64 -arch armv7 -arch armv7s -miphoneos-version-min=6.1"
169 and on iOS Simulator:
173 CFLAGS="-arch i386 -arch x86_64 -mios-simulator-version-min=6.1"
175 Set ``CFLAGS`` and ``LINKFLAGS`` to change these default values, or edit
176 ``wscript`` directly.
181 Some additional options can be passed to the configure step. For the complete
182 list of options, run:
188 Here is an example of a custom command:
192 $ ./waf --verbose configure build install \
193 --enable-avcodec --enable-wavread --disable-wavwrite \
194 --enable-sndfile --enable-samplerate --enable-docs \
195 --destdir $PWD/build/destdir --testcmd="echo %s" \
196 --prefix=/opt --libdir=/opt/lib/multiarch \
197 --manpagesdir=/opt/share/man \
198 uninstall clean distclean dist distcheck
203 To compile aubio in double precision mode, configure with ``--enable-double``.
205 To compile aubio in single precision mode, use ``--disable-double`` (default).
210 Many of the options are gathered in the file `wscript`. a good starting point
211 when looking for additional options.
218 If the following command line tools are found, the documentation will be built
221 - `doxygen <http://doxygen.org>`_ to build the :ref:`doxygen-documentation`.
222 - `txt2man <https://github.com/mvertes/txt2man>`_ to build the :ref:`manpages`
223 - `sphinx <http://sphinx-doc.org>`_ to build this document
225 These tools are searched for in the current ``PATH`` environment variable.
226 By default, the documentation is built only if the tools are found.
228 To disable the documentation, configure with ``--disable-docs``. To build with
229 the documentation, configure with ``--enable-docs``.