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