root / README @ cf33be6c
History | View | Annotate | Download (6.9 kB)
| 1 | # |
|---|---|
| 2 | # Copyright 2001,2002,2003,2004,2005,2006 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., 51 Franklin Street, |
| 19 | # Boston, MA 02110-1301, USA. |
| 20 | # |
| 21 | |
| 22 | Welcome to GNU Radio! |
| 23 | |
| 24 | |
| 25 | As of August 3, 2006 we have restructured the GNU Radio build process |
| 26 | and moved the source code repository from CVS to subversion. |
| 27 | |
| 28 | Please see http://gnuradio.org/trac for the wiki, bug tracking, |
| 29 | and source code viewer. |
| 30 | |
| 31 | The bleeding edge code can be found in our subversion repository at |
| 32 | http://gnuradio.org/svn. To checkout the latest, use this |
| 33 | command: |
| 34 | |
| 35 | $ svn co http://gnuradio.org/svn/gnuradio/trunk gnuradio |
| 36 | |
| 37 | For information about subversion, please see: |
| 38 | http://subversion.tigris.org/ |
| 39 | |
| 40 | |
| 41 | |
| 42 | GNU Radio is now distributed as one giant blob, instead of N smaller |
| 43 | blobs. We believe that this will reduce some of the build problems |
| 44 | people were seeing. Now you'll always get all of the code, and the |
| 45 | configure step will determine which components can be built on your |
| 46 | system. |
| 47 | |
| 48 | |
| 49 | How to Build GNU Radio: |
| 50 | |
| 51 | (1) Ensure that you've satisfied the external dependencies listed |
| 52 | below. With the exception of SDCC, the following GNU/Linux |
| 53 | distributions are known to come with all required dependencies |
| 54 | pre-packaged: Ubuntu 6.06, SuSE 10.0 (the pay version, not the |
| 55 | free download), Fedora Core 5. Other distribution may work too. |
| 56 | We know these three are easy. The required packages may be |
| 57 | contained on your installation CD/DVD, or may be loaded over the |
| 58 | net. The specifics vary depending on your GNU/Linux |
| 59 | distribution. See the wiki at |
| 60 | http://gnuradio.org/trac/wiki for details. |
| 61 | |
| 62 | FIXME: update the wiki; talk about OS/X, NetBSD and MinGW too. |
| 63 | |
| 64 | (2) do the "usual dance" |
| 65 | |
| 66 | $ ./bootstrap # not reqd when building from the tarball |
| 67 | $ ./configure |
| 68 | $ make && make check |
| 69 | $ sudo make install |
| 70 | |
| 71 | |
| 72 | That's it! |
| 73 | |
| 74 | |
| 75 | ------------------------------------------------------------------------------- |
| 76 | |
| 77 | KNOWN INCOMPATIBILITIES |
| 78 | |
| 79 | |
| 80 | GNU Radio triggers bugs in g++ 3.3 for X86. DO NOT USE GCC 3.3 on |
| 81 | the X86 platform. g++ 3.2, 3.4, and the 4.* series are known to work well. |
| 82 | |
| 83 | ------------------------------------------------------------------------------- |
| 84 | |
| 85 | ------------------------------------------------------------------------------- |
| 86 | |
| 87 | External dependencies |
| 88 | |
| 89 | ------------------------------------------------------------------------------- |
| 90 | |
| 91 | Prerequisites: Before trying to build these from source, please try |
| 92 | your installation tool (apt-get, YaST, yum, urpmi, etc.) first. |
| 93 | Contemporary distributions have these packages available. |
| 94 | |
| 95 | You'll need to do a bit of sleuthing to figure out what your OS and |
| 96 | packaging system calls these. If your system has both a foo and a |
| 97 | foo-devel package, install them both. |
| 98 | |
| 99 | |
| 100 | (1) The "autotools" |
| 101 | |
| 102 | autoconf 2.57 or later |
| 103 | automake 1.7.4 or later |
| 104 | libtool 1.5 or later |
| 105 | |
| 106 | If your system has automake-1.4, there's a good chance it also has |
| 107 | automake-1.7 or later. Check your install disk and/or try: |
| 108 | |
| 109 | $ man update-alternatives |
| 110 | |
| 111 | for info on how some distributions support multiple versions. |
| 112 | |
| 113 | |
| 114 | (2) pkgconfig 0.15.0 or later http://www.freedesktop.org/Software/pkgconfig |
| 115 | |
| 116 | From the web site: |
| 117 | |
| 118 | pkgconfig is a system for managing library compile/link flags that |
| 119 | works with automake and autoconf. It replaces the ubiquitous *-config |
| 120 | scripts you may have seen with a single tool. |
| 121 | |
| 122 | |
| 123 | (3) FFTW 3.0 or later http://www.fftw.org |
| 124 | |
| 125 | IMPORTANT!!! When building FFTW, you MUST use the --enable-single and |
| 126 | --enable-shared configure options. This builds the single precision |
| 127 | floating point version which we use. You should also use either the |
| 128 | --enable-3dnow or --enable-sse options if you're on an Athlon or Pentium |
| 129 | respectively. |
| 130 | |
| 131 | |
| 132 | (4) Python 2.3 or later http://www.python.org |
| 133 | |
| 134 | Python 2.3 or later is now required. If your distribution splits |
| 135 | python into a bunch of separate RPMS including python-devel or |
| 136 | libpython you'll most likely need those too. |
| 137 | |
| 138 | |
| 139 | (5) Numeric python library http://numeric.scipy.org |
| 140 | |
| 141 | Provides a high performance array type for Python. |
| 142 | http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=1351 |
| 143 | |
| 144 | |
| 145 | (6) The Boost C++ Libraries http://www.boost.org |
| 146 | |
| 147 | We use the Smart Pointer library. Your distribution almost certainly |
| 148 | has the boost libraries available. In the unlikely event that it |
| 149 | doesn't, download the source and follow the build instructions. |
| 150 | They're different from the normal ./configure && make |
| 151 | |
| 152 | |
| 153 | (7) cppunit 1.9.14 or later. http://cppunit.sourceforge.net |
| 154 | |
| 155 | Unit testing framework for C++. |
| 156 | |
| 157 | |
| 158 | (8) Simple Wrapper Interface Generator. http://www.swig.org |
| 159 | |
| 160 | These versions are known to work: |
| 161 | 1.3.23, 1.3.24, 1.3.25, 1.3.27, 1.3.28, 1.3.29 |
| 162 | |
| 163 | |
| 164 | (9) SDCC: Small Device C Compiler. http://sdcc.sourceforge.net/ |
| 165 | |
| 166 | Use version 2.4.0 or later. |
| 167 | |
| 168 | This includes a C compiler and linker for the 8051. It's required to |
| 169 | build the firmware for the USRP. If you don't have a USRP, don't |
| 170 | worry about it. |
| 171 | |
| 172 | |
| 173 | Optional, but nice to have: |
| 174 | |
| 175 | (10) wxPython. Python binding for the wxWidgets GUI framework. |
| 176 | Use version 2.5.2.7 or later. Again, your distribution almost |
| 177 | certainly has this available. |
| 178 | |
| 179 | As a last resort, build it from source (not recommended!) |
| 180 | http://www.wxpython.org |
| 181 | |
| 182 | |
| 183 | ---------------------------------------------------------------- |
| 184 | |
| 185 | If you've got doxygen installed and provide the --enable-doxygen |
| 186 | configure option, the build process creates documentation for the |
| 187 | class hierarchy etc. Point your browser at |
| 188 | gnuradio/gnuradio-core/doc/html/index.html |
| 189 | |
| 190 | |
| 191 | To run the examples you'll need to set PYTHONPATH. |
| 192 | Note that the python version number in the path needs to match your |
| 193 | installed version of python. |
| 194 | |
| 195 | $ export PYTHONPATH=/usr/local/lib/python2.3/site-packages |
| 196 | |
| 197 | You may want to add this to your ~/.bash_profile |
| 198 | |
| 199 | Note that on Fedora Core 4 and 5 when running on X86_64 machines, |
| 200 | python is shippped with a strange (wrong) configuration that requires |
| 201 | you to add both the lib64 and lib paths to your PYTHONPATH. |
| 202 | E.g., |
| 203 | |
| 204 | $ export PYTHONPATH=/usr/local/lib64/python2.4/site-packages:/usr/local/lib/python2.4/site-packages |
| 205 | |
| 206 | [Don't complain to us, complain to the Fedora Core packagers.] |
| 207 | |
| 208 | |
| 209 | Another handy trick if for example your fftw includes and libs are |
| 210 | installed in, say ~/local/include and ~/local/lib, instead of |
| 211 | /usr/local is this: |
| 212 | |
| 213 | $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/local/lib |
| 214 | $ make CPPFLAGS="-I$HOME/local/include" |