mirror of
https://github.com/AlexandreRouma/SDRPlusPlus.git
synced 2024-12-27 11:28:29 +01:00
94 lines
3.1 KiB
Bash
94 lines
3.1 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
cd /root
|
|
|
|
# Update repos to get a more recent cmake version
|
|
apt update
|
|
apt install -y gpg wget
|
|
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
|
|
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
|
|
apt update
|
|
|
|
# Install dependencies and tools
|
|
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk1-dev libzstd-dev libairspy-dev \
|
|
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
|
libcodec2-dev libudev-dev autoconf libtool xxd libspdlog-dev
|
|
|
|
# Install SDRPlay libraries
|
|
wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run
|
|
7z x ./SDRplay_RSP_API-Linux-3.15.1.run
|
|
7z x ./SDRplay_RSP_API-Linux-3.15.1
|
|
cp x86_64/libsdrplay_api.so.3.15 /usr/lib/libsdrplay_api.so
|
|
cp inc/* /usr/include/
|
|
|
|
# Install a more recent libusb version
|
|
wget https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.tar.bz2
|
|
tar -xvf libusb-1.0.25.tar.bz2
|
|
cd libusb-1.0.25
|
|
./configure
|
|
make -j2
|
|
make install
|
|
cd ..
|
|
|
|
# Install a more recent libairspyhf version
|
|
git clone https://github.com/airspy/airspyhf
|
|
cd airspyhf
|
|
mkdir build
|
|
cd build
|
|
cmake .. -DINSTALL_UDEV_RULES=ON
|
|
make -j2
|
|
make install
|
|
ldconfig
|
|
cd ../../
|
|
|
|
# Install libperseus
|
|
git clone https://github.com/Microtelecom/libperseus-sdr
|
|
cd libperseus-sdr
|
|
autoreconf -i
|
|
./configure
|
|
make
|
|
make install
|
|
ldconfig
|
|
cd ..
|
|
|
|
# Install librfnm
|
|
git clone https://github.com/AlexandreRouma/librfnm
|
|
cd librfnm
|
|
mkdir build
|
|
cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
|
|
make -j2
|
|
make install
|
|
cd ../../
|
|
|
|
# Install libfobos
|
|
git clone https://github.com/AlexandreRouma/libfobos
|
|
cd libfobos
|
|
mkdir build
|
|
cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
|
|
make -j2
|
|
make install
|
|
cd ../../
|
|
|
|
# Fix missing .pc file for codec2
|
|
echo 'prefix=/usr/' >> /usr/share/pkgconfig/codec2.pc
|
|
echo 'libdir=/usr/include/x86_64-linux-gnu/' >> /usr/share/pkgconfig/codec2.pc
|
|
echo 'includedir=/usr/include/codec2' >> /usr/share/pkgconfig/codec2.pc
|
|
echo 'Name: codec2' >> /usr/share/pkgconfig/codec2.pc
|
|
echo 'Description: A speech codec for 2400 bit/s and below' >> /usr/share/pkgconfig/codec2.pc
|
|
echo 'Requires:' >> /usr/share/pkgconfig/codec2.pc
|
|
echo 'Version: 0.7' >> /usr/share/pkgconfig/codec2.pc
|
|
echo 'Libs: -L/usr/include/x86_64-linux-gnu/ -lcodec2' >> /usr/share/pkgconfig/codec2.pc
|
|
echo 'Cflags: -I/usr/include/codec2' >> /usr/share/pkgconfig/codec2.pc
|
|
|
|
# Build SDR++ Itself
|
|
cd SDRPlusPlus
|
|
mkdir build
|
|
cd build
|
|
cmake .. -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_BLADERF_SOURCE=OFF -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_OVERRIDE_STD_FILESYSTEM=ON -DOPT_BUILD_M17_DECODER=ON -DOPT_BUILD_PERSEUS_SOURCE=ON -DOPT_BUILD_RFNM_SOURCE=ON -DOPT_BUILD_FOBOSSDR_SOURCE=ON
|
|
make VERBOSE=1 -j2
|
|
|
|
# Generate package
|
|
cd ..
|
|
sh make_debian_package.sh ./build 'libfftw3-dev, libglfw3-dev, libvolk1-dev, librtaudio-dev, libzstd-dev' |