openwebrxplus/attic/docker/deb_based/install-owrxp-extra.sh

150 lines
4.2 KiB
Bash
Executable File

#!/bin/bash
set -euxo pipefail
export MAKEFLAGS="-j12"
function cmakebuild() {
cd $1
if [[ ! -z "${2:-}" ]]; then
git checkout $2
fi
if [[ -f ".gitmodules" ]]; then
git submodule update --init
fi
mkdir build
cd build
cmake ${CMAKE_ARGS:-} ..
make
make install
cd ../..
rm -rf $1
}
export MARCH=native
case `uname -m` in
arm*)
#SDRPLAY_BINARY=SDRplay_RSP_API-ARM32-3.07.2.run
SDRPLAY_BINARY=SDRplay_RSP_API-Linux-3.14.0.run
;;
aarch64*)
#SDRPLAY_BINARY=SDRplay_RSP_API-ARM64-3.07.1.run
SDRPLAY_BINARY=SDRplay_RSP_API-Linux-3.14.0.run
;;
x86_64*)
SDRPLAY_BINARY=SDRplay_RSP_API-Linux-3.07.2.run
export MARCH=x86-64
;;
esac
echo "+ Install dev packages..."
BUILD_PACKAGES="git cmake make patch wget sudo gcc g++ libusb-1.0-0-dev libsoapysdr-dev debhelper cmake libprotobuf-dev protobuf-compiler libcodecserver-dev build-essential xxd qt5-qmake libpulse-dev libfaad-dev libopus-dev libfftw3-dev pkg-config libglib2.0-dev libconfig++-dev libliquid-dev libairspyhf-dev libpopt-dev libiio-dev libad9361-dev libhidapi-dev libasound2-dev qtmultimedia5-dev libqt5serialport5-dev qttools5-dev qttools5-dev-tools libboost-all-dev libfftw3-dev libreadline-dev libusb-1.0-0-dev libudev-dev asciidoctor gfortran libhamlib-dev libsndfile1-dev libliquid-dev autoconf build-essential automake"
apt-get -y install --no-install-recommends $BUILD_PACKAGES
echo "+ Install SDRPlay..."
wget --no-http-keep-alive https://www.sdrplay.com/software/$SDRPLAY_BINARY
sh $SDRPLAY_BINARY --noexec --target sdrplay
patch --verbose -Np0 < /files/sdrplay/install-lib.`uname -m`.patch
cd sdrplay
mkdir -p /etc/udev/rules.d
./install_lib.sh
cd ..
rm -rf sdrplay
rm $SDRPLAY_BINARY
echo "+ Install redsea (RDS)"
git clone https://github.com/windytan/redsea.git
pushd redsea
./autogen.sh && ./configure && make && make install
popd
echo "+ Install PerseusSDR..."
git clone https://github.com/Microtelecom/libperseus-sdr.git
cd libperseus-sdr
# latest from master as of 2020-09-04
git checkout c2c95daeaa08bf0daed0e8ada970ab17cc264e1b
sed -i 's/-march=native/-march='${MARCH}'/g' configure.ac
./bootstrap.sh
./configure
make
make install
ldconfig /etc/ld.so.conf.d
cd ..
rm -rf libperseus-sdr
echo "+ Install AirSpyHF+..."
git clone https://github.com/pothosware/SoapyAirspyHF.git
cmakebuild SoapyAirspyHF 5488dac5b44f1432ce67b40b915f7e61d3bd4853
echo "+ Install RockOProg..."
git clone https://github.com/0xAF/rockprog-linux
cd rockprog-linux
make
cp rockprog /usr/local/bin/
cd ..
rm -rf rockprog-linux
echo "+ Install PlutoSDR..."
git clone https://github.com/pothosware/SoapyPlutoSDR.git
cmakebuild SoapyPlutoSDR 93717b32ef052e0dfa717aa2c1a4eb27af16111f
echo "+ Install FCDPP..."
git clone https://github.com/pothosware/SoapyFCDPP.git
cmakebuild SoapyFCDPP soapy-fcdpp-0.1.1
echo "+ Install FreeDV..."
git clone https://github.com/drowe67/codec2.git
cd codec2
mkdir build
cd build
cmake ..
make
make install
install -m 0755 src/freedv_rx /usr/local/bin
cd ../..
rm -rf codec2
echo "+ Install wsjtx..."
WSJT_DIR=wsjtx-2.6.1
WSJT_TGZ=${WSJT_DIR}.tgz
wget https://downloads.sourceforge.net/project/wsjt/${WSJT_DIR}/${WSJT_TGZ}
tar xfz ${WSJT_TGZ}
patch -Np0 -d ${WSJT_DIR} < /files/wsjtx/wsjtx-hamlib.patch
mv /files/wsjtx/wsjtx.patch ${WSJT_DIR}
cmakebuild ${WSJT_DIR}
rm ${WSJT_TGZ}
echo "+ Install ACARSDEC..."
git clone https://github.com/szpajder/libacars.git
cmakebuild libacars v2.1.4
git clone https://github.com/TLeconte/acarsdec.git
sed -i 's/-march=native/-march='${MARCH}'/g' acarsdec/CMakeLists.txt
cmakebuild acarsdec
echo "+ Install HFDL..."
git clone https://github.com/szpajder/dumphfdl.git
cmakebuild dumphfdl v1.4.1
git clone https://github.com/szpajder/dumpvdl2.git
cmakebuild dumpvdl2
echo "+ Install Dream (DRM)..."
wget https://downloads.sourceforge.net/project/drm/dream/2.1.1/dream-2.1.1-svn808.tar.gz
tar xvfz dream-2.1.1-svn808.tar.gz
pushd dream
patch -Np0 < /files/dream/dream.patch
qmake CONFIG+=console
make
make install
popd
rm -rf dream
rm dream-2.1.1-svn808.tar.gz
echo "+ Clean..."
SUDO_FORCE_REMOVE=yes apt-get -y purge --autoremove $BUILD_PACKAGES systemd udev dbus
apt-get clean
rm -rf /var/lib/apt/lists/*
rm -rf /files