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
|
#
# Copyright 2001,2002,2003,2004 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-oss # support for sounds cards using OSS
gr-wxguii # 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) 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
(5) cppunit 1.9.14 or later. http://cppunit.sourceforge.net
Unit testing framework for C++.
----------------------------------------------------------------
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, 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.
$ 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.22 or later
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 ./configure adding the --enable-maintainer-mode flag.
This enables the maintainer rules in the Makefiles that allow for the
regeneration of Makefile.in's from Makefile.am's.
FYI, in the tarballs that we distribute, these rules are turned off to
ensure that end users don't need the versions of the auto tools that
we're using. We generate the Makefile.in's from the Makefile.am's
when we build the tarball, and include them in the distribution. This
generally causes less pain, since they aren't likely to be wanting to
modify Makefile.am's. Since you want to build from the CVS
repository, (or modify Makefile.am's) you need to be operating with
the tools we're using.
$ ./bootstrap
$ ./configure --enable-maintainer-mode
$ make
$ make check
$ make install
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"
|