Difference between revisions of "Developers Documentation"

From Ghpsdr3 SDR project
Jump to: navigation, search
(Setting the path to qt5)
(Installing Qt5)
Line 90: Line 90:
  
 
$ chmod +x the-name-of-the-downloaded-file
 
$ chmod +x the-name-of-the-downloaded-file
 +
 
$ sudo ./the-name-of-the-downloaded-file
 
$ sudo ./the-name-of-the-downloaded-file
  

Revision as of 08:16, 28 December 2012

Most of the development discussion has been taking place on the sdr-widget google group.


Installing portaudio19-dev with jackd2

Portaudio19-dev depends on having a copy of libjack-dev installed and if the libkjack-jackd2-dev package is installed before portaudio19-dev it's dependency will be satisfied and it will not uninstall jackd2 and install jackd1 if you have already installed jackd2 on your system.

If jackd1 and portaudio19-dev already installed

From Synaptic

Uninstall portaudio19-dev
Uninstall jackd1
Install Jackd2
Install libjack-jackd2-dev
Install portaudio19-dev

If you are starting from scratch

From Synaptic

Install Jackd2
Install libjack-jackd2-dev
Install portaudio19-dev


The following commands install all the environment needed (Debian/Ubuntu):

sudo apt-get install jackd2 libjack-jackd2-dev portaudio19-dev

sudo apt-get install make gcc g++ autoconf automake autotools-dev libtool git subversion
sudo apt-get install libusb-0.1-4 libusb-dev libfftw3-dev libpulse-dev libsamplerate0-dev 
sudo apt-get install libusb-1.0-0-dev libconfig8-dev xdg-utils libortp-dev
sudo apt-get install libevent-dev

If the machine doesn't have an OpenGL aware accelerated video card, please install also the following packages:

sudo apt-get install mesa-utils
sudo apt-get install mesa-common-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get install x11proto-xext-dev
sudo apt-get install libxrender-dev

Note: in at least one case (thanks to Pierluigi iw4blg), even if the machine was running with an NVidia card and proprietary NVidia device drivers, the test for Qt in configure did fail, as well did the example programs enclosed in qt5 package, complaining that both GL/gl.h and libGL were missing. Installing all the above packages the problem was solved.

Installing codec2 low bit rate audio encoding and decoding

To download and build the codec2 library. See:

http://www.rowetel.com/blog/?page_id=452

Now go get codec2 using subversion

cd
svn co https://freetel.svn.sourceforge.net/svnroot/freetel/codec2-dev
cd codec2-dev
autoreconf -i
./configure
make
sudo make install
sudo ldconfig

Installing Qt5

http://qt-project.org/downloads

U should download the Qt5.0.0 libraries file. 64 bit for x86_64 and 32 bit for x86 PC etc.

After downloading you go to the download directory and do:

$ chmod +x the-name-of-the-downloaded-file

$ sudo ./the-name-of-the-downloaded-file

After that you should have something installed in /opt/Qt5.0.0

Setting the path to qt5

From a terminal

$ export PATH=/opt/Qt5.0.0/5.0.0/gcc_64/bin:/opt/Qt5.0.0/Tools/QtCreator/bin:$PATH

Compiling QtRadio

cd
git clone https://github.com/alexlee188/ghpsdr3-alex.git
cd ghpsdr3-alex
git checkout master

sh ./cleanup.sh
autoreconf -i


./alex-config

Last, build everything:

make
sudo make install

Setting QtCreator to use the qt5 libraries

If you want to use Qt Creator (you use the same Qt Creator as with Qt4), you need to configure it to use Qt5 as one of the options:

From the top line menu of QtCreator ...

Tools > Options > Build & Run
Click on the Qt Versions panel
Click on Add button
Navigate to /opt/Qt5.0.0/5.0.0/gcc_64/bin
Click on qmake
Click on open
Click on Apply then OK

You need to point to the qmake file which is found in /opt/Qt5.0.0/5.0.0/gcc_64/bin

Choosing the build library in QtCreator

you need to (re)import your QtRadio project and then you will be able to select Qt5 (or the previous Qt4.8 etc.) for building the application.

It may be necessary to edit the project file (QtRadio.pro) to choose which version of Qt Creator you are using which can be the SDK directly from Nokia, or the Ubuntu install of Creator. The line "_UsingSDK" needs to be set to true or false as appropriate.