How to set up the compilation environment and build GNSS-SDR in Ubuntu: * Install GNU Radio: - Downloading, building and installing GNU Radio and all its dependencies is not an easy task. We recommend to use Marcus Leech's build-gnuradio script, which automatically does all the work for you. In a terminal, do: $ wget http://www.sbrac.org/files/build-gnuradio $ chmod a+x build-gnuradio $ ./build-gnuradio This can take a while (up to two hours to complete, depending on the system), and installs the latest versions of UHD and GNU Radio in your system, including all their dependencies. - Set up some system variables needed by the GNSS-SDR build system: export PYTHONPATH=/usr/local/lib/python2.7/dist-packages export GNURADIO_ROOT=/path/to/gnuradio export LD_LIBRARY_PATH=/usr/local/lib where /path/to/gnuradio is the folder in which you invoked build-gnuradio. In orderto avoid defining these variables each time you enter a session, you may want to add these three lines to your $HOME/.bashrc file. * Install other libraries used by GNSS-SDR: - Download, compile, and install the Armadillo linear algebra library $ wget http://sourceforge.net/projects/arma/files/armadillo-2.4.2.tar.gz $ tar xvfz armadillo-2.4.2.tar.gz $ cd armadillo-2.4.2 $ cmake . $ make $ sudo make install The full stop separated from "cmake" by a space is important. CMake will figure out what other libraries are currently installed and will modify Armadillo's configuration correspondingly. CMake will also generate a run-time armadillo library, which is a combined alias for all the relevant libraries present on your system (eg. BLAS, LAPACK and ATLAS). - Download, unzip, configure, build and install Google's performance analysis tools, google-perftools: $ wget http://google-perftools.googlecode.com/files/google-perftools-1.8.3.tar.gz $ tar xvfz google-perftools-1.8.3.tar.gz $ cd google-perftools-1.8.3 $ ./configure --enable-frame-pointers $ make $ sudo make install NOTE: At this moment (Dec. 2011), perftools seems to be not working properly in Ubuntu 11.10. See http://code.google.com/p/google-perftools/issues/detail?id=386 - Download, unzip, configure, and build Google C++ Testing Framework (also known as Google Test): $ wget http://googletest.googlecode.com/files/gtest-1.6.0.zip $ unzip gtest-1.6.0.zip $ cd gtest-1.6.0 $ ./configure $ make - Download, unzip, configure, build and install the gflags package, a commandline flags processing module for C++: $ wget http://google-gflags.googlecode.com/files/gflags-1.7.tar.gz $ tar xvfz gflags-1.7.tar.gz $ cd gflags-1.7 $ ./configure $ make $ sudo make install - Download, unzip, configure, build and install Google's library that implements application-level logging, glog: $ wget http://google-glog.googlecode.com/files/glog-0.3.1-1.tar.gz $ tar xvfz glog-0.3.1-1.tar.gz $ cd glog-0.3.1 $ ./configure $ make $ sudo make install - Install Subversion $ sudo apt-get install subversion * Check out the latest version of GNSS-SDR $ svn co http://gnss-sdr.svn.sourceforge.net/svnroot/gnss-sdr gnss-sdr * Build GNSS-SDR - Go to GNSS-SDR's root directory and compile the program: $ cd gnss-sdr/trunk $ bjam If everything went fine, a executable will be found at gnss-sdr/trunk/install/gnss-sdr NOTE: If you want to update the master branch of GNU Radio (and test if GNSS-SDR works with it) , go to the gnuradio directory and do: sudo make uninstall make clean git pull ./configure make make check sudo make install