Houston, we have a trunk.
[debian/gnuradio] / README
1 #
2 # Copyright 2001,2002,2003,2004,2005 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 2, 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., 59 Temple Place - Suite 330,
19 # Boston, MA 02111-1307, USA.
20
21
22 -------------------------------------------------------------------------------
23
24                                 IMPORTANT
25
26 -------------------------------------------------------------------------------
27
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:
31
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
44
45
46 -------------------------------------------------------------------------------
47
48                        KNOWN INCOMPATIBILITIES
49
50
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.
53
54 -------------------------------------------------------------------------------
55
56 Prerequisites (you may already have these):
57
58 (1)  pkgconfig 0.15.0 or later  http://www.freedesktop.org/Software/pkgconfig
59
60 From the web site:
61
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.
65
66
67 (2)  FFTW 3.0 or later        http://www.fftw.org
68
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
73 respectively.
74
75
76 (3) Python 2.3 or later       http://www.python.org
77
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.
81
82
83 (4) Numeric python library   http://numeric.scipy.org
84
85 Provides a high performance array type for Python.
86
87
88 (5) The Boost C++ Libraries     http://www.boost.org
89
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
93 ./configure && make
94
95
96 (6) cppunit 1.9.14 or later.    http://cppunit.sourceforge.net
97
98 Unit testing framework for C++.
99
100
101 (7) Simple Wrapper Interface Generator.  http://www.swig.org
102
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
105
106 ----------------------------------------------------------------
107
108 For the impatient, just do the following:
109
110         $ ./configure
111         $ make
112         $ make check
113         $ make install
114
115 If it doesn't work, fix it and send us a patch...
116
117
118 See http://www.gnu.org/software/gnuradio/ for an overview.
119 The project is hosted at http://savannah.gnu.org/projects/gnuradio/
120
121
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
126
127
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.
131
132   $ export PYTHONPATH=/usr/local/lib/python2.3/site-packages
133
134 You may want to add this to your ~/.bash_profile
135
136
137
138 ----------------------------------------------------------------
139
140     Notes on building GNU Radio from the CVS repository
141
142 ----------------------------------------------------------------
143
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...
147
148 Ensure that you've got THESE VERSIONS of the following tools:
149
150        autoconf 2.57    or later
151        automake 1.7.4   or later
152        libtool  1.5     or later
153        swig     1.3.{23,24,25,27,28,29}
154
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.
158
159 Then, check out a copy of GNU Radio.  
160
161 See http://www.gnu.org/software/gnuradio for directions on anonymous
162 access to the CVS repository.
163
164 Then in the top level directory, execute
165
166      $ ./bootstrap
167
168 This builds configure from configure.ac and also builds all the
169 Makefile.in's from the Makefile.am's.
170
171 Then carry on as usual:
172
173      $ ./configure
174      $ make
175      $ make check
176      $ make install
177
178
179 For the easiest way to build from CVS, see
180 http://comsec.com/wiki?HowtoBuildFromCVS
181
182
183
184 Another handy trick if for example your fftw includes and libs are
185 installed in, say ~/local/include and ~/local/lib, instead of
186 /usr/local is this:
187
188     $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/local/lib
189     $ make CPPFLAGS="-I$HOME/local/include"
190