From 62eb0520ba866cc2eb7a4aa3e0ba0cdd325b6c0a Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@vt.edu>
Date: Sun, 22 Apr 2012 20:59:42 -0400
Subject: docs: updating build dependency and building instructions.

---
 docs/doxygen/other/build_guide.dox | 32 +++++++++++---------------------
 1 file changed, 11 insertions(+), 21 deletions(-)

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/other/build_guide.dox b/docs/doxygen/other/build_guide.dox
index 780976d626..629a0f89f2 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
-
-*/
-- 
cgit v1.2.3


From da42490eb23389949473c445b9cfb2a6f109440f Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@vt.edu>
Date: Tue, 1 May 2012 15:37:12 -0400
Subject: docs: fixed bug in doxygen looking at howto dir.

---
 docs/doxygen/Doxyfile.in | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/Doxyfile.in b/docs/doxygen/Doxyfile.in
index f3485316c4..ad3c2d01f4 100644
--- a/docs/doxygen/Doxyfile.in
+++ b/docs/doxygen/Doxyfile.in
@@ -628,7 +628,6 @@ EXCLUDE                = @abs_top_builddir@/docs/doxygen/html \
                          @abs_top_builddir@/gr-gsm-fr-vocoder/src/lib/gsm_full_rate.py \
                          @abs_top_builddir@/gr-gsm-fr-vocoder/src/python/encdec.py \
                          @abs_top_builddir@/gr-howto-write-a-block \
-                         @abs_top_builddir@/gr-howto-write-a-block-cmake \
                          @abs_top_builddir@/gr-pager/src/pager_swig.py \
                          @abs_top_builddir@/gr-trellis/doc \
                          @abs_top_builddir@/gr-trellis/src/lib/generate_all.py \
@@ -640,7 +639,7 @@ EXCLUDE                = @abs_top_builddir@/docs/doxygen/html \
 			 @abs_top_builddir@/_CPack_Packages \
                          @abs_top_srcdir@/cmake \
 			 @abs_top_srcdir@/gr-qtgui/lib \
-                         @abs_top_srcdir@/gr-howto-write-a-block-cmake
+                         @abs_top_srcdir@/gr-howto-write-a-block
 
 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or
 # directories that are symbolic links (a Unix filesystem feature) are excluded
-- 
cgit v1.2.3


From ace7a97a3e93dcb2f9cd6460ddb847cc1512bdd4 Mon Sep 17 00:00:00 2001
From: Ben Reynwar <ben@reynwar.net>
Date: Tue, 8 May 2012 12:59:38 -0700
Subject: doxyxml: Added parsing of parameters from xml.

---
 docs/doxygen/doxyxml/doxyindex.py | 81 +++++++++++++++++++++++++++++----------
 1 file changed, 60 insertions(+), 21 deletions(-)

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/doxyxml/doxyindex.py b/docs/doxygen/doxyxml/doxyindex.py
index 0132ab86fd..84bc7b88c3 100644
--- a/docs/doxygen/doxyxml/doxyindex.py
+++ b/docs/doxygen/doxyxml/doxyindex.py
@@ -1,23 +1,23 @@
 #
 # Copyright 2010 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 3, 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., 51 Franklin Street,
 # Boston, MA 02110-1301, USA.
-#
+# 
 """
 Classes providing more user-friendly interfaces to the doxygen xml
 docs than the generated classes provide.
@@ -40,7 +40,7 @@ class DoxyIndex(Base):
         if self._parsed:
             return
         super(DoxyIndex, self)._parse()
-        self._root = index.parse(os.path.join(self._xml_path, 'index.xml'))
+        self._root = index.parse(os.path.join(self._xml_path, 'index.xml'))      
         for mem in self._root.compound:
             converted = self.convert_mem(mem)
             # For files we want the contents to be accessible directly
@@ -78,14 +78,14 @@ class DoxyCompMem(Base):
         bd = description(getattr(parse_data, 'briefdescription', None))
         dd = description(getattr(parse_data, 'detaileddescription', None))
         self._data['brief_description'] = bd
-        self._data['detailed_description'] = dd
+        self._data['detailed_description'] = dd        
 
 class DoxyCompound(DoxyCompMem):
     pass
 
 class DoxyMember(DoxyCompMem):
     pass
-
+    
 
 class DoxyFunction(DoxyMember):
 
@@ -111,7 +111,7 @@ Base.mem_classes.append(DoxyFunction)
 
 
 class DoxyParam(DoxyMember):
-
+    
     __module__ = "gnuradio.utils.doxyxml"
 
     def _parse(self):
@@ -125,12 +125,33 @@ class DoxyParam(DoxyMember):
     detailed_description = property(lambda self: self.data()['detailed_description'])
     declname = property(lambda self: self.data()['declname'])
 
-class DoxyClass(DoxyCompound):
+class DoxyParameterItem(DoxyMember):
+    """A different representation of a parameter in Doxygen."""
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyParameterItem, self)._parse()
+        names = []
+        for nl in self._parse_data.parameternamelist:
+            for pn in nl.parametername:
+                names.append(description(pn))
+        # Just take first name
+        self._data['name'] = names[0]
+        # Get description
+        pd = description(self._parse_data.get_parameterdescription())
+        self._data['description'] = pd
+
+    description = property(lambda self: self.data()['description'])
+    name = property(lambda self: self.data()['name'])
+
 
+class DoxyClass(DoxyCompound):
+    
     __module__ = "gnuradio.utils.doxyxml"
 
     kind = 'class'
-
+    
     def _parse(self):
         if self._parsed:
             return
@@ -139,22 +160,40 @@ class DoxyClass(DoxyCompound):
         if self._error:
             return
         self.set_descriptions(self._retrieved_data.compounddef)
+        self.set_parameters(self._retrieved_data.compounddef)
         # Sectiondef.kind tells about whether private or public.
         # We just ignore this for now.
         self.process_memberdefs()
 
+    def set_parameters(self, data):
+        vs = [ddc.value for ddc in data.detaileddescription.content_]
+        pls = []
+        for v in vs:
+            if hasattr(v, 'parameterlist'):
+                pls += v.parameterlist
+        pis = []
+        for pl in pls:
+            pis += pl.parameteritem
+        dpis = []
+        for pi in pis:
+            dpi = DoxyParameterItem(pi)
+            dpi._parse()
+            dpis.append(dpi)
+        self._data['params'] = dpis
+        
     brief_description = property(lambda self: self.data()['brief_description'])
     detailed_description = property(lambda self: self.data()['detailed_description'])
+    params = property(lambda self: self.data()['params'])
 
 Base.mem_classes.append(DoxyClass)
-
+        
 
 class DoxyFile(DoxyCompound):
-
+    
     __module__ = "gnuradio.utils.doxyxml"
 
     kind = 'file'
-
+    
     def _parse(self):
         if self._parsed:
             return
@@ -164,7 +203,7 @@ class DoxyFile(DoxyCompound):
         if self._error:
             return
         self.process_memberdefs()
-
+        
     brief_description = property(lambda self: self.data()['brief_description'])
     detailed_description = property(lambda self: self.data()['detailed_description'])
 
@@ -172,16 +211,16 @@ Base.mem_classes.append(DoxyFile)
 
 
 class DoxyNamespace(DoxyCompound):
-
+    
     __module__ = "gnuradio.utils.doxyxml"
 
     kind = 'namespace'
-
+    
 Base.mem_classes.append(DoxyNamespace)
 
 
 class DoxyGroup(DoxyCompound):
-
+    
     __module__ = "gnuradio.utils.doxyxml"
 
     kind = 'group'
@@ -209,7 +248,7 @@ class DoxyGroup(DoxyCompound):
         self.process_memberdefs()
 
     title = property(lambda self: self.data()['title'])
-
+        
 
 Base.mem_classes.append(DoxyGroup)
 
@@ -224,7 +263,7 @@ Base.mem_classes.append(DoxyFriend)
 
 
 class DoxyOther(Base):
-
+    
     __module__ = "gnuradio.utils.doxyxml"
 
     kinds = set(['variable', 'struct', 'union', 'define', 'typedef', 'enum', 'dir', 'page'])
@@ -232,6 +271,6 @@ class DoxyOther(Base):
     @classmethod
     def can_parse(cls, obj):
         return obj.kind in cls.kinds
-
+    
 Base.mem_classes.append(DoxyOther)
 
-- 
cgit v1.2.3


From 40d1539f04b945045352db7329ae83562c32ddf0 Mon Sep 17 00:00:00 2001
From: Ben Reynwar <ben@reynwar.net>
Date: Tue, 8 May 2012 13:07:02 -0700
Subject: docs: Modified swig_doc.py to put parameter info in docstrings.

---
 docs/doxygen/swig_doc.py | 138 +++++++++++++++++++++++------------------------
 1 file changed, 69 insertions(+), 69 deletions(-)

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/swig_doc.py b/docs/doxygen/swig_doc.py
index bd35b8efdd..414748bbae 100644
--- a/docs/doxygen/swig_doc.py
+++ b/docs/doxygen/swig_doc.py
@@ -1,23 +1,23 @@
 #
 # Copyright 2010,2011 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 3, 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., 51 Franklin Street,
 # Boston, MA 02110-1301, USA.
-#
+# 
 """
 Creates the swig_doc.i SWIG interface file.
 Execute using: python swig_doc.py xml_path outputfilename
@@ -29,11 +29,7 @@ python docstrings.
 
 import sys, time
 
-try:
-    from doxyxml import DoxyIndex, DoxyClass, DoxyFriend, DoxyFunction, DoxyFile, base
-except ImportError:
-    from gnuradio.doxyxml import DoxyIndex, DoxyClass, DoxyFriend, DoxyFunction, DoxyFile, base
-
+from doxyxml import DoxyIndex, DoxyClass, DoxyFriend, DoxyFunction, DoxyFile, base
 
 def py_name(name):
     bits = name.split('_')
@@ -56,7 +52,9 @@ class Block(object):
         # Check for a parsing error.
         if item.error():
             return False
-        return item.has_member(make_name(item.name()), DoxyFriend)
+        friendname = make_name(item.name())
+        is_a_block = item.has_member(friendname, DoxyFriend)
+        return is_a_block
 
 
 def utoascii(text):
@@ -82,13 +80,19 @@ def combine_descriptions(obj):
     if dd:
         description.append(dd)
     return utoascii('\n\n'.join(description)).strip()
-
+    
+def format_params(parameteritems):
+    output = ['Args:']
+    template = '    {0} : {1}'
+    for pi in parameteritems:
+        output.append(template.format(pi.name, pi.description))
+    return '\n'.join(output)
 
 entry_templ = '%feature("docstring") {name} "{docstring}"'
-def make_entry(obj, name=None, templ="{description}", description=None):
+def make_entry(obj, name=None, templ="{description}", description=None, params=[]):
     """
     Create a docstring entry for a swig interface file.
-
+    
     obj - a doxyxml object from which documentation will be extracted.
     name - the name of the C object (defaults to obj.name())
     templ - an optional template for the docstring containing only one
@@ -102,6 +106,9 @@ def make_entry(obj, name=None, templ="{description}", description=None):
         return ''
     if description is None:
         description = combine_descriptions(obj)
+    if params:
+        description += '\n\n'
+        description += utoascii(format_params(params))
     docstring = templ.format(description=description)
     if not docstring:
         return ''
@@ -121,16 +128,17 @@ def make_func_entry(func, name=None, description=None, params=None):
             used as the description instead of extracting it from func.
     params - a parameter list that overrides using func.params.
     """
-    if params is None:
-        params = func.params
-    params = [prm.declname for prm in params]
-    if params:
-        sig = "Params: (%s)" % ", ".join(params)
-    else:
-        sig = "Params: (NONE)"
-    templ = "{description}\n\n" + sig
-    return make_entry(func, name=name, templ=utoascii(templ),
-                      description=description)
+    #if params is None:
+    #    params = func.params
+    #params = [prm.declname for prm in params]
+    #if params:
+    #    sig = "Params: (%s)" % ", ".join(params)
+    #else:
+    #    sig = "Params: (NONE)"
+    #templ = "{description}\n\n" + sig
+    #return make_entry(func, name=name, templ=utoascii(templ),
+    #                  description=description)
+    return make_entry(func, name=name, description=description, params=params)
 
 
 def make_class_entry(klass, description=None):
@@ -138,7 +146,7 @@ def make_class_entry(klass, description=None):
     Create a class docstring for a swig interface file.
     """
     output = []
-    output.append(make_entry(klass, description=description))
+    output.append(make_entry(klass, description=description, params=klass.params))
     for func in klass.in_category(DoxyFunction):
         name = klass.name() + '::' + func.name()
         output.append(make_func_entry(func, name=name))
@@ -177,16 +185,33 @@ def make_block_entry(di, block):
     output.append(make_class_entry(block, description=super_description))
     creator = block.get_member(block.name(), DoxyFunction)
     output.append(make_func_entry(make_func, description=super_description,
-                                  params=creator.params))
+                                  params=block.params))
     return "\n\n".join(output)
 
+def wait_if_necessary(tries, swigdocfilename, item=None):
+    if item is not None:
+        extra = ', item {0}'.format(item.name())
+    else:
+        extra = ''
+    if(tries < 3):
+        # May not be built just yet; sleep and try again
+        sys.stderr.write("XML parsing problem with file {0}{1}, retrying.\n".format(
+                swigdocfilename, extra))
+        time.sleep(1)
+        tries += 1
+        return tries, True
+    else:
+        # if we've given it three tries, give up and raise an error
+        sys.stderr.write("XML parsing error with file {0}{1}. giving up.\n".format(
+                swigdocfilename, extra))
+        return tries, False
 
-def make_swig_interface_file(di, swigdocfilename, custom_output=None):
-
+def make_swig_interface_file(di, swigdocfilename, custom_output=None, tries=0):
+    
     output = ["""
 /*
  * This file was automatically generated using swig_doc.py.
- *
+ * 
  * Any changes to it will be lost next time it is regenerated.
  */
 """]
@@ -195,46 +220,29 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None):
         output.append(custom_output)
 
     # Create docstrings for the blocks.
-    tries = 0
     while(1):
         try:
             blocks = di.in_category(Block)
         except:
-            if(tries < 3):
-                # May not be built just yet; sleep and try again
-                sys.stderr.write("XML parsing problem with file {0}, retrying.\n".format(
-                        swigdocfilename))
-                time.sleep(1)
-                tries += 1
-            else:
-                # if we've given it three tries, give up and raise an error
-                sys.stderr.write("XML parsing error with file {0}. giving up.\n".format(
-                        swigdocfilename))
+            tries, try_again = wait_if_necessary(tries, swigdocfilename)
+            if not try_again:
                 raise
         else:
             break
-
     make_funcs = set([])
     for block in blocks:
-        tries = 0
         while(1):
             try:
                 make_func = di.get_member(make_name(block.name()), DoxyFunction)
-                make_funcs.add(make_func.name())
-                output.append(make_block_entry(di, block))
+                # Don't want to risk writing to output twice.
+                if make_func.name() not in make_funcs:
+                    make_funcs.add(make_func.name())
+                    output.append(make_block_entry(di, block))
             except block.ParsingError:
-                sys.stderr.write('Parsing error for block {0}'.format(block.name()))
+                sys.stderr.write('Parsing error for block {0}\n'.format(block.name()))
             except:
-                if(tries < 3):
-                    # May not be built just yet; sleep and try again
-                    sys.stderr.write("XML parsing problem with file {0}, retrying.\n".format(
-                            swigdocfilename))
-                    time.sleep(1)
-                    tries += 1
-                else:
-                    # if we've given it three tries, give up and raise an error
-                    sys.stderr.write("XML parsing error with file {0}. giving up.\n".format(
-                            swigdocfilename))
+                tries, try_again = wait_if_necessary(tries, swigdocfilename, block)
+                if not try_again:
                     raise
             else:
                 break
@@ -246,7 +254,7 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None):
         try:
             output.append(make_func_entry(f))
         except f.ParsingError:
-            sys.stderr.write('Parsing error for function {0}'.format(f.name()))
+            sys.stderr.write('Parsing error for function {0}\n'.format(f.name()))
 
     # Create docstrings for classes
     block_names = [block.name() for block in blocks]
@@ -255,7 +263,7 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None):
         try:
             output.append(make_class_entry(k))
         except k.ParsingError:
-            sys.stderr.write('Parsing error for class {0}'.format(k.name()))
+            sys.stderr.write('Parsing error for class {0}\n'.format(k.name()))
 
     # Docstrings are not created for anything that is not a function or a class.
     # If this excludes anything important please add it here.
@@ -291,19 +299,11 @@ if __name__ == "__main__":
     tries = 0
     while(1):
         try:
-            make_swig_interface_file(di, swigdocfilename, custom_output=custom_output)
+            make_swig_interface_file(di, swigdocfilename, custom_output=custom_output, tries=tries)
         except:
-            if(tries < 3):
-                # May not be built just yet; sleep and try again
-                sys.stderr.write("XML parsing problem with file {0}, retrying.\n".format(
-                        swigdocfilename))
-                time.sleep(1)
-                tries += 1
-            else:
-                # if we've given it three tries, give up and raise an error
-                sys.stderr.write("XML parsing error with file {0}. giving up.\n".format(
-                        swigdocfilename))
+            tries, try_again = wait_if_necessary(tries, swigdocfilename)
+            if not try_again:
                 raise
         else:
             break
-
+        
-- 
cgit v1.2.3


From bc1b4c18c8f16b6fbc666593869547ad2529662f Mon Sep 17 00:00:00 2001
From: Ben Reynwar <ben@reynwar.net>
Date: Mon, 21 May 2012 22:15:08 -0700
Subject: docs: Fixing swig_doc and sphinx so that it can deal with 3.7 style.

---
 docs/doxygen/doxyxml/doxyindex.py          |  56 ++++++++------
 docs/doxygen/swig_doc.py                   |  81 ++++++++++++++++++--
 docs/sphinx/README                         |  13 ++--
 docs/sphinx/gnuradio_sphinx.py             |  38 +++++++++-
 docs/sphinx/source/atsc/blks.rst           |  34 ++++-----
 docs/sphinx/source/audio/index.rst         |   4 +-
 docs/sphinx/source/digital/blocks.rst      |  32 ++++----
 docs/sphinx/source/gr/coding_blk.rst       |  16 ++--
 docs/sphinx/source/gr/converter_blk.rst    |  58 +++++++-------
 docs/sphinx/source/gr/demodulation_blk.rst |   2 +-
 docs/sphinx/source/gr/dft_blk.rst          |   6 +-
 docs/sphinx/source/gr/filter_blk.rst       |  86 ++++++++++-----------
 docs/sphinx/source/gr/level_blk.rst        |  46 +++++------
 docs/sphinx/source/gr/math_blk.rst         | 112 +++++++++++++--------------
 docs/sphinx/source/gr/misc_blk.rst         |  18 ++---
 docs/sphinx/source/gr/modulation_blk.rst   |   6 +-
 docs/sphinx/source/gr/sink_blk.rst         |  44 +++++------
 docs/sphinx/source/gr/slicedice_blk.rst    |  22 +++---
 docs/sphinx/source/gr/source_blk.rst       |  44 +++++------
 docs/sphinx/source/gr/sync_blk.rst         |  12 +--
 docs/sphinx/source/noaa.rst                |   6 +-
 docs/sphinx/source/pager/blks.rst          |  10 +--
 docs/sphinx/source/qtgui/index.rst         |   8 +-
 docs/sphinx/source/trellis/blks.rst        | 118 ++++++++++++++---------------
 docs/sphinx/source/video_sdl.rst           |   4 +-
 docs/sphinx/source/vocoder/blks.rst        |  32 ++++----
 docs/sphinx/source/wavelet.rst             |   6 +-
 27 files changed, 513 insertions(+), 401 deletions(-)

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/doxyxml/doxyindex.py b/docs/doxygen/doxyxml/doxyindex.py
index 84bc7b88c3..304109a8e5 100644
--- a/docs/doxygen/doxyxml/doxyindex.py
+++ b/docs/doxygen/doxyxml/doxyindex.py
@@ -80,12 +80,28 @@ class DoxyCompMem(Base):
         self._data['brief_description'] = bd
         self._data['detailed_description'] = dd        
 
+    def set_parameters(self, data):
+        vs = [ddc.value for ddc in data.detaileddescription.content_]
+        pls = []
+        for v in vs:
+            if hasattr(v, 'parameterlist'):
+                pls += v.parameterlist
+        pis = []
+        for pl in pls:
+            pis += pl.parameteritem
+        dpis = []
+        for pi in pis:
+            dpi = DoxyParameterItem(pi)
+            dpi._parse()
+            dpis.append(dpi)
+        self._data['params'] = dpis
+
+
 class DoxyCompound(DoxyCompMem):
     pass
 
 class DoxyMember(DoxyCompMem):
     pass
-    
 
 class DoxyFunction(DoxyMember):
 
@@ -98,10 +114,13 @@ class DoxyFunction(DoxyMember):
             return
         super(DoxyFunction, self)._parse()
         self.set_descriptions(self._parse_data)
-        self._data['params'] = []
-        prms = self._parse_data.param
-        for prm in prms:
-            self._data['params'].append(DoxyParam(prm))
+        self.set_parameters(self._parse_data)
+        if not self._data['params']:
+            # If the params weren't set by a comment then just grab the names.
+            self._data['params'] = []
+            prms = self._parse_data.param
+            for prm in prms:
+                self._data['params'].append(DoxyParam(prm))
 
     brief_description = property(lambda self: self.data()['brief_description'])
     detailed_description = property(lambda self: self.data()['detailed_description'])
@@ -121,9 +140,18 @@ class DoxyParam(DoxyMember):
         self.set_descriptions(self._parse_data)
         self._data['declname'] = self._parse_data.declname
 
+    @property
+    def description(self):
+        descriptions = []
+        if self.brief_description:
+            descriptions.append(self.brief_description)
+        if self.detailed_description:
+            descriptions.append(self.detailed_description)
+        return '\n\n'.join(descriptions)
+
     brief_description = property(lambda self: self.data()['brief_description'])
     detailed_description = property(lambda self: self.data()['detailed_description'])
-    declname = property(lambda self: self.data()['declname'])
+    name = property(lambda self: self.data()['declname'])
 
 class DoxyParameterItem(DoxyMember):
     """A different representation of a parameter in Doxygen."""
@@ -165,22 +193,6 @@ class DoxyClass(DoxyCompound):
         # We just ignore this for now.
         self.process_memberdefs()
 
-    def set_parameters(self, data):
-        vs = [ddc.value for ddc in data.detaileddescription.content_]
-        pls = []
-        for v in vs:
-            if hasattr(v, 'parameterlist'):
-                pls += v.parameterlist
-        pis = []
-        for pl in pls:
-            pis += pl.parameteritem
-        dpis = []
-        for pi in pis:
-            dpi = DoxyParameterItem(pi)
-            dpi._parse()
-            dpis.append(dpi)
-        self._data['params'] = dpis
-        
     brief_description = property(lambda self: self.data()['brief_description'])
     detailed_description = property(lambda self: self.data()['detailed_description'])
     params = property(lambda self: self.data()['params'])
diff --git a/docs/doxygen/swig_doc.py b/docs/doxygen/swig_doc.py
index 414748bbae..9277470984 100644
--- a/docs/doxygen/swig_doc.py
+++ b/docs/doxygen/swig_doc.py
@@ -29,7 +29,8 @@ python docstrings.
 
 import sys, time
 
-from doxyxml import DoxyIndex, DoxyClass, DoxyFriend, DoxyFunction, DoxyFile, base
+from doxyxml import DoxyIndex, DoxyClass, DoxyFriend, DoxyFunction, DoxyFile
+from doxyxml import DoxyOther, base
 
 def py_name(name):
     bits = name.split('_')
@@ -54,8 +55,27 @@ class Block(object):
             return False
         friendname = make_name(item.name())
         is_a_block = item.has_member(friendname, DoxyFriend)
+        # But now sometimes the make function isn't a friend so check again.
+        if not is_a_block:
+            is_a_block = di.has_member(friendname, DoxyFunction)
         return is_a_block
 
+class Block2(object):
+    """
+    Checks if doxyxml produced objects correspond to a new style
+    gnuradio block.
+    """
+    
+    @classmethod
+    def includes(cls, item):
+        if not isinstance(item, DoxyClass):
+            return False
+        # Check for a parsing error.
+        if item.error():
+            return False
+        is_a_block2 = item.has_member('make', DoxyFunction) and item.has_member('sptr', DoxyOther)
+        return is_a_block2
+        
 
 def utoascii(text):
     """
@@ -141,15 +161,18 @@ def make_func_entry(func, name=None, description=None, params=None):
     return make_entry(func, name=name, description=description, params=params)
 
 
-def make_class_entry(klass, description=None):
+def make_class_entry(klass, description=None, ignored_methods=[], params=None):
     """
     Create a class docstring for a swig interface file.
     """
+    if params is None:
+        params = klass.params
     output = []
-    output.append(make_entry(klass, description=description, params=klass.params))
+    output.append(make_entry(klass, description=description, params=params))
     for func in klass.in_category(DoxyFunction):
-        name = klass.name() + '::' + func.name()
-        output.append(make_func_entry(func, name=name))
+        if func.name() not in ignored_methods:
+            name = klass.name() + '::' + func.name()
+            output.append(make_func_entry(func, name=name))
     return "\n\n".join(output)
 
 
@@ -183,11 +206,32 @@ def make_block_entry(di, block):
     # the make function.
     output = []
     output.append(make_class_entry(block, description=super_description))
-    creator = block.get_member(block.name(), DoxyFunction)
     output.append(make_func_entry(make_func, description=super_description,
                                   params=block.params))
     return "\n\n".join(output)
 
+def make_block2_entry(di, block):
+    """
+    Create class and function docstrings of a new style gnuradio block for a
+    swig interface file.
+    """
+    descriptions = []
+    # For new style blocks all the relevant documentation should be
+    # associated with the 'make' method.
+    make_func = block.get_member('make', DoxyFunction)
+    description = combine_descriptions(make_func)
+    # Associate the combined description with the class and
+    # the make function.
+    output = []
+    #output.append(make_class_entry(
+    #        block, description=description,
+    #        ignored_methods=['make'], params=make_func.params))
+    makename = block.name() + '::make'
+    output.append(make_func_entry(
+            make_func, name=makename, description=description,
+            params=make_func.params))
+    return "\n\n".join(output)
+
 def wait_if_necessary(tries, swigdocfilename, item=None):
     if item is not None:
         extra = ', item {0}'.format(item.name())
@@ -223,6 +267,7 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None, tries=0):
     while(1):
         try:
             blocks = di.in_category(Block)
+            blocks2 = di.in_category(Block2)
         except:
             tries, try_again = wait_if_necessary(tries, swigdocfilename)
             if not try_again:
@@ -246,10 +291,28 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None, tries=0):
                     raise
             else:
                 break
+    for block in blocks2:
+        while(1):
+            try:
+                make_func = block.get_member('make', DoxyFunction)
+                make_func_name = block.name() +'::make'
+                # Don't want to risk writing to output twice.
+                if make_func_name not in make_funcs:
+                    make_funcs.add(make_func_name)
+                    output.append(make_block2_entry(di, block))
+            except block.ParsingError:
+                sys.stderr.write('Parsing error for block {0}\n'.format(block.name()))
+            except:
+                tries, try_again = wait_if_necessary(tries, swigdocfilename, block)
+                if not try_again:
+                    raise
+            else:
+                break        
 
     # Create docstrings for functions
     # Don't include the make functions since they have already been dealt with.
-    funcs = [f for f in di.in_category(DoxyFunction) if f.name() not in make_funcs]
+    funcs = [f for f in di.in_category(DoxyFunction) 
+             if f.name() not in make_funcs and not f.name().startswith('std::')]
     for f in funcs:
         try:
             output.append(make_func_entry(f))
@@ -258,7 +321,9 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None, tries=0):
 
     # Create docstrings for classes
     block_names = [block.name() for block in blocks]
-    klasses = [k for k in di.in_category(DoxyClass) if k.name() not in block_names]
+    block_names += [block.name() for block in blocks2]
+    klasses = [k for k in di.in_category(DoxyClass)
+               if k.name() not in block_names and not k.name().startswith('std::')]
     for k in klasses:
         try:
             output.append(make_class_entry(k))
diff --git a/docs/sphinx/README b/docs/sphinx/README
index c3ac382648..0ae3a43f84 100644
--- a/docs/sphinx/README
+++ b/docs/sphinx/README
@@ -48,7 +48,7 @@ examples.
    under the "Slicing and Dicing Streams" subheading.
    Edit file gnuradio/docs/sphinx/source/gr/slicedice_blk.rst and add
    the line
-   >.. autoblock:: gnuradio.gr.myslicer
+   >.. autooldblock:: gnuradio.gr.myslicer
 
 2) Adding a new python hierarchical block gnuradio.digital.mymod
    Edit file gnruadio/docs/sphinx/source/digital/index.rst and add the
@@ -63,7 +63,10 @@ examples.
    a python hierarchical signal processing block so that it can format
    it appropriately.
 
-The process for documenting objects that are not signal processing blocks is
-similar but rather than using the 'autoblock' and 'autopyblock' directives
-the standard sphinx directives such as 'autofunction' and 'autoclass' can
-be used.
\ No newline at end of file
+The process for documenting objects that are not signal processing
+blocks is similar but rather than using the 'autooldblock', and
+'autopyblock' directives the standard sphinx directives such as
+'autofunction' and 'autoclass' can be used.
+
+Finally for signal processing blocks using the 3.7 style the directive
+'autoblock' rather than 'autooldblock' can be used.
\ No newline at end of file
diff --git a/docs/sphinx/gnuradio_sphinx.py b/docs/sphinx/gnuradio_sphinx.py
index 6f35a6fce9..e8ca867f8c 100644
--- a/docs/sphinx/gnuradio_sphinx.py
+++ b/docs/sphinx/gnuradio_sphinx.py
@@ -15,6 +15,7 @@ def setup(sp):
     sp.connect('autodoc-process-signature', fix_signature)
     sp.connect('autodoc-process-docstring', remove_lines)
     # Add node to autodocument signal-processing blocks.
+    sp.add_autodocumenter(OldBlockDocumenter)
     sp.add_autodocumenter(BlockDocumenter)
     sp.add_autodocumenter(PyBlockDocumenter)
 
@@ -105,9 +106,10 @@ common_block_members =[
     'thisown',
     'to_basic_block',
     'unique_id',
+    'make',
     ]
 
-class BlockDocumenter(FunctionDocumenter):
+class OldBlockDocumenter(FunctionDocumenter):
     """
     Specialized Documenter subclass for gnuradio blocks.
 
@@ -115,13 +117,13 @@ class BlockDocumenter(FunctionDocumenter):
     with the wrapped sptr (e.g. gr.gr_head_sptr) to keep the documentation
     tidier.
     """
-    objtype = 'block'
+    objtype = 'oldblock'
     directivetype = 'function'
     # Don't want to use this for generic functions for give low priority.
     priority = -10 
     
     def __init__(self, *args, **kwargs):
-        super(BlockDocumenter, self).__init__(*args, **kwargs)
+        super(OldBlockDocumenter, self).__init__(*args, **kwargs)
         # Get class name
         bits = self.name.split('.')
         if len(bits) != 3 or bits[0] != 'gnuradio':
@@ -129,6 +131,36 @@ class BlockDocumenter(FunctionDocumenter):
         sptr_name = 'gnuradio.{0}.{0}_{1}_sptr'.format(bits[1], bits[2])
         # Create a Class Documenter to create documentation for the classes members.
         self.classdoccer = ClassDocumenter(self.directive, sptr_name, indent=self.content_indent)
+        self.classdoccer.doc_as_attr = False
+        self.classdoccer.real_modname = self.classdoccer.get_real_modname()
+        self.classdoccer.options.members = ALL
+        self.classdoccer.options.exclude_members = common_block_members
+        self.classdoccer.parse_name()
+        self.classdoccer.import_object()
+
+    def document_members(self, *args, **kwargs):
+        return self.classdoccer.document_members(*args, **kwargs)
+
+class BlockDocumenter(FunctionDocumenter):
+    """
+    Specialized Documenter subclass for new style gnuradio blocks.
+
+    It merges together the documentation for the generator function (e.g. wavelet.squash_ff)
+    with the wrapped sptr (e.g. wavelet.squash_ff_sptr) to keep the documentation
+    tidier.
+    """
+    objtype = 'block'
+    directivetype = 'function'
+    # Don't want to use this for generic functions for give low priority.
+    priority = -10 
+    
+    def __init__(self, *args, **kwargs):
+        super(BlockDocumenter, self).__init__(*args, **kwargs)
+        # Get class name
+        sptr_name = self.name + '_sptr'
+        # Create a Class Documenter to create documentation for the classes members.
+        self.classdoccer = ClassDocumenter(self.directive, sptr_name, indent=self.content_indent)
+        self.classdoccer.doc_as_attr = False
         self.classdoccer.real_modname = self.classdoccer.get_real_modname()
         self.classdoccer.options.members = ALL
         self.classdoccer.options.exclude_members = common_block_members
diff --git a/docs/sphinx/source/atsc/blks.rst b/docs/sphinx/source/atsc/blks.rst
index ce26f095b1..6f51a22876 100644
--- a/docs/sphinx/source/atsc/blks.rst
+++ b/docs/sphinx/source/atsc/blks.rst
@@ -1,20 +1,20 @@
 gnuradio.atsc: Signal Processing Blocks
 =======================================
 
-.. autoblock:: gnuradio.atsc.bit_timing_loop
-.. autoblock:: gnuradio.atsc.deinterleaver
-.. autoblock:: gnuradio.atsc.depad
-.. autoblock:: gnuradio.atsc.derandomizer
-.. autoblock:: gnuradio.atsc.ds_to_softds
-.. autoblock:: gnuradio.atsc.equalizer
-.. autoblock:: gnuradio.atsc.field_sync_demux
-.. autoblock:: gnuradio.atsc.field_sync_mux
-.. autoblock:: gnuradio.atsc.fpll
-.. autoblock:: gnuradio.atsc.fs_checker
-.. autoblock:: gnuradio.atsc.interleaver
-.. autoblock:: gnuradio.atsc.pad
-.. autoblock:: gnuradio.atsc.randomizer
-.. autoblock:: gnuradio.atsc.rs_decoder
-.. autoblock:: gnuradio.atsc.rs_encoder
-.. autoblock:: gnuradio.atsc.trellis_encoder
-.. autoblock:: gnuradio.atsc.viterbi_decoder
+.. autooldblock:: gnuradio.atsc.bit_timing_loop
+.. autooldblock:: gnuradio.atsc.deinterleaver
+.. autooldblock:: gnuradio.atsc.depad
+.. autooldblock:: gnuradio.atsc.derandomizer
+.. autooldblock:: gnuradio.atsc.ds_to_softds
+.. autooldblock:: gnuradio.atsc.equalizer
+.. autooldblock:: gnuradio.atsc.field_sync_demux
+.. autooldblock:: gnuradio.atsc.field_sync_mux
+.. autooldblock:: gnuradio.atsc.fpll
+.. autooldblock:: gnuradio.atsc.fs_checker
+.. autooldblock:: gnuradio.atsc.interleaver
+.. autooldblock:: gnuradio.atsc.pad
+.. autooldblock:: gnuradio.atsc.randomizer
+.. autooldblock:: gnuradio.atsc.rs_decoder
+.. autooldblock:: gnuradio.atsc.rs_encoder
+.. autooldblock:: gnuradio.atsc.trellis_encoder
+.. autooldblock:: gnuradio.atsc.viterbi_decoder
diff --git a/docs/sphinx/source/audio/index.rst b/docs/sphinx/source/audio/index.rst
index 31d53567b8..d0bc4f3c08 100644
--- a/docs/sphinx/source/audio/index.rst
+++ b/docs/sphinx/source/audio/index.rst
@@ -3,5 +3,5 @@ gnuradio.audio
 
 .. automodule:: gnuradio.audio
 
-.. autoblock:: gnuradio.audio.source
-.. autoblock:: gnuradio.audio.sink
+.. autooldblock:: gnuradio.audio.source
+.. autooldblock:: gnuradio.audio.sink
diff --git a/docs/sphinx/source/digital/blocks.rst b/docs/sphinx/source/digital/blocks.rst
index 2ac228d4ea..68ec8dad1c 100644
--- a/docs/sphinx/source/digital/blocks.rst
+++ b/docs/sphinx/source/digital/blocks.rst
@@ -1,22 +1,22 @@
 gnuradio.digital: Signal Processing Blocks
 ==========================================
 
-.. autoblock:: gnuradio.digital.fll_band_edge_cc
-.. autoblock:: gnuradio.digital.kurtotic_equalizer_cc
-.. autoblock:: gnuradio.digital.lms_dd_equalizer_cc
-.. autoblock:: gnuradio.digital.mpsk_receiver_cc
-.. autoblock:: gnuradio.digital.mpsk_snr_est_cc
-.. autoblock:: gnuradio.digital.clock_recovery_mm_cc
-.. autoblock:: gnuradio.digital.clock_recovery_mm_ff
-.. autoblock:: gnuradio.digital.constellation_decoder_cb
-.. autoblock:: gnuradio.digital.constellation_receiver_cb
-.. autoblock:: gnuradio.digital.correlate_access_code_bb
-.. autoblock:: gnuradio.digital.costas_loop_cc
-.. autoblock:: gnuradio.digital.cma_equalizer_cc
-.. autoblock:: gnuradio.digital.binary_slicer_fb
-.. autoblock:: gnuradio.digital.gmskmod_bc
-.. autoblock:: gnuradio.digital.probe_mpsk_snr_est_c
-.. autoblock:: gnuradio.digital.cpmmod_bc
+.. autooldblock:: gnuradio.digital.fll_band_edge_cc
+.. autooldblock:: gnuradio.digital.kurtotic_equalizer_cc
+.. autooldblock:: gnuradio.digital.lms_dd_equalizer_cc
+.. autooldblock:: gnuradio.digital.mpsk_receiver_cc
+.. autooldblock:: gnuradio.digital.mpsk_snr_est_cc
+.. autooldblock:: gnuradio.digital.clock_recovery_mm_cc
+.. autooldblock:: gnuradio.digital.clock_recovery_mm_ff
+.. autooldblock:: gnuradio.digital.constellation_decoder_cb
+.. autooldblock:: gnuradio.digital.constellation_receiver_cb
+.. autooldblock:: gnuradio.digital.correlate_access_code_bb
+.. autooldblock:: gnuradio.digital.costas_loop_cc
+.. autooldblock:: gnuradio.digital.cma_equalizer_cc
+.. autooldblock:: gnuradio.digital.binary_slicer_fb
+.. autooldblock:: gnuradio.digital.gmskmod_bc
+.. autooldblock:: gnuradio.digital.probe_mpsk_snr_est_c
+.. autooldblock:: gnuradio.digital.cpmmod_bc
 .. autopyblock:: gnuradio.digital.generic_demod
 .. autopyblock:: gnuradio.digital.generic_mod
 .. autopyblock:: gnuradio.digital.bpsk.dbpsk_demod
diff --git a/docs/sphinx/source/gr/coding_blk.rst b/docs/sphinx/source/gr/coding_blk.rst
index 87196a5aeb..e50b990bcd 100644
--- a/docs/sphinx/source/gr/coding_blk.rst
+++ b/docs/sphinx/source/gr/coding_blk.rst
@@ -1,11 +1,11 @@
 gnuradio.gr: Information Coding and Decoding
 ============================================
 
-.. autoblock:: gnuradio.gr.additive_scrambler_bb
-.. autoblock:: gnuradio.gr.descrambler_bb
-.. autoblock:: gnuradio.gr.diff_decoder_bb
-.. autoblock:: gnuradio.gr.diff_encoder_bb
-.. autoblock:: gnuradio.gr.fake_channel_encoder_pp
-.. autoblock:: gnuradio.gr.fake_channel_decoder_pp
-.. autoblock:: gnuradio.gr.map_bb
-.. autoblock:: gnuradio.gr.scrambler_bb
+.. autooldblock:: gnuradio.gr.additive_scrambler_bb
+.. autooldblock:: gnuradio.gr.descrambler_bb
+.. autooldblock:: gnuradio.gr.diff_decoder_bb
+.. autooldblock:: gnuradio.gr.diff_encoder_bb
+.. autooldblock:: gnuradio.gr.fake_channel_encoder_pp
+.. autooldblock:: gnuradio.gr.fake_channel_decoder_pp
+.. autooldblock:: gnuradio.gr.map_bb
+.. autooldblock:: gnuradio.gr.scrambler_bb
diff --git a/docs/sphinx/source/gr/converter_blk.rst b/docs/sphinx/source/gr/converter_blk.rst
index b0ddd1d8a9..790109a94f 100644
--- a/docs/sphinx/source/gr/converter_blk.rst
+++ b/docs/sphinx/source/gr/converter_blk.rst
@@ -1,32 +1,32 @@
 gnuradio.gr: Type Conversions
 =============================
 
-.. autoblock:: gnuradio.gr.bytes_to_syms
-.. autoblock:: gnuradio.gr.char_to_float
-.. autoblock:: gnuradio.gr.complex_to_interleaved_short
-.. autoblock:: gnuradio.gr.complex_to_float
-.. autoblock:: gnuradio.gr.complex_to_real
-.. autoblock:: gnuradio.gr.complex_to_imag
-.. autoblock:: gnuradio.gr.complex_to_mag
-.. autoblock:: gnuradio.gr.complex_to_mag_squared
-.. autoblock:: gnuradio.gr.complex_to_arg
-.. autoblock:: gnuradio.gr.float_to_char
-.. autoblock:: gnuradio.gr.float_to_complex
-.. autoblock:: gnuradio.gr.float_to_short
-.. autoblock:: gnuradio.gr.float_to_uchar
-.. autoblock:: gnuradio.gr.interleaved_short_to_complex
-.. autoblock:: gnuradio.gr.short_to_float
-.. autoblock:: gnuradio.gr.uchar_to_float
-.. autoblock:: gnuradio.gr.unpack_k_bits_bb
-.. autoblock:: gnuradio.gr.chunks_to_symbols_bc
-.. autoblock:: gnuradio.gr.chunks_to_symbols_bf
-.. autoblock:: gnuradio.gr.chunks_to_symbols_ic
-.. autoblock:: gnuradio.gr.chunks_to_symbols_if
-.. autoblock:: gnuradio.gr.chunks_to_symbols_sc
-.. autoblock:: gnuradio.gr.chunks_to_symbols_sf
-.. autoblock:: gnuradio.gr.packed_to_unpacked_bb
-.. autoblock:: gnuradio.gr.packed_to_unpacked_ii
-.. autoblock:: gnuradio.gr.packed_to_unpacked_ss
-.. autoblock:: gnuradio.gr.unpacked_to_packed_bb
-.. autoblock:: gnuradio.gr.unpacked_to_packed_ii
-.. autoblock:: gnuradio.gr.unpacked_to_packed_ss
+.. autooldblock:: gnuradio.gr.bytes_to_syms
+.. autooldblock:: gnuradio.gr.char_to_float
+.. autooldblock:: gnuradio.gr.complex_to_interleaved_short
+.. autooldblock:: gnuradio.gr.complex_to_float
+.. autooldblock:: gnuradio.gr.complex_to_real
+.. autooldblock:: gnuradio.gr.complex_to_imag
+.. autooldblock:: gnuradio.gr.complex_to_mag
+.. autooldblock:: gnuradio.gr.complex_to_mag_squared
+.. autooldblock:: gnuradio.gr.complex_to_arg
+.. autooldblock:: gnuradio.gr.float_to_char
+.. autooldblock:: gnuradio.gr.float_to_complex
+.. autooldblock:: gnuradio.gr.float_to_short
+.. autooldblock:: gnuradio.gr.float_to_uchar
+.. autooldblock:: gnuradio.gr.interleaved_short_to_complex
+.. autooldblock:: gnuradio.gr.short_to_float
+.. autooldblock:: gnuradio.gr.uchar_to_float
+.. autooldblock:: gnuradio.gr.unpack_k_bits_bb
+.. autooldblock:: gnuradio.gr.chunks_to_symbols_bc
+.. autooldblock:: gnuradio.gr.chunks_to_symbols_bf
+.. autooldblock:: gnuradio.gr.chunks_to_symbols_ic
+.. autooldblock:: gnuradio.gr.chunks_to_symbols_if
+.. autooldblock:: gnuradio.gr.chunks_to_symbols_sc
+.. autooldblock:: gnuradio.gr.chunks_to_symbols_sf
+.. autooldblock:: gnuradio.gr.packed_to_unpacked_bb
+.. autooldblock:: gnuradio.gr.packed_to_unpacked_ii
+.. autooldblock:: gnuradio.gr.packed_to_unpacked_ss
+.. autooldblock:: gnuradio.gr.unpacked_to_packed_bb
+.. autooldblock:: gnuradio.gr.unpacked_to_packed_ii
+.. autooldblock:: gnuradio.gr.unpacked_to_packed_ss
diff --git a/docs/sphinx/source/gr/demodulation_blk.rst b/docs/sphinx/source/gr/demodulation_blk.rst
index e5a9354340..4f800b642b 100644
--- a/docs/sphinx/source/gr/demodulation_blk.rst
+++ b/docs/sphinx/source/gr/demodulation_blk.rst
@@ -1,4 +1,4 @@
 gnuradio.gr: Demodulation
 =========================
 
-.. autoblock:: gnuradio.gr.quadrature_demod_cf
+.. autooldblock:: gnuradio.gr.quadrature_demod_cf
diff --git a/docs/sphinx/source/gr/dft_blk.rst b/docs/sphinx/source/gr/dft_blk.rst
index a93119969b..4ac1d2e621 100644
--- a/docs/sphinx/source/gr/dft_blk.rst
+++ b/docs/sphinx/source/gr/dft_blk.rst
@@ -1,6 +1,6 @@
 gnuradio.gr: Fourier Transform
 ==============================
 
-.. autoblock:: gnuradio.gr.goertzel_fc
-.. autoblock:: gnuradio.gr.fft_vcc
-.. autoblock:: gnuradio.gr.fft_vfc
+.. autooldblock:: gnuradio.gr.goertzel_fc
+.. autooldblock:: gnuradio.gr.fft_vcc
+.. autooldblock:: gnuradio.gr.fft_vfc
diff --git a/docs/sphinx/source/gr/filter_blk.rst b/docs/sphinx/source/gr/filter_blk.rst
index 767ee4b741..a73ddda2a8 100644
--- a/docs/sphinx/source/gr/filter_blk.rst
+++ b/docs/sphinx/source/gr/filter_blk.rst
@@ -1,46 +1,46 @@
 gnuradio.gr: Filters
 ====================
 
-.. autoblock:: gnuradio.gr.fft_filter_ccc
-.. autoblock:: gnuradio.gr.fft_filter_fff
-.. autoblock:: gnuradio.gr.filter_delay_fc
-.. autoblock:: gnuradio.gr.fir_filter_ccc
-.. autoblock:: gnuradio.gr.fir_filter_ccf
-.. autoblock:: gnuradio.gr.fir_filter_fcc
-.. autoblock:: gnuradio.gr.fir_filter_fff
-.. autoblock:: gnuradio.gr.fir_filter_fsf
-.. autoblock:: gnuradio.gr.fir_filter_scc
-.. autoblock:: gnuradio.gr.fractional_interpolator_cc
-.. autoblock:: gnuradio.gr.fractional_interpolator_ff
-.. autoblock:: gnuradio.gr.freq_xlating_fir_filter_ccc
-.. autoblock:: gnuradio.gr.freq_xlating_fir_filter_ccf
-.. autoblock:: gnuradio.gr.freq_xlating_fir_filter_fcc
-.. autoblock:: gnuradio.gr.freq_xlating_fir_filter_fcf
-.. autoblock:: gnuradio.gr.freq_xlating_fir_filter_scc
-.. autoblock:: gnuradio.gr.freq_xlating_fir_filter_scf
-.. autoblock:: gnuradio.gr.hilbert_fc
-.. autoblock:: gnuradio.gr.iir_filter_ffd
-.. autoblock:: gnuradio.gr.interp_fir_filter_ccc
-.. autoblock:: gnuradio.gr.interp_fir_filter_ccf
-.. autoblock:: gnuradio.gr.interp_fir_filter_fcc
-.. autoblock:: gnuradio.gr.interp_fir_filter_fff
-.. autoblock:: gnuradio.gr.interp_fir_filter_fsf
-.. autoblock:: gnuradio.gr.interp_fir_filter_scc
-.. autoblock:: gnuradio.gr.rational_resampler_base_ccc
-.. autoblock:: gnuradio.gr.rational_resampler_base_ccf
-.. autoblock:: gnuradio.gr.rational_resampler_base_fcc
-.. autoblock:: gnuradio.gr.rational_resampler_base_fff
-.. autoblock:: gnuradio.gr.rational_resampler_base_fsf
-.. autoblock:: gnuradio.gr.rational_resampler_base_scc
-.. autoblock:: gnuradio.gr.single_pole_iir_filter_cc
-.. autoblock:: gnuradio.gr.single_pole_iir_filter_ff
-.. autoblock:: gnuradio.gr.moving_average_cc
-.. autoblock:: gnuradio.gr.moving_average_ff
-.. autoblock:: gnuradio.gr.moving_average_ii
-.. autoblock:: gnuradio.gr.moving_average_ss
-.. autoblock:: gnuradio.gr.pfb_arb_resampler_ccf
-.. autoblock:: gnuradio.gr.pfb_channelizer_ccf
-.. autoblock:: gnuradio.gr.pfb_clock_sync_ccf
-.. autoblock:: gnuradio.gr.pfb_clock_sync_fff
-.. autoblock:: gnuradio.gr.pfb_decimator_ccf
-.. autoblock:: gnuradio.gr.pfb_interpolator_ccf
+.. autooldblock:: gnuradio.gr.fft_filter_ccc
+.. autooldblock:: gnuradio.gr.fft_filter_fff
+.. autooldblock:: gnuradio.gr.filter_delay_fc
+.. autooldblock:: gnuradio.gr.fir_filter_ccc
+.. autooldblock:: gnuradio.gr.fir_filter_ccf
+.. autooldblock:: gnuradio.gr.fir_filter_fcc
+.. autooldblock:: gnuradio.gr.fir_filter_fff
+.. autooldblock:: gnuradio.gr.fir_filter_fsf
+.. autooldblock:: gnuradio.gr.fir_filter_scc
+.. autooldblock:: gnuradio.gr.fractional_interpolator_cc
+.. autooldblock:: gnuradio.gr.fractional_interpolator_ff
+.. autooldblock:: gnuradio.gr.freq_xlating_fir_filter_ccc
+.. autooldblock:: gnuradio.gr.freq_xlating_fir_filter_ccf
+.. autooldblock:: gnuradio.gr.freq_xlating_fir_filter_fcc
+.. autooldblock:: gnuradio.gr.freq_xlating_fir_filter_fcf
+.. autooldblock:: gnuradio.gr.freq_xlating_fir_filter_scc
+.. autooldblock:: gnuradio.gr.freq_xlating_fir_filter_scf
+.. autooldblock:: gnuradio.gr.hilbert_fc
+.. autooldblock:: gnuradio.gr.iir_filter_ffd
+.. autooldblock:: gnuradio.gr.interp_fir_filter_ccc
+.. autooldblock:: gnuradio.gr.interp_fir_filter_ccf
+.. autooldblock:: gnuradio.gr.interp_fir_filter_fcc
+.. autooldblock:: gnuradio.gr.interp_fir_filter_fff
+.. autooldblock:: gnuradio.gr.interp_fir_filter_fsf
+.. autooldblock:: gnuradio.gr.interp_fir_filter_scc
+.. autooldblock:: gnuradio.gr.rational_resampler_base_ccc
+.. autooldblock:: gnuradio.gr.rational_resampler_base_ccf
+.. autooldblock:: gnuradio.gr.rational_resampler_base_fcc
+.. autooldblock:: gnuradio.gr.rational_resampler_base_fff
+.. autooldblock:: gnuradio.gr.rational_resampler_base_fsf
+.. autooldblock:: gnuradio.gr.rational_resampler_base_scc
+.. autooldblock:: gnuradio.gr.single_pole_iir_filter_cc
+.. autooldblock:: gnuradio.gr.single_pole_iir_filter_ff
+.. autooldblock:: gnuradio.gr.moving_average_cc
+.. autooldblock:: gnuradio.gr.moving_average_ff
+.. autooldblock:: gnuradio.gr.moving_average_ii
+.. autooldblock:: gnuradio.gr.moving_average_ss
+.. autooldblock:: gnuradio.gr.pfb_arb_resampler_ccf
+.. autooldblock:: gnuradio.gr.pfb_channelizer_ccf
+.. autooldblock:: gnuradio.gr.pfb_clock_sync_ccf
+.. autooldblock:: gnuradio.gr.pfb_clock_sync_fff
+.. autooldblock:: gnuradio.gr.pfb_decimator_ccf
+.. autooldblock:: gnuradio.gr.pfb_interpolator_ccf
diff --git a/docs/sphinx/source/gr/level_blk.rst b/docs/sphinx/source/gr/level_blk.rst
index 77ba2270df..d6c565c65d 100644
--- a/docs/sphinx/source/gr/level_blk.rst
+++ b/docs/sphinx/source/gr/level_blk.rst
@@ -1,26 +1,26 @@
 gnuradio.gr: Signal Level Control (AGC)
 =======================================
 
-.. autoblock:: gnuradio.gr.agc2_cc
-.. autoblock:: gnuradio.gr.agc2_ff
-.. autoblock:: gnuradio.gr.agc_cc
-.. autoblock:: gnuradio.gr.agc_ff
-.. autoblock:: gnuradio.gr.ctcss_squelch_ff
-.. autoblock:: gnuradio.gr.dpll_bb
-.. autoblock:: gnuradio.gr.feedforward_agc_cc
-.. autoblock:: gnuradio.gr.peak_detector2_fb
-.. autoblock:: gnuradio.gr.pwr_squelch_cc
-.. autoblock:: gnuradio.gr.pwr_squelch_ff
-.. autoblock:: gnuradio.gr.regenerate_bb
-.. autoblock:: gnuradio.gr.simple_squelch_cc
-.. autoblock:: gnuradio.gr.mute_cc
-.. autoblock:: gnuradio.gr.mute_ff
-.. autoblock:: gnuradio.gr.mute_ii
-.. autoblock:: gnuradio.gr.mute_ss
-.. autoblock:: gnuradio.gr.peak_detector_fb
-.. autoblock:: gnuradio.gr.peak_detector_ib
-.. autoblock:: gnuradio.gr.peak_detector_sb
-.. autoblock:: gnuradio.gr.sample_and_hold_bb
-.. autoblock:: gnuradio.gr.sample_and_hold_ff
-.. autoblock:: gnuradio.gr.sample_and_hold_ii
-.. autoblock:: gnuradio.gr.sample_and_hold_ss
+.. autooldblock:: gnuradio.gr.agc2_cc
+.. autooldblock:: gnuradio.gr.agc2_ff
+.. autooldblock:: gnuradio.gr.agc_cc
+.. autooldblock:: gnuradio.gr.agc_ff
+.. autooldblock:: gnuradio.gr.ctcss_squelch_ff
+.. autooldblock:: gnuradio.gr.dpll_bb
+.. autooldblock:: gnuradio.gr.feedforward_agc_cc
+.. autooldblock:: gnuradio.gr.peak_detector2_fb
+.. autooldblock:: gnuradio.gr.pwr_squelch_cc
+.. autooldblock:: gnuradio.gr.pwr_squelch_ff
+.. autooldblock:: gnuradio.gr.regenerate_bb
+.. autooldblock:: gnuradio.gr.simple_squelch_cc
+.. autooldblock:: gnuradio.gr.mute_cc
+.. autooldblock:: gnuradio.gr.mute_ff
+.. autooldblock:: gnuradio.gr.mute_ii
+.. autooldblock:: gnuradio.gr.mute_ss
+.. autooldblock:: gnuradio.gr.peak_detector_fb
+.. autooldblock:: gnuradio.gr.peak_detector_ib
+.. autooldblock:: gnuradio.gr.peak_detector_sb
+.. autooldblock:: gnuradio.gr.sample_and_hold_bb
+.. autooldblock:: gnuradio.gr.sample_and_hold_ff
+.. autooldblock:: gnuradio.gr.sample_and_hold_ii
+.. autooldblock:: gnuradio.gr.sample_and_hold_ss
diff --git a/docs/sphinx/source/gr/math_blk.rst b/docs/sphinx/source/gr/math_blk.rst
index a2ef51922e..7b9437f995 100644
--- a/docs/sphinx/source/gr/math_blk.rst
+++ b/docs/sphinx/source/gr/math_blk.rst
@@ -1,59 +1,59 @@
 gnuradio.gr: Mathematics
 ========================
 
-.. autoblock:: gnuradio.gr.conjugate_cc
-.. autoblock:: gnuradio.gr.nlog10_ff
-.. autoblock:: gnuradio.gr.rms_cf
-.. autoblock:: gnuradio.gr.rms_ff
-.. autoblock:: gnuradio.gr.add_cc
-.. autoblock:: gnuradio.gr.add_const_cc
-.. autoblock:: gnuradio.gr.add_const_ff
-.. autoblock:: gnuradio.gr.add_const_ii
-.. autoblock:: gnuradio.gr.add_const_sf
-.. autoblock:: gnuradio.gr.add_const_ss
-.. autoblock:: gnuradio.gr.add_const_vcc
-.. autoblock:: gnuradio.gr.add_const_vff
-.. autoblock:: gnuradio.gr.add_const_vii
-.. autoblock:: gnuradio.gr.add_const_vss
-.. autoblock:: gnuradio.gr.add_ff
-.. autoblock:: gnuradio.gr.add_ii
-.. autoblock:: gnuradio.gr.add_ss
-.. autoblock:: gnuradio.gr.and_bb
-.. autoblock:: gnuradio.gr.and_const_bb
-.. autoblock:: gnuradio.gr.and_const_ii
-.. autoblock:: gnuradio.gr.and_const_ss
-.. autoblock:: gnuradio.gr.and_ii
-.. autoblock:: gnuradio.gr.and_ss
-.. autoblock:: gnuradio.gr.divide_cc
-.. autoblock:: gnuradio.gr.divide_ff
-.. autoblock:: gnuradio.gr.divide_ii
-.. autoblock:: gnuradio.gr.divide_ss
-.. autoblock:: gnuradio.gr.integrate_cc
-.. autoblock:: gnuradio.gr.integrate_ff
-.. autoblock:: gnuradio.gr.integrate_ii
-.. autoblock:: gnuradio.gr.integrate_ss
-.. autoblock:: gnuradio.gr.multiply_cc
-.. autoblock:: gnuradio.gr.multiply_const_cc
-.. autoblock:: gnuradio.gr.multiply_const_ff
-.. autoblock:: gnuradio.gr.multiply_const_ii
-.. autoblock:: gnuradio.gr.multiply_const_ss
-.. autoblock:: gnuradio.gr.multiply_const_vcc
-.. autoblock:: gnuradio.gr.multiply_const_vff
-.. autoblock:: gnuradio.gr.multiply_const_vii
-.. autoblock:: gnuradio.gr.multiply_const_vss
-.. autoblock:: gnuradio.gr.multiply_ff
-.. autoblock:: gnuradio.gr.multiply_ii
-.. autoblock:: gnuradio.gr.multiply_ss
-.. autoblock:: gnuradio.gr.not_bb
-.. autoblock:: gnuradio.gr.not_ii
-.. autoblock:: gnuradio.gr.not_ss
-.. autoblock:: gnuradio.gr.or_bb
-.. autoblock:: gnuradio.gr.or_ii
-.. autoblock:: gnuradio.gr.or_ss
-.. autoblock:: gnuradio.gr.sub_cc
-.. autoblock:: gnuradio.gr.sub_ff
-.. autoblock:: gnuradio.gr.sub_ii
-.. autoblock:: gnuradio.gr.sub_ss
-.. autoblock:: gnuradio.gr.xor_bb
-.. autoblock:: gnuradio.gr.xor_ii
-.. autoblock:: gnuradio.gr.xor_ss
+.. autooldblock:: gnuradio.gr.conjugate_cc
+.. autooldblock:: gnuradio.gr.nlog10_ff
+.. autooldblock:: gnuradio.gr.rms_cf
+.. autooldblock:: gnuradio.gr.rms_ff
+.. autooldblock:: gnuradio.gr.add_cc
+.. autooldblock:: gnuradio.gr.add_const_cc
+.. autooldblock:: gnuradio.gr.add_const_ff
+.. autooldblock:: gnuradio.gr.add_const_ii
+.. autooldblock:: gnuradio.gr.add_const_sf
+.. autooldblock:: gnuradio.gr.add_const_ss
+.. autooldblock:: gnuradio.gr.add_const_vcc
+.. autooldblock:: gnuradio.gr.add_const_vff
+.. autooldblock:: gnuradio.gr.add_const_vii
+.. autooldblock:: gnuradio.gr.add_const_vss
+.. autooldblock:: gnuradio.gr.add_ff
+.. autooldblock:: gnuradio.gr.add_ii
+.. autooldblock:: gnuradio.gr.add_ss
+.. autooldblock:: gnuradio.gr.and_bb
+.. autooldblock:: gnuradio.gr.and_const_bb
+.. autooldblock:: gnuradio.gr.and_const_ii
+.. autooldblock:: gnuradio.gr.and_const_ss
+.. autooldblock:: gnuradio.gr.and_ii
+.. autooldblock:: gnuradio.gr.and_ss
+.. autooldblock:: gnuradio.gr.divide_cc
+.. autooldblock:: gnuradio.gr.divide_ff
+.. autooldblock:: gnuradio.gr.divide_ii
+.. autooldblock:: gnuradio.gr.divide_ss
+.. autooldblock:: gnuradio.gr.integrate_cc
+.. autooldblock:: gnuradio.gr.integrate_ff
+.. autooldblock:: gnuradio.gr.integrate_ii
+.. autooldblock:: gnuradio.gr.integrate_ss
+.. autooldblock:: gnuradio.gr.multiply_cc
+.. autooldblock:: gnuradio.gr.multiply_const_cc
+.. autooldblock:: gnuradio.gr.multiply_const_ff
+.. autooldblock:: gnuradio.gr.multiply_const_ii
+.. autooldblock:: gnuradio.gr.multiply_const_ss
+.. autooldblock:: gnuradio.gr.multiply_const_vcc
+.. autooldblock:: gnuradio.gr.multiply_const_vff
+.. autooldblock:: gnuradio.gr.multiply_const_vii
+.. autooldblock:: gnuradio.gr.multiply_const_vss
+.. autooldblock:: gnuradio.gr.multiply_ff
+.. autooldblock:: gnuradio.gr.multiply_ii
+.. autooldblock:: gnuradio.gr.multiply_ss
+.. autooldblock:: gnuradio.gr.not_bb
+.. autooldblock:: gnuradio.gr.not_ii
+.. autooldblock:: gnuradio.gr.not_ss
+.. autooldblock:: gnuradio.gr.or_bb
+.. autooldblock:: gnuradio.gr.or_ii
+.. autooldblock:: gnuradio.gr.or_ss
+.. autooldblock:: gnuradio.gr.sub_cc
+.. autooldblock:: gnuradio.gr.sub_ff
+.. autooldblock:: gnuradio.gr.sub_ii
+.. autooldblock:: gnuradio.gr.sub_ss
+.. autooldblock:: gnuradio.gr.xor_bb
+.. autooldblock:: gnuradio.gr.xor_ii
+.. autooldblock:: gnuradio.gr.xor_ss
diff --git a/docs/sphinx/source/gr/misc_blk.rst b/docs/sphinx/source/gr/misc_blk.rst
index f3bd2d943b..c69293056c 100644
--- a/docs/sphinx/source/gr/misc_blk.rst
+++ b/docs/sphinx/source/gr/misc_blk.rst
@@ -1,12 +1,12 @@
 gnuradio.gr: Miscellaneous Blocks
 =================================
 
-.. autoblock:: gnuradio.gr.copy
-.. autoblock:: gnuradio.gr.delay
-.. autoblock:: gnuradio.gr.kludge_copy
-.. autoblock:: gnuradio.gr.nop
-.. autoblock:: gnuradio.gr.pa_2x2_phase_combiner
-.. autoblock:: gnuradio.gr.repeat
-.. autoblock:: gnuradio.gr.threshold_ff
-.. autoblock:: gnuradio.gr.throttle
-.. autoblock:: gnuradio.gr.channel_model
+.. autooldblock:: gnuradio.gr.copy
+.. autooldblock:: gnuradio.gr.delay
+.. autooldblock:: gnuradio.gr.kludge_copy
+.. autooldblock:: gnuradio.gr.nop
+.. autooldblock:: gnuradio.gr.pa_2x2_phase_combiner
+.. autooldblock:: gnuradio.gr.repeat
+.. autooldblock:: gnuradio.gr.threshold_ff
+.. autooldblock:: gnuradio.gr.throttle
+.. autooldblock:: gnuradio.gr.channel_model
diff --git a/docs/sphinx/source/gr/modulation_blk.rst b/docs/sphinx/source/gr/modulation_blk.rst
index 7cc54d9dc5..1fff4614ca 100644
--- a/docs/sphinx/source/gr/modulation_blk.rst
+++ b/docs/sphinx/source/gr/modulation_blk.rst
@@ -1,6 +1,6 @@
 gnuradio.gr: Modulation
 =======================
 
-.. autoblock:: gnuradio.gr.cpfsk_bc
-.. autoblock:: gnuradio.gr.frequency_modulator_fc
-.. autoblock:: gnuradio.gr.phase_modulator_fc
+.. autooldblock:: gnuradio.gr.cpfsk_bc
+.. autooldblock:: gnuradio.gr.frequency_modulator_fc
+.. autooldblock:: gnuradio.gr.phase_modulator_fc
diff --git a/docs/sphinx/source/gr/sink_blk.rst b/docs/sphinx/source/gr/sink_blk.rst
index 8e5c7a4036..7608ff09b0 100644
--- a/docs/sphinx/source/gr/sink_blk.rst
+++ b/docs/sphinx/source/gr/sink_blk.rst
@@ -1,25 +1,25 @@
 gnuradio.gr: Signal Sinks
 =========================
 
-.. autoblock:: gnuradio.gr.bin_statistics_f
-.. autoblock:: gnuradio.gr.check_counting_s
-.. autoblock:: gnuradio.gr.check_lfsr_32k_s
-.. autoblock:: gnuradio.gr.framer_sink_1
-.. autoblock:: gnuradio.gr.null_sink
-.. autoblock:: gnuradio.gr.packet_sink
-.. autoblock:: gnuradio.gr.probe_avg_mag_sqrd_c
-.. autoblock:: gnuradio.gr.probe_avg_mag_sqrd_cf
-.. autoblock:: gnuradio.gr.probe_avg_mag_sqrd_f
-.. autoblock:: gnuradio.gr.probe_signal_f
-.. autoblock:: gnuradio.gr.vector_sink_b
-.. autoblock:: gnuradio.gr.vector_sink_c
-.. autoblock:: gnuradio.gr.vector_sink_f
-.. autoblock:: gnuradio.gr.vector_sink_i
-.. autoblock:: gnuradio.gr.vector_sink_s
-.. autoblock:: gnuradio.gr.file_descriptor_sink
-.. autoblock:: gnuradio.gr.file_sink
-.. autoblock:: gnuradio.gr.histo_sink_f
-.. autoblock:: gnuradio.gr.message_sink
-.. autoblock:: gnuradio.gr.oscope_sink_f
-.. autoblock:: gnuradio.gr.udp_sink
-.. autoblock:: gnuradio.gr.wavfile_sink
+.. autooldblock:: gnuradio.gr.bin_statistics_f
+.. autooldblock:: gnuradio.gr.check_counting_s
+.. autooldblock:: gnuradio.gr.check_lfsr_32k_s
+.. autooldblock:: gnuradio.gr.framer_sink_1
+.. autooldblock:: gnuradio.gr.null_sink
+.. autooldblock:: gnuradio.gr.packet_sink
+.. autooldblock:: gnuradio.gr.probe_avg_mag_sqrd_c
+.. autooldblock:: gnuradio.gr.probe_avg_mag_sqrd_cf
+.. autooldblock:: gnuradio.gr.probe_avg_mag_sqrd_f
+.. autooldblock:: gnuradio.gr.probe_signal_f
+.. autooldblock:: gnuradio.gr.vector_sink_b
+.. autooldblock:: gnuradio.gr.vector_sink_c
+.. autooldblock:: gnuradio.gr.vector_sink_f
+.. autooldblock:: gnuradio.gr.vector_sink_i
+.. autooldblock:: gnuradio.gr.vector_sink_s
+.. autooldblock:: gnuradio.gr.file_descriptor_sink
+.. autooldblock:: gnuradio.gr.file_sink
+.. autooldblock:: gnuradio.gr.histo_sink_f
+.. autooldblock:: gnuradio.gr.message_sink
+.. autooldblock:: gnuradio.gr.oscope_sink_f
+.. autooldblock:: gnuradio.gr.udp_sink
+.. autooldblock:: gnuradio.gr.wavfile_sink
diff --git a/docs/sphinx/source/gr/slicedice_blk.rst b/docs/sphinx/source/gr/slicedice_blk.rst
index 0bb5719ea6..e845627aad 100644
--- a/docs/sphinx/source/gr/slicedice_blk.rst
+++ b/docs/sphinx/source/gr/slicedice_blk.rst
@@ -1,14 +1,14 @@
 gnuradio.gr: Slicing and Dicing Streams
 =======================================
 
-.. autoblock:: gnuradio.gr.deinterleave
-.. autoblock:: gnuradio.gr.head
-.. autoblock:: gnuradio.gr.interleave
-.. autoblock:: gnuradio.gr.keep_one_in_n
-.. autoblock:: gnuradio.gr.skiphead
-.. autoblock:: gnuradio.gr.stream_to_streams
-.. autoblock:: gnuradio.gr.stream_to_vector
-.. autoblock:: gnuradio.gr.streams_to_stream
-.. autoblock:: gnuradio.gr.streams_to_vector
-.. autoblock:: gnuradio.gr.vector_to_stream
-.. autoblock:: gnuradio.gr.vector_to_streams
+.. autooldblock:: gnuradio.gr.deinterleave
+.. autooldblock:: gnuradio.gr.head
+.. autooldblock:: gnuradio.gr.interleave
+.. autooldblock:: gnuradio.gr.keep_one_in_n
+.. autooldblock:: gnuradio.gr.skiphead
+.. autooldblock:: gnuradio.gr.stream_to_streams
+.. autooldblock:: gnuradio.gr.stream_to_vector
+.. autooldblock:: gnuradio.gr.streams_to_stream
+.. autooldblock:: gnuradio.gr.streams_to_vector
+.. autooldblock:: gnuradio.gr.vector_to_stream
+.. autooldblock:: gnuradio.gr.vector_to_streams
diff --git a/docs/sphinx/source/gr/source_blk.rst b/docs/sphinx/source/gr/source_blk.rst
index e6e24e1b54..df873bcf74 100644
--- a/docs/sphinx/source/gr/source_blk.rst
+++ b/docs/sphinx/source/gr/source_blk.rst
@@ -1,26 +1,26 @@
 gnuradio.gr: Signal Sources
 ===========================
 
-.. autoblock:: gnuradio.gr.glfsr_source_b
-.. autoblock:: gnuradio.gr.glfsr_source_f
-.. autoblock:: gnuradio.gr.lfsr_32k_source_s
-.. autoblock:: gnuradio.gr.null_source
-.. autoblock:: gnuradio.gr.noise_source_c
-.. autoblock:: gnuradio.gr.noise_source_f
-.. autoblock:: gnuradio.gr.noise_source_i
-.. autoblock:: gnuradio.gr.noise_source_s
-.. autoblock:: gnuradio.gr.sig_source_c
-.. autoblock:: gnuradio.gr.sig_source_f
-.. autoblock:: gnuradio.gr.sig_source_i
-.. autoblock:: gnuradio.gr.sig_source_s
-.. autoblock:: gnuradio.gr.vector_source_b
-.. autoblock:: gnuradio.gr.vector_source_c
-.. autoblock:: gnuradio.gr.vector_source_f
-.. autoblock:: gnuradio.gr.vector_source_i
-.. autoblock:: gnuradio.gr.vector_source_s
-.. autoblock:: gnuradio.gr.file_descriptor_source
-.. autoblock:: gnuradio.gr.file_source
-.. autoblock:: gnuradio.gr.message_source
-.. autoblock:: gnuradio.gr.udp_source
-.. autoblock:: gnuradio.gr.wavfile_source
+.. autooldblock:: gnuradio.gr.glfsr_source_b
+.. autooldblock:: gnuradio.gr.glfsr_source_f
+.. autooldblock:: gnuradio.gr.lfsr_32k_source_s
+.. autooldblock:: gnuradio.gr.null_source
+.. autooldblock:: gnuradio.gr.noise_source_c
+.. autooldblock:: gnuradio.gr.noise_source_f
+.. autooldblock:: gnuradio.gr.noise_source_i
+.. autooldblock:: gnuradio.gr.noise_source_s
+.. autooldblock:: gnuradio.gr.sig_source_c
+.. autooldblock:: gnuradio.gr.sig_source_f
+.. autooldblock:: gnuradio.gr.sig_source_i
+.. autooldblock:: gnuradio.gr.sig_source_s
+.. autooldblock:: gnuradio.gr.vector_source_b
+.. autooldblock:: gnuradio.gr.vector_source_c
+.. autooldblock:: gnuradio.gr.vector_source_f
+.. autooldblock:: gnuradio.gr.vector_source_i
+.. autooldblock:: gnuradio.gr.vector_source_s
+.. autooldblock:: gnuradio.gr.file_descriptor_source
+.. autooldblock:: gnuradio.gr.file_source
+.. autooldblock:: gnuradio.gr.message_source
+.. autooldblock:: gnuradio.gr.udp_source
+.. autooldblock:: gnuradio.gr.wavfile_source
 
diff --git a/docs/sphinx/source/gr/sync_blk.rst b/docs/sphinx/source/gr/sync_blk.rst
index bb2b839741..be9f908f73 100644
--- a/docs/sphinx/source/gr/sync_blk.rst
+++ b/docs/sphinx/source/gr/sync_blk.rst
@@ -1,9 +1,9 @@
 gnuradio.gr: Synchronization
 ============================
 
-.. autoblock:: gnuradio.gr.pll_carriertracking_cc
-.. autoblock:: gnuradio.gr.pll_freqdet_cf
-.. autoblock:: gnuradio.gr.pll_refout_cc
-.. autoblock:: gnuradio.gr.pn_correlator_cc
-.. autoblock:: gnuradio.gr.simple_correlator
-.. autoblock:: gnuradio.gr.simple_framer
+.. autooldblock:: gnuradio.gr.pll_carriertracking_cc
+.. autooldblock:: gnuradio.gr.pll_freqdet_cf
+.. autooldblock:: gnuradio.gr.pll_refout_cc
+.. autooldblock:: gnuradio.gr.pn_correlator_cc
+.. autooldblock:: gnuradio.gr.simple_correlator
+.. autooldblock:: gnuradio.gr.simple_framer
diff --git a/docs/sphinx/source/noaa.rst b/docs/sphinx/source/noaa.rst
index 06c7078130..65461f99b8 100644
--- a/docs/sphinx/source/noaa.rst
+++ b/docs/sphinx/source/noaa.rst
@@ -3,6 +3,6 @@ gnuradio.noaa
 
 .. automodule:: gnuradio.noaa
 
-.. autoblock:: gnuradio.noaa.hrpt_decoder
-.. autoblock:: gnuradio.noaa.hrpt_deframer
-.. autoblock:: gnuradio.noaa.hrpt_pll_cf
+.. autooldblock:: gnuradio.noaa.hrpt_decoder
+.. autooldblock:: gnuradio.noaa.hrpt_deframer
+.. autooldblock:: gnuradio.noaa.hrpt_pll_cf
diff --git a/docs/sphinx/source/pager/blks.rst b/docs/sphinx/source/pager/blks.rst
index 9b5a2ca70d..a36103d1fa 100644
--- a/docs/sphinx/source/pager/blks.rst
+++ b/docs/sphinx/source/pager/blks.rst
@@ -1,9 +1,9 @@
 gnuradio.pager: Signal Processing Blocks
 ========================================
 
-.. autoblock:: gnuradio.pager.flex_deinterleave
+.. autooldblock:: gnuradio.pager.flex_deinterleave
 .. autopyblock:: gnuradio.pager.flex_demod
-.. autoblock:: gnuradio.pager.flex_frame
-.. autoblock:: gnuradio.pager.flex_parse
-.. autoblock:: gnuradio.pager.flex_sync
-.. autoblock:: gnuradio.pager.slicer_fb
+.. autooldblock:: gnuradio.pager.flex_frame
+.. autooldblock:: gnuradio.pager.flex_parse
+.. autooldblock:: gnuradio.pager.flex_sync
+.. autooldblock:: gnuradio.pager.slicer_fb
diff --git a/docs/sphinx/source/qtgui/index.rst b/docs/sphinx/source/qtgui/index.rst
index c6311d381a..83bdedca89 100644
--- a/docs/sphinx/source/qtgui/index.rst
+++ b/docs/sphinx/source/qtgui/index.rst
@@ -3,7 +3,7 @@ gnuradio.qtgui
 
 .. automodule:: gnuradio.qtgui
 
-.. autoblock:: gnuradio.qtgui.sink_c
-.. autoblock:: gnuradio.qtgui.sink_f
-.. autoblock:: gnuradio.qtgui.time_sink_c
-.. autoblock:: gnuradio.qtgui.time_sink_f
+.. autooldblock:: gnuradio.qtgui.sink_c
+.. autooldblock:: gnuradio.qtgui.sink_f
+.. autooldblock:: gnuradio.qtgui.time_sink_c
+.. autooldblock:: gnuradio.qtgui.time_sink_f
diff --git a/docs/sphinx/source/trellis/blks.rst b/docs/sphinx/source/trellis/blks.rst
index a2eda07d61..d82319bad6 100644
--- a/docs/sphinx/source/trellis/blks.rst
+++ b/docs/sphinx/source/trellis/blks.rst
@@ -1,62 +1,62 @@
 gnuradio.trellis: Signal Processing Blocks
 ==========================================
 
-.. autoblock:: gnuradio.trellis.constellation_metrics_cf
-.. autoblock:: gnuradio.trellis.encoder_bb
-.. autoblock:: gnuradio.trellis.encoder_bi
-.. autoblock:: gnuradio.trellis.encoder_bs
-.. autoblock:: gnuradio.trellis.encoder_ii
-.. autoblock:: gnuradio.trellis.encoder_si
-.. autoblock:: gnuradio.trellis.encoder_ss
-.. autoblock:: gnuradio.trellis.metrics_c
-.. autoblock:: gnuradio.trellis.metrics_f
-.. autoblock:: gnuradio.trellis.metrics_i
-.. autoblock:: gnuradio.trellis.metrics_s
-.. autoblock:: gnuradio.trellis.pccc_decoder_b
-.. autoblock:: gnuradio.trellis.pccc_decoder_combined_cb
-.. autoblock:: gnuradio.trellis.pccc_decoder_combined_ci
-.. autoblock:: gnuradio.trellis.pccc_decoder_combined_cs
-.. autoblock:: gnuradio.trellis.pccc_decoder_combined_fb
-.. autoblock:: gnuradio.trellis.pccc_decoder_combined_fi
-.. autoblock:: gnuradio.trellis.pccc_decoder_combined_fs
-.. autoblock:: gnuradio.trellis.pccc_decoder_i
-.. autoblock:: gnuradio.trellis.pccc_decoder_s
-.. autoblock:: gnuradio.trellis.pccc_encoder_bb
-.. autoblock:: gnuradio.trellis.pccc_encoder_bi
-.. autoblock:: gnuradio.trellis.pccc_encoder_bs
-.. autoblock:: gnuradio.trellis.pccc_encoder_ii
-.. autoblock:: gnuradio.trellis.pccc_encoder_si
-.. autoblock:: gnuradio.trellis.pccc_encoder_ss
-.. autoblock:: gnuradio.trellis.permutation
-.. autoblock:: gnuradio.trellis.sccc_decoder_b
-.. autoblock:: gnuradio.trellis.sccc_decoder_combined_cb
-.. autoblock:: gnuradio.trellis.sccc_decoder_combined_ci
-.. autoblock:: gnuradio.trellis.sccc_decoder_combined_cs
-.. autoblock:: gnuradio.trellis.sccc_decoder_combined_fb
-.. autoblock:: gnuradio.trellis.sccc_decoder_combined_fi
-.. autoblock:: gnuradio.trellis.sccc_decoder_combined_fs
-.. autoblock:: gnuradio.trellis.sccc_decoder_i
-.. autoblock:: gnuradio.trellis.sccc_decoder_s
-.. autoblock:: gnuradio.trellis.sccc_encoder_bb
-.. autoblock:: gnuradio.trellis.sccc_encoder_bi
-.. autoblock:: gnuradio.trellis.sccc_encoder_bs
-.. autoblock:: gnuradio.trellis.sccc_encoder_ii
-.. autoblock:: gnuradio.trellis.sccc_encoder_si
-.. autoblock:: gnuradio.trellis.sccc_encoder_ss
-.. autoblock:: gnuradio.trellis.siso_combined_f
-.. autoblock:: gnuradio.trellis.siso_f
-.. autoblock:: gnuradio.trellis.viterbi_b
-.. autoblock:: gnuradio.trellis.viterbi_combined_cb
-.. autoblock:: gnuradio.trellis.viterbi_combined_ci
-.. autoblock:: gnuradio.trellis.viterbi_combined_cs
-.. autoblock:: gnuradio.trellis.viterbi_combined_fb
-.. autoblock:: gnuradio.trellis.viterbi_combined_fi
-.. autoblock:: gnuradio.trellis.viterbi_combined_fs
-.. autoblock:: gnuradio.trellis.viterbi_combined_ib
-.. autoblock:: gnuradio.trellis.viterbi_combined_ii
-.. autoblock:: gnuradio.trellis.viterbi_combined_is
-.. autoblock:: gnuradio.trellis.viterbi_combined_sb
-.. autoblock:: gnuradio.trellis.viterbi_combined_si
-.. autoblock:: gnuradio.trellis.viterbi_combined_ss
-.. autoblock:: gnuradio.trellis.viterbi_i
-.. autoblock:: gnuradio.trellis.viterbi_s
+.. autooldblock:: gnuradio.trellis.constellation_metrics_cf
+.. autooldblock:: gnuradio.trellis.encoder_bb
+.. autooldblock:: gnuradio.trellis.encoder_bi
+.. autooldblock:: gnuradio.trellis.encoder_bs
+.. autooldblock:: gnuradio.trellis.encoder_ii
+.. autooldblock:: gnuradio.trellis.encoder_si
+.. autooldblock:: gnuradio.trellis.encoder_ss
+.. autooldblock:: gnuradio.trellis.metrics_c
+.. autooldblock:: gnuradio.trellis.metrics_f
+.. autooldblock:: gnuradio.trellis.metrics_i
+.. autooldblock:: gnuradio.trellis.metrics_s
+.. autooldblock:: gnuradio.trellis.pccc_decoder_b
+.. autooldblock:: gnuradio.trellis.pccc_decoder_combined_cb
+.. autooldblock:: gnuradio.trellis.pccc_decoder_combined_ci
+.. autooldblock:: gnuradio.trellis.pccc_decoder_combined_cs
+.. autooldblock:: gnuradio.trellis.pccc_decoder_combined_fb
+.. autooldblock:: gnuradio.trellis.pccc_decoder_combined_fi
+.. autooldblock:: gnuradio.trellis.pccc_decoder_combined_fs
+.. autooldblock:: gnuradio.trellis.pccc_decoder_i
+.. autooldblock:: gnuradio.trellis.pccc_decoder_s
+.. autooldblock:: gnuradio.trellis.pccc_encoder_bb
+.. autooldblock:: gnuradio.trellis.pccc_encoder_bi
+.. autooldblock:: gnuradio.trellis.pccc_encoder_bs
+.. autooldblock:: gnuradio.trellis.pccc_encoder_ii
+.. autooldblock:: gnuradio.trellis.pccc_encoder_si
+.. autooldblock:: gnuradio.trellis.pccc_encoder_ss
+.. autooldblock:: gnuradio.trellis.permutation
+.. autooldblock:: gnuradio.trellis.sccc_decoder_b
+.. autooldblock:: gnuradio.trellis.sccc_decoder_combined_cb
+.. autooldblock:: gnuradio.trellis.sccc_decoder_combined_ci
+.. autooldblock:: gnuradio.trellis.sccc_decoder_combined_cs
+.. autooldblock:: gnuradio.trellis.sccc_decoder_combined_fb
+.. autooldblock:: gnuradio.trellis.sccc_decoder_combined_fi
+.. autooldblock:: gnuradio.trellis.sccc_decoder_combined_fs
+.. autooldblock:: gnuradio.trellis.sccc_decoder_i
+.. autooldblock:: gnuradio.trellis.sccc_decoder_s
+.. autooldblock:: gnuradio.trellis.sccc_encoder_bb
+.. autooldblock:: gnuradio.trellis.sccc_encoder_bi
+.. autooldblock:: gnuradio.trellis.sccc_encoder_bs
+.. autooldblock:: gnuradio.trellis.sccc_encoder_ii
+.. autooldblock:: gnuradio.trellis.sccc_encoder_si
+.. autooldblock:: gnuradio.trellis.sccc_encoder_ss
+.. autooldblock:: gnuradio.trellis.siso_combined_f
+.. autooldblock:: gnuradio.trellis.siso_f
+.. autooldblock:: gnuradio.trellis.viterbi_b
+.. autooldblock:: gnuradio.trellis.viterbi_combined_cb
+.. autooldblock:: gnuradio.trellis.viterbi_combined_ci
+.. autooldblock:: gnuradio.trellis.viterbi_combined_cs
+.. autooldblock:: gnuradio.trellis.viterbi_combined_fb
+.. autooldblock:: gnuradio.trellis.viterbi_combined_fi
+.. autooldblock:: gnuradio.trellis.viterbi_combined_fs
+.. autooldblock:: gnuradio.trellis.viterbi_combined_ib
+.. autooldblock:: gnuradio.trellis.viterbi_combined_ii
+.. autooldblock:: gnuradio.trellis.viterbi_combined_is
+.. autooldblock:: gnuradio.trellis.viterbi_combined_sb
+.. autooldblock:: gnuradio.trellis.viterbi_combined_si
+.. autooldblock:: gnuradio.trellis.viterbi_combined_ss
+.. autooldblock:: gnuradio.trellis.viterbi_i
+.. autooldblock:: gnuradio.trellis.viterbi_s
diff --git a/docs/sphinx/source/video_sdl.rst b/docs/sphinx/source/video_sdl.rst
index e4fc5acac3..6be88d788c 100644
--- a/docs/sphinx/source/video_sdl.rst
+++ b/docs/sphinx/source/video_sdl.rst
@@ -3,5 +3,5 @@ gnuradio.video_sdl
 
 .. automodule:: gnuradio.video_sdl
 
-.. autoblock:: gnuradio.video_sdl.sink_s
-.. autoblock:: gnuradio.video_sdl.sink_uc
+.. autooldblock:: gnuradio.video_sdl.sink_s
+.. autooldblock:: gnuradio.video_sdl.sink_uc
diff --git a/docs/sphinx/source/vocoder/blks.rst b/docs/sphinx/source/vocoder/blks.rst
index ea20bc44be..34eda9d250 100644
--- a/docs/sphinx/source/vocoder/blks.rst
+++ b/docs/sphinx/source/vocoder/blks.rst
@@ -1,19 +1,19 @@
 gnuradio.vocoder
 ================
 
-.. autoblock:: gnuradio.vocoder.alaw_decode_bs
-.. autoblock:: gnuradio.vocoder.alaw_encode_sb
-.. autoblock:: gnuradio.vocoder.codec2_decode_ps
-.. autoblock:: gnuradio.vocoder.codec2_encode_sp
-.. autoblock:: gnuradio.vocoder.cvsd_decode_bs
-.. autoblock:: gnuradio.vocoder.cvsd_encode_sb
-.. autoblock:: gnuradio.vocoder.g721_decode_bs
-.. autoblock:: gnuradio.vocoder.g721_encode_sb
-.. autoblock:: gnuradio.vocoder.g723_24_decode_bs
-.. autoblock:: gnuradio.vocoder.g723_24_encode_sb
-.. autoblock:: gnuradio.vocoder.g723_40_decode_bs
-.. autoblock:: gnuradio.vocoder.g723_40_encode_sb
-.. autoblock:: gnuradio.vocoder.gsm_fr_decode_ps
-.. autoblock:: gnuradio.vocoder.gsm_fr_encode_sp
-.. autoblock:: gnuradio.vocoder.ulaw_decode_bs
-.. autoblock:: gnuradio.vocoder.ulaw_encode_sb
+.. autooldblock:: gnuradio.vocoder.alaw_decode_bs
+.. autooldblock:: gnuradio.vocoder.alaw_encode_sb
+.. autooldblock:: gnuradio.vocoder.codec2_decode_ps
+.. autooldblock:: gnuradio.vocoder.codec2_encode_sp
+.. autooldblock:: gnuradio.vocoder.cvsd_decode_bs
+.. autooldblock:: gnuradio.vocoder.cvsd_encode_sb
+.. autooldblock:: gnuradio.vocoder.g721_decode_bs
+.. autooldblock:: gnuradio.vocoder.g721_encode_sb
+.. autooldblock:: gnuradio.vocoder.g723_24_decode_bs
+.. autooldblock:: gnuradio.vocoder.g723_24_encode_sb
+.. autooldblock:: gnuradio.vocoder.g723_40_decode_bs
+.. autooldblock:: gnuradio.vocoder.g723_40_encode_sb
+.. autooldblock:: gnuradio.vocoder.gsm_fr_decode_ps
+.. autooldblock:: gnuradio.vocoder.gsm_fr_encode_sp
+.. autooldblock:: gnuradio.vocoder.ulaw_decode_bs
+.. autooldblock:: gnuradio.vocoder.ulaw_encode_sb
diff --git a/docs/sphinx/source/wavelet.rst b/docs/sphinx/source/wavelet.rst
index 679bab70c0..5236c4dbb2 100644
--- a/docs/sphinx/source/wavelet.rst
+++ b/docs/sphinx/source/wavelet.rst
@@ -3,6 +3,6 @@ gnuradio.wavelet
 
 .. automodule:: gnuradio.wavelet
 
-.. autoblock:: gnuradio.wavelet.squash_ff
-.. autoblock:: gnuradio.wavelet.wavelet_ff
-.. autoblock:: gnuradio.wavelet.wvps_ff
+.. autooldblock:: gnuradio.wavelet.squash_ff
+.. autooldblock:: gnuradio.wavelet.wavelet_ff
+.. autooldblock:: gnuradio.wavelet.wvps_ff
-- 
cgit v1.2.3


From e67e3d9ac40f9651f108463c18cd704bef733574 Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@vt.edu>
Date: Mon, 4 Jun 2012 20:43:49 -0400
Subject: docs: fixed Doxygen from looking in the howto dir.

---
 docs/doxygen/Doxyfile.in | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/Doxyfile.in b/docs/doxygen/Doxyfile.in
index f3485316c4..ad3c2d01f4 100644
--- a/docs/doxygen/Doxyfile.in
+++ b/docs/doxygen/Doxyfile.in
@@ -628,7 +628,6 @@ EXCLUDE                = @abs_top_builddir@/docs/doxygen/html \
                          @abs_top_builddir@/gr-gsm-fr-vocoder/src/lib/gsm_full_rate.py \
                          @abs_top_builddir@/gr-gsm-fr-vocoder/src/python/encdec.py \
                          @abs_top_builddir@/gr-howto-write-a-block \
-                         @abs_top_builddir@/gr-howto-write-a-block-cmake \
                          @abs_top_builddir@/gr-pager/src/pager_swig.py \
                          @abs_top_builddir@/gr-trellis/doc \
                          @abs_top_builddir@/gr-trellis/src/lib/generate_all.py \
@@ -640,7 +639,7 @@ EXCLUDE                = @abs_top_builddir@/docs/doxygen/html \
 			 @abs_top_builddir@/_CPack_Packages \
                          @abs_top_srcdir@/cmake \
 			 @abs_top_srcdir@/gr-qtgui/lib \
-                         @abs_top_srcdir@/gr-howto-write-a-block-cmake
+                         @abs_top_srcdir@/gr-howto-write-a-block
 
 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or
 # directories that are symbolic links (a Unix filesystem feature) are excluded
-- 
cgit v1.2.3


From ec30d89449f48fdd2f88420b4c87aba2e1a5abd1 Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@vt.edu>
Date: Sun, 10 Jun 2012 12:43:06 -0400
Subject: volk: make sure the alignment call for a block passes at least 1.

For machines with an alignment of 1, the blocks were truncating the aligment to 0. This makes sure that it gets set to a minimum of 1.
---
 docs/doxygen/other/volk_guide.dox                         |  2 +-
 gnuradio-core/src/lib/general/gr_add_ff.cc                |  2 +-
 gnuradio-core/src/lib/general/gr_char_to_float.cc         |  2 +-
 gnuradio-core/src/lib/general/gr_char_to_short.cc         |  2 +-
 gnuradio-core/src/lib/general/gr_complex_to_xxx.cc        | 12 ++++++------
 gnuradio-core/src/lib/general/gr_conjugate_cc.cc          |  2 +-
 gnuradio-core/src/lib/general/gr_float_to_char.cc         |  2 +-
 gnuradio-core/src/lib/general/gr_float_to_int.cc          |  2 +-
 gnuradio-core/src/lib/general/gr_float_to_short.cc        |  2 +-
 gnuradio-core/src/lib/general/gr_int_to_float.cc          |  2 +-
 gnuradio-core/src/lib/general/gr_multiply_cc.cc           |  6 +++---
 gnuradio-core/src/lib/general/gr_multiply_conjugate_cc.cc |  6 +++---
 gnuradio-core/src/lib/general/gr_multiply_const_cc.cc     |  6 +++---
 gnuradio-core/src/lib/general/gr_multiply_const_ff.cc     |  6 +++---
 gnuradio-core/src/lib/general/gr_multiply_ff.cc           |  2 +-
 gnuradio-core/src/lib/general/gr_short_to_char.cc         |  2 +-
 gnuradio-core/src/lib/general/gr_short_to_float.cc        |  2 +-
 17 files changed, 30 insertions(+), 30 deletions(-)

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/other/volk_guide.dox b/docs/doxygen/other/volk_guide.dox
index 24882ed1a6..0e444ebbaf 100644
--- a/docs/doxygen/other/volk_guide.dox
+++ b/docs/doxygen/other/volk_guide.dox
@@ -63,7 +63,7 @@ calls with:
 \code
   const int alignment_multiple =
     volk_get_alignment() / output_item_size;
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 \endcode
 
 The Volk function 'volk_get_alignment' provides the alignment of the
diff --git a/gnuradio-core/src/lib/general/gr_add_ff.cc b/gnuradio-core/src/lib/general/gr_add_ff.cc
index 2e45673d3b..5f6676bb7b 100644
--- a/gnuradio-core/src/lib/general/gr_add_ff.cc
+++ b/gnuradio-core/src/lib/general/gr_add_ff.cc
@@ -42,7 +42,7 @@ gr_add_ff::gr_add_ff (size_t vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_char_to_float.cc b/gnuradio-core/src/lib/general/gr_char_to_float.cc
index aec7ad8522..f63aa5b169 100644
--- a/gnuradio-core/src/lib/general/gr_char_to_float.cc
+++ b/gnuradio-core/src/lib/general/gr_char_to_float.cc
@@ -42,7 +42,7 @@ gr_char_to_float::gr_char_to_float (size_t vlen, float scale)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 float
diff --git a/gnuradio-core/src/lib/general/gr_char_to_short.cc b/gnuradio-core/src/lib/general/gr_char_to_short.cc
index c20d6cd888..bb9bd8909e 100644
--- a/gnuradio-core/src/lib/general/gr_char_to_short.cc
+++ b/gnuradio-core/src/lib/general/gr_char_to_short.cc
@@ -42,7 +42,7 @@ gr_char_to_short::gr_char_to_short (size_t vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(char);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_xxx.cc b/gnuradio-core/src/lib/general/gr_complex_to_xxx.cc
index 3b1fbf9acd..cdf6d7f3a6 100644
--- a/gnuradio-core/src/lib/general/gr_complex_to_xxx.cc
+++ b/gnuradio-core/src/lib/general/gr_complex_to_xxx.cc
@@ -45,7 +45,7 @@ gr_complex_to_float::gr_complex_to_float (unsigned int vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
@@ -106,7 +106,7 @@ gr_complex_to_real::gr_complex_to_real (unsigned int vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
@@ -146,7 +146,7 @@ gr_complex_to_imag::gr_complex_to_imag (unsigned int vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
@@ -186,7 +186,7 @@ gr_complex_to_mag::gr_complex_to_mag (unsigned int vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
@@ -220,7 +220,7 @@ gr_complex_to_mag_squared::gr_complex_to_mag_squared (unsigned int vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
@@ -258,7 +258,7 @@ gr_complex_to_arg::gr_complex_to_arg (unsigned int vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_conjugate_cc.cc b/gnuradio-core/src/lib/general/gr_conjugate_cc.cc
index aaa7f490c7..94ac3e162b 100644
--- a/gnuradio-core/src/lib/general/gr_conjugate_cc.cc
+++ b/gnuradio-core/src/lib/general/gr_conjugate_cc.cc
@@ -43,7 +43,7 @@ gr_conjugate_cc::gr_conjugate_cc ()
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(gr_complex);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_float_to_char.cc b/gnuradio-core/src/lib/general/gr_float_to_char.cc
index 3602ad7453..d67ded3ea6 100644
--- a/gnuradio-core/src/lib/general/gr_float_to_char.cc
+++ b/gnuradio-core/src/lib/general/gr_float_to_char.cc
@@ -42,7 +42,7 @@ gr_float_to_char::gr_float_to_char (size_t vlen, float scale)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(char);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 float
diff --git a/gnuradio-core/src/lib/general/gr_float_to_int.cc b/gnuradio-core/src/lib/general/gr_float_to_int.cc
index bd3cd6a3b3..43b8518956 100644
--- a/gnuradio-core/src/lib/general/gr_float_to_int.cc
+++ b/gnuradio-core/src/lib/general/gr_float_to_int.cc
@@ -43,7 +43,7 @@ gr_float_to_int::gr_float_to_int (size_t vlen, float scale)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(int);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 float
diff --git a/gnuradio-core/src/lib/general/gr_float_to_short.cc b/gnuradio-core/src/lib/general/gr_float_to_short.cc
index 07995c99aa..ab720168bf 100644
--- a/gnuradio-core/src/lib/general/gr_float_to_short.cc
+++ b/gnuradio-core/src/lib/general/gr_float_to_short.cc
@@ -42,7 +42,7 @@ gr_float_to_short::gr_float_to_short (size_t vlen, float scale)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(short);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 float
diff --git a/gnuradio-core/src/lib/general/gr_int_to_float.cc b/gnuradio-core/src/lib/general/gr_int_to_float.cc
index a284853055..a7fb24dc69 100644
--- a/gnuradio-core/src/lib/general/gr_int_to_float.cc
+++ b/gnuradio-core/src/lib/general/gr_int_to_float.cc
@@ -42,7 +42,7 @@ gr_int_to_float::gr_int_to_float (size_t vlen, float scale)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_multiply_cc.cc b/gnuradio-core/src/lib/general/gr_multiply_cc.cc
index 32c44a19e4..4a3751419f 100644
--- a/gnuradio-core/src/lib/general/gr_multiply_cc.cc
+++ b/gnuradio-core/src/lib/general/gr_multiply_cc.cc
@@ -40,9 +40,9 @@ gr_multiply_cc::gr_multiply_cc (size_t vlen)
 		   gr_make_io_signature (1, 1, sizeof (gr_complex)*vlen)),
     d_vlen(vlen)
 {
- const int alignment_multiple =
-   volk_get_alignment() / sizeof(gr_complex);
- set_alignment(alignment_multiple);
+  const int alignment_multiple =
+    volk_get_alignment() / sizeof(gr_complex);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_multiply_conjugate_cc.cc b/gnuradio-core/src/lib/general/gr_multiply_conjugate_cc.cc
index 53ede2eeda..0c5fb4a926 100644
--- a/gnuradio-core/src/lib/general/gr_multiply_conjugate_cc.cc
+++ b/gnuradio-core/src/lib/general/gr_multiply_conjugate_cc.cc
@@ -40,9 +40,9 @@ gr_multiply_conjugate_cc::gr_multiply_conjugate_cc (size_t vlen)
 		   gr_make_io_signature (1, 1, sizeof (gr_complex)*vlen)),
     d_vlen(vlen)
 {
- const int alignment_multiple =
-   volk_get_alignment() / sizeof(gr_complex);
- set_alignment(alignment_multiple);
+  const int alignment_multiple =
+    volk_get_alignment() / sizeof(gr_complex);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_multiply_const_cc.cc b/gnuradio-core/src/lib/general/gr_multiply_const_cc.cc
index 359ab6ba05..bd4511937f 100644
--- a/gnuradio-core/src/lib/general/gr_multiply_const_cc.cc
+++ b/gnuradio-core/src/lib/general/gr_multiply_const_cc.cc
@@ -40,9 +40,9 @@ gr_multiply_const_cc::gr_multiply_const_cc (gr_complex k, size_t vlen)
 		   gr_make_io_signature (1, 1, sizeof (gr_complex)*vlen)),
     d_k(k), d_vlen(vlen)
 {
- const int alignment_multiple =
-   volk_get_alignment() / sizeof(gr_complex);
- set_alignment(alignment_multiple);
+  const int alignment_multiple =
+    volk_get_alignment() / sizeof(gr_complex);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 gr_complex
diff --git a/gnuradio-core/src/lib/general/gr_multiply_const_ff.cc b/gnuradio-core/src/lib/general/gr_multiply_const_ff.cc
index 263f066106..16ba39df93 100644
--- a/gnuradio-core/src/lib/general/gr_multiply_const_ff.cc
+++ b/gnuradio-core/src/lib/general/gr_multiply_const_ff.cc
@@ -40,9 +40,9 @@ gr_multiply_const_ff::gr_multiply_const_ff (float k, size_t vlen)
 		   gr_make_io_signature (1, 1, sizeof (float)*vlen)),
     d_k(k), d_vlen(vlen)
 {
- const int alignment_multiple =
-   volk_get_alignment() / sizeof(float);
- set_alignment(alignment_multiple);
+  const int alignment_multiple =
+    volk_get_alignment() / sizeof(float);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 float
diff --git a/gnuradio-core/src/lib/general/gr_multiply_ff.cc b/gnuradio-core/src/lib/general/gr_multiply_ff.cc
index f764a71e8f..bb7bd07550 100644
--- a/gnuradio-core/src/lib/general/gr_multiply_ff.cc
+++ b/gnuradio-core/src/lib/general/gr_multiply_ff.cc
@@ -42,7 +42,7 @@ gr_multiply_ff::gr_multiply_ff (size_t vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_short_to_char.cc b/gnuradio-core/src/lib/general/gr_short_to_char.cc
index 9d6c41406e..8c146a351d 100644
--- a/gnuradio-core/src/lib/general/gr_short_to_char.cc
+++ b/gnuradio-core/src/lib/general/gr_short_to_char.cc
@@ -42,7 +42,7 @@ gr_short_to_char::gr_short_to_char (size_t vlen)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(char);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 int
diff --git a/gnuradio-core/src/lib/general/gr_short_to_float.cc b/gnuradio-core/src/lib/general/gr_short_to_float.cc
index 960cf644d1..093d6024fa 100644
--- a/gnuradio-core/src/lib/general/gr_short_to_float.cc
+++ b/gnuradio-core/src/lib/general/gr_short_to_float.cc
@@ -42,7 +42,7 @@ gr_short_to_float::gr_short_to_float (size_t vlen, float scale)
 {
   const int alignment_multiple =
     volk_get_alignment() / sizeof(float);
-  set_alignment(alignment_multiple);
+  set_alignment(std::max(1,alignment_multiple));
 }
 
 float
-- 
cgit v1.2.3


From 5f13956bfac00dadf350d97ccc8ddd555dc9b10e Mon Sep 17 00:00:00 2001
From: Josh Blum <josh@joshknows.com>
Date: Tue, 3 Jul 2012 13:52:11 -0700
Subject: docs: remove redundant retries from swig_doc.py

With proper build dependencies, it should not be needed.
---
 docs/doxygen/swig_doc.py | 100 ++++++++++++-----------------------------------
 1 file changed, 26 insertions(+), 74 deletions(-)

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/swig_doc.py b/docs/doxygen/swig_doc.py
index 9277470984..f24608b3ee 100644
--- a/docs/doxygen/swig_doc.py
+++ b/docs/doxygen/swig_doc.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2010,2011 Free Software Foundation, Inc.
+# Copyright 2010-2012 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio
 # 
@@ -232,25 +232,7 @@ def make_block2_entry(di, block):
             params=make_func.params))
     return "\n\n".join(output)
 
-def wait_if_necessary(tries, swigdocfilename, item=None):
-    if item is not None:
-        extra = ', item {0}'.format(item.name())
-    else:
-        extra = ''
-    if(tries < 3):
-        # May not be built just yet; sleep and try again
-        sys.stderr.write("XML parsing problem with file {0}{1}, retrying.\n".format(
-                swigdocfilename, extra))
-        time.sleep(1)
-        tries += 1
-        return tries, True
-    else:
-        # if we've given it three tries, give up and raise an error
-        sys.stderr.write("XML parsing error with file {0}{1}. giving up.\n".format(
-                swigdocfilename, extra))
-        return tries, False
-
-def make_swig_interface_file(di, swigdocfilename, custom_output=None, tries=0):
+def make_swig_interface_file(di, swigdocfilename, custom_output=None):
     
     output = ["""
 /*
@@ -264,50 +246,32 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None, tries=0):
         output.append(custom_output)
 
     # Create docstrings for the blocks.
-    while(1):
-        try:
-            blocks = di.in_category(Block)
-            blocks2 = di.in_category(Block2)
-        except:
-            tries, try_again = wait_if_necessary(tries, swigdocfilename)
-            if not try_again:
-                raise
-        else:
-            break
+    blocks = di.in_category(Block)
+    blocks2 = di.in_category(Block2)
+
     make_funcs = set([])
     for block in blocks:
-        while(1):
-            try:
-                make_func = di.get_member(make_name(block.name()), DoxyFunction)
-                # Don't want to risk writing to output twice.
-                if make_func.name() not in make_funcs:
-                    make_funcs.add(make_func.name())
-                    output.append(make_block_entry(di, block))
-            except block.ParsingError:
-                sys.stderr.write('Parsing error for block {0}\n'.format(block.name()))
-            except:
-                tries, try_again = wait_if_necessary(tries, swigdocfilename, block)
-                if not try_again:
-                    raise
-            else:
-                break
+        try:
+            make_func = di.get_member(make_name(block.name()), DoxyFunction)
+            # Don't want to risk writing to output twice.
+            if make_func.name() not in make_funcs:
+                make_funcs.add(make_func.name())
+                output.append(make_block_entry(di, block))
+        except block.ParsingError:
+            sys.stderr.write('Parsing error for block {0}\n'.format(block.name()))
+            raise
+
     for block in blocks2:
-        while(1):
-            try:
-                make_func = block.get_member('make', DoxyFunction)
-                make_func_name = block.name() +'::make'
-                # Don't want to risk writing to output twice.
-                if make_func_name not in make_funcs:
-                    make_funcs.add(make_func_name)
-                    output.append(make_block2_entry(di, block))
-            except block.ParsingError:
-                sys.stderr.write('Parsing error for block {0}\n'.format(block.name()))
-            except:
-                tries, try_again = wait_if_necessary(tries, swigdocfilename, block)
-                if not try_again:
-                    raise
-            else:
-                break        
+        try:
+            make_func = block.get_member('make', DoxyFunction)
+            make_func_name = block.name() +'::make'
+            # Don't want to risk writing to output twice.
+            if make_func_name not in make_funcs:
+                make_funcs.add(make_func_name)
+                output.append(make_block2_entry(di, block))
+        except block.ParsingError:
+            sys.stderr.write('Parsing error for block {0}\n'.format(block.name()))
+            raise
 
     # Create docstrings for functions
     # Don't include the make functions since they have already been dealt with.
@@ -359,16 +323,4 @@ if __name__ == "__main__":
     custom_output = "\n\n".join(output)
 
     # Generate the docstrings interface file.
-    # If parsing error on NoSuchMember, try again by rereading everything.
-    # Give up after 3 tries.
-    tries = 0
-    while(1):
-        try:
-            make_swig_interface_file(di, swigdocfilename, custom_output=custom_output, tries=tries)
-        except:
-            tries, try_again = wait_if_necessary(tries, swigdocfilename)
-            if not try_again:
-                raise
-        else:
-            break
-        
+    make_swig_interface_file(di, swigdocfilename, custom_output=custom_output)
-- 
cgit v1.2.3


From 743745f0fbb8c31b919bada25dab91dfeab5e129 Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@vt.edu>
Date: Mon, 3 Sep 2012 14:09:06 -0400
Subject: docs: reworking doc into one extra dox file for easier linking.

build_guide was not being found properly. Putting these together fixes that.
---
 docs/doxygen/other/build_guide.dox | 158 ------------------
 docs/doxygen/other/extra_pages.dox | 326 +++++++++++++++++++++++++++++++++++++
 docs/doxygen/other/main_page.dox   |   2 +-
 docs/doxygen/other/volk_guide.dox  | 161 ------------------
 4 files changed, 327 insertions(+), 320 deletions(-)
 delete mode 100644 docs/doxygen/other/build_guide.dox
 create mode 100644 docs/doxygen/other/extra_pages.dox
 delete mode 100644 docs/doxygen/other/volk_guide.dox

(limited to 'docs/doxygen')

diff --git a/docs/doxygen/other/build_guide.dox b/docs/doxygen/other/build_guide.dox
deleted file mode 100644
index 629a0f89f2..0000000000
--- a/docs/doxygen/other/build_guide.dox
+++ /dev/null
@@ -1,158 +0,0 @@
-/*! \page page_build Build Instructions and Information
-
-\section dependencies Dependencies
-
-The list of GNU Radio dependencies and the minimum required versions,
-if any, to build the various GNU Radio components.
-
-Most of these components do not need to be individually compiled or
-installed. Instead, rely on your operating system's package manager or
-binary installation process (the <b>apt-get</b> system in Debian and
-Ubuntu, <b>yum</b> in RedHat and Fedora, etc.). GNU Radio tries to keep an
-up-to-date build guide for the majority of the supported operating
-systems on gnuradio.org
-(http://gnuradio.org/redmine/projects/gnuradio/wiki/BuildGuide).
-
-Not all dependencies are required for all components, and not all
-components are required for a given installation. The list of required
-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
-
-\subsection dep_python Python Wrappers
-\li python      (>= 2.5)     http://www.python.org/download/
-\li swig        (>= 1.3.31)  http://www.swig.org/download.html
-\li numpy       (>= 1.1.0)   http://sourceforge.net/projects/numpy/files/NumPy/
-
-\subsection dep_docs docs: Building the documentation
-\li doxygen     (>= 1.5)     http://www.stack.nl/~dimitri/doxygen/download.html
-
-\subsection dep_grc grc: The GNU Radio Companion
-\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/
-\li pyqt        (>= 4.4)     http://www.riverbankcomputing.co.uk/software/pyqt/download
-\li pyqwt       (>= 5.2)     http://pyqwt.sourceforge.net/download.html
-
-\subsection dep_gr_wxgui gr-wxgui: The WX-based Graphical User Interface
-\li wxpython    (>= 2.8)     http://www.wxpython.org/
-\li python-lxml (>= 1.3.6)   http://lxml.de/
-
-\subsection dep_gr_audio gr-audio: Audio Subsystems (system/OS dependent)
-\li audio-alsa  (>= 0.9)     http://www.alsa-project.org
-\li audio-jack  (>= 0.8)     http://jackaudio.org/
-\li portaduio   (>= 19)      http://www.portaudio.com/
-\li audio-oss   (>= 1.0)     http://www.opensound.com/oss.html
-\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
-
-\subsection dep_shd shd: The Symplex Hardware Driver Interface
-\li shd         (>= 3.0.0)
-
-\subsection dep_gr_video_sdl gr-video-sdl: PAL and NTSC display
-\li SDL	        (>= 1.2.0)   http://www.libsdl.org/download-1.2.php
-
-\subsection dep_gr_comedi gr-comedi: Comedi hardware interface
-\li comedilib   (>= 0.8)     http://www.comedi.org/
-
-
-
-\section build_gr_cmake Building GNU Radio
-
-GNU Radio is built using the Cmake build system
-(http://www.cmake.org/). The standard build method is as follows:
-
-\code
-$ mkdir $(builddir)
-$ cd $(builddir)
-$ cmake [OPTIONS] $(srcdir)
-$ make
-$ make test
-$ sudo make install
-\endcode
-
-The \$(builddir) is the directory in which the code is built. This
-<b>cannot</b> be the same path as where the source code resides. Often,
-\$(builddir) is \$(srcdir)/build.
-
-\subsection Cmake Options
-
-Options can be used to specify where to find various library or
-include file dependencies that are not automatically being found
-(-DCMAKE_PREFIX_PATH) or set the prefix
-(-DCMAKE_INSTALL_PREFIX=(dir)).
-
-Components can also be enabled and disabled through the options. For a
-component named *gr-comp*, the option to disable would look like:
--DENABLE_GR_COMP=off. The "off" could also be "false" or "no", and
-cmake is not case sensitive about these options. Similarly, "true",
-"on", or "yes" will turn this component on. All components are enabled
-by default.
-
-An example is -DENABLE_PYTHON=False turns off building any Python or
-Swigging components. The result will be the GNU Radio libraries and
-C++ programs/applications/examples. No Python or GRC files will be
-built or installed.
-
-The -DENABLE_DEFAULT=False can be used to disable all
-components. Individual components can then be selectively turned back
-on. For example, just buidling the Volk and Gruel libraries can be
-done with this:
-
-\code
-cmake -DENABLE_DEFAULT=Off -DENABLE_VOLK=True -DENABLE_GRUEL=True <srcdir>
-\endcode
-
-
-The build type allows you to specify the build as a debug or release
-version. Each type sets different flags for different purposes. To set
-the build type, use:
-
-\code
--DCMAKE_BUILD_TYPE="Release"|"Debug"
-\endcode
-
-If not specified, the "Release" mode is the defaulted to.
-
-"Release" mode sets the '-O3' optimization flag.
-
-"Debug" mode sets '-g -O2' flags to export debug symbols and reduce
-the optimization to make the libraries easier to debug and step
-through.
-
-
-\subsection build_gr_cmake_e100 Building for the E100
-
-To build GNU Radio on the Ettus Research E100 embedded platforms,
-Cmake has to know that the processors uses the NEON extensions. Use
-the
-
-\code
-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
diff --git a/docs/doxygen/other/extra_pages.dox b/docs/doxygen/other/extra_pages.dox
new file mode 100644
index 0000000000..d40c692e03
--- /dev/null
+++ b/docs/doxygen/other/extra_pages.dox
@@ -0,0 +1,326 @@
+/*! \page build_guide Build Instructions and Information
+
+\section dependencies Dependencies
+
+The list of GNU Radio dependencies and the minimum required versions,
+if any, to build the various GNU Radio components.
+
+Most of these components do not need to be individually compiled or
+installed. Instead, rely on your operating system's package manager or
+binary installation process (the <b>apt-get</b> system in Debian and
+Ubuntu, <b>yum</b> in RedHat and Fedora, etc.). GNU Radio tries to keep an
+up-to-date build guide for the majority of the supported operating
+systems on gnuradio.org
+(http://gnuradio.org/redmine/projects/gnuradio/wiki/BuildGuide).
+
+Not all dependencies are required for all components, and not all
+components are required for a given installation. The list of required
+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
+
+\subsection dep_python Python Wrappers
+\li python      (>= 2.5)     http://www.python.org/download/
+\li swig        (>= 1.3.31)  http://www.swig.org/download.html
+\li numpy       (>= 1.1.0)   http://sourceforge.net/projects/numpy/files/NumPy/
+
+\subsection dep_docs docs: Building the documentation
+\li doxygen     (>= 1.5)     http://www.stack.nl/~dimitri/doxygen/download.html
+
+\subsection dep_grc grc: The GNU Radio Companion
+\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/
+\li pyqt        (>= 4.4)     http://www.riverbankcomputing.co.uk/software/pyqt/download
+\li pyqwt       (>= 5.2)     http://pyqwt.sourceforge.net/download.html
+
+\subsection dep_gr_wxgui gr-wxgui: The WX-based Graphical User Interface
+\li wxpython    (>= 2.8)     http://www.wxpython.org/
+\li python-lxml (>= 1.3.6)   http://lxml.de/
+
+\subsection dep_gr_audio gr-audio: Audio Subsystems (system/OS dependent)
+\li audio-alsa  (>= 0.9)     http://www.alsa-project.org
+\li audio-jack  (>= 0.8)     http://jackaudio.org/
+\li portaduio   (>= 19)      http://www.portaudio.com/
+\li audio-oss   (>= 1.0)     http://www.opensound.com/oss.html
+\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
+
+\subsection dep_shd shd: The Symplex Hardware Driver Interface
+\li shd         (>= 3.0.0)
+
+\subsection dep_gr_video_sdl gr-video-sdl: PAL and NTSC display
+\li SDL	        (>= 1.2.0)   http://www.libsdl.org/download-1.2.php
+
+\subsection dep_gr_comedi gr-comedi: Comedi hardware interface
+\li comedilib   (>= 0.8)     http://www.comedi.org/
+
+
+
+\section build_gr_cmake Building GNU Radio
+
+GNU Radio is built using the Cmake build system
+(http://www.cmake.org/). The standard build method is as follows:
+
+\code
+$ mkdir $(builddir)
+$ cd $(builddir)
+$ cmake [OPTIONS] $(srcdir)
+$ make
+$ make test
+$ sudo make install
+\endcode
+
+The \$(builddir) is the directory in which the code is built. This
+<b>cannot</b> be the same path as where the source code resides. Often,
+\$(builddir) is \$(srcdir)/build.
+
+\subsection Cmake Options
+
+Options can be used to specify where to find various library or
+include file dependencies that are not automatically being found
+(-DCMAKE_PREFIX_PATH) or set the prefix
+(-DCMAKE_INSTALL_PREFIX=(dir)).
+
+Components can also be enabled and disabled through the options. For a
+component named *gr-comp*, the option to disable would look like:
+-DENABLE_GR_COMP=off. The "off" could also be "false" or "no", and
+cmake is not case sensitive about these options. Similarly, "true",
+"on", or "yes" will turn this component on. All components are enabled
+by default.
+
+An example is -DENABLE_PYTHON=False turns off building any Python or
+Swigging components. The result will be the GNU Radio libraries and
+C++ programs/applications/examples. No Python or GRC files will be
+built or installed.
+
+The -DENABLE_DEFAULT=False can be used to disable all
+components. Individual components can then be selectively turned back
+on. For example, just buidling the Volk and Gruel libraries can be
+done with this:
+
+\code
+cmake -DENABLE_DEFAULT=Off -DENABLE_VOLK=True -DENABLE_GRUEL=True <srcdir>
+\endcode
+
+
+The build type allows you to specify the build as a debug or release
+version. Each type sets different flags for different purposes. To set
+the build type, use:
+
+\code
+-DCMAKE_BUILD_TYPE="Release"|"Debug"
+\endcode
+
+If not specified, the "Release" mode is the defaulted to.
+
+"Release" mode sets the '-O3' optimization flag.
+
+"Debug" mode sets '-g -O2' flags to export debug symbols and reduce
+the optimization to make the libraries easier to debug and step
+through.
+
+
+\subsection build_gr_cmake_e100 Building for the E100
+
+To build GNU Radio on the Ettus Research E100 embedded platforms,
+Cmake has to know that the processors uses the NEON extensions. Use
+the
+
+\code
+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
+
+*/
+
+
+
+/*! \page volk_guide Instructions for using Volk in GNU Radio
+
+\section volk_intro Introduction
+
+Volk is the Vector-Optimized Library of Kernels. It is a library that
+contains kernels of hand-written SIMD code for different mathematical
+operations. Since each SIMD architecture can be greatly different and
+no compiler has yet come along to handle vectorization properly or
+highly efficiently, Volk approaches the problem differently. For each
+architecture or platform that a developer wishes to vectorize for, a
+new proto-kernel is added to Volk. At runtime, Volk will select the
+correct proto-kernel. In this way, the users of Volk call a kernel for
+performing the operation that is platform/architecture agnostic. This
+allows us to write portable SIMD code.
+
+Volk kernels are always defined with a 'generic' proto-kernel, which
+is written in plain C. With the generic kernel, the kernel becomes
+portable to any platform. Kernels are then extended by adding
+proto-kernels for new platforms in which they are desired.
+
+A good example of a Volk kernel with multiple proto-kernels defined is
+the volk_32f_s32f_multiply_32f_a. This kernel implements a scalar
+multiplication of a vector of floating point numbers (each item in the
+vector is multiplied by the same value). This kernel has the following
+proto-kernels that are defined for 'generic,' 'avx,' 'sse,' and 'orc.'
+
+\code
+    void volk_32f_s32f_multiply_32f_a_generic
+    void volk_32f_s32f_multiply_32f_a_sse
+    void volk_32f_s32f_multiply_32f_a_avx
+    void volk_32f_s32f_multiply_32f_a_orc
+\endcode
+
+These proto-kernels means that on platforms with AVX support, Volk can
+select this option or the SSE option, depending on which is faster. On
+other platforms, the ORC SIMD compiler might provide a solution. If
+all else fails, Volk can fall back on the generic proto-kernel, which
+will always work.
+
+Just a note on ORC. ORC is a SIMD compiler library that uses a generic
+assembly-like language for SIMD commands. Based on the available SIMD
+architecture of a system, it will try and compile a good
+solution. Tests show that the results of ORC proto-kernels are
+generally better than the generic versions but often not as good as
+the hand-tuned proto-kernels for a specific SIMD architecture. This
+is, of course, to be expected, and ORC provides a nice intermediary
+step to performance improvements until a specific hand-tuned
+proto-kernel can be made for a given platform.
+
+See <a
+href="http://gnuradio.org/redmine/projects/gnuradio/wiki/Volk">Volk on
+gnuradio.org</a> for details on the Volk naming scheme.
+
+
+\section volk_alignment Setting and Using Memory Alignment Information
+
+For Volk to work as best as possible, we want to use memory-aligned
+SIMD calls, which means we have to have some way of knowing and
+controlling the alignment of the buffers passed to gr_block's work
+function. We set the alignment requirement for SIMD aligned memory
+calls with:
+
+\code
+  const int alignment_multiple =
+    volk_get_alignment() / output_item_size;
+  set_alignment(std::max(1,alignment_multiple));
+\endcode
+
+The Volk function 'volk_get_alignment' provides the alignment of the
+the machine architecture. We then base the alignment on the number of
+output items required to maintain the alignment, so we divide the
+number of alignment bytes by the number of bytes in an output items
+(sizeof(float), sizeof(gr_complex), etc.). This value is then set per
+block with the 'set_alignment' function.
+
+Because the scheduler tries to optimize throughput, the number of
+items available per call to work will change and depends on the
+availability of the read and write buffers. This means that it
+sometimes cannot produce a buffer that is properly memory
+aligned. This is an inevitable consequence of the scheduler
+system. Instead of requiring alignment, the scheduler enforces the
+alignment as much as possible, and when a buffer becomes unaligned,
+the scheduler will work to correct it as much as possible. If a
+block's buffers are unaligned, then, the scheduler sets a flag to
+indicate as much so that the block can then decide what best to
+do. The next section discusses the use of the aligned/unaligned
+information in a gr_block's work function.
+
+
+\section volk_work Using Alignment Properties in Work()
+
+The buffers passed to work/general_work in a gr_block are not
+guaranteed to be aligned, but they will mostly be aligned whenever
+possible. When not aligned, the 'is_unaligned()' flag will be set. So
+a block can know if its buffers are aligned and make the right
+decisions. This looks like:
+
+\code
+int
+gr_some_block::work (int noutput_items,
+		     gr_vector_const_void_star &input_items,
+		     gr_vector_void_star &output_items)
+{
+  const float *in = (const float *) input_items[0];
+  float *out = (float *) output_items[0];
+
+  if(is_unaligned()) {
+    // do something with unaligned data. This can either be a manual
+    // handling of the items or a call to an unaligned Volk function.
+    volk_32f_something_32f_u(out, in, noutput_items);
+  }
+  else {
+    // Buffers are aligned; can call the aligned Volk function.
+    volk_32f_something_32f_a(out, in, noutput_items);
+  }
+
+  return noutput_items;
+}
+\endcode
+
+
+
+\section volk_tuning Tuning Volk Performance
+
+VOLK comes with a profiler that will build a config file for the best
+SIMD architecture for your processor. Run volk_profile that is
+installed into $PREFIX/bin. This program tests all known VOLK kernels
+for each architecture supported by the processor. When finished, it
+will write to $HOME/.volk/volk_config the best architecture for the
+VOLK function. This file is read when using a function to know the
+best version of the function to execute.
+
+\subsection volk_hand_tuning Hand-Tuning Performance
+
+If you know a particular architecture works best for your processor,
+you can specify the particular architecture to use in the VOLK
+preferences file: $HOME/.volk/volk_config
+
+The file looks like:
+
+\code
+    volk_<FUNCTION_NAME> <ARCHITECTURE>
+\endcode
+
+Where the "FUNCTION_NAME" is the particular function that you want to
+over-ride the default value and "ARCHITECTURE" is the VOLK SIMD
+architecture to use (generic, sse, sse2, sse3, avx, etc.). For
+example, the following config file tells VOLK to use SSE3 for the
+aligned and unaligned versions of a function that multiplies two
+complex streams together.
+
+\code
+    volk_32fc_x2_multiply_32fc_a sse3
+    volk_32fc_x2_multiply_32fc_u sse3
+\endcode
+
+\b Tip: if benchmarking GNU Radio blocks, it can be useful to have a
+volk_config file that sets all architectures to 'generic' as a way to
+test the vectorized versus non-vectorized implementations.
+
+*/
+
+
diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox
index 68b0989436..8f69a97373 100644
--- a/docs/doxygen/other/main_page.dox
+++ b/docs/doxygen/other/main_page.dox
@@ -14,7 +14,7 @@ the <a href="http://gnuradio.squarespace.com" target="_blank"><b>GNU Radio blog<
 
 \section build Building GNU Radio
 
-See the \ref page_build page for details about the project's
+See the \ref build_guide page for details about the project's
 dependencies and build process.
 
 
diff --git a/docs/doxygen/other/volk_guide.dox b/docs/doxygen/other/volk_guide.dox
deleted file mode 100644
index 0e444ebbaf..0000000000
--- a/docs/doxygen/other/volk_guide.dox
+++ /dev/null
@@ -1,161 +0,0 @@
-/*! \page volk_guide Instructions for using Volk in GNU Radio
-
-\section volk_intro Introduction
-
-Volk is the Vector-Optimized Library of Kernels. It is a library that
-contains kernels of hand-written SIMD code for different mathematical
-operations. Since each SIMD architecture can be greatly different and
-no compiler has yet come along to handle vectorization properly or
-highly efficiently, Volk approaches the problem differently. For each
-architecture or platform that a developer wishes to vectorize for, a
-new proto-kernel is added to Volk. At runtime, Volk will select the
-correct proto-kernel. In this way, the users of Volk call a kernel for
-performing the operation that is platform/architecture agnostic. This
-allows us to write portable SIMD code.
-
-Volk kernels are always defined with a 'generic' proto-kernel, which
-is written in plain C. With the generic kernel, the kernel becomes
-portable to any platform. Kernels are then extended by adding
-proto-kernels for new platforms in which they are desired.
-
-A good example of a Volk kernel with multiple proto-kernels defined is
-the volk_32f_s32f_multiply_32f_a. This kernel implements a scalar
-multiplication of a vector of floating point numbers (each item in the
-vector is multiplied by the same value). This kernel has the following
-proto-kernels that are defined for 'generic,' 'avx,' 'sse,' and 'orc.'
-
-\code
-    void volk_32f_s32f_multiply_32f_a_generic
-    void volk_32f_s32f_multiply_32f_a_sse
-    void volk_32f_s32f_multiply_32f_a_avx
-    void volk_32f_s32f_multiply_32f_a_orc
-\endcode
-
-These proto-kernels means that on platforms with AVX support, Volk can
-select this option or the SSE option, depending on which is faster. On
-other platforms, the ORC SIMD compiler might provide a solution. If
-all else fails, Volk can fall back on the generic proto-kernel, which
-will always work.
-
-Just a note on ORC. ORC is a SIMD compiler library that uses a generic
-assembly-like language for SIMD commands. Based on the available SIMD
-architecture of a system, it will try and compile a good
-solution. Tests show that the results of ORC proto-kernels are
-generally better than the generic versions but often not as good as
-the hand-tuned proto-kernels for a specific SIMD architecture. This
-is, of course, to be expected, and ORC provides a nice intermediary
-step to performance improvements until a specific hand-tuned
-proto-kernel can be made for a given platform.
-
-See <a
-href="http://gnuradio.org/redmine/projects/gnuradio/wiki/Volk">Volk on
-gnuradio.org</a> for details on the Volk naming scheme.
-
-
-\section volk_alignment Setting and Using Memory Alignment Information
-
-For Volk to work as best as possible, we want to use memory-aligned
-SIMD calls, which means we have to have some way of knowing and
-controlling the alignment of the buffers passed to gr_block's work
-function. We set the alignment requirement for SIMD aligned memory
-calls with:
-
-\code
-  const int alignment_multiple =
-    volk_get_alignment() / output_item_size;
-  set_alignment(std::max(1,alignment_multiple));
-\endcode
-
-The Volk function 'volk_get_alignment' provides the alignment of the
-the machine architecture. We then base the alignment on the number of
-output items required to maintain the alignment, so we divide the
-number of alignment bytes by the number of bytes in an output items
-(sizeof(float), sizeof(gr_complex), etc.). This value is then set per
-block with the 'set_alignment' function.
-
-Because the scheduler tries to optimize throughput, the number of
-items available per call to work will change and depends on the
-availability of the read and write buffers. This means that it
-sometimes cannot produce a buffer that is properly memory
-aligned. This is an inevitable consequence of the scheduler
-system. Instead of requiring alignment, the scheduler enforces the
-alignment as much as possible, and when a buffer becomes unaligned,
-the scheduler will work to correct it as much as possible. If a
-block's buffers are unaligned, then, the scheduler sets a flag to
-indicate as much so that the block can then decide what best to
-do. The next section discusses the use of the aligned/unaligned
-information in a gr_block's work function.
-
-
-\section volk_work Using Alignment Properties in Work()
-
-The buffers passed to work/general_work in a gr_block are not
-guaranteed to be aligned, but they will mostly be aligned whenever
-possible. When not aligned, the 'is_unaligned()' flag will be set. So
-a block can know if its buffers are aligned and make the right
-decisions. This looks like:
-
-\code
-int
-gr_some_block::work (int noutput_items,
-		     gr_vector_const_void_star &input_items,
-		     gr_vector_void_star &output_items)
-{
-  const float *in = (const float *) input_items[0];
-  float *out = (float *) output_items[0];
-
-  if(is_unaligned()) {
-    // do something with unaligned data. This can either be a manual
-    // handling of the items or a call to an unaligned Volk function.
-    volk_32f_something_32f_u(out, in, noutput_items);
-  }
-  else {
-    // Buffers are aligned; can call the aligned Volk function.
-    volk_32f_something_32f_a(out, in, noutput_items);
-  }
-
-  return noutput_items;
-}
-\endcode
-
-
-
-\section volk_tuning Tuning Volk Performance
-
-VOLK comes with a profiler that will build a config file for the best
-SIMD architecture for your processor. Run volk_profile that is
-installed into $PREFIX/bin. This program tests all known VOLK kernels
-for each architecture supported by the processor. When finished, it
-will write to $HOME/.volk/volk_config the best architecture for the
-VOLK function. This file is read when using a function to know the
-best version of the function to execute.
-
-\subsection volk_hand_tuning Hand-Tuning Performance
-
-If you know a particular architecture works best for your processor,
-you can specify the particular architecture to use in the VOLK
-preferences file: $HOME/.volk/volk_config
-
-The file looks like:
-
-\code
-    volk_<FUNCTION_NAME> <ARCHITECTURE>
-\endcode
-
-Where the "FUNCTION_NAME" is the particular function that you want to
-over-ride the default value and "ARCHITECTURE" is the VOLK SIMD
-architecture to use (generic, sse, sse2, sse3, avx, etc.). For
-example, the following config file tells VOLK to use SSE3 for the
-aligned and unaligned versions of a function that multiplies two
-complex streams together.
-
-\code
-    volk_32fc_x2_multiply_32fc_a sse3
-    volk_32fc_x2_multiply_32fc_u sse3
-\endcode
-
-\b Tip: if benchmarking GNU Radio blocks, it can be useful to have a
-volk_config file that sets all architectures to 'generic' as a way to
-test the vectorized versus non-vectorized implementations.
-
-*/
-- 
cgit v1.2.3