gr-qtgui: add include file for gcc 4.4.1
[debian/gnuradio] / README
diff --git a/README b/README
index d2378f6bfac5e058323b8cf021b420dc3752b88a..4656af2c974427c8373da96b5ae045d1e5c1bfad 100644 (file)
--- a/README
+++ b/README
@@ -1,11 +1,11 @@
 #
-# Copyright 2001,2002,2003,2004,2005,2006 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,
 Welcome to GNU Radio!
 
 
-As of August 3, 2006 we have restructured the GNU Radio build process
-and moved the source code repository from CVS to subversion.
+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
 
-Please see http://gnuradio.utah.edu/trac for the wiki, bug tracking,
-and source code viewer.
 
 The bleeding edge code can be found in our subversion repository at
-http://gnuradio.utah.edu/svn.  To checkout the latest, use this
+http://gnuradio.org/svn.  To checkout the latest, use this
 command:
 
-  $ svn co http://gnuradio.utah.edu/svn/gnuradio/trunk gnuradio
+  $ svn co http://gnuradio.org/svn/gnuradio/trunk gnuradio
 
 For information about subversion, please see:
   http://subversion.tigris.org/
 
 
-
-GNU Radio is now distributed as one giant blob, instead of N smaller
-blobs.  We believe that this will reduce some of the build problems
-people were seeing.  Now you'll always get all of the code, and the
-configure step will determine which components can be built on your
-system.
-
-
 How to Build GNU Radio:
 
   (1) Ensure that you've satisfied the external dependencies listed
-      below.  With the exception of SDCC, the following GNU/Linux
+      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 6.06, SuSE 10.0 (the pay version, not the
-      free download), Fedora Core 5.  Other distribution may work too.
+      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.  See the wiki at
-      http://gnuradio.utah.edu/trac/wiki for details.
+      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.
 
-      FIXME: update the wiki; talk about OS/X, NetBSD and MinGW too.
 
   (2) do the "usual dance"
 
@@ -89,13 +95,31 @@ That's it!
 -------------------------------------------------------------------------------
 
 Prerequisites: Before trying to build these from source, please try
-your installation tool (apt-get, YaST, yum, urpmi, etc.) first.
-Contemporary distributions have these packages available.
+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 has both a foo and a
-foo-devel package, install them both.
+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"
 
@@ -104,7 +128,8 @@ foo-devel package, install them both.
        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 try:
+automake-1.7 or later.  Check your install disk and/or (on GNU/Linux)
+try:
 
   $ man update-alternatives
 
@@ -128,26 +153,31 @@ 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 ??]
+
+In systems using pkgsrc, install math/fftwf, which provides the
+single-precision libraries.
 
-(4) 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
+(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.
 
 
-(5) Numeric python library   http://numeric.scipy.org
+(5) Numpy python library   http://numeric.scipy.org
 
 Provides a high performance array type for Python.
-http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=1351
+http://numpy.scipy.org
+http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103
 
 
-(6) 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.  Your distribution almost certainly
-has the boost libraries available.  In the unlikely event that it
-doesn't, download the source and follow the build instructions.
-They're 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.)
 
 
 (7) cppunit 1.9.14 or later.   http://cppunit.sourceforge.net
@@ -157,8 +187,7 @@ Unit testing framework for C++.
 
 (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.
 
 
 (9) SDCC: Small Device C Compiler.  http://sdcc.sourceforge.net/
@@ -170,31 +199,52 @@ build the firmware for the USRP.  If you don't have a USRP, don't
 worry about it.
 
 
+(10) Guile 1.6 or 1.8 
+
+Scheme interpreter.  http://www.gnu.org/software/guile/guile.html
+
+
+(11) GNU Scientific Library (gsl) 1.10 or later
+
+The GNU Radio core library uses some routines from here.
+
+
 Optional, but nice to have:
 
-(10) wxPython.  Python binding for the wxWidgets GUI framework.  
-Use version 2.5.2.7 or later.  Again, your distribution almost
-certainly has this available.
+(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
 
+(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.
+
+(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
+
+The GNU Radio Companion application requires these additional Python libraries
+to be installed.
 
 ----------------------------------------------------------------
 
-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
+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
 
 
-To run the examples you'll need to set PYTHONPATH.
-Note that the python version number in the path needs to match your
+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.3/site-packages
+  $ export PYTHONPATH=/usr/local/lib/python2.5/site-packages
+
+You may want to add this to your shell init file (~/.bash_profile if
+you use bash).
 
-You may want to add this to your ~/.bash_profile
 
 
 Another handy trick if for example your fftw includes and libs are
@@ -203,3 +253,12 @@ 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
+