Required dependencies:
======================

    * A C++11 capable compiler
    * Boost 1.54 or later
    * FFTW 3.x
    * Optional UHD for USRP
    * Optional SoapySDR (see below)
    * Optional ZeroMQ http://www.zeromq.org

Simple install procedure:
=========================

    % tar xjf odr-dabmod-X.Y.Z.tar.bz2      # Unpack the source
    % cd odr-dabmod-X.Y.Z                   # Change to the source directory
    % ./configure
                                            # Run the configure script
    % make                                  # Build ODR-DabMod
    [ as root ]
    % make install                          # Install ODR-DabMod

Configure options
=================
The configure script can be launch with a variety of options:

 --disable-zeromq       Disable ZeroMQ input (to be used with ODR-DabMux),
                        output and remotecontrol.
 --disable-output-uhd   Disable the binding to the UHD driver for USRPs
 --enable-fast-math     Compile using the -ffast-math option that gives a substantial
                        speedup at the cost of correctness.
 --disable-native       Do not compile ODR-DabMod with -march=native compiler option.
                        This is meant for distribution package maintainers who want to
                        use their own march option, and for people running into compilation
                        issues due to -march=native. (e.g. GCC bug 70132 on ARM systems)

Debugging options: You should not enable debug if you need good performance.
By default, debug is disabled.
 --enable-debug         Do not compile with debugging, and enable optimisations
 --enable-trace         Create debugging files for each DSP block for data analysis

For more information, call:

    % ./configure --help

Performance optimisation
------------------------
While the performance of modern systems is in most cases good enough to
run ODR-DabMod, it is sometimes necessary to increase the compilation
optimisation if all features are used or on slow systems.

Tricks for best performance:

    * Do not use --disable-native
    * Use --enable-fast-math
    * Add -O3 to compiler flags

Applying all together:

    % CFLAGS="-O3" CXXFLAGS="-O3" ./configure --enable-fast-math

Nearly as simple install procedure using repository:
====================================================

    * Download and install dependencies as above
    * Clone the git repository
    * Bootstrap autotools:
        % ./bootstrap.sh
            In case this fails, try:
        % aclocal && automake --gnu --add-missing && autoconf
    * Then use ./configure as above

SoapySDR support and required dependencies
==========================================
SoapySDR is a vendor-neutral library to drive SDR devices. It can be used to
drive the HackRF and the LimeSDR among others.

Required dependencies that need to be installed are, in order:

1. SoapySDR itself from https://github.com/pothosware/SoapySDR
1. The LimeSuite for the LimeSDR from https://github.com/myriadrf/LimeSuite
1. HackRF support for SoapySDR from https://github.com/pothosware/SoapyHackRF

ODR-DabMod will automatically recognise if the SoapySDR library is installed on
your system, and will print at the end of ./configure if support is enabled or
not.

A configuration example is available in doc/example.ini