-
Notifications
You must be signed in to change notification settings - Fork 183
BuildGuide
Build guide table of contents
The main SoapySDR library really only requires CMake and a compiler. Additional components require additional dependencies. If those dependencies are not available, the component does not build.
- CMake
- C++ compiler
Optional depedencies
- Python dev and SWIG for python bindings
- Numpy recommended for python bindings
Recommended apt-get install instructions for Ubuntu:
Ubuntu with python2:
sudo apt-get install cmake g++ libpython-dev python-numpy swig
Ubuntu with python3:
sudo apt-get install cmake g++ libpython3-dev python3-numpy swig
- CMake - http://www.cmake.org/cmake/resources/software.html
- Visual studio 2015 or later
Optional dependencies based on your needs:
- Python (2.7 and up) - https://www.python.org/downloads/windows/
- Numpy (must match python version) - http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
- Swigwin - http://www.swig.org/download.html
Step 1) Install Xcode Command Line Tools: https://railsapps.github.io/xcode-command-line-tools.html
Step 2) Install SoapySDR, various support modules, and dependencies with a few simple commands using the Pothos Homebrew tap or ensure you have make and cmake installed, and then follow the unix instructions below to build from source.
First time repository clone from git
git clone https://github.com/pothosware/SoapySDR.git cd SoapySDR
Update from an existing checkout
cd SoapySDR git pull origin master
mkdir build cd build cmake .. make -j`nproc` sudo make install -j`nproc` sudo ldconfig #needed on debian systems SoapySDRUtil --info
If you want to change installation paths to something more specific, the cmake line could look like this:
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DLIB_INSTALL_DIR:PATH=lib64 -DLIB_SUFFIX=64 -DSOAPY_SDR_ROOT=/usr ..
Rebuild after pulling from git
cd build #use previous build directory, no need to run cmake again make -j4 sudo make install #repeat this step for projects that depend on SoapySDR
The first step is to configure the project with CMake. This can be done with the cmake command line utility, however we will discuss configuring using the graphical CMake application. Launch CMake from the start menu, specify the source directory and choose a location for the binaries. Click configure and select the correct version of the visual studio compiler.
The project should complete configuration successfully. However you will notice a lot of verbose concerning other libraries and dependencies. These are optional dependencies based on the user's needs. If you are interested in a particular component, you must tell CMake how to find the libraries and headers for its dependencies. When finished configuring optional components, click generate. Visual studio project files will be generated.
The next step is to build and install the generated project. The project can be built in a variety of ways, using MSBuild and opening the project in the Visual studio environment. In this tutorial, we will invoke cmake within a Visual studio terminal to build and install the project.
Find the shortcut to the Visual studio cross tools command prompt and execute the following commands:
cmake --build my_build_dir --config Release cmake --build my_build_dir --config Release --target install
After installation, complete the setup by adding Soapy SDR to the system path, and invoke the command line utility for a quick sanity check.
- add C:\Program Files\SoapySDR\bin to the %PATH%
- open cmd and run SoapySDRUtil.exe --info
The SoapySDR library needs to know its installation path. The library is compiled with the CMAKE_INSTALL_PREFIX as the default search path for modules. However, if the library is installed to a different location other than the one it was configured with, the SOAPY_SDR_ROOT environment variable can be set to reflect the new installation path.
- FAQ
- Build guide
- Driver guide
- SoapySDR header files
- Doxygen documentation
- Python binding support
- LuaJIT binding support
- .NET binding support
- GO binding support
- Rust binding support
- Julia binding support
- Pothos SDR Tutorial
- Help and support
- Pothos users' group
- Twitter @pothosware
- IRC chat #pothos
- Slack workspace
- Contract services
- Developer blog
- Contributing
- Donate
- Example support
- Remote access
- Multi device
- Device sharing
- SIMD converters
- Audio devices
- Osmo support
- NovenaRF support
- EVB7 support
- UHD support
- Blade RF support
- Hack RF support
- RTL-SDR support
- SDR Play support
- Radioberry support
- Red Pitaya support
- Lime Suite support
- Airspy support
- Airspy HF+ support
- PlutoSDR support
- Skylark Iris module
- Funcube Dongle Pro+
- IC-R8600 Receiver
- Epiq Sidekiq
- NetSDR support
- XTRX support
- RTL TCP support
- SpyServer support
- Afedri support
- Pothos SDR
- Cubic SDR
- Rx Tools
- LuaRadio
- GNURadio blocks
- Osmocom blocks
- QSpectrumAnalyzer
- RTL433 project
- Welle.io DAB/DAB+
- SDRangel analyzer
- RTLSDR-Airband
- HABDEC RTTY decoder
- LinHPSDR receiver
- HackTV transmitter
- ODR-DabMod
- QUISK SDR
- SigDigger
- Suscan
- SdrGlut
- QRadioLink
- OpenWebRX
- SDR++
- Seify
- Abraca DAB radio