audacia/lib-src/libsoxr/INSTALL

184 lines
5.4 KiB
Plaintext
Raw Permalink Normal View History

2018-03-08 16:26:50 +00:00
SoX Resampler Library Copyright (c) 2007-16 robs@users.sourceforge.net
2013-11-05 04:24:24 +00:00
INSTALLATION GUIDE CONTENTS
* Standard build
* Build customisation
2018-03-08 16:26:50 +00:00
* Cross-compilation
2013-11-05 04:24:24 +00:00
* Integration with other build systems
2018-03-08 16:26:50 +00:00
* Run-time configuration
2013-11-05 04:24:24 +00:00
STANDARD BUILD
1. Prerequisites:
Before you can build this library, you need to have available on your
system:
* A C-compiler with 64-bit integer support and, optionally, OpenMP, SIMD.
* A 'make' utility (most compiler installations already have one of these).
2018-03-08 16:26:50 +00:00
* CMake v3.0 or newer: https://cmake.org/download/
2. Build:
At a command prompt, change directory (`cd') to the one containing this
file, then enter:
go (on MS-Windows with nmake)
or
2018-03-08 16:26:50 +00:00
./go (on Unix-like systems)
This should build the library and run a few sanity tests.
3. Installation:
Note that this step may need to be performed by a system
2018-03-08 16:26:50 +00:00
administrator. Enter:
nmake install (on MS-Windows)
or
2018-03-08 16:26:50 +00:00
cd Release; make install (on Unix-like)
2018-03-08 16:26:50 +00:00
4. Preparation for use:
To use the library you may need to set up appropriate paths to the
library and its header file in your development environment.
5. Installation test
2013-11-05 04:24:24 +00:00
To test the installation, build and run some of the example programmes
(see examples/README).
2013-11-05 04:24:24 +00:00
BUILD CUSTOMISATION
2018-03-08 16:26:50 +00:00
If it is necessary to customise the build, then steps 2 and 3 above should be
substituted as follows: change directory to the one containing this file, then
enter commands along the lines:
mkdir build
cd build
2018-03-08 16:26:50 +00:00
cmake -Wno-dev -DCMAKE_BUILD_TYPE=Release [OPTIONS] ..
make
make test
sudo make install
2018-03-08 16:26:50 +00:00
N.B. The CMAKE_BUILD_TYPE to use for library deployment is Release.
To list help on the available options, enter:
cmake -LH ..
Options, if given, should be preceded with '-D', e.g.
2018-03-08 16:26:50 +00:00
-DBUILD_SHARED_LIBS:BOOL=OFF
Resampling engines
As available on a given system, options for including up-to five resampling
engines are available (per above) as follows:
WITH_CR32: for constant-rate HQ resampling,
WITH_CR32S: SIMD variant of previous,
WITH_CR64: for constant-rate VHQ resampling,
WITH_CR64S: SIMD variant of previous,
WITH_VR32: for variable-rate HQ resampling.
2013-11-05 04:24:24 +00:00
2018-03-08 16:26:50 +00:00
By default, these options are all set to ON.
2013-11-05 04:24:24 +00:00
2018-03-08 16:26:50 +00:00
When both SIMD and non-SIMD engine variants are included, run-time selection
is automatic (based on CPU capability) for x86 CPUs, and can be automatic for
ARM CPUs if the 3rd-party library `libavutil' is available at libsoxr
build-time. Which engine has been selected for a specific configuration and
invocation of the library can be checked using example #3, which reports it.
See also Run-time Configuration, below.
2013-11-05 04:24:24 +00:00
2018-03-08 16:26:50 +00:00
CROSS-COMPILATION
E.g. targeting a Linux ARM system:
mkdir build
cd build
cmake -DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_C_COMPILER=arm-linux-gnueabi-gcc \
..
or, also building the examples (one of which uses C++):
cmake -DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_C_COMPILER=arm-linux-gnueabi-gcc \
-DCMAKE_CXX_COMPILER=arm-linux-gnueabi-g++ \
-DBUILD_EXAMPLES=1 \
..
E.g. with Mingw (Linux host), using a tool-chain file:
2013-11-05 04:24:24 +00:00
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-x86_64-mingw-w64-mingw32.cmake \
-DCMAKE_INSTALL_PREFIX=install \
..
make
where ~/Toolchain-x86_64-mingw-w64-mingw32.cmake might contain:
SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_C_COMPILER /usr/bin/x86_64-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER /usr/bin/x86_64-w64-mingw32-g++)
SET(CMAKE_RC_COMPILER /usr/bin/x86_64-w64-mingw32-windres)
SET(CMAKE_Fortran_COMPILER /usr/bin/x86_64-w64-mingw32-gfortran)
SET(CMAKE_AR:FILEPATH /usr/bin/x86_64-w64-mingw32-ar)
SET(CMAKE_RANLIB:FILEPATH /usr/bin/x86_64-w64-mingw32-ranlib)
SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(QT_BINARY_DIR /usr/x86_64-w64-mingw32/bin /usr/bin)
SET(Boost_COMPILER -gcc47)
INTEGRATION WITH OTHER BUILD SYSTEMS
Autotools-based systems might find it useful to create a file called
`configure' in the directory containing this file, consisting of the line:
2018-03-08 16:26:50 +00:00
cmake -DBUILD_SHARED_LIBS=OFF .
2013-11-05 04:24:24 +00:00
(or with other build options as required).
2018-03-08 16:26:50 +00:00
For MS Visual Studio, see msvc/README.
RUN-TIME CONFIGURATION
The libsoxr API structure soxr_runtime_spec_t allows application developers
to optimise some aspects of libsoxrs operation for a particular application.
Optimal performance however, might depend on an individual end-users run-
time system and the end-users preferences. Hence environment variables are
available to set (override) run-time parameters as follows:
Env. variable Equivalent soxr_runtime_spec_t item (see soxr.h)
------------------ -----------------------------------
SOXR_COEFS_SIZE coef_size_kbytes
SOXR_COEF_INTERP SOXR_COEF_INTERP_xxx
SOXR_LARGE_DFT_SIZE log2_large_dft_size
SOXR_MIN_DFT_SIZE log2_min_dft_size
SOXR_NUM_THREADS num_threads
Additionally, the SOXR_USE_SIMD32 and SOXR_USE_SIMD64 boolean environment
variables can be used to override automatic selection (or to provide manual
selection where automatic selection is not available) between SIMD and
non-SIMD engine variants.