summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/gengen
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-core/src/lib/gengen')
-rw-r--r--gnuradio-core/src/lib/gengen/CMakeLists.txt191
-rw-r--r--gnuradio-core/src/lib/gengen/gr_add_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_add_const_XX.h.t7
-rw-r--r--[-rwxr-xr-x]gnuradio-core/src/lib/gengen/gr_add_const_vXX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_and_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_and_const_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_argmax_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_chunks_to_symbols_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_divide_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_integrate_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_max_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_moving_average_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_multiply_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_multiply_const_XX.h.t7
-rw-r--r--[-rwxr-xr-x]gnuradio-core/src/lib/gengen/gr_multiply_const_vXX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_mute_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_noise_source_X.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_not_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_or_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_packed_to_unpacked_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_peak_detector_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_sample_and_hold_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_sig_source_X.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_sub_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_unpacked_to_packed_XX.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_vector_sink_X.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_vector_source_X.h.t7
-rw-r--r--gnuradio-core/src/lib/gengen/gr_xor_XX.h.t7
28 files changed, 299 insertions, 81 deletions
diff --git a/gnuradio-core/src/lib/gengen/CMakeLists.txt b/gnuradio-core/src/lib/gengen/CMakeLists.txt
new file mode 100644
index 000000000..a06a61e6d
--- /dev/null
+++ b/gnuradio-core/src/lib/gengen/CMakeLists.txt
@@ -0,0 +1,191 @@
+# 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.
+
+########################################################################
+# This file included, use CMake directory variables
+########################################################################
+
+########################################################################
+# Generate the makefile.gen, then extract its sources:
+# This is a round-about way to extract the sources,
+# but it requires minimum changed to the python utils.
+#
+# The recommended way to do this:
+# - Make a generation macro that registers the sources command.
+# - List the generation macro with each templated source file.
+# - Create a python script (very generic) to perform generation.
+# - This way the targets would depend only on their sources.
+########################################################################
+EXECUTE_PROCESS(
+ COMMAND ${PYTHON_EXECUTABLE} -c "
+import os, sys
+sys.path.append('${GR_CORE_PYTHONPATH}')
+sys.path.append('${CMAKE_CURRENT_SOURCE_DIR}')
+os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
+os.environ['gendir'] = '${CMAKE_CURRENT_BINARY_DIR}'
+os.environ['do_makefile'] = '1'
+os.environ['do_sources'] = '0'
+from generate_all import generate_all
+generate_all()
+ " WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+MACRO(GEGEN_GEN_EXTRACT outvar ext)
+ EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import os; print ';'.join(
+ map(lambda x: os.path.join('${CMAKE_CURRENT_BINARY_DIR}', x.replace('\\\\', '').strip()),
+ filter(lambda f: '${ext}' in f, open('${CMAKE_CURRENT_BINARY_DIR}/Makefile.gen').readlines()
+ )))" OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE ${outvar})
+ FILE(TO_CMAKE_PATH "${${outvar}}" ${outvar})
+ENDMACRO(GEGEN_GEN_EXTRACT)
+
+GEGEN_GEN_EXTRACT(generated_gengen_sources ".cc")
+GEGEN_GEN_EXTRACT(generated_gengen_includes ".h")
+GEGEN_GEN_EXTRACT(generated_gengen_swigs ".i")
+
+#TODO simplify this list with a triple-threat for loop
+SET(generated_gengen_deps
+ ${CMAKE_CURRENT_SOURCE_DIR}/generate_all.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/generate_common.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_const_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_const_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_const_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_const_vXX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_const_vXX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_add_const_vXX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_argmax_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_argmax_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_argmax_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_chunks_to_symbols_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_chunks_to_symbols_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_chunks_to_symbols_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_divide_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_divide_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_divide_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_integrate_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_integrate_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_integrate_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_max_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_max_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_max_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_const_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_const_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_const_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_const_vXX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_const_vXX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_multiply_const_vXX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_mute_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_mute_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_mute_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_noise_source_X.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_noise_source_X.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_noise_source_X.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_packed_to_unpacked_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_packed_to_unpacked_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_packed_to_unpacked_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_peak_detector_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_peak_detector_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_peak_detector_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sample_and_hold_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sample_and_hold_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sample_and_hold_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sig_source_X.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sig_source_X.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sig_source_X.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sub_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sub_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sub_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_unpacked_to_packed_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_unpacked_to_packed_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_unpacked_to_packed_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_vector_source_X.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_vector_source_X.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_vector_source_X.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_vector_sink_X.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_vector_sink_X.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_vector_sink_X.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_xor_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_xor_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_xor_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_and_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_and_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_and_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_and_const_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_and_const_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_and_const_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_or_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_or_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_or_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_not_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_not_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_not_XX.i.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_moving_average_XX.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_moving_average_XX.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_moving_average_XX.i.t
+)
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT
+ ${generated_gengen_sources}
+ ${generated_gengen_includes}
+ ${generated_gengen_swigs}
+ DEPENDS ${generated_gengen_deps}
+ COMMAND ${PYTHON_EXECUTABLE} -B -c
+ \"import os, sys\;sys.path.append('${GR_CORE_PYTHONPATH}')\;sys.path.append('${CMAKE_CURRENT_SOURCE_DIR}')\;os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'\;from generate_all import generate_all\;generate_all()\"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "generating gengen files"
+)
+
+ADD_CUSTOM_TARGET(gengen_generated DEPENDS
+ ${generated_gengen_sources}
+ ${generated_gengen_includes}
+ ${generated_gengen_swigs}
+)
+
+########################################################################
+# Handle the generated sources + a few non-generated ones
+########################################################################
+LIST(APPEND gnuradio_core_sources
+ ${generated_gengen_sources}
+)
+
+INSTALL(FILES
+ ${generated_gengen_includes}
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_endianness.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_noise_type.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_sig_source_waveform.h
+ DESTINATION ${GR_INCLUDE_DIR}/gnuradio
+ COMPONENT "core_devel"
+)
+
+IF(ENABLE_PYTHON)
+ INSTALL(FILES
+ ${generated_gengen_swigs}
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_endianness.i
+ ${CMAKE_CURRENT_SOURCE_DIR}/gengen.i
+ ${CMAKE_CURRENT_BINARY_DIR}/gengen_generated.i
+ DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
+ COMPONENT "core_swig"
+ )
+ENDIF(ENABLE_PYTHON)
diff --git a/gnuradio-core/src/lib/gengen/gr_add_XX.h.t b/gnuradio-core/src/lib/gengen/gr_add_XX.h.t
index 91dd9196a..f0e857abf 100644
--- a/gnuradio-core/src/lib/gengen/gr_add_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_add_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen = 1);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen = 1);
/*!
* \brief output = sum (input_0, input_1, ...)
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* Add across all input streams.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
@NAME@ (size_t vlen);
diff --git a/gnuradio-core/src/lib/gengen/gr_add_const_XX.h.t b/gnuradio-core/src/lib/gengen/gr_add_const_XX.h.t
index 8e9884104..5b46d0f89 100644
--- a/gnuradio-core/src/lib/gengen/gr_add_const_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_add_const_XX.h.t
@@ -25,20 +25,21 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
/*!
* \brief output = input + constant
* \ingroup math_blk
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
@O_TYPE@ d_k; // the constant
@NAME@ (@O_TYPE@ k);
diff --git a/gnuradio-core/src/lib/gengen/gr_add_const_vXX.h.t b/gnuradio-core/src/lib/gengen/gr_add_const_vXX.h.t
index 574fc686c..9d986e960 100755..100644
--- a/gnuradio-core/src/lib/gengen/gr_add_const_vXX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_add_const_vXX.h.t
@@ -25,20 +25,21 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@I_TYPE@> &k);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@I_TYPE@> &k);
/*!
* \brief output vector = input vector + constant vector
* \ingroup math_blk
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@I_TYPE@> &k);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@I_TYPE@> &k);
std::vector<@I_TYPE@> d_k; // the constant
@NAME@ (const std::vector<@I_TYPE@> &k);
diff --git a/gnuradio-core/src/lib/gengen/gr_and_XX.h.t b/gnuradio-core/src/lib/gengen/gr_and_XX.h.t
index 6152942dd..dbb225907 100644
--- a/gnuradio-core/src/lib/gengen/gr_and_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_and_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ ();
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
/*!
* \brief output = input_0 & input_1 & , ... & input_N)
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* bitwise boolean and across all input streams.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ ();
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
@NAME@ ();
diff --git a/gnuradio-core/src/lib/gengen/gr_and_const_XX.h.t b/gnuradio-core/src/lib/gengen/gr_and_const_XX.h.t
index 3119611f1..ceffc3066 100644
--- a/gnuradio-core/src/lib/gengen/gr_and_const_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_and_const_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
/*!
* \brief output_N = input_N & value
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* bitwise boolean and of const to the data stream.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
@O_TYPE@ d_k; // the constant
@NAME@ (@O_TYPE@ k);
diff --git a/gnuradio-core/src/lib/gengen/gr_argmax_XX.h.t b/gnuradio-core/src/lib/gengen/gr_argmax_XX.h.t
index 2aba94d71..437fa5735 100644
--- a/gnuradio-core/src/lib/gengen/gr_argmax_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_argmax_XX.h.t
@@ -25,17 +25,18 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
@NAME@ (size_t vlen);
size_t d_vlen;
diff --git a/gnuradio-core/src/lib/gengen/gr_chunks_to_symbols_XX.h.t b/gnuradio-core/src/lib/gengen/gr_chunks_to_symbols_XX.h.t
index a5313d07d..c1393df3f 100644
--- a/gnuradio-core/src/lib/gengen/gr_chunks_to_symbols_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_chunks_to_symbols_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@O_TYPE@> &symbol_table, const int D = 1);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@O_TYPE@> &symbol_table, const int D = 1);
/*!
* \brief Map a stream of symbol indexes (unpacked bytes or shorts) to stream of float or complex onstellation points.in \p D dimensions (\p D = 1 by default)
@@ -51,9 +52,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
* \sa gr_chunks_to_symbols_sf, gr_chunks_to_symbols_sc.
*/
-class @NAME@ : public gr_sync_interpolator
+class GR_CORE_API @NAME@ : public gr_sync_interpolator
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@O_TYPE@> &symbol_table, const int D);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@O_TYPE@> &symbol_table, const int D);
int d_D;
std::vector<@O_TYPE@> d_symbol_table;
diff --git a/gnuradio-core/src/lib/gengen/gr_divide_XX.h.t b/gnuradio-core/src/lib/gengen/gr_divide_XX.h.t
index a59497c8c..ebe5ff5e5 100644
--- a/gnuradio-core/src/lib/gengen/gr_divide_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_divide_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen = 1);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen = 1);
/*!
* \brief output = input_0 / input_1 / input_x ...)
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* Divide across all input streams.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
@NAME@ (size_t vlen);
diff --git a/gnuradio-core/src/lib/gengen/gr_integrate_XX.h.t b/gnuradio-core/src/lib/gengen/gr_integrate_XX.h.t
index 01061ff21..c1d81000f 100644
--- a/gnuradio-core/src/lib/gengen/gr_integrate_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_integrate_XX.h.t
@@ -25,13 +25,14 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (int decim);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (int decim);
/*!
* \brief output = sum(input[0]...input[n])
@@ -39,10 +40,10 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* Integrate successive samples in input stream and decimate
*/
-class @NAME@ : public gr_sync_decimator
+class GR_CORE_API @NAME@ : public gr_sync_decimator
{
private:
- friend @SPTR_NAME@ gr_make_@BASE_NAME@(int decim);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@(int decim);
@NAME@ (int decim);
diff --git a/gnuradio-core/src/lib/gengen/gr_max_XX.h.t b/gnuradio-core/src/lib/gengen/gr_max_XX.h.t
index 2aba94d71..437fa5735 100644
--- a/gnuradio-core/src/lib/gengen/gr_max_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_max_XX.h.t
@@ -25,17 +25,18 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
@NAME@ (size_t vlen);
size_t d_vlen;
diff --git a/gnuradio-core/src/lib/gengen/gr_moving_average_XX.h.t b/gnuradio-core/src/lib/gengen/gr_moving_average_XX.h.t
index 2441ca65b..7e228abb6 100644
--- a/gnuradio-core/src/lib/gengen/gr_moving_average_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_moving_average_XX.h.t
@@ -25,13 +25,14 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (int length, @O_TYPE@ scale, int max_iter = 4096);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (int length, @O_TYPE@ scale, int max_iter = 4096);
/*!
* \brief output is the moving sum of the last N samples, scaled by the scale factor
@@ -40,10 +41,10 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
* max_iter limits how long we go without flushing the accumulator
* This is necessary to avoid numerical instability for float and complex.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
private:
- friend @SPTR_NAME@ gr_make_@BASE_NAME@(int length, @O_TYPE@ scale, int max_iter);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@(int length, @O_TYPE@ scale, int max_iter);
@NAME@ (int length, @O_TYPE@ scale, int max_iter = 4096);
diff --git a/gnuradio-core/src/lib/gengen/gr_multiply_XX.h.t b/gnuradio-core/src/lib/gengen/gr_multiply_XX.h.t
index cb4a0273d..1feb16202 100644
--- a/gnuradio-core/src/lib/gengen/gr_multiply_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_multiply_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen = 1);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen = 1);
/*!
* \brief output = prod (input_0, input_1, ...)
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* Multiply across all input streams.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
@NAME@ (size_t vlen);
diff --git a/gnuradio-core/src/lib/gengen/gr_multiply_const_XX.h.t b/gnuradio-core/src/lib/gengen/gr_multiply_const_XX.h.t
index 0c10185cc..6ff6f74a9 100644
--- a/gnuradio-core/src/lib/gengen/gr_multiply_const_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_multiply_const_XX.h.t
@@ -25,20 +25,21 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
/*!
* \brief output = input * constant
* \ingroup math_blk
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (@O_TYPE@ k);
@O_TYPE@ d_k; // the constant
@NAME@ (@O_TYPE@ k);
diff --git a/gnuradio-core/src/lib/gengen/gr_multiply_const_vXX.h.t b/gnuradio-core/src/lib/gengen/gr_multiply_const_vXX.h.t
index 81e781895..f696ab7b1 100755..100644
--- a/gnuradio-core/src/lib/gengen/gr_multiply_const_vXX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_multiply_const_vXX.h.t
@@ -25,20 +25,21 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@I_TYPE@> &k);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@I_TYPE@> &k);
/*!
* \brief output vector = input vector * constant vector (element-wise)
* \ingroup math_blk
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@I_TYPE@> &k);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@I_TYPE@> &k);
std::vector<@I_TYPE@> d_k; // the constant
@NAME@ (const std::vector<@I_TYPE@> &k);
diff --git a/gnuradio-core/src/lib/gengen/gr_mute_XX.h.t b/gnuradio-core/src/lib/gengen/gr_mute_XX.h.t
index 5007787c4..ccf966e53 100644
--- a/gnuradio-core/src/lib/gengen/gr_mute_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_mute_XX.h.t
@@ -25,20 +25,21 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (bool mute=false);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (bool mute=false);
/*!
* \brief output = input or zero if muted.
* \ingroup level_blk
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (bool mute);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (bool mute);
bool d_mute;
@NAME@ (bool mute);
diff --git a/gnuradio-core/src/lib/gengen/gr_noise_source_X.h.t b/gnuradio-core/src/lib/gengen/gr_noise_source_X.h.t
index a920ce04a..9dd92c8f5 100644
--- a/gnuradio-core/src/lib/gengen/gr_noise_source_X.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_noise_source_X.h.t
@@ -25,6 +25,7 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_noise_type.h>
#include <gr_random.h>
@@ -33,15 +34,15 @@
class @NAME@;
typedef boost::shared_ptr<@NAME@> @NAME@_sptr;
-@NAME@_sptr
+GR_CORE_API @NAME@_sptr
gr_make_@BASE_NAME@ (gr_noise_type_t type, float ampl, long seed = 3021);
/*!
* \brief random number source
* \ingroup source_blk
*/
-class @NAME@ : public gr_sync_block {
- friend @NAME@_sptr
+class GR_CORE_API @NAME@ : public gr_sync_block {
+ friend GR_CORE_API @NAME@_sptr
gr_make_@BASE_NAME@ (gr_noise_type_t type, float ampl, long seed);
gr_noise_type_t d_type;
diff --git a/gnuradio-core/src/lib/gengen/gr_not_XX.h.t b/gnuradio-core/src/lib/gengen/gr_not_XX.h.t
index cf8d96ede..b946ffc42 100644
--- a/gnuradio-core/src/lib/gengen/gr_not_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_not_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ ();
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
/*!
* \brief output = ~input_0
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* bitwise boolean not across input stream.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ ();
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
@NAME@ ();
diff --git a/gnuradio-core/src/lib/gengen/gr_or_XX.h.t b/gnuradio-core/src/lib/gengen/gr_or_XX.h.t
index 3e02d9b1a..8d1fea951 100644
--- a/gnuradio-core/src/lib/gengen/gr_or_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_or_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ ();
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
/*!
* \brief output = input_0 | input_1 | , ... | input_N)
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* bitwise boolean or across all input streams.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ ();
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
@NAME@ ();
diff --git a/gnuradio-core/src/lib/gengen/gr_packed_to_unpacked_XX.h.t b/gnuradio-core/src/lib/gengen/gr_packed_to_unpacked_XX.h.t
index 803098c0d..77cd2b470 100644
--- a/gnuradio-core/src/lib/gengen/gr_packed_to_unpacked_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_packed_to_unpacked_XX.h.t
@@ -25,13 +25,14 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_block.h>
#include <gr_endianness.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@
+GR_CORE_API @SPTR_NAME@
gr_make_@BASE_NAME@ (unsigned int bits_per_chunk, gr_endianness_t endianness);
/*!
@@ -59,9 +60,9 @@ gr_make_@BASE_NAME@ (unsigned int bits_per_chunk, gr_endianness_t endianness);
* \sa gr_chunks_to_symbols_sf, gr_chunks_to_symbols_sc.
*/
-class @NAME@ : public gr_block
+class GR_CORE_API @NAME@ : public gr_block
{
- friend @SPTR_NAME@
+ friend GR_CORE_API @SPTR_NAME@
gr_make_@BASE_NAME@ (unsigned int bits_per_chunk, gr_endianness_t endianness);
@NAME@ (unsigned int bits_per_chunk, gr_endianness_t endianness);
diff --git a/gnuradio-core/src/lib/gengen/gr_peak_detector_XX.h.t b/gnuradio-core/src/lib/gengen/gr_peak_detector_XX.h.t
index d6a8caf76..d6d1e5e51 100644
--- a/gnuradio-core/src/lib/gengen/gr_peak_detector_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_peak_detector_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (float threshold_factor_rise = 0.25,
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (float threshold_factor_rise = 0.25,
float threshold_factor_fall = 0.40,
int look_ahead = 10,
float alpha = 0.001);
@@ -57,9 +58,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
* This look-ahead range.
* \param alpha The gain value of a moving average filter
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (float threshold_factor_rise,
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (float threshold_factor_rise,
float threshold_factor_fall,
int look_ahead, float alpha);
diff --git a/gnuradio-core/src/lib/gengen/gr_sample_and_hold_XX.h.t b/gnuradio-core/src/lib/gengen/gr_sample_and_hold_XX.h.t
index b96487326..328c47106 100644
--- a/gnuradio-core/src/lib/gengen/gr_sample_and_hold_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_sample_and_hold_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ ();
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
/*!
* \brief sample and hold circuit
@@ -39,9 +40,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
* Samples the data stream (input stream 0) and holds the value
* if the control signal is 1 (intput stream 1).
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ ();
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
@NAME@ ();
diff --git a/gnuradio-core/src/lib/gengen/gr_sig_source_X.h.t b/gnuradio-core/src/lib/gengen/gr_sig_source_X.h.t
index 9906d16ab..3df723868 100644
--- a/gnuradio-core/src/lib/gengen/gr_sig_source_X.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_sig_source_X.h.t
@@ -25,6 +25,7 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_sig_source_waveform.h>
#include <gr_fxpt_nco.h>
@@ -37,8 +38,8 @@ typedef boost::shared_ptr<@NAME@> @NAME@_sptr;
* \ingroup source_blk
*/
-class @NAME@ : public gr_sync_block {
- friend @NAME@_sptr
+class GR_CORE_API @NAME@ : public gr_sync_block {
+ friend GR_CORE_API @NAME@_sptr
gr_make_@BASE_NAME@ (double sampling_freq, gr_waveform_t waveform,
double frequency, double ampl, @TYPE@ offset);
@@ -73,7 +74,7 @@ class @NAME@ : public gr_sync_block {
void set_offset (@TYPE@ offset);
};
-@NAME@_sptr
+GR_CORE_API @NAME@_sptr
gr_make_@BASE_NAME@ (double sampling_freq, gr_waveform_t waveform,
double wave_freq, double ampl, @TYPE@ offset = 0);
diff --git a/gnuradio-core/src/lib/gengen/gr_sub_XX.h.t b/gnuradio-core/src/lib/gengen/gr_sub_XX.h.t
index a58d1f3b8..4c988945e 100644
--- a/gnuradio-core/src/lib/gengen/gr_sub_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_sub_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen = 1);
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen = 1);
/*!
* \brief output = input_0 - input_1 - ...)
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* Subtract across all input streams.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ (size_t vlen);
@NAME@ (size_t vlen);
diff --git a/gnuradio-core/src/lib/gengen/gr_unpacked_to_packed_XX.h.t b/gnuradio-core/src/lib/gengen/gr_unpacked_to_packed_XX.h.t
index 42d201093..a7db84c5c 100644
--- a/gnuradio-core/src/lib/gengen/gr_unpacked_to_packed_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_unpacked_to_packed_XX.h.t
@@ -25,13 +25,14 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_block.h>
#include <gr_endianness.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @NAME@_sptr;
-@SPTR_NAME@
+GR_CORE_API @SPTR_NAME@
gr_make_@BASE_NAME@ (unsigned int bits_per_chunk, gr_endianness_t endianness);
/*!
@@ -57,9 +58,9 @@ gr_make_@BASE_NAME@ (unsigned int bits_per_chunk, gr_endianness_t endianness);
* \sa gr_chunks_to_symbols_bf, gr_chunks_to_symbols_bc.
* \sa gr_chunks_to_symbols_sf, gr_chunks_to_symbols_sc.
*/
-class @NAME@ : public gr_block
+class GR_CORE_API @NAME@ : public gr_block
{
- friend @SPTR_NAME@
+ friend GR_CORE_API @SPTR_NAME@
gr_make_@BASE_NAME@ (unsigned int bits_per_chunk, gr_endianness_t endianness);
@NAME@ (unsigned int bits_per_chunk, gr_endianness_t endianness);
diff --git a/gnuradio-core/src/lib/gengen/gr_vector_sink_X.h.t b/gnuradio-core/src/lib/gengen/gr_vector_sink_X.h.t
index 7ba5ee9e9..475cc0112 100644
--- a/gnuradio-core/src/lib/gengen/gr_vector_sink_X.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_vector_sink_X.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @NAME@_sptr;
-@NAME@_sptr
+GR_CORE_API @NAME@_sptr
gr_make_@BASE_NAME@ (int vlen = 1);
@@ -39,8 +40,8 @@ gr_make_@BASE_NAME@ (int vlen = 1);
* \ingroup sink_blk
*/
-class @NAME@ : public gr_sync_block {
- friend @NAME@_sptr gr_make_@BASE_NAME@ (int vlen);
+class GR_CORE_API @NAME@ : public gr_sync_block {
+ friend GR_CORE_API @NAME@_sptr gr_make_@BASE_NAME@ (int vlen);
std::vector<@TYPE@> d_data;
int d_vlen;
@NAME@ (int vlen);
diff --git a/gnuradio-core/src/lib/gengen/gr_vector_source_X.h.t b/gnuradio-core/src/lib/gengen/gr_vector_source_X.h.t
index 63edcb61c..fbab3effb 100644
--- a/gnuradio-core/src/lib/gengen/gr_vector_source_X.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_vector_source_X.h.t
@@ -25,9 +25,10 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
-class @NAME@;
+class GR_CORE_API @NAME@;
typedef boost::shared_ptr<@NAME@> @NAME@_sptr;
/*!
@@ -36,7 +37,7 @@ typedef boost::shared_ptr<@NAME@> @NAME@_sptr;
*/
class @NAME@ : public gr_sync_block {
- friend @NAME@_sptr
+ friend GR_CORE_API @NAME@_sptr
gr_make_@BASE_NAME@ (const std::vector<@TYPE@> &data, bool repeat, int vlen);
std::vector<@TYPE@> d_data;
@@ -53,7 +54,7 @@ class @NAME@ : public gr_sync_block {
gr_vector_void_star &output_items);
};
-@NAME@_sptr
+GR_CORE_API @NAME@_sptr
gr_make_@BASE_NAME@ (const std::vector<@TYPE@> &data, bool repeat = false, int vlen = 1);
#endif
diff --git a/gnuradio-core/src/lib/gengen/gr_xor_XX.h.t b/gnuradio-core/src/lib/gengen/gr_xor_XX.h.t
index 33d729450..b2e1a68c8 100644
--- a/gnuradio-core/src/lib/gengen/gr_xor_XX.h.t
+++ b/gnuradio-core/src/lib/gengen/gr_xor_XX.h.t
@@ -25,12 +25,13 @@
#ifndef @GUARD_NAME@
#define @GUARD_NAME@
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class @NAME@;
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
-@SPTR_NAME@ gr_make_@BASE_NAME@ ();
+GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
/*!
* \brief output = input_0 ^ input_1 ^ , ... ^ input_N)
@@ -38,9 +39,9 @@ typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
*
* bitwise boolean xor across all input streams.
*/
-class @NAME@ : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- friend @SPTR_NAME@ gr_make_@BASE_NAME@ ();
+ friend GR_CORE_API @SPTR_NAME@ gr_make_@BASE_NAME@ ();
@NAME@ ();