Statistics
| Branch: | Tag: | Revision:

root / README @ b976c98f

History | View | Annotate | Download (8.7 kB)

1
#
2
# Copyright 2001,2002,2003,2004,2005,2006,2007,2009 Free Software Foundation, Inc.
3
# 
4
# This file is part of GNU Radio
5
# 
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 3, or (at your option)
9
# any later version.
10
# 
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.
15
# 
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., 51 Franklin Street,
19
# Boston, MA 02110-1301, USA.
20
# 
21
22
Welcome to GNU Radio!
23
24
25
Please see http://gnuradio.org/trac for the wiki, bug tracking,
26
and source code viewer.  If you've got questions about GNU Radio, please
27
subscribe to the discuss-gnuradio mailing list and post your questions
28
there.  http://gnuradio.org/trac/wiki/MailingLists
29
There is also a "Build Guide" in the wiki that contains OS specific
30
recommendations.  See http://gnuradio.org/trac/wiki/BuildGuide
31
32
33
The bleeding edge code can be found in our subversion repository at
34
http://gnuradio.org/svn.  To checkout the latest, use this
35
command:
36
37
  $ svn co http://gnuradio.org/svn/gnuradio/trunk gnuradio
38
39
For information about subversion, please see:
40
  http://subversion.tigris.org/
41
42
43
How to Build GNU Radio:
44
45
  (1) Ensure that you've satisfied the external dependencies listed
46
      below.  The word "system" is used to mean "operating system
47
      and/or distribution", and means a full operating system,
48
      including kernel, user-space utilties, and a packaging system
49
      for additional software.  On Linux, this means what
50
      "distribution" means.
51
52
      With the exception of SDCC, the following GNU/Linux
53
      distributions are known to come with all required dependencies
54
      pre-packaged: Ubuntu 8.10, SuSE 10.0 (the pay version, not the
55
      free download), Fedora Core 9.  Other distribution may work too.
56
      We know these three are easy.  The required packages may be
57
      contained on your installation CD/DVD, or may be loaded over the
58
      net.  The specifics vary depending on your GNU/Linux
59
      distribution.
60
61
      On systems using pkgsrc (e.g. NetBSD and Dragonfly), build
62
      meta-packages/gnuradio, which will build a previous release and
63
      force installation of the dependencies.  Then pkg_delete the
64
      gnuradio and usrp packages, which will leave the dependencies.
65
      (This should also work on OSX.)
66
67
      See the wiki at http://gnuradio.org/trac/wiki for details.
68
69
70
  (2) do the "usual dance"
71
72
      $ ./bootstrap        # not reqd when building from the tarball
73
      $ ./configure
74
      $ make && make check
75
      $ sudo make install
76
77
78
That's it!
79
80
81
-------------------------------------------------------------------------------
82
83
		       KNOWN INCOMPATIBILITIES
84
85
86
  GNU Radio triggers bugs in g++ 3.3 for X86.  DO NOT USE GCC 3.3 on
87
  the X86 platform.  g++ 3.2, 3.4, and the 4.* series are known to work well.
88
89
-------------------------------------------------------------------------------
90
91
-------------------------------------------------------------------------------
92
93
			  External dependencies
94
95
-------------------------------------------------------------------------------
96
97
Prerequisites: Before trying to build these from source, please try
98
your system's installation tool (apt-get, pkg_install, YaST, yum,
99
urpmi, etc.) first.  Most recent systems have these packages
100
available.
101
102
You'll need to do a bit of sleuthing to figure out what your OS and
103
packaging system calls these.  If your system uses the convention of
104
splitting files needed to run programs compiled with foo and files
105
needed to do the compilation into packages named foo and foo-devel,
106
install both packages.  (Most GNU/Linux systems are like this, but
107
pkgsrc is not and instead uses -devel to indicate a package of a
108
not-yet-released or unstable version.)
109
110
For those using pkgsrc, see gnuradio-pkg_chk.conf.  Those not using
111
pkgsrc may also find the list useful.
112
113
(0) GNU make
114
115
It used to be required to have a "reasonable make", meaning GNU make,
116
BSD make, or perhaps Solaris make.  It is now required to use GNU
117
make.  Version 3.81 should certainly work; the intent is not to
118
require the bleeding edge.
119
120
Note that the examples below are written with "make".  They probably
121
should say "gmake", as GNU make is installed as gmake when it is not
122
the native make.
123
124
(1) The "autotools"
125
126
       autoconf 2.57    or later
127
       automake 1.7.4   or later
128
       libtool  1.5     or later
129
130
If your system has automake-1.4, there's a good chance it also has
131
automake-1.7 or later.  Check your install disk and/or (on GNU/Linux)
132
try:
133
134
  $ man update-alternatives
135
136
for info on how some distributions support multiple versions.
137
138
139
(2)  pkgconfig 0.15.0 or later  http://www.freedesktop.org/Software/pkgconfig
140
141
From the web site:
142
143
pkgconfig is a system for managing library compile/link flags that
144
works with automake and autoconf. It replaces the ubiquitous *-config
145
scripts you may have seen with a single tool.
146
147
148
(3)  FFTW 3.0 or later	      http://www.fftw.org
149
150
IMPORTANT!!!  When building FFTW, you MUST use the --enable-single and
151
--enable-shared configure options.  This builds the single precision
152
floating point version which we use.  You should also use either the
153
--enable-3dnow or --enable-sse options if you're on an Athlon or Pentium
154
respectively.
155
156
[FIXME: GNU/Linux packages of single-precision fftw are typically called ??]
157
158
In systems using pkgsrc, install math/fftwf, which provides the
159
single-precision libraries.
160
161
162
(4) Python 2.5 or later	      http://www.python.org
163
164
Python 2.5 or later is now required.  If your system splits
165
python into a bunch of separate packages including python-devel or
166
libpython you'll most likely need those too.
167
168
169
(5) Numpy python library   http://numeric.scipy.org
170
171
Provides a high performance array type for Python.
172
http://numpy.scipy.org
173
http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103
174
175
176
(6) The Boost C++ Libraries (1.35 or later)  http://www.boost.org
177
178
We use Smart Pointers, the thread library and a bunch of other boost stuff.
179
If your system doesn't have boost 1.35 or later, see README.building-boost
180
for additional info.  (Note: Mac OSX systems require 1.37 or later.)
181
182
183
(7) cppunit 1.9.14 or later.	http://cppunit.sourceforge.net
184
185
Unit testing framework for C++.
186
187
188
(8) Simple Wrapper Interface Generator.  http://www.swig.org
189
190
As of repository version 4045, gnuradio requires version 1.3.31 or newer.
191
192
193
(9) SDCC: Small Device C Compiler.  http://sdcc.sourceforge.net/
194
195
Use version 2.4.0 or later.
196
197
This includes a C compiler and linker for the 8051.  It's required to
198
build the firmware for the USRP.  If you don't have a USRP, don't
199
worry about it.
200
201
202
(10) Guile 1.6 or 1.8 
203
204
Scheme interpreter.  http://www.gnu.org/software/guile/guile.html
205
206
207
(11) GNU Scientific Library (gsl) 1.10 or later
208
209
The GNU Radio core library uses some routines from here.
210
211
212
Optional, but nice to have:
213
214
(12) wxPython.  Python binding for the wxWidgets GUI framework.  Use
215
version 2.8 or later.  Again, almost all systems have this
216
available.
217
218
As a last resort, build it from source (not recommended!)
219
http://www.wxpython.org
220
221
(13) xmlto version ? or later.   http://cyberelk.net/tim/xmlto/index.html
222
223
Wrapper for XML conversion tools to ease e.g. making html from docbook.
224
225
(14) Python Cheetah extensions 2.0.0 or later
226
(15) Python lxml wrappers 2.0.0 or later
227
(16) Python gtk wrappers 2.10.0 or later
228
229
The GNU Radio Companion application requires these additional Python libraries
230
to be installed.
231
232
----------------------------------------------------------------
233
234
If you've got doxygen installed, the build process creates 
235
documentation for the class hierarchy etc.  Point your browser at
236
gnuradio/gnuradio-core/doc/html/index.html
237
238
239
To run the examples you may need to set PYTHONPATH.  Note that the
240
prefix and python version number in the path needs to match your
241
installed version of python.
242
243
  $ export PYTHONPATH=/usr/local/lib/python2.5/site-packages
244
245
You may want to add this to your shell init file (~/.bash_profile if
246
you use bash).
247
248
249
250
Another handy trick if for example your fftw includes and libs are
251
installed in, say ~/local/include and ~/local/lib, instead of
252
/usr/local is this:
253
254
    $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/local/lib
255
    $ make CPPFLAGS="-I$HOME/local/include"
256
257
258
Sometimes the prerequisites are installed in a location which is not
259
included in the default compiler and linker search paths.  This
260
happens with pkgsrc and NetBSD.  To build, tell configure to use these
261
locations:
262
263
	LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib" CPPFLAGS="-I/usr/pkg/include" ./configure --prefix=/usr/gnuradio
264