X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=README;h=4656af2c974427c8373da96b5ae045d1e5c1bfad;hb=35e43e8d8c271e6842191cac3fc3f2f88a861183;hp=dfc0ac8d569b2bd7bfda630b34b9be6a79cf0c05;hpb=5d69a524f81f234b3fbc41d49ba18d6f6886baba;p=debian%2Fgnuradio diff --git a/README b/README index dfc0ac8d..4656af2c 100644 --- a/README +++ b/README @@ -1,11 +1,11 @@ # -# Copyright 2001,2002,2003,2004,2005 Free Software Foundation, Inc. +# Copyright 2001,2002,2003,2004,2005,2006,2007,2009 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) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, @@ -15,32 +15,67 @@ # # 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. +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. # -------------------------------------------------------------------------------- +Welcome to GNU Radio! - IMPORTANT -------------------------------------------------------------------------------- +Please see http://gnuradio.org/trac for the wiki, bug tracking, +and source code viewer. If you've got questions about GNU Radio, please +subscribe to the discuss-gnuradio mailing list and post your questions +there. http://gnuradio.org/trac/wiki/MailingLists +There is also a "Build Guide" in the wiki that contains OS specific +recommendations. See http://gnuradio.org/trac/wiki/BuildGuide + + +The bleeding edge code can be found in our subversion repository at +http://gnuradio.org/svn. To checkout the latest, use this +command: + + $ svn co http://gnuradio.org/svn/gnuradio/trunk gnuradio + +For information about subversion, please see: + http://subversion.tigris.org/ + + +How to Build GNU Radio: + + (1) Ensure that you've satisfied the external dependencies listed + below. The word "system" is used to mean "operating system + and/or distribution", and means a full operating system, + including kernel, user-space utilties, and a packaging system + for additional software. On Linux, this means what + "distribution" means. + + With the exception of SDCC, the following GNU/Linux + distributions are known to come with all required dependencies + pre-packaged: Ubuntu 8.10, SuSE 10.0 (the pay version, not the + free download), Fedora Core 9. Other distribution may work too. + We know these three are easy. The required packages may be + contained on your installation CD/DVD, or may be loaded over the + net. The specifics vary depending on your GNU/Linux + distribution. + + On systems using pkgsrc (e.g. NetBSD and Dragonfly), build + meta-packages/gnuradio, which will build a previous release and + force installation of the dependencies. Then pkg_delete the + gnuradio and usrp packages, which will leave the dependencies. + (This should also work on OSX.) + + See the wiki at http://gnuradio.org/trac/wiki for details. + + + (2) do the "usual dance" -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: + $ ./bootstrap # not reqd when building from the tarball + $ ./configure + $ make && make check + $ sudo make install - 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 + +That's it! ------------------------------------------------------------------------------- @@ -48,14 +83,60 @@ Build and install them in the order listed here: 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. + GNU Radio triggers bugs in g++ 3.3 for X86. DO NOT USE GCC 3.3 on + the X86 platform. g++ 3.2, 3.4, and the 4.* series are known to work well. + +------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -Prerequisites (you may already have these): + External dependencies + +------------------------------------------------------------------------------- + +Prerequisites: Before trying to build these from source, please try +your system's installation tool (apt-get, pkg_install, YaST, yum, +urpmi, etc.) first. Most recent systems have these packages +available. + +You'll need to do a bit of sleuthing to figure out what your OS and +packaging system calls these. If your system uses the convention of +splitting files needed to run programs compiled with foo and files +needed to do the compilation into packages named foo and foo-devel, +install both packages. (Most GNU/Linux systems are like this, but +pkgsrc is not and instead uses -devel to indicate a package of a +not-yet-released or unstable version.) + +For those using pkgsrc, see gnuradio-pkg_chk.conf. Those not using +pkgsrc may also find the list useful. + +(0) GNU make + +It used to be required to have a "reasonable make", meaning GNU make, +BSD make, or perhaps Solaris make. It is now required to use GNU +make. Version 3.81 should certainly work; the intent is not to +require the bleeding edge. + +Note that the examples below are written with "make". They probably +should say "gmake", as GNU make is installed as gmake when it is not +the native make. + +(1) The "autotools" + + autoconf 2.57 or later + automake 1.7.4 or later + libtool 1.5 or later + +If your system has automake-1.4, there's a good chance it also has +automake-1.7 or later. Check your install disk and/or (on GNU/Linux) +try: + + $ man update-alternatives + +for info on how some distributions support multiple versions. + -(1) pkgconfig 0.15.0 or later http://www.freedesktop.org/Software/pkgconfig +(2) pkgconfig 0.15.0 or later http://www.freedesktop.org/Software/pkgconfig From the web site: @@ -64,7 +145,7 @@ 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 +(3) 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 @@ -72,112 +153,97 @@ 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. +[FIXME: GNU/Linux packages of single-precision fftw are typically called ??] -(3) Python 2.3 or later http://www.python.org +In systems using pkgsrc, install math/fftwf, which provides the +single-precision libraries. -Python 2.3 or later is now required. If your distribution splits -python into a bunch of separate RPMS including python-devel or + +(4) Python 2.5 or later http://www.python.org + +Python 2.5 or later is now required. If your system splits +python into a bunch of separate packages including python-devel or libpython you'll most likely need those too. -(4) Numeric python library http://numeric.scipy.org +(5) Numpy python library http://numeric.scipy.org Provides a high performance array type for Python. +http://numpy.scipy.org +http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103 -(5) The Boost C++ Libraries http://www.boost.org +(6) The Boost C++ Libraries (1.35 or later) 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 +We use Smart Pointers, the thread library and a bunch of other boost stuff. +If your system doesn't have boost 1.35 or later, see README.building-boost +for additional info. (Note: Mac OSX systems require 1.37 or later.) -(6) cppunit 1.9.14 or later. http://cppunit.sourceforge.net +(7) cppunit 1.9.14 or later. http://cppunit.sourceforge.net Unit testing framework for C++. -(7) Simple Wrapper Interface Generator. http://www.swig.org +(8) 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 +As of repository version 4045, gnuradio requires version 1.3.31 or newer. ----------------------------------------------------------------- -For the impatient, just do the following: +(9) SDCC: Small Device C Compiler. http://sdcc.sourceforge.net/ - $ ./configure - $ make - $ make check - $ make install +Use version 2.4.0 or later. -If it doesn't work, fix it and send us a patch... +This includes a C compiler and linker for the 8051. It's required to +build the firmware for the USRP. If you don't have a USRP, don't +worry about it. -See http://www.gnu.org/software/gnuradio/ for an overview. -The project is hosted at http://savannah.gnu.org/projects/gnuradio/ +(10) Guile 1.6 or 1.8 +Scheme interpreter. http://www.gnu.org/software/guile/guile.html -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 +(11) GNU Scientific Library (gsl) 1.10 or later -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. +The GNU Radio core library uses some routines from here. - $ export PYTHONPATH=/usr/local/lib/python2.3/site-packages -You may want to add this to your ~/.bash_profile +Optional, but nice to have: +(12) wxPython. Python binding for the wxWidgets GUI framework. Use +version 2.8 or later. Again, almost all systems have this +available. +As a last resort, build it from source (not recommended!) +http://www.wxpython.org ----------------------------------------------------------------- - - Notes on building GNU Radio from the CVS repository +(13) xmlto version ? or later. http://cyberelk.net/tim/xmlto/index.html ----------------------------------------------------------------- +Wrapper for XML conversion tools to ease e.g. making html from docbook. -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... +(14) Python Cheetah extensions 2.0.0 or later +(15) Python lxml wrappers 2.0.0 or later +(16) Python gtk wrappers 2.10.0 or later -Ensure that you've got THESE VERSIONS of the following tools: +The GNU Radio Companion application requires these additional Python libraries +to be installed. - 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. +If you've got doxygen installed, the build process creates +documentation for the class hierarchy etc. Point your browser at +gnuradio/gnuradio-core/doc/html/index.html -Then carry on as usual: - $ ./configure - $ make - $ make check - $ make install +To run the examples you may need to set PYTHONPATH. Note that the +prefix and python version number in the path needs to match your +installed version of python. + $ export PYTHONPATH=/usr/local/lib/python2.5/site-packages -For the easiest way to build from CVS, see -http://comsec.com/wiki?HowtoBuildFromCVS +You may want to add this to your shell init file (~/.bash_profile if +you use bash). @@ -188,3 +254,11 @@ installed in, say ~/local/include and ~/local/lib, instead of $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/local/lib $ make CPPFLAGS="-I$HOME/local/include" + +Sometimes the prerequisites are installed in a location which is not +included in the default compiler and linker search paths. This +happens with pkgsrc and NetBSD. To build, tell configure to use these +locations: + + LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib" CPPFLAGS="-I/usr/pkg/include" ./configure --prefix=/usr/gnuradio +