[hamradio-commits] [gnss-sdr] 05/303: Port templates from python-cheetah to python-mako

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Mon Feb 13 22:35:42 UTC 2017


This is an automated email from the git hooks/post-receive script.

carles_fernandez-guest pushed a commit to branch master
in repository gnss-sdr.

commit 0d448e88575e58faa011a530d5203ab2fdf63d1a
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date:   Fri Jul 15 04:34:49 2016 +0200

    Port templates from python-cheetah to python-mako
    
    python-mako will be included as a dependency in GNU Radio 3.8 (see
    https://github.com/gnuradio/gnuradio/pull/303). Changes following
    https://github.com/gnuradio/volk/pull/94
---
 .../volk_gnsssdr/CMakeLists.txt                    |   8 +-
 .../volk_gnsssdr_module/volk_gnsssdr/README.md     |   2 +-
 .../volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py    |  24 +----
 .../volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c          | 106 ++++++++++-----------
 .../volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h          |  14 +--
 .../tmpl/volk_gnsssdr_config_fixed.tmpl.h          |  10 +-
 .../volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c      |  25 +++--
 .../volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h      |   6 +-
 .../tmpl/volk_gnsssdr_machine_xxx.tmpl.c           |  76 ++++++---------
 .../volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c |   8 +-
 .../volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h |  24 ++---
 .../volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h |   6 +-
 12 files changed, 136 insertions(+), 173 deletions(-)

diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
index 1b6bb60..ce7df7d 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
@@ -75,15 +75,15 @@ SET(CROSSCOMPILE_MULTILIB ${CROSSCOMPILE_MULTILIB} CACHE STRING "Define \"true\"
 # Python
 include(VolkPython) #sets PYTHON_EXECUTABLE and PYTHON_DASH_B
 VOLK_PYTHON_CHECK_MODULE("python >= 2.5" sys "sys.version.split()[0] >= '2.5'" PYTHON_MIN_VER_FOUND)
-VOLK_PYTHON_CHECK_MODULE("Cheetah >= 2.0.0" Cheetah "Cheetah.Version >= '2.0.0'" CHEETAH_FOUND)
+VOLK_PYTHON_CHECK_MODULE("mako >= 1.0.0" mako "mako.__version__ >= '1.0.0'" MAKO_FOUND)
 
 if(NOT PYTHON_MIN_VER_FOUND)
     message(FATAL_ERROR "Python 2.5 or greater required to build VOLK_GNSSSDR")
 endif()
 
-# Cheetah
-if(NOT CHEETAH_FOUND)
-    message(FATAL_ERROR "Cheetah templates required to build VOLK_GNSSSDR")
+#  Mako
+if(NOT MAKO_FOUND)
+    message(FATAL_ERROR "Mako templates required to build VOLK_GNSSSDR")
 endif()
 
 # Boost
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/README.md b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/README.md
index 5471f26..b82dde8 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/README.md
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/README.md
@@ -17,7 +17,7 @@ However, you can install and use VOLK_GNSSSDR kernels as you use VOLK's, indepen
 First, make sure that the required dependencies are installed in you machine:
 
 ~~~~~~ 
-$ sudo apt-get install git subversion cmake python-cheetah libboost-dev libbbost-filesystem
+$ sudo apt-get install git subversion cmake python-mako libboost-dev libbbost-filesystem
 ~~~~~~ 
 
 In order to build and install the library, go to the base folder of the source code and do:
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py
index 3373877..8dba655 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py
@@ -25,22 +25,7 @@ import optparse
 import volk_gnsssdr_arch_defs
 import volk_gnsssdr_machine_defs
 import volk_gnsssdr_kernel_defs
-from Cheetah import Template
-
-def __escape_pre_processor(code):
-    out = list()
-    for line in code.splitlines():
-        m = re.match('^(\s*)#(\s*)(\w+)(.*)$', line)
-        if m:
-            p0, p1, fcn, stuff = m.groups()
-            conly = fcn in ('include', 'define', 'ifdef', 'ifndef', 'endif', 'elif', 'pragma')
-            both = fcn in ('if', 'else')
-            istmpl = '$' in stuff
-            if 'defined' in stuff: istmpl = False
-            if conly or (both and not istmpl):
-                line = '%s\\#%s%s%s'%(p0, p1, fcn, stuff)
-        out.append(line)
-    return '\n'.join(out)
+from mako.template import Template
 
 def __parse_tmpl(_tmpl, **kwargs):
     defs = {
@@ -51,13 +36,12 @@ def __parse_tmpl(_tmpl, **kwargs):
         'kernels': volk_gnsssdr_kernel_defs.kernels,
     }
     defs.update(kwargs)
-    _tmpl = __escape_pre_processor(_tmpl)
     _tmpl = """
         
-        /* this file was generated by volk_gnsssdr template utils, do not edit! */
+/* this file was generated by volk_gnsssdr template utils, do not edit! */
         
-        """ + _tmpl
-    return str(Template.Template(_tmpl, defs))
+""" + _tmpl
+    return str(Template(_tmpl).render(**defs))
 
 def main():
     parser = optparse.OptionParser()
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c
index c595e35..95f5f05 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c
@@ -110,93 +110,91 @@ bool volk_gnsssdr_is_aligned(const void *ptr)
 #define LV_HAVE_GENERIC
 #define LV_HAVE_DISPATCHER
 
-#for $kern in $kernels
+%for kern in kernels:
 
-#if $kern.has_dispatcher
-#include <volk_gnsssdr/$(kern.name).h> //pulls in the dispatcher
-#end if
+%if kern.has_dispatcher:
+#include <volk_gnsssdr/${kern.name}.h> //pulls in the dispatcher
+%endif
 
-static inline void __$(kern.name)_d($kern.arglist_full)
+static inline void __${kern.name}_d(${kern.arglist_full})
 {
-    #if $kern.has_dispatcher
-    $(kern.name)_dispatcher($kern.arglist_names);
+    %if kern.has_dispatcher:
+    ${kern.name}_dispatcher(${kern.arglist_names});
     return;
-    #end if
-
-    if (volk_gnsssdr_is_aligned(
-    #set $num_open_parens = 0
-    #for $arg_type, $arg_name in $kern.args
-        #if '*' in $arg_type
-        VOLK_OR_PTR($arg_name,
-        #set $num_open_parens += 1
-        #end if
-    #end for
-        0$(')'*$num_open_parens)
+    %endif
+
+    if (volk_gnsssdr_is_aligned(<% num_open_parens = 0 %>
+    %for arg_type, arg_name in kern.args:
+        %if '*' in arg_type:
+        VOLK_OR_PTR(${arg_name},<% num_open_parens += 1 %>
+        %endif
+    %endfor
+        0<% end_open_parens = ')'*num_open_parens %>${end_open_parens}
     )){
-        $(kern.name)_a($kern.arglist_names);
+        ${kern.name}_a(${kern.arglist_names});
     }
     else{
-        $(kern.name)_u($kern.arglist_names);
+        ${kern.name}_u(${kern.arglist_names});
     }
 }
 
-static inline void __init_$(kern.name)(void)
+static inline void __init_${kern.name}(void)
 {
-    const char *name = get_machine()->$(kern.name)_name;
-    const char **impl_names = get_machine()->$(kern.name)_impl_names;
-    const int *impl_deps = get_machine()->$(kern.name)_impl_deps;
-    const bool *alignment = get_machine()->$(kern.name)_impl_alignment;
-    const size_t n_impls = get_machine()->$(kern.name)_n_impls;
+    const char *name = get_machine()->${kern.name}_name;
+    const char **impl_names = get_machine()->${kern.name}_impl_names;
+    const int *impl_deps = get_machine()->${kern.name}_impl_deps;
+    const bool *alignment = get_machine()->${kern.name}_impl_alignment;
+    const size_t n_impls = get_machine()->${kern.name}_n_impls;
     const size_t index_a = volk_gnsssdr_rank_archs(name, impl_names, impl_deps, alignment, n_impls, true/*aligned*/);
     const size_t index_u = volk_gnsssdr_rank_archs(name, impl_names, impl_deps, alignment, n_impls, false/*unaligned*/);
-    $(kern.name)_a = get_machine()->$(kern.name)_impls[index_a];
-    $(kern.name)_u = get_machine()->$(kern.name)_impls[index_u];
+    ${kern.name}_a = get_machine()->${kern.name}_impls[index_a];
+    ${kern.name}_u = get_machine()->${kern.name}_impls[index_u];
 
-    assert($(kern.name)_a);
-    assert($(kern.name)_u);
+    assert(${kern.name}_a);
+    assert(${kern.name}_u);
 
-    $(kern.name) = &__$(kern.name)_d;
+    ${kern.name} = &__${kern.name}_d;
 }
 
-static inline void __$(kern.name)_a($kern.arglist_full)
+static inline void __${kern.name}_a(${kern.arglist_full})
 {
-    __init_$(kern.name)();
-    $(kern.name)_a($kern.arglist_names);
+    __init_${kern.name}();
+    ${kern.name}_a(${kern.arglist_names});
 }
 
-static inline void __$(kern.name)_u($kern.arglist_full)
+static inline void __${kern.name}_u(${kern.arglist_full})
 {
-    __init_$(kern.name)();
-    $(kern.name)_u($kern.arglist_names);
+    __init_${kern.name}();
+    ${kern.name}_u(${kern.arglist_names});
 }
 
-static inline void __$(kern.name)($kern.arglist_full)
+static inline void __${kern.name}(${kern.arglist_full})
 {
-    __init_$(kern.name)();
-    $(kern.name)($kern.arglist_names);
+    __init_${kern.name}();
+    ${kern.name}(${kern.arglist_names});
 }
 
-$kern.pname $(kern.name)_a = &__$(kern.name)_a;
-$kern.pname $(kern.name)_u = &__$(kern.name)_u;
-$kern.pname $(kern.name)   = &__$(kern.name);
+${kern.pname} ${kern.name}_a = &__${kern.name}_a;
+${kern.pname} ${kern.name}_u = &__${kern.name}_u;
+${kern.pname} ${kern.name}   = &__${kern.name};
 
-void $(kern.name)_manual($kern.arglist_full, const char* impl_name)
+void ${kern.name}_manual(${kern.arglist_full}, const char* impl_name)
 {
     const int index = volk_gnsssdr_get_index(
-        get_machine()->$(kern.name)_impl_names,
-        get_machine()->$(kern.name)_n_impls,
+        get_machine()->${kern.name}_impl_names,
+        get_machine()->${kern.name}_n_impls,
         impl_name
     );
-    get_machine()->$(kern.name)_impls[index](
-        $kern.arglist_names
+    get_machine()->${kern.name}_impls[index](
+        ${kern.arglist_names}
     );
 }
 
-volk_gnsssdr_func_desc_t $(kern.name)_get_func_desc(void) {
-    const char **impl_names = get_machine()->$(kern.name)_impl_names;
-    const int *impl_deps = get_machine()->$(kern.name)_impl_deps;
-    const bool *alignment = get_machine()->$(kern.name)_impl_alignment;
-    const size_t n_impls = get_machine()->$(kern.name)_n_impls;
+volk_gnsssdr_func_desc_t ${kern.name}_get_func_desc(void) {
+    const char **impl_names = get_machine()->${kern.name}_impl_names;
+    const int *impl_deps = get_machine()->${kern.name}_impl_deps;
+    const bool *alignment = get_machine()->${kern.name}_impl_alignment;
+    const size_t n_impls = get_machine()->${kern.name}_n_impls;
     volk_gnsssdr_func_desc_t desc = {
         impl_names,
         impl_deps,
@@ -206,4 +204,4 @@ volk_gnsssdr_func_desc_t $(kern.name)_get_func_desc(void) {
     return desc;
 }
 
-#end for
+%endfor
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h
index 283f56d..0586dd6 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h
@@ -68,23 +68,23 @@ VOLK_API size_t volk_gnsssdr_get_alignment(void);
  */
 VOLK_API bool volk_gnsssdr_is_aligned(const void *ptr);
 
-#for $kern in $kernels
+%for kern in kernels:
 
 //! A function pointer to the dispatcher implementation
-extern VOLK_API $kern.pname $kern.name;
+extern VOLK_API ${kern.pname} ${kern.name};
 
 //! A function pointer to the fastest aligned implementation
-extern VOLK_API $kern.pname $(kern.name)_a;
+extern VOLK_API ${kern.pname} ${kern.name}_a;
 
 //! A function pointer to the fastest unaligned implementation
-extern VOLK_API $kern.pname $(kern.name)_u;
+extern VOLK_API ${kern.pname} ${kern.name}_u;
 
 //! Call into a specific implementation given by name
-extern VOLK_API void $(kern.name)_manual($kern.arglist_full, const char* impl_name);
+extern VOLK_API void ${kern.name}_manual(${kern.arglist_full}, const char* impl_name);
 
 //! Get description paramaters for this kernel
-extern VOLK_API volk_gnsssdr_func_desc_t $(kern.name)_get_func_desc(void);
-#end for
+extern VOLK_API volk_gnsssdr_func_desc_t ${kern.name}_get_func_desc(void);
+%endfor
 
 __VOLK_DECL_END
 
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h
index 2736826..ed55d0b 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h
@@ -19,10 +19,10 @@
 #ifndef INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED_H
 #define INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED_H
 
-#for $i, $arch in enumerate($archs)
-#ifndef LV_$(arch.name.upper())
-#define LV_$(arch.name.upper()) $i
-#endif
-#end for
+%for i, arch in enumerate(archs):
+//#ifndef LV_${arch.name.upper()}
+#define LV_${arch.name.upper()} ${i}
+//#endif
+%endfor
 
 #endif /*INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED*/
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c
index ae08e89..d77bf49 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c
@@ -147,15 +147,14 @@ static int has_neon(void){
 #endif
 }
 
-#for $arch in $archs
-static int i_can_has_$arch.name (void) {
-    #for $check, $params in $arch.checks
-    if ($(check)($(', '.join($params))) == 0) return 0;
-    #end for
+%for arch in archs:
+static int i_can_has_${arch.name} (void) {
+    %for check, params in arch.checks:
+    if (${check}(<% joined_params = ', '.join(params)%>${joined_params}) == 0) return 0;
+    %endfor
     return 1;
 }
-
-#end for
+%endfor
 
 #if defined(HAVE_FENV_H)
     #if defined(FE_TONEAREST)
@@ -182,17 +181,17 @@ static int i_can_has_$arch.name (void) {
 #endif
 
 void volk_gnsssdr_cpu_init() {
-    #for $arch in $archs
-    volk_gnsssdr_cpu.has_$arch.name = &i_can_has_$arch.name;
-    #end for
+    %for arch in archs:
+    volk_gnsssdr_cpu.has_${arch.name} = &i_can_has_${arch.name};
+    %endfor
     set_float_rounding();
 }
 
 unsigned int volk_gnsssdr_get_lvarch() {
     unsigned int retval = 0;
     volk_gnsssdr_cpu_init();
-    #for $arch in $archs
-    retval += volk_gnsssdr_cpu.has_$(arch.name)() << LV_$(arch.name.upper());
-    #end for
+    %for arch in archs:
+    retval += volk_gnsssdr_cpu.has_${arch.name}() << LV_${arch.name.upper()};
+    %endfor
     return retval;
 }
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h
index e39d65e..20dbac2 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h
@@ -24,9 +24,9 @@
 __VOLK_DECL_BEGIN
 
 struct VOLK_CPU {
-    #for $arch in $archs
-    int (*has_$arch.name) ();
-    #end for
+    %for arch in archs:
+    int (*has_${arch.name}) ();
+    %endfor
 };
 
 extern struct VOLK_CPU volk_gnsssdr_cpu;
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machine_xxx.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machine_xxx.tmpl.c
index 88b9421..c6182cb 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machine_xxx.tmpl.c
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machine_xxx.tmpl.c
@@ -16,12 +16,12 @@
  * along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>.
  */
 
-#set $this_machine = $machine_dict[$args[0]]
-#set $arch_names = $this_machine.arch_names
+<% this_machine = machine_dict[args[0]] %>
+<% arch_names = this_machine.arch_names %>
 
-#for $arch in $this_machine.archs
-#define LV_HAVE_$(arch.name.upper()) 1
-#end for
+%for arch in this_machine.archs:
+#define LV_HAVE_${arch.name.upper()} 1
+%endfor
 
 #include <volk_gnsssdr/volk_gnsssdr_common.h>
 #include "volk_gnsssdr_machines.h"
@@ -31,46 +31,28 @@
 #include "config.h"
 #endif
 
-#for $kern in $kernels
-#include <volk_gnsssdr/$(kern.name).h>
-#end for
-
-########################################################################
-#def make_arch_have_list($archs)
-$(' | '.join(['(1 << LV_%s)'%a.name.upper() for a in $archs]))#slurp
-#end def
-
-########################################################################
-#def make_impl_name_list($impls)
-{$(', '.join(['"%s"'%i.name for i in $impls]))}#slurp
-#end def
-
-########################################################################
-#def make_impl_align_list($impls)
-{$(', '.join(['true' if i.is_aligned else 'false' for i in $impls]))}#slurp
-#end def
-
-########################################################################
-#def make_impl_deps_list($impls)
-{$(', '.join([' | '.join(['(1 << LV_%s)'%d.upper() for d in i.deps]) for i in $impls]))}#slurp
-#end def
-
-########################################################################
-#def make_impl_fcn_list($name, $impls)
-{$(', '.join(['%s_%s'%($name, i.name) for i in $impls]))}#slurp
-#end def
-
-struct volk_gnsssdr_machine volk_gnsssdr_machine_$(this_machine.name) = {
-    $make_arch_have_list($this_machine.archs),
-    "$this_machine.name",
-    $this_machine.alignment,
-    #for $kern in $kernels
-        #set $impls = $kern.get_impls($arch_names)
-    "$kern.name",                                   ##//kernel name
-    $make_impl_name_list($impls),                   ##//list of kernel implementations by name
-    $make_impl_deps_list($impls),                   ##//list of arch dependencies per implementation
-    $make_impl_align_list($impls),                  ##//alignment required? for each implementation
-    $make_impl_fcn_list($kern.name, $impls),        ##//pointer to each implementation
-    $(len($impls)),                                 ##//number of implementations listed here
-    #end for
+%for kern in kernels:
+#include <volk_gnsssdr/${kern.name}.h>
+%endfor
+
+struct volk_gnsssdr_machine volk_gnsssdr_machine_${this_machine.name} = {
+<% make_arch_have_list = (' | '.join(['(1 << LV_%s)'%a.name.upper() for a in this_machine.archs])) %>    ${make_arch_have_list},
+<% this_machine_name = "\""+this_machine.name+"\"" %>    ${this_machine_name},
+    ${this_machine.alignment},
+##//list all kernels
+    %for kern in kernels:
+<% impls = kern.get_impls(arch_names) %>
+##//kernel name
+<% kern_name = "\""+kern.name+"\"" %>    ${kern_name},
+##//list of kernel implementations by name
+<% make_impl_name_list = "{"+', '.join(['"%s"'%i.name for i in impls])+"}" %>    ${make_impl_name_list},
+##//list of arch dependencies per implementation
+<% make_impl_deps_list = "{"+', '.join([' | '.join(['(1 << LV_%s)'%d.upper() for d in i.deps]) for i in impls])+"}" %>    ${make_impl_deps_list},
+##//alignment required? for each implementation
+<% make_impl_align_list = "{"+', '.join(['true' if i.is_aligned else 'false' for i in impls])+"}" %>    ${make_impl_align_list},
+##//pointer to each implementation
+<% make_impl_fcn_list = "{"+', '.join(['%s_%s'%(kern.name, i.name) for i in impls])+"}" %>    ${make_impl_fcn_list},
+##//number of implementations listed here
+<% len_impls = len(impls) %>    ${len_impls},
+    %endfor
 };
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c
index 3eded37..1485a34 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c
@@ -21,11 +21,11 @@
 #include "volk_gnsssdr_machines.h"
 
 struct volk_gnsssdr_machine *volk_gnsssdr_machines[] = {
-#for $machine in $machines
-#ifdef LV_MACHINE_$(machine.name.upper())
-&volk_gnsssdr_machine_$(machine.name),
+%for machine in machines:
+#ifdef LV_MACHINE_${machine.name.upper()}
+&volk_gnsssdr_machine_${machine.name},
 #endif
-#end for
+%endfor
 };
 
 unsigned int n_volk_gnsssdr_machines = sizeof(volk_gnsssdr_machines)/sizeof(*volk_gnsssdr_machines);
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h
index edcf803..10e955e 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h
@@ -31,21 +31,21 @@ struct volk_gnsssdr_machine {
     const unsigned int caps; //capabilities (i.e., archs compiled into this machine, in the volk_gnsssdr_get_lvarch format)
     const char *name;
     const size_t alignment; //the maximum byte alignment required for functions in this library
-    #for $kern in $kernels
-    const char *$(kern.name)_name;
-    const char *$(kern.name)_impl_names[$(len($archs))];
-    const int $(kern.name)_impl_deps[$(len($archs))];
-    const bool $(kern.name)_impl_alignment[$(len($archs))];
-    const $(kern.pname) $(kern.name)_impls[$(len($archs))];
-    const size_t $(kern.name)_n_impls;
-    #end for
+    %for kern in kernels:
+    const char *${kern.name}_name;
+    const char *${kern.name}_impl_names[<%len_archs=len(archs)%>${len_archs}];
+    const int ${kern.name}_impl_deps[${len_archs}];
+    const bool ${kern.name}_impl_alignment[${len_archs}];
+    const ${kern.pname} ${kern.name}_impls[${len_archs}];
+    const size_t ${kern.name}_n_impls;
+    %endfor
 };
 
-#for $machine in $machines
-#ifdef LV_MACHINE_$(machine.name.upper())
-extern struct volk_gnsssdr_machine volk_gnsssdr_machine_$(machine.name);
+%for machine in machines:
+#ifdef LV_MACHINE_${machine.name.upper()}
+extern struct volk_gnsssdr_machine volk_gnsssdr_machine_${machine.name};
 #endif
-#end for
+%endfor
 
 __VOLK_DECL_END
 
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h
index 1ef398c..def7e24 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h
@@ -22,8 +22,8 @@
 #include <inttypes.h>
 #include <volk_gnsssdr/volk_gnsssdr_complex.h>
 
-#for $kern in $kernels
-typedef void (*$(kern.pname))($kern.arglist_types);
-#end for
+%for kern in kernels:
+typedef void (*${kern.pname})(${kern.arglist_types});
+%endfor
 
 #endif /*INCLUDED_VOLK_GNSSSDR_TYPEDEFS*/

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git



More information about the pkg-hamradio-commits mailing list