# # Copyright 2001,2002,2003,2004,2005 Free Software Foundation, Inc. # # This file is part of GNU Radio # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ------------------------------------------------------------------------------- IMPORTANT ------------------------------------------------------------------------------- GNU Radio is now broken up into several packages. You're looking at the gnuradio-core. You'll probably want some or all of these too. Build and install them in the order listed here: gnuradio-core # main library gnuradio-examples # examples gr-audio-alsa # support for sounds cards using ALSA (prefered under GNU/Linux) gr-audio-oss # support for sounds cards using OSS gr-audio-jack # support for JACK Audio Connection Kit gr-audio-windows # support for sounds cards using Windows Wave gr-comedi # support for DAQ cards using COMEDI gr-wxgui # GUI framework built on wxPython usrp # non-GNU Radio specific portion of usrp gr-usrp # glues usrp into GNU Radio mc4020 # GNU/Linux driver for Measurement Computing PCI-DAS4020/12 A/D board gr-mc4020 # the glue that ties the mc4020 driver into GNU Radio ------------------------------------------------------------------------------- KNOWN INCOMPATIBILITIES GNU Radio triggers bugs in g++ 3.3 for X86. DO NOT USE GCC 3.3. gcc 3.2 and 3.4 are known to work well. ------------------------------------------------------------------------------- Prerequisites (you may already have these): (1) pkgconfig 0.15.0 or later http://www.freedesktop.org/Software/pkgconfig From the web site: pkgconfig is a system for managing library compile/link flags that works with automake and autoconf. It replaces the ubiquitous *-config scripts you may have seen with a single tool. (2) FFTW 3.0 or later http://www.fftw.org IMPORTANT!!! When building FFTW, you MUST use the --enable-single and --enable-shared configure options. This builds the single precision floating point version which we use. You should also use either the --enable-3dnow or --enable-sse options if you're on an Athlon or Pentium respectively. (3) Python 2.3 or later http://www.python.org Python 2.3 or later is now required. If your distribution splits python into a bunch of separate RPMS including python-devel or libpython you'll most likely need those too. (4) Numeric python library http://numeric.scipy.org Provides a high performance array type for Python. (5) The Boost C++ Libraries http://www.boost.org We use the Smart Pointer library. Fedore Core 2 has a package for this, boost-devel-1.31.0-7. Otherwise download the source and follow the build instructions. They're a bit different from the normal ./configure && make (6) cppunit 1.9.14 or later. http://cppunit.sourceforge.net Unit testing framework for C++. (7) Simple Wrapper Interface Generator. http://www.swig.org These versions are known to work: 1.3.23, 1.3.24, 1.3.25, 1.3.27, 1.3.28, 1.3.29 ---------------------------------------------------------------- For the impatient, just do the following: $ ./configure $ make $ make check $ make install If it doesn't work, fix it and send us a patch... See http://www.gnu.org/software/gnuradio/ for an overview. The project is hosted at http://savannah.gnu.org/projects/gnuradio/ If you've got doxygen installed and provide the --enable-doxygen configure option, the build process creates documentation for the class hierarchy etc. Point your browser at gnuradio-core/doc/html/index.html To run the examples you'll need to set PYTHONPATH. Note that the python version number in the path needs to match your installed version of python. $ export PYTHONPATH=/usr/local/lib/python2.3/site-packages You may want to add this to your ~/.bash_profile ---------------------------------------------------------------- Notes on building GNU Radio from the CVS repository ---------------------------------------------------------------- If you're building from the CVS repository YOU MUST BE PLAYING BY THE RULES THAT THE OTHER DEVELOPERS ARE USING. This is especially true with regard to the versions of the tools below... Ensure that you've got THESE VERSIONS of the following tools: autoconf 2.57 or later automake 1.7.4 or later libtool 1.5 or later swig 1.3.{23,24,25,27,28,29} If you're using earlier versions than these, don't expect the system to build. Get these versions or something later. They're available at any of the GNU mirrors. Then, check out a copy of GNU Radio. See http://www.gnu.org/software/gnuradio for directions on anonymous access to the CVS repository. Then in the top level directory, execute $ ./bootstrap This builds configure from configure.ac and also builds all the Makefile.in's from the Makefile.am's. Then carry on as usual: $ ./configure $ make $ make check $ make install For the easiest way to build from CVS, see http://comsec.com/wiki?HowtoBuildFromCVS Another handy trick if for example your fftw includes and libs are installed in, say ~/local/include and ~/local/lib, instead of /usr/local is this: $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/local/lib $ make CPPFLAGS="-I$HOME/local/include"