diff options
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | README | 154 | ||||
-rw-r--r-- | docs/doxygen/other/build_guide.dox | 32 | ||||
-rw-r--r-- | gnuradio-core/src/lib/swig/gnuradio.i | 3 | ||||
-rw-r--r-- | gnuradio-core/src/lib/swig/gr_swig_block_magic.i | 10 | ||||
-rwxr-xr-x | gr-uhd/apps/uhd_fft | 6 | ||||
-rw-r--r-- | gr-uhd/apps/uhd_siggen_base.py | 6 |
7 files changed, 42 insertions, 173 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 73473c5f3..5731ee907 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,8 +41,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules) # Set the version information here set(VERSION_INFO_MAJOR_VERSION 3) set(VERSION_INFO_API_COMPAT 6) -set(VERSION_INFO_MINOR_VERSION 0) -set(VERSION_INFO_MAINT_VERSION 0) +set(VERSION_INFO_MINOR_VERSION 1) +set(VERSION_INFO_MAINT_VERSION git) include(GrVersion) #setup version info # Append -O2 optimization flag for Debug builds @@ -46,21 +46,16 @@ http://gnuradio.org/redmine/projects/gnuradio/wiki/DevelopingWithGit 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. - - 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. +For more complete instructions, see the "Building GNU Radio" page in +the GNU Radio manual (can be built or found online at +http://gnuradio.org/doc/doxygen/page_build.html). +See these steps fow a quick build guide. + + (1) Ensure that you've satisfied the external dependencies. These + dependencies are listed in the manual's build page and are not + presented here to reduce duplication errors. + 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 @@ -105,147 +100,20 @@ with '-O3', which is the default. ------------------------------------------------------------------------------- - External dependencies + NOTES ------------------------------------------------------------------------------- -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) cmake 2.6 or later http://www.cmake.org/cmake/resources/software.html - -(2) 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. - - -(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 -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. - -GNU/Linux packages of single-precision fftw are typically called -fftw3f. - -In systems using pkgsrc, install math/fftwf, which provides the -single-precision libraries. - - -(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) 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 - - -(6) The Boost C++ Libraries (1.35 or later) http://www.boost.org - -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 - -Unit testing framework for C++. - - -(8) Simple Wrapper Interface Generator. http://www.swig.org - -As of repository version 4045, gnuradio requires version 1.3.31 or newer. - - -(9) 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.8 or later. Again, almost all systems have this -available. - -As a last resort, build it from source (not recommended!) -http://www.wxpython.org - -(11) xmlto version ? or later. http://cyberelk.net/tim/xmlto/index.html - -Wrapper for XML conversion tools to ease e.g. making html from docbook. - -(12) Python Cheetah extensions 2.0.0 or later -(13) Python lxml wrappers 2.0.0 or later -(14) Python gtk wrappers 2.10.0 or later - -The GNU Radio Companion application requires these additional Python libraries -to be installed. - -The gr-qtgui requires these packages: - -(15) Qt 4.4 or later -(16) Qwt 5.2 or later -(17) PyQt 4.4 or later -(18) PyQwt 5.2 or later - -It is also useful to have Python's Scipy and Matplot lib packages to -run some of the example. - ----------------------------------------------------------------- - -If you have 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 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 + $ export PYTHONPATH=/usr/local/lib/python2.7/dist-packages You may want to add this to your shell init file (~/.bash_profile if you use bash). - 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: diff --git a/docs/doxygen/other/build_guide.dox b/docs/doxygen/other/build_guide.dox index 780976d62..629a0f89f 100644 --- a/docs/doxygen/other/build_guide.dox +++ b/docs/doxygen/other/build_guide.dox @@ -19,13 +19,16 @@ components is determined by what the user requires from GNU Radio. If, for example, you do not use any Comedi-based hardware, do not worry about building gr-comedi. +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. + \subsection dep_global Global Dependencies \li git http://code.google.com/p/msysgit \li cmake (>= 2.6) http://www.cmake.org/cmake/resources/software.html \li boost (>= 1.35) http://www.boostpro.com/download \li cppunit (>= 1.9.14) http://gaiacrtn.free.fr/cppunit/index.html \li fftw3f (>= 3.0) http://www.fftw.org/install/windows.html -\li gsl (>= 1.10) http://gnuwin32.sourceforge.net/packages/gsl.htm \subsection dep_python Python Wrappers \li python (>= 2.5) http://www.python.org/download/ @@ -39,6 +42,9 @@ about building gr-comedi. \li Cheetah (>= 2.0) http://www.cheetahtemplate.org/ \li pygtk (>= 2.10) http://www.pygtk.org/downloads.html +\subsection dep_wavelet gr-wavelet: Collection of wavelet blocks +\li gsl (>= 1.10) http://gnuwin32.sourceforge.net/packages/gsl.htm + \subsection dep_gr_qtgui gr-qtgui: The QT-based Graphical User Interface \li qt (>= 4.4) http://qt.nokia.com/downloads/ \li qwt (>= 5.2) http://sourceforge.net/projects/qwt/ @@ -57,6 +63,10 @@ about building gr-comedi. \li audio-osx \li audio-windows +It is not necessary to satisfy all of these dependencies; just the +one(s) that are right for your system. On Linux, don't expect +audio-osx and audio-windows to be either satisfied or built. + \subsection dep_uhd uhd: The Ettus USRP Hardware Driver Interface \li uhd (>= 3.0.0) http://code.ettus.com/redmine/ettus/projects/uhd/wiki @@ -146,23 +156,3 @@ cmake -DCMAKE_CXX_FLAGS:STRING="-mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -g -DCMAKE_C_FLAGS:STRING="-mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -g" \ <gr_source_dir> \endcode - - -\section build_old_autotools Building Using Old Autotools Method - -As of version 3.5, we have moved to using Cmake as the default, -preferred build system. If for some reason, Cmake fails on your -system, GNU Radio still includes the old autotools build process as a -parallel build method. To build: - -\code -$ cd $(srcdir) -$ ./bootstrap // only if not building from a tarball -$ cd $(builddir) -$ $(srcdir)/configure [options] -$ make [-jN] -$ make check -$ sudo make install -\endcode - -*/ diff --git a/gnuradio-core/src/lib/swig/gnuradio.i b/gnuradio-core/src/lib/swig/gnuradio.i index 239223851..3a421ad5d 100644 --- a/gnuradio-core/src/lib/swig/gnuradio.i +++ b/gnuradio-core/src/lib/swig/gnuradio.i @@ -20,6 +20,9 @@ * Boston, MA 02110-1301, USA. */ +// Disable warning about base class types +#pragma SWIG nowarn=401 + //////////////////////////////////////////////////////////////////////// // gnuradio.i // SWIG interface definition diff --git a/gnuradio-core/src/lib/swig/gr_swig_block_magic.i b/gnuradio-core/src/lib/swig/gr_swig_block_magic.i index cdc9fbe49..4016ae772 100644 --- a/gnuradio-core/src/lib/swig/gr_swig_block_magic.i +++ b/gnuradio-core/src/lib/swig/gr_swig_block_magic.i @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2004,2010 Free Software Foundation, Inc. + * Copyright 2004,2010,2012 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -40,3 +40,11 @@ FULL_NAME ## _sptr.__repr__ = lambda self: "<gr_block %s (%d)>" % (self.name(), %} %enddef #endif + +%define GR_SWIG_BLOCK_MAGIC2(PKG, BASE_NAME) +%template(BASE_NAME ## _sptr) boost::shared_ptr<gr:: ## PKG ## :: ## BASE_NAME>; +%pythoncode %{ +BASE_NAME ## _sptr.__repr__ = lambda self: "<gr_block %s (%d)>" % (self.name(), self.unique_id()) +BASE_NAME = BASE_NAME.make; +%} +%enddef diff --git a/gr-uhd/apps/uhd_fft b/gr-uhd/apps/uhd_fft index 8bb5e0d2b..7af2c5326 100755 --- a/gr-uhd/apps/uhd_fft +++ b/gr-uhd/apps/uhd_fft @@ -196,18 +196,18 @@ class app_top_block(stdgui2.std_top_block): callback=self.set_gain) try: - mboard_id = self.u.get_usrp_info().get("mboard_id").split(" ")[0] + mboard_id = self.u.get_usrp_info().get("mboard_id") mboard_serial = self.u.get_usrp_info().get("mboard_serial") if mboard_serial == "": mboard_serial = "no serial" - dboard_id = self.u.get_usrp_info().get("rx_id").split(" ")[0].split(",")[0] + dboard_subdev_name = self.u.get_usrp_info().get("rx_subdev_name") dboard_serial = self.u.get_usrp_info().get("rx_serial") if dboard_serial == "": dboard_serial = "no serial" subdev = self.u.get_subdev_spec() antenna = self.u.get_antenna() - usrp_config_val = "%s (%s), %s (%s, %s, %s)" % (mboard_id, mboard_serial, dboard_id, dboard_serial, subdev, antenna) + usrp_config_val = "%s (%s), %s (%s, %s, %s)" % (mboard_id, mboard_serial, dboard_subdev_name, dboard_serial, subdev, antenna) except: usrp_config_val = "Not implemented in this version." diff --git a/gr-uhd/apps/uhd_siggen_base.py b/gr-uhd/apps/uhd_siggen_base.py index 5fa881e42..8c69da1cc 100644 --- a/gr-uhd/apps/uhd_siggen_base.py +++ b/gr-uhd/apps/uhd_siggen_base.py @@ -110,11 +110,11 @@ class top_block(gr.top_block, pubsub): # Setup USRP Configuration value try: usrp_info = self._u.get_usrp_info() - mboard_id = usrp_info.get("mboard_id").split(" ")[0] + mboard_id = usrp_info.get("mboard_id") mboard_serial = usrp_info.get("mboard_serial") if mboard_serial == "": mboard_serial = "no serial" - dboard_id = usrp_info.get("tx_id").split(" ")[0].split(",")[0] + dboard_subdev_name = usrp_info.get("tx_subdev_name") dboard_serial = usrp_info.get("tx_serial") if dboard_serial == "": dboard_serial = "no serial" @@ -122,7 +122,7 @@ class top_block(gr.top_block, pubsub): antenna = self._u.get_antenna() desc_key_str = "Motherboard: %s [%s]\n" % (mboard_id, mboard_serial) - desc_key_str += "Daughterboard: %s [%s]\n" % (dboard_id, dboard_serial) + desc_key_str += "Daughterboard: %s [%s]\n" % (dboard_subdev_name, dboard_serial) desc_key_str += "Subdev: %s\n" % subdev desc_key_str += "Antenna: %s" % antenna except: |