summaryrefslogtreecommitdiff
path: root/gnuradio-core/README
blob: dfc0ac8d569b2bd7bfda630b34b9be6a79cf0c05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#
# 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"