diff options
Diffstat (limited to 'gnuradio-core/src/lib/gengen')
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@ (); |