blob: 8a0d80a95ed5875753a799718f46d2273eaf49f0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
Required dependencies:
======================
* A C++11 capable compiler
* 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 floating point 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)
--enable-edi Enable the EDI input.
Debugging options: You should not enable any debug option if you need good performance.
--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
* Disable assertions with -DNDEBUG
Applying all together:
% ./configure CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" --enable-fast-math
Checking for memory usage issues
--------------------------------
If your compiler supports it, you can enable the address sanitizer to check for memory
issues:
% ./configure CFLAGS="-fsanitize=address -g -O2" CXXFLAGS="-fsanitize=address -g -O2"
The resulting binary will be instrumented with additional memory checks, which have a
measurable overhead. Please report if you get warnings or errors when using the sanitizer.
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
|