#!/bin/bash # # Installer script for # * UHD # * ODR-mmbTools: # * ODR-DabMux # * ODR-DabMod # * auxiliary scripts # * the FDK-AAC-DABplus package # # and all required dependencies for a # Debian stable and oldstable system. # # Requires: sudo RED="\e[91m" GREEN="\e[92m" NORMAL="\e[0m" DISTRO="unknown" if [ $(lsb_release -d | grep -c wheezy) -eq 1 ] ; then DISTRO="wheezy" elif [ $(lsb_release -d | grep -c squeeze) -eq 1 ] ; then DISTRO="squeeze" fi echo echo "This is the mmbTools installer script for debian" echo "================================================" echo echo "It will install UHD, dabmux, dabmod, fdk-aac-dabplus" echo "and all prerequisites to your machine." echo $DISTRO if [ "$DISTRO" == "unknown" ] ; then echo -e $RED echo "You seem to be running something else than" echo "debian jessie or wheezy. This script doesn't" echo "support your distribution." echo -e $NORMAL exit 1 fi echo -e $RED echo "This program will use sudo to install components on your" echo "system. Please read the script before you execute it, to" echo "understand what changes it will do to your system !" echo echo "There is no undo functionality here !" echo -e $NORMAL if [ "$UID" == "0" ] then echo -e $RED echo "Do not run this script as root !" echo -e $NORMAL echo "Install sudo, and run this script as a normal user." exit 1 fi which sudo if [ "$?" == "0" ] then echo "Press Ctrl-C to abort installation" echo "or Enter to proceed" read else echo -e $RED echo -e "Please install sudo first $NORMAL using" echo " apt-get -y install sudo" exit 1 fi # Fail on error set -e if [ -d dab ] then echo -e $RED echo "ERROR: The dab directory already exists." echo -e $NORMAL echo "This script assumes a fresh initialisation," echo "if you have already run it and wish to update" echo "the existing installation, please do it manually" echo "or erase the dab folder first." exit 1 fi echo -e "$GREEN Updating debian package repositories $NORMAL" sudo apt-get -y update echo -e "$GREEN Installing essential prerquisites $NORMAL" # some essential and less essential prerequisistes sudo apt-get -y install build-essential git wget \ sox alsa-tools alsa-utils \ automake libtool mpg123 \ libasound2 libasound2-dev \ libjack-jackd2-dev jackd2 \ ncdu vim ntp links cpufrequtils \ libfftw3-dev \ libmagickwand-dev \ libvlc-dev vlc-nox # this will install boost, cmake and a lot more sudo apt-get -y build-dep uhd # stuff to install from source mkdir dab || exit cd dab || exit echo -e "$GREEN Compiling UHD $NORMAL" git clone http://github.com/EttusResearch/uhd.git pushd uhd git checkout release_003_007_000 mkdir build cd build cmake ../host make sudo make install popd #install ZMQ from sources on wheezy if [ "$DISTRO" == "wheezy" ] ; then echo -e "$GREEN Installing libsodium $NORMAL" wget http://download.libsodium.org/libsodium/releases/libsodium-0.6.1.tar.gz tar -f libsodium-0.6.1.tar.gz -x pushd libsodium-0.6.1 ./configure make sudo make install popd echo -e "$GREEN Installing ZeroMQ $NORMAL" wget http://download.zeromq.org/zeromq-4.0.4.tar.gz tar -f zeromq-4.0.4.tar.gz -x pushd zeromq-4.0.4 ./configure make sudo make install popd elif [ "$DISTRO" == "jessie" ] ; then sudo apt-get -y install libzmq3-dev libzmq3 fi echo -e "$GREEN Installing KA9Q libfec $NORMAL" git clone https://github.com/Opendigitalradio/ka9q-fec.git pushd ka9q-fec ./bootstrap ./configure make sudo make install popd echo echo -e "$GREEN PREREQUISITES INSTALLED $NORMAL" ### END OF PREREQUISITES echo -e "$GREEN Fetching mmbtools-aux $NORMAL" git clone https://github.com/mpbraendli/mmbtools-aux.git echo -e "$GREEN Fetching etisnoop $NORMAL" git clone https://github.com/Opendigitalradio/etisnoop.git pushd etisnoop make popd echo -e "$GREEN Compiling ODR-DabMux $NORMAL" git clone https://github.com/Opendigitalradio/ODR-DabMux.git pushd ODR-DabMux ./bootstrap.sh ./configure --enable-input-zeromq --enable-output-zeromq make sudo make install popd echo -e "$GREEN Compiling ODR-DabMod $NORMAL" git clone https://github.com/Opendigitalradio/ODR-DabMod.git pushd ODR-DabMod ./bootstrap.sh ./configure --enable-zeromq --enable-fft-simd make sudo make install popd echo -e "$GREEN Compiling Toolame-DAB $NORMAL" git clone https://github.com/Opendigitalradio/toolame-dab.git pushd toolame-dab make sudo cp toolame /usr/local/bin/toolame popd echo -e "$GREEN Compiling FDK-AAC-DABplus $NORMAL" git clone https://github.com/Opendigitalradio/fdk-aac-dabplus.git pushd fdk-aac-dabplus ./bootstrap ./configure --enable-jack --enable-vlc make sudo make install popd echo -e "$GREEN Updating ld cache $NORMAL" # update ld cache sudo ldconfig echo -e "$GREEN Done installing all tools $NORMAL" echo -e "All the tools have been dowloaded to the dab/ folder," echo -e "compiled and installed to /usr/local" echo echo -e "The stable versions have been compiled, i.e. the latest" echo -e "'master' branch from the git repositories" echo echo -e "If you know there is a new release, and you want to update," echo -e "you have to go to the folder containing the tool, pull" echo -e "the latest changes from the repository and recompile" echo -e "it manually." echo echo -e "To pull the latest changes for ODR-DabMux, use:" echo -e " cd ~/dab/ODR-DabMux" echo -e " git pull" echo -e " ./bootstrap.sh" echo -e " ./configure --enable-input-zeromq --enable-output-zeromq" echo -e " make" echo -e " sudo make install" echo echo -e "This example should give you the idea. For the options" echo -e "for compiling the other tools, please see in the debian.sh" echo -e "script what options are used. Please also read the README" echo -e "and INSTALL files in the repositories."