[114666] trunk/dports/science/gnuradio

michaelld at macports.org michaelld at macports.org
Fri Dec 13 08:59:10 PST 2013


Revision: 114666
          https://trac.macports.org/changeset/114666
Author:   michaelld at macports.org
Date:     2013-12-13 08:59:10 -0800 (Fri, 13 Dec 2013)
Log Message:
-----------
gnuradio:
+ update devel to 324cdab6 and next to 360ef806, both 20131212;
+ add patch to fix expansion of templates such that they take place at configure time instead of build time, allowing CMake to find these files in the local build instead of those already-installed.

Modified Paths:
--------------
    trunk/dports/science/gnuradio/Portfile

Added Paths:
-----------
    trunk/dports/science/gnuradio/files/patch-cmake-expand.diff

Modified: trunk/dports/science/gnuradio/Portfile
===================================================================
--- trunk/dports/science/gnuradio/Portfile	2013-12-13 16:36:51 UTC (rev 114665)
+++ trunk/dports/science/gnuradio/Portfile	2013-12-13 16:59:10 UTC (rev 114666)
@@ -85,13 +85,13 @@
     long_description    ${description}: \
         This port is kept up with the GNU Radio GIT 'master' branch, which is typically updated daily to weekly.  This version of GNU Radio generally contains fixes to, and its API is compatible with, the current GNU Radio release, and will be incorporated in an upcoming release.  This port may or not compile or function correctly, as it represents a work in progress.  If it does not work, check back in a few days.  Or try deactivating the currently active gnuradio port, cleaning any current builds, and trying again.
 
-    version             3.7.3_20131207
+    version             3.7.3_20131212
 
     conflicts           gnuradio-legacy gnuradio gnuradio-next
 
     fetch.type          git
     git.url             http://git.gnuradio.org/git/gnuradio.git
-    git.branch          317cd569beeeb7259671f0a84f09818fe6d7f825
+    git.branch          324cdab6d9bc8466da1020ef7934de77e6c415a4
 
     livecheck.url       http://gnuradio.org/cgit/gnuradio.git/log/?h=master
     livecheck.version   ${git.branch}
@@ -104,13 +104,13 @@
     long_description    ${description}: \
         This port is kept up with the GNU Radio GIT 'next' branch, which is typically updated daily to weekly.  This version of GNU Radio represents the next major release of GNU Radio, and hence its API is likely to be different than that provided by either gnuradio or gnuradio-devel.  This port may or not compile or function correctly, as it represents a work in progress.  If it does not work, check back in a few days.  Or try deactivating the currently active gnuradio port, cleaning any current builds, and trying again.
 
-    version             3.8.0_20131207
+    version             3.8.0_20131212
 
     conflicts           gnuradio-legacy gnuradio gnuradio-devel
 
     fetch.type          git
     git.url             http://git.gnuradio.org/git/gnuradio.git
-    git.branch          735770c8b8af76c42416127eddfe4d540476e475
+    git.branch          360ef806f1cd20fbfa1373a7d23fc6b9181f60e7
 
     livecheck.url       http://gnuradio.org/cgit/gnuradio.git/log/?h=next
     livecheck.version   ${git.branch}
@@ -137,6 +137,9 @@
         configure.args-append -DENABLE_GR_CTRLPORT=OFF
 
     }
+
+    patchfiles-append patch-cmake-expand.diff
+
 }
 
 use_parallel_build  yes

Added: trunk/dports/science/gnuradio/files/patch-cmake-expand.diff
===================================================================
--- trunk/dports/science/gnuradio/files/patch-cmake-expand.diff	                        (rev 0)
+++ trunk/dports/science/gnuradio/files/patch-cmake-expand.diff	2013-12-13 16:59:10 UTC (rev 114666)
@@ -0,0 +1,1154 @@
+--- cmake/Modules/GrMiscUtils.cmake.orig
++++ cmake/Modules/GrMiscUtils.cmake
+@@ -333,7 +333,7 @@ set(CMAKE_REQUIRED_LIBRARIES -lpthread)
+         } " HAVE_PTHREAD_SETSCHEDPARAM
+     )
+     GR_ADD_COND_DEF(HAVE_PTHREAD_SETSCHEDPARAM)
+-    
++
+     CHECK_CXX_SOURCE_COMPILES("
+         #include <sched.h>
+         int main(){
+@@ -345,3 +345,210 @@ set(CMAKE_REQUIRED_LIBRARIES -lpthread)
+     GR_ADD_COND_DEF(HAVE_SCHED_SETSCHEDULER)
+ endmacro(GR_CHECK_LINUX_SCHED_AVAIL)
+ 
++########################################################################
++# Macros to generate source and header files from template
++########################################################################
++macro(GR_EXPAND_X_H component root)
++
++  include(GrPython)
++
++  file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++"#!${PYTHON_EXECUTABLE}
++
++import sys, os, re
++sys.path.append('${GR_RUNTIME_PYTHONPATH}')
++os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
++os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
++
++if __name__ == '__main__':
++    import build_utils
++    root, inp = sys.argv[1:3]
++    for sig in sys.argv[3:]:
++        name = re.sub ('X+', sig, root)
++        d = build_utils.standard_dict2(name, sig, '${component}')
++        build_utils.expand_template(d, inp)
++")
++
++  #make a list of all the generated headers
++  unset(expanded_files_h)
++  foreach(sig ${ARGN})
++    string(REGEX REPLACE "X+" ${sig} name ${root})
++    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
++  endforeach(sig)
++  unset(name)
++
++  #try to force generate the headers
++  execute_process(
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}.h.t ${ARGN}
++  )
++
++  #create a command to generate the headers
++  add_custom_command(
++    OUTPUT ${expanded_files_h}
++    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}.h.t ${ARGN}
++  )
++
++  #install rules for the generated headers
++  list(APPEND generated_includes ${expanded_files_h})
++
++endmacro(GR_EXPAND_X_H)
++
++macro(GR_EXPAND_X_CC_H component root)
++
++  include(GrPython)
++
++  file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++"#!${PYTHON_EXECUTABLE}
++
++import sys, os, re
++sys.path.append('${GR_RUNTIME_PYTHONPATH}')
++os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
++os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
++
++if __name__ == '__main__':
++    import build_utils
++    root, inp = sys.argv[1:3]
++    for sig in sys.argv[3:]:
++        name = re.sub ('X+', sig, root)
++        d = build_utils.standard_impl_dict2(name, sig, '${component}')
++        build_utils.expand_template(d, inp)
++")
++
++  #make a list of all the generated files
++  unset(expanded_files_cc)
++  unset(expanded_files_h)
++  foreach(sig ${ARGN})
++    string(REGEX REPLACE "X+" ${sig} name ${root})
++    list(APPEND expanded_files_cc ${CMAKE_CURRENT_BINARY_DIR}/${name}.cc)
++    list(APPEND expanded_files_h  ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
++  endforeach(sig)
++  unset(name)
++
++  #try to force generate the source files
++  execute_process(
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}.cc.t ${ARGN}
++  )
++
++  #create a command to generate the source files
++  add_custom_command(
++    OUTPUT ${expanded_files_cc}
++    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.cc.t
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}.cc.t ${ARGN}
++  )
++
++  #try to force generate the header files
++  execute_process(
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}.h.t ${ARGN}
++  )
++
++  #create a command to generate the header files
++  add_custom_command(
++    OUTPUT ${expanded_files_h}
++    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}.h.t ${ARGN}
++  )
++
++  #make source files depends on headers to force generation
++  set_source_files_properties(${expanded_files_cc}
++    PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
++  )
++
++  #install rules for the generated files
++  list(APPEND generated_sources ${expanded_files_cc})
++  list(APPEND generated_headers ${expanded_files_h})
++
++endmacro(GR_EXPAND_X_CC_H)
++
++macro(GR_EXPAND_X_CC_H_IMPL component root)
++
++  include(GrPython)
++
++  file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++"#!${PYTHON_EXECUTABLE}
++
++import sys, os, re
++sys.path.append('${GR_RUNTIME_PYTHONPATH}')
++os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
++os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
++
++if __name__ == '__main__':
++    import build_utils
++    root, inp = sys.argv[1:3]
++    for sig in sys.argv[3:]:
++        name = re.sub ('X+', sig, root)
++        d = build_utils.standard_dict(name, sig, '${component}')
++        build_utils.expand_template(d, inp, '_impl')
++")
++
++  #make a list of all the generated files
++  unset(expanded_files_cc_impl)
++  unset(expanded_files_h_impl)
++  unset(expanded_files_h)
++  foreach(sig ${ARGN})
++    string(REGEX REPLACE "X+" ${sig} name ${root})
++    list(APPEND expanded_files_cc_impl ${CMAKE_CURRENT_BINARY_DIR}/${name}_impl.cc)
++    list(APPEND expanded_files_h_impl ${CMAKE_CURRENT_BINARY_DIR}/${name}_impl.h)
++    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/${component}/${name}.h)
++  endforeach(sig)
++  unset(name)
++
++  #try to force generate the _impl.cc files
++  execute_process(
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}_impl.cc.t ${ARGN}
++  )
++
++  #create a command to generate the _impl.cc files
++  add_custom_command(
++    OUTPUT ${expanded_files_cc_impl}
++    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}_impl.cc.t
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}_impl.cc.t ${ARGN}
++  )
++
++  #try to force generate the _impl.h files
++  execute_process(
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}_impl.h.t ${ARGN}
++  )
++
++  #create a command to generate the _impl.h files
++  add_custom_command(
++    OUTPUT ${expanded_files_h_impl}
++    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}_impl.h.t
++    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
++    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
++    ${root} ${root}_impl.h.t ${ARGN}
++  )
++
++  #make _impl.cc source files depend on _impl.h to force generation
++  set_source_files_properties(${expanded_files_cc_impl}
++    PROPERTIES OBJECT_DEPENDS "${expanded_files_h_impl}"
++  )
++
++  #make _impl.h source files depend on headers to force generation
++  set_source_files_properties(${expanded_files_h_impl}
++    PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
++  )
++
++  #install rules for the generated files
++  list(APPEND generated_sources ${expanded_files_cc_impl})
++  list(APPEND generated_headers ${expanded_files_h_impl})
++
++endmacro(GR_EXPAND_X_CC_H_IMPL)
+--- gr-analog/include/gnuradio/analog/CMakeLists.txt.orig
++++ gr-analog/include/gnuradio/analog/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-# Copyright 2012 Free Software Foundation, Inc.
++# Copyright 2012-2013 Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Radio
+ #
+@@ -18,55 +18,12 @@
+ # Boston, MA 02110-1301, USA.
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
+-########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_dict2(name, sig, 'analog')
+-        build_utils.expand_template(d, inp)
+-
+-")
+-
+-macro(expand_h root)
+-  #make a list of all the generated files
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-    )
+-
+-  #install rules for the generated h files
+-  list(APPEND generated_includes ${expanded_files_h})
+-endmacro(expand_h)
+-
+-########################################################################
+-# Invoke macro to generate various sources
++# Invoke macro to generate various headers
+ #######################################################################
+-expand_h(noise_source_X     s i f c)
+-expand_h(fastnoise_source_X s i f c)
+-expand_h(sig_source_X       s i f c)
++include(GrMiscUtils)
++GR_EXPAND_X_H(analog noise_source_X     s i f c)
++GR_EXPAND_X_H(analog fastnoise_source_X s i f c)
++GR_EXPAND_X_H(analog sig_source_X       s i f c)
+ 
+ add_custom_target(analog_generated_includes DEPENDS
+     ${generated_includes}
+--- gr-analog/lib/CMakeLists.txt.orig
++++ gr-analog/lib/CMakeLists.txt
+@@ -41,72 +41,12 @@ if(ENABLE_GR_CTRLPORT)
+ endif(ENABLE_GR_CTRLPORT)
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
++# Invoke macro to generate various sources and headers
+ ########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_impl_dict2(name, sig, 'analog')
+-        build_utils.expand_template(d, inp)
+-")
+-
+-macro(expand_cc root)
+-  #make a list of all the generated files
+-  unset(expanded_files_cc)
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_cc ${CMAKE_CURRENT_BINARY_DIR}/${name}.cc)
+-    list(APPEND expanded_files_h  ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the source files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_cc}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.cc.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.cc.t ${ARGN}
+-  )
+-
+-  #create a command to generate the header file
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-  )
+-  
+-  #make source files depends on headers to force generation
+-  set_source_files_properties(${expanded_files_cc}
+-    PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
+-  )
+-  
+-  #install rules for the generated cc files
+-  list(APPEND generated_sources ${expanded_files_cc})  
+-  list(APPEND generated_headers ${expanded_files_h})  
+-endmacro(expand_cc)
+-
+-
+-########################################################################
+-# Invoke macro to generate various sources
+-########################################################################
+-expand_cc(noise_source_X_impl     s i f c)
+-expand_cc(fastnoise_source_X_impl s i f c)
+-expand_cc(sig_source_X_impl     s i f c)
++include(GrMiscUtils)
++GR_EXPAND_X_CC_H(analog noise_source_X_impl     s i f c)
++GR_EXPAND_X_CC_H(analog fastnoise_source_X_impl s i f c)
++GR_EXPAND_X_CC_H(analog sig_source_X_impl     s i f c)
+ 
+ ########################################################################
+ # Setup library
+--- gr-blocks/include/gnuradio/blocks/CMakeLists.txt.orig
++++ gr-blocks/include/gnuradio/blocks/CMakeLists.txt
+@@ -18,79 +18,36 @@
+ # Boston, MA 02110-1301, USA.
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
++# Invoke macro to generate various headers
+ ########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_dict(name, sig, 'blocks')
+-        build_utils.expand_template(d, inp)
+-
+-")
+-
+-macro(expand_h root)
+-  #make a list of all the generated files
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-    )
+-
+-  #install rules for the generated h files
+-  list(APPEND generated_includes ${expanded_files_h})
+-endmacro(expand_h)
+-
+-########################################################################
+-# Invoke macro to generate various sources
+-########################################################################
+-expand_h(add_XX             ss ii cc)
+-expand_h(add_const_XX       bb ss ii ff cc)
+-expand_h(add_const_vXX      bb ss ii ff cc)
+-expand_h(and_XX             bb ss ii)
+-expand_h(and_const_XX       bb ss ii)
+-expand_h(argmax_XX          fs is ss)
+-expand_h(divide_XX          ss ii ff cc)
+-expand_h(integrate_XX       ss ii ff cc)
+-expand_h(max_XX             ff ii ss)
+-expand_h(moving_average_XX  ss ii ff cc)
+-expand_h(multiply_XX        ss ii)
+-expand_h(multiply_const_XX  ss ii)
+-expand_h(multiply_const_vXX ss ii ff cc)
+-expand_h(mute_XX            ss ii ff cc)
+-expand_h(not_XX             bb ss ii)
+-expand_h(or_XX              bb ss ii)
+-expand_h(peak_detector_XX   fb ib sb)
+-expand_h(probe_signal_X     b s i f c)
+-expand_h(probe_signal_vX    b s i f c)
+-expand_h(sample_and_hold_XX bb ss ii ff)
+-expand_h(sub_XX             ss ii ff cc)
+-expand_h(xor_XX             bb ss ii)
+-expand_h(packed_to_unpacked_XX bb ss ii)
+-expand_h(unpacked_to_packed_XX bb ss ii)
+-expand_h(vector_insert_X    b s i f c)
+-expand_h(vector_sink_X      b s i f c)
+-expand_h(vector_source_X    b s i f c)
++include(GrMiscUtils)
++GR_EXPAND_X_H(blocks add_XX             ss ii cc)
++GR_EXPAND_X_H(blocks add_const_XX       bb ss ii ff cc)
++GR_EXPAND_X_H(blocks add_const_vXX      bb ss ii ff cc)
++GR_EXPAND_X_H(blocks and_XX             bb ss ii)
++GR_EXPAND_X_H(blocks and_const_XX       bb ss ii)
++GR_EXPAND_X_H(blocks argmax_XX          fs is ss)
++GR_EXPAND_X_H(blocks divide_XX          ss ii ff cc)
++GR_EXPAND_X_H(blocks integrate_XX       ss ii ff cc)
++GR_EXPAND_X_H(blocks max_XX             ff ii ss)
++GR_EXPAND_X_H(blocks moving_average_XX  ss ii ff cc)
++GR_EXPAND_X_H(blocks multiply_XX        ss ii)
++GR_EXPAND_X_H(blocks multiply_const_XX  ss ii)
++GR_EXPAND_X_H(blocks multiply_const_vXX ss ii ff cc)
++GR_EXPAND_X_H(blocks mute_XX            ss ii ff cc)
++GR_EXPAND_X_H(blocks not_XX             bb ss ii)
++GR_EXPAND_X_H(blocks or_XX              bb ss ii)
++GR_EXPAND_X_H(blocks peak_detector_XX   fb ib sb)
++GR_EXPAND_X_H(blocks probe_signal_X     b s i f c)
++GR_EXPAND_X_H(blocks probe_signal_vX    b s i f c)
++GR_EXPAND_X_H(blocks sample_and_hold_XX bb ss ii ff)
++GR_EXPAND_X_H(blocks sub_XX             ss ii ff cc)
++GR_EXPAND_X_H(blocks xor_XX             bb ss ii)
++GR_EXPAND_X_H(blocks packed_to_unpacked_XX bb ss ii)
++GR_EXPAND_X_H(blocks unpacked_to_packed_XX bb ss ii)
++GR_EXPAND_X_H(blocks vector_insert_X    b s i f c)
++GR_EXPAND_X_H(blocks vector_sink_X      b s i f c)
++GR_EXPAND_X_H(blocks vector_source_X    b s i f c)
+ 
+ add_custom_target(blocks_generated_includes DEPENDS
+     ${generated_includes}
+--- gr-blocks/lib/CMakeLists.txt.orig
++++ gr-blocks/lib/CMakeLists.txt
+@@ -23,100 +23,36 @@
+ include(${CMAKE_CURRENT_SOURCE_DIR}/ConfigChecks.cmake)
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
+-########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_dict(name, sig, 'blocks')
+-        build_utils.expand_template(d, inp, '_impl')
+-")
+-
+-macro(expand_cc_h_impl root)
+-  #make a list of all the generated files
+-  unset(expanded_files_cc_impl)
+-  unset(expanded_files_h_impl)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_cc_impl ${CMAKE_CURRENT_BINARY_DIR}/${name}_impl.cc)
+-    list(APPEND expanded_files_h_impl ${CMAKE_CURRENT_BINARY_DIR}/${name}_impl.h)
+-    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/../include/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the _impl.cc files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_cc_impl}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}_impl.cc.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}_impl.cc.t ${ARGN}
+-  )
+-  
+-  #create a command to generate the _impl.h files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h_impl}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}_impl.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}_impl.h.t ${ARGN}
+-  )
+-  
+-  #make _impl.cc source files depend on headers to force generation
+-  set_source_files_properties(${expanded_files_cc_impl}
+-    PROPERTIES OBJECT_DEPENDS "${expanded_files_h_impl}"
+-  )
+-  
+-  #make _impl.h source files depend on headers to force generation
+-  set_source_files_properties(${expanded_files_h_impl}
+-    PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
+-  )
+-
+-  #install rules for the generated cc files
+-  list(APPEND generated_sources ${expanded_files_cc_impl})  
+-endmacro(expand_cc_h_impl)
+-
+-########################################################################
+ # Invoke macro to generate various sources
+ ########################################################################
+-expand_cc_h_impl(add_XX             ss ii cc)
+-expand_cc_h_impl(add_const_XX       bb ss ii ff cc)
+-expand_cc_h_impl(add_const_vXX      bb ss ii ff cc)
+-expand_cc_h_impl(and_XX             bb ss ii)
+-expand_cc_h_impl(and_const_XX       bb ss ii)
+-expand_cc_h_impl(argmax_XX          fs is ss)
+-expand_cc_h_impl(divide_XX          ss ii ff cc)
+-expand_cc_h_impl(integrate_XX       ss ii ff cc)
+-expand_cc_h_impl(max_XX             ff ii ss)
+-expand_cc_h_impl(moving_average_XX  ss ii ff cc)
+-expand_cc_h_impl(multiply_XX        ss ii)
+-expand_cc_h_impl(multiply_const_XX  ss ii)
+-expand_cc_h_impl(multiply_const_vXX ss ii ff cc)
+-expand_cc_h_impl(mute_XX            ss ii ff cc)
+-expand_cc_h_impl(not_XX             bb ss ii)
+-expand_cc_h_impl(or_XX              bb ss ii)
+-expand_cc_h_impl(peak_detector_XX   fb ib sb)
+-expand_cc_h_impl(probe_signal_X     b s i f c)
+-expand_cc_h_impl(probe_signal_vX    b s i f c)
+-expand_cc_h_impl(sample_and_hold_XX bb ss ii ff)
+-expand_cc_h_impl(sub_XX             ss ii ff cc)
+-expand_cc_h_impl(xor_XX             bb ss ii)
+-expand_cc_h_impl(packed_to_unpacked_XX bb ss ii)
+-expand_cc_h_impl(unpacked_to_packed_XX bb ss ii)
+-expand_cc_h_impl(vector_insert_X    b s i f c)
+-expand_cc_h_impl(vector_sink_X      b s i f c)
+-expand_cc_h_impl(vector_source_X    b s i f c)
++include(GrMiscUtils)
++GR_EXPAND_X_CC_H_IMPL(blocks add_XX             ss ii cc)
++GR_EXPAND_X_CC_H_IMPL(blocks add_const_XX       bb ss ii ff cc)
++GR_EXPAND_X_CC_H_IMPL(blocks add_const_vXX      bb ss ii ff cc)
++GR_EXPAND_X_CC_H_IMPL(blocks and_XX             bb ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks and_const_XX       bb ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks argmax_XX          fs is ss)
++GR_EXPAND_X_CC_H_IMPL(blocks divide_XX          ss ii ff cc)
++GR_EXPAND_X_CC_H_IMPL(blocks integrate_XX       ss ii ff cc)
++GR_EXPAND_X_CC_H_IMPL(blocks max_XX             ff ii ss)
++GR_EXPAND_X_CC_H_IMPL(blocks moving_average_XX  ss ii ff cc)
++GR_EXPAND_X_CC_H_IMPL(blocks multiply_XX        ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks multiply_const_XX  ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks multiply_const_vXX ss ii ff cc)
++GR_EXPAND_X_CC_H_IMPL(blocks mute_XX            ss ii ff cc)
++GR_EXPAND_X_CC_H_IMPL(blocks not_XX             bb ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks or_XX              bb ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks peak_detector_XX   fb ib sb)
++GR_EXPAND_X_CC_H_IMPL(blocks probe_signal_X     b s i f c)
++GR_EXPAND_X_CC_H_IMPL(blocks probe_signal_vX    b s i f c)
++GR_EXPAND_X_CC_H_IMPL(blocks sample_and_hold_XX bb ss ii ff)
++GR_EXPAND_X_CC_H_IMPL(blocks sub_XX             ss ii ff cc)
++GR_EXPAND_X_CC_H_IMPL(blocks xor_XX             bb ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks packed_to_unpacked_XX bb ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks unpacked_to_packed_XX bb ss ii)
++GR_EXPAND_X_CC_H_IMPL(blocks vector_insert_X    b s i f c)
++GR_EXPAND_X_CC_H_IMPL(blocks vector_sink_X      b s i f c)
++GR_EXPAND_X_CC_H_IMPL(blocks vector_source_X    b s i f c)
+ 
+ ########################################################################
+ # Setup the include and linker paths
+--- gr-digital/include/gnuradio/digital/CMakeLists.txt.orig
++++ gr-digital/include/gnuradio/digital/CMakeLists.txt
+@@ -17,54 +17,12 @@
+ # the Free Software Foundation, Inc., 51 Franklin Street,
+ # Boston, MA 02110-1301, USA.
+ 
++#################################################################
+ ########################################################################
+-# generate helper scripts to expand templated files
+-########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_dict2(name, sig, 'digital')
+-        build_utils.expand_template(d, inp)
+-
+-")
+-
+-macro(expand_h root)
+-  #make a list of all the generated files
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-    )
+-
+-  #install rules for the generated h files
+-  list(APPEND generated_includes ${expanded_files_h})
+-endmacro(expand_h)
+-
+-########################################################################
+-# Invoke macro to generate various sources
++# Invoke macro to generate various headers
+ #######################################################################
+-expand_h(chunks_to_symbols_XX     bf bc sf sc if ic)
++include(GrMiscUtils)
++GR_EXPAND_X_H(digital chunks_to_symbols_XX     bf bc sf sc if ic)
+ 
+ add_custom_target(digital_generated_includes DEPENDS
+     ${generated_includes}
+--- gr-digital/lib/CMakeLists.txt.orig
++++ gr-digital/lib/CMakeLists.txt
+@@ -42,70 +42,10 @@ if(ENABLE_GR_CTRLPORT)
+ endif(ENABLE_GR_CTRLPORT)
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
++# Invoke macro to generate various sources and headers
+ ########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_impl_dict2(name, sig, 'digital')
+-        build_utils.expand_template(d, inp)
+-")
+-
+-macro(expand_cc root)
+-  #make a list of all the generated files
+-  unset(expanded_files_cc)
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_cc ${CMAKE_CURRENT_BINARY_DIR}/${name}.cc)
+-    list(APPEND expanded_files_h  ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the source files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_cc}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.cc.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.cc.t ${ARGN}
+-  )
+-
+-  #create a command to generate the header file
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-  )
+-  
+-  #make source files depends on headers to force generation
+-  set_source_files_properties(${expanded_files_cc}
+-    PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
+-  )
+-  
+-  #install rules for the generated cc files
+-  list(APPEND generated_sources ${expanded_files_cc})  
+-  list(APPEND generated_headers ${expanded_files_h})  
+-endmacro(expand_cc)
+-
+-
+-########################################################################
+-# Invoke macro to generate various sources
+-########################################################################
+-expand_cc(chunks_to_symbols_XX_impl     bf bc sf sc if ic)
++include(GrMiscUtils)
++GR_EXPAND_X_CC_H(digital chunks_to_symbols_XX_impl     bf bc sf sc if ic)
+ 
+ ########################################################################
+ # Setup library
+@@ -198,7 +138,6 @@ list(APPEND digital_libs
+     ${LOG4CPP_LIBRARIES}
+ )
+ 
+-
+ add_library(gnuradio-digital SHARED ${digital_sources})
+ target_link_libraries(gnuradio-digital ${digital_libs})
+ GR_LIBRARY_FOO(gnuradio-digital RUNTIME_COMPONENT "digital_runtime" DEVEL_COMPONENT "digital_devel")
+--- gr-fec/include/gnuradio/fec/CMakeLists.txt.orig
++++ gr-fec/include/gnuradio/fec/CMakeLists.txt
+@@ -18,63 +18,9 @@
+ # Boston, MA 02110-1301, USA.
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
+-########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_dict(name, sig, 'fec')
+-        build_utils.expand_template(d, inp)
+-
+-")
+-
+-macro(expand_h root)
+-  #make a list of all the generated files
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-    )
+-
+-  #install rules for the generated h files
+-  list(APPEND generated_includes ${expanded_files_h})
+-endmacro(expand_h)
+-
+-########################################################################
+-# Invoke macro to generate various sources
+-########################################################################
+-#expand_h(foo_XX             ss ii cc)
+-
+-add_custom_target(fec_generated_includes DEPENDS
+-    ${generated_includes}
+-)
+-
+-########################################################################
+ # Install header files
+ ########################################################################
+ install(FILES
+-    ${generated_includes}
+     api.h
+     decode_ccsds_27_fb.h
+     encode_ccsds_27_bb.h
+--- gr-filter/include/gnuradio/filter/CMakeLists.txt.orig
++++ gr-filter/include/gnuradio/filter/CMakeLists.txt
+@@ -18,56 +18,13 @@
+ # Boston, MA 02110-1301, USA.
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
+-########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_dict2(name, sig, 'filter')
+-        build_utils.expand_template(d, inp)
+-
+-")
+-
+-macro(expand_h root)
+-  #make a list of all the generated files
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-    )
+-
+-  #install rules for the generated h files
+-  list(APPEND generated_includes ${expanded_files_h})
+-endmacro(expand_h)
+-
+-########################################################################
+-# Invoke macro to generate various sources
++# Invoke macro to generate various headers
+ #######################################################################
+-expand_h(fir_filter_XXX              ccc ccf fcc fff fsf scc)
+-expand_h(freq_xlating_fir_filter_XXX ccc ccf fcc fcf scf scc)
+-expand_h(interp_fir_filter_XXX       ccc ccf fcc fff fsf scc)
+-expand_h(rational_resampler_base_XXX ccc ccf fcc fff fsf scc)
++include(GrMiscUtils)
++GR_EXPAND_X_H(filter fir_filter_XXX              ccc ccf fcc fff fsf scc)
++GR_EXPAND_X_H(filter freq_xlating_fir_filter_XXX ccc ccf fcc fcf scf scc)
++GR_EXPAND_X_H(filter interp_fir_filter_XXX       ccc ccf fcc fff fsf scc)
++GR_EXPAND_X_H(filter rational_resampler_base_XXX ccc ccf fcc fff fsf scc)
+ 
+ add_custom_target(filter_generated_includes DEPENDS
+     ${generated_includes}
+--- gr-filter/lib/CMakeLists.txt.orig
++++ gr-filter/lib/CMakeLists.txt
+@@ -18,73 +18,13 @@
+ # Boston, MA 02110-1301, USA.
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
++# Invoke macro to generate various sources and headers
+ ########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_impl_dict2(name, sig, 'filter')
+-        build_utils.expand_template(d, inp)
+-")
+-
+-macro(expand_cc root)
+-  #make a list of all the generated files
+-  unset(expanded_files_cc)
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_cc ${CMAKE_CURRENT_BINARY_DIR}/${name}.cc)
+-    list(APPEND expanded_files_h  ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the source files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_cc}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.cc.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.cc.t ${ARGN}
+-  )
+-
+-  #create a command to generate the header file
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-  )
+-  
+-  #make source files depends on headers to force generation
+-  set_source_files_properties(${expanded_files_cc}
+-    PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
+-  )
+-  
+-  #install rules for the generated cc files
+-  list(APPEND generated_sources ${expanded_files_cc})  
+-  list(APPEND generated_headers ${expanded_files_h})  
+-endmacro(expand_cc)
+-
+-########################################################################
+-# Invoke macro to generate various sources
+-########################################################################
+-expand_cc(fir_filter_XXX_impl              ccc ccf fcc fff fsf scc)
+-expand_cc(freq_xlating_fir_filter_XXX_impl ccc ccf fcc fcf scf scc)
+-expand_cc(interp_fir_filter_XXX_impl       ccc ccf fcc fff fsf scc)
+-expand_cc(rational_resampler_base_XXX_impl ccc ccf fcc fff fsf scc)
+-
++include(GrMiscUtils)
++GR_EXPAND_X_CC_H(filter fir_filter_XXX_impl              ccc ccf fcc fff fsf scc)
++GR_EXPAND_X_CC_H(filter freq_xlating_fir_filter_XXX_impl ccc ccf fcc fcf scf scc)
++GR_EXPAND_X_CC_H(filter interp_fir_filter_XXX_impl       ccc ccf fcc fff fsf scc)
++GR_EXPAND_X_CC_H(filter rational_resampler_base_XXX_impl ccc ccf fcc fff fsf scc)
+ 
+ ########################################################################
+ # Setup the include and linker paths
+--- gr-trellis/include/gnuradio/trellis/CMakeLists.txt.orig
++++ gr-trellis/include/gnuradio/trellis/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-# Copyright 2012 Free Software Foundation, Inc.
++# Copyright 2012-2013 Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Radio
+ #
+@@ -18,62 +18,19 @@
+ # Boston, MA 02110-1301, USA.
+ 
+ ########################################################################
+-# generate helper scripts to expand templated files
+-########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_dict2(name, sig, 'trellis')
+-        build_utils.expand_template(d, inp)
+-
+-")
+-
+-macro(expand_h root)
+-  #make a list of all the generated files
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-    )
+-
+-  #install rules for the generated h files
+-  list(APPEND generated_includes ${expanded_files_h})
+-endmacro(expand_h)
+-
+-########################################################################
+-# Invoke macro to generate various sources
++# Invoke macro to generate various headers
+ #######################################################################
+-expand_h(encoder_XX                 bb bs bi ss si ii)
+-expand_h(sccc_encoder_XX            bb bs bi ss si ii)
+-expand_h(pccc_encoder_XX            bb bs bi ss si ii)
+-expand_h(metrics_X                  s i f c)
+-expand_h(viterbi_X                  b s i)
+-expand_h(viterbi_combined_XX        sb ss si ib is ii fb fs fi cb cs ci)
+-expand_h(sccc_decoder_X             b s i)
+-expand_h(sccc_decoder_combined_XX   fb fs fi cb cs ci)
+-expand_h(pccc_decoder_X             b s i)
+-expand_h(pccc_decoder_combined_XX   fb fs fi cb cs ci)
++include(GrMiscUtils)
++GR_EXPAND_X_H(trellis encoder_XX                 bb bs bi ss si ii)
++GR_EXPAND_X_H(trellis sccc_encoder_XX            bb bs bi ss si ii)
++GR_EXPAND_X_H(trellis pccc_encoder_XX            bb bs bi ss si ii)
++GR_EXPAND_X_H(trellis metrics_X                  s i f c)
++GR_EXPAND_X_H(trellis viterbi_X                  b s i)
++GR_EXPAND_X_H(trellis viterbi_combined_XX        sb ss si ib is ii fb fs fi cb cs ci)
++GR_EXPAND_X_H(trellis sccc_decoder_X             b s i)
++GR_EXPAND_X_H(trellis sccc_decoder_combined_XX   fb fs fi cb cs ci)
++GR_EXPAND_X_H(trellis pccc_decoder_X             b s i)
++GR_EXPAND_X_H(trellis pccc_decoder_combined_XX   fb fs fi cb cs ci)
+ 
+ add_custom_target(trellis_generated_includes DEPENDS
+     ${generated_includes}
+--- gr-trellis/lib/CMakeLists.txt.orig
++++ gr-trellis/lib/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-# Copyright 2012 Free Software Foundation, Inc.
++# Copyright 2012-2013 Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Radio
+ #
+@@ -37,79 +37,20 @@ if(ENABLE_GR_CTRLPORT)
+   include_directories(${ICE_INCLUDE_DIR})
+ endif(ENABLE_GR_CTRLPORT)
+ 
+-#######################################################################
+-# generate the python helper script which calls into the build utils
+ ########################################################################
+-include(GrPython)
+-
+-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
+-#!${PYTHON_EXECUTABLE}
+-
+-import sys, os, re
+-sys.path.append('${GR_RUNTIME_PYTHONPATH}')
+-os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+-os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
+-
+-if __name__ == '__main__':
+-    import build_utils
+-    root, inp = sys.argv[1:3]
+-    for sig in sys.argv[3:]:
+-        name = re.sub ('X+', sig, root)
+-        d = build_utils.standard_impl_dict2(name, sig, 'trellis')
+-        build_utils.expand_template(d, inp)
+-")
+-
+-macro(expand_cc root)
+-  #make a list of all the generated files
+-  unset(expanded_files_cc)
+-  unset(expanded_files_h)
+-  foreach(sig ${ARGN})
+-    string(REGEX REPLACE "X+" ${sig} name ${root})
+-    list(APPEND expanded_files_cc ${CMAKE_CURRENT_BINARY_DIR}/${name}.cc)
+-    list(APPEND expanded_files_h  ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
+-  endforeach(sig)
+-  
+-  #create a command to generate the source files
+-  add_custom_command(
+-    OUTPUT ${expanded_files_cc}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.cc.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.cc.t ${ARGN}
+-  )
+-
+-  #create a command to generate the header file
+-  add_custom_command(
+-    OUTPUT ${expanded_files_h}
+-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
+-    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+-    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
+-    ${root} ${root}.h.t ${ARGN}
+-  )
+-  
+-  #make source files depends on headers to force generation
+-  set_source_files_properties(${expanded_files_cc}
+-    PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
+-  )
+-  
+-  #install rules for the generated cc files
+-  list(APPEND generated_sources ${expanded_files_cc})  
+-  list(APPEND generated_headers ${expanded_files_h})  
+-endmacro(expand_cc)
+-
+-########################################################################
+-# Invoke macro to generate various sources
++# Invoke macro to generate various sources and headers
+ ########################################################################
+-expand_cc(encoder_XX_impl                bb bs bi ss si ii)
+-expand_cc(sccc_encoder_XX_impl           bb bs bi ss si ii)
+-expand_cc(pccc_encoder_XX_impl           bb bs bi ss si ii)
+-expand_cc(metrics_X_impl                 s i f c)
+-expand_cc(viterbi_X_impl                 b s i)
+-expand_cc(viterbi_combined_XX_impl       sb ss si ib is ii fb fs fi cb cs ci)
+-expand_cc(sccc_decoder_X_impl            b s i)
+-expand_cc(sccc_decoder_combined_XX_impl  fb fs fi cb cs ci)
+-expand_cc(pccc_decoder_X_impl            b s i)
+-expand_cc(pccc_decoder_combined_XX_impl  fb fs fi cb cs ci)
++include(GrMiscUtils)
++GR_EXPAND_X_CC_H(trellis encoder_XX_impl                bb bs bi ss si ii)
++GR_EXPAND_X_CC_H(trellis sccc_encoder_XX_impl           bb bs bi ss si ii)
++GR_EXPAND_X_CC_H(trellis pccc_encoder_XX_impl           bb bs bi ss si ii)
++GR_EXPAND_X_CC_H(trellis metrics_X_impl                 s i f c)
++GR_EXPAND_X_CC_H(trellis viterbi_X_impl                 b s i)
++GR_EXPAND_X_CC_H(trellis viterbi_combined_XX_impl       sb ss si ib is ii fb fs fi cb cs ci)
++GR_EXPAND_X_CC_H(trellis sccc_decoder_X_impl            b s i)
++GR_EXPAND_X_CC_H(trellis sccc_decoder_combined_XX_impl  fb fs fi cb cs ci)
++GR_EXPAND_X_CC_H(trellis pccc_decoder_X_impl            b s i)
++GR_EXPAND_X_CC_H(trellis pccc_decoder_combined_XX_impl  fb fs fi cb cs ci)
+ 
+ ########################################################################
+ # Setup library
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20131213/a9324c62/attachment-0001.html>


More information about the macports-changes mailing list