summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Modules/GrPlatform.cmake8
-rw-r--r--gnuradio-runtime/lib/pmt/pmt.cc12
-rw-r--r--gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx2
-rw-r--r--gr-digital/swig/CMakeLists.txt83
-rw-r--r--gr-digital/swig/digital_swig.i287
-rw-r--r--gr-digital/swig/digital_swig.py.in24
-rw-r--r--gr-digital/swig/digital_swig0.i139
-rw-r--r--gr-digital/swig/digital_swig1.i120
-rw-r--r--gr-digital/swig/digital_swig2.i112
-rw-r--r--gr-trellis/swig/CMakeLists.txt63
-rw-r--r--gr-trellis/swig/trellis_swig.py.in23
-rw-r--r--gr-trellis/swig/trellis_swig0.i117
-rw-r--r--gr-trellis/swig/trellis_swig1.i (renamed from gr-trellis/swig/trellis_swig.i)83
-rw-r--r--gr-utils/python/modtool/gr-newmod/cmake/Modules/GrPlatform.cmake8
14 files changed, 664 insertions, 417 deletions
diff --git a/cmake/Modules/GrPlatform.cmake b/cmake/Modules/GrPlatform.cmake
index fbbea5fee0..00a53d04d9 100644
--- a/cmake/Modules/GrPlatform.cmake
+++ b/cmake/Modules/GrPlatform.cmake
@@ -51,4 +51,12 @@ endif()
if(NOT DEFINED LIB_SUFFIX AND LIB64_CONVENTION AND CMAKE_SYSTEM_PROCESSOR MATCHES "64$")
set(LIB_SUFFIX 64)
endif()
+
+########################################################################
+# Detect /lib versus /lib64
+########################################################################
+if (CMAKE_INSTALL_LIBDIR MATCHES lib64)
+ set(LIB_SUFFIX 64)
+endif()
+
set(LIB_SUFFIX ${LIB_SUFFIX} CACHE STRING "lib directory suffix")
diff --git a/gnuradio-runtime/lib/pmt/pmt.cc b/gnuradio-runtime/lib/pmt/pmt.cc
index 51fb86e58c..e09452e60e 100644
--- a/gnuradio-runtime/lib/pmt/pmt.cc
+++ b/gnuradio-runtime/lib/pmt/pmt.cc
@@ -281,7 +281,17 @@ string_to_symbol(const std::string &name)
if (name == _symbol(sym)->name())
return sym; // Yes. Return it
}
-
+
+ // Lock the table on insert for thread safety:
+ static boost::mutex thread_safety;
+ boost::mutex::scoped_lock lock(thread_safety);
+ // Re-do the search in case another thread inserted this symbol into the table
+ // before we got the lock
+ for (pmt_t sym = (*get_symbol_hash_table())[hash]; sym; sym = _symbol(sym)->next()){
+ if (name == _symbol(sym)->name())
+ return sym; // Yes. Return it
+ }
+
// Nope. Make a new one.
pmt_t sym = pmt_t(new pmt_symbol(name));
_symbol(sym)->set_next((*get_symbol_hash_table())[hash]);
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
index cf67584235..15a2153a0f 100644
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
@@ -46,7 +46,7 @@ except ImportError:
"Please check that they are installed and try again."
sys.exit(1)
-from PyQt4 import QtCore,Qt,Qwt5
+from PyQt4 import QtCore,Qt
import PyQt4.QtGui as QtGui
import itertools
diff --git a/gr-digital/swig/CMakeLists.txt b/gr-digital/swig/CMakeLists.txt
index 0f1138ff30..658ac46ed6 100644
--- a/gr-digital/swig/CMakeLists.txt
+++ b/gr-digital/swig/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright 2011,2012 Free Software Foundation, Inc.
+# Copyright 2011-2016 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -24,45 +24,70 @@ include(GrPython)
include(GrSwig)
set(GR_SWIG_INCLUDE_DIRS
- ${GR_DIGITAL_INCLUDE_DIRS}
- ${GR_BLOCKS_INCLUDE_DIRS}
- ${GR_ANALOG_INCLUDE_DIRS}
- ${GR_FFT_INCLUDE_DIRS}
- ${GR_FILTER_INCLUDE_DIRS}
- ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
- ${VOLK_INCLUDE_DIRS}
- ${Boost_INCLUDE_DIRS}
+ ${GR_DIGITAL_INCLUDE_DIRS}
+ ${GR_BLOCKS_INCLUDE_DIRS}
+ ${GR_ANALOG_INCLUDE_DIRS}
+ ${GR_FFT_INCLUDE_DIRS}
+ ${GR_FILTER_INCLUDE_DIRS}
+ ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
+ ${VOLK_INCLUDE_DIRS}
+ ${Boost_INCLUDE_DIRS}
)
if(ENABLE_GR_CTRLPORT)
list(APPEND GR_SWIG_FLAGS "-DGR_CTRLPORT")
endif(ENABLE_GR_CTRLPORT)
-# Setup swig docs to depend on includes and pull in from build directory
-set(GR_SWIG_TARGET_DEPS digital_generated_includes)
-set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/digital_swig_doc.i)
-set(GR_SWIG_DOC_DIRS
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/digital_swig.py.in
+ ${CMAKE_CURRENT_BINARY_DIR}/digital_swig.py
+@ONLY)
+
+# We split up the swig files into multiple sections to minimize the
+# memory overhead. If a .i file grows too large, create a new file
+# named 'digital_swigN.i' and add it to this list.
+#
+# Also add the line "from swig_blocksN import *" line to
+# digital_swig.py.in.
+set(GR_SWIG_BLOCK_IFILES
+ digital_swig0
+ digital_swig1
+ digital_swig2
+)
+
+foreach(swigfile ${GR_SWIG_BLOCK_IFILES})
+ set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+ set(GR_SWIG_DOC_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/digital
${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/digital
-)
-set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
+ )
+ set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
+ set(GR_SWIG_TARGET_DEPS digital_generated_includes)
+ set(GR_SWIG_LIBRARIES gnuradio-digital
+ gnuradio-filter gnuradio-analog gnuradio-blocks)
+ GR_SWIG_MAKE(${swigfile} ${swigfile}.i)
-set(GR_SWIG_LIBRARIES gnuradio-digital
- gnuradio-filter gnuradio-analog gnuradio-blocks)
+ GR_SWIG_INSTALL(
+ TARGETS ${swigfile}
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/digital
+ )
-GR_SWIG_MAKE(digital_swig digital_swig.i)
+ list(APPEND SWIGFILES ${swigfile}.i)
+ list(APPEND SWIGDOCFILES ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+endforeach(swigfile)
-GR_SWIG_INSTALL(
- TARGETS digital_swig
- DESTINATION ${GR_PYTHON_DIR}/gnuradio/digital
+install(
+ FILES
+ ${SWIGFILES}
+ constellation.i
+ ofdm_equalizer.i
+ packet_header.i
+ ${SWIGDOCFILES}
+ DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
)
-install(
- FILES
- digital_swig.i
- constellation.i
- ofdm_equalizer.i
- packet_header.i
- ${CMAKE_CURRENT_BINARY_DIR}/digital_swig_doc.i
- DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
+# Install the Python file that pulls in the swig built files.
+GR_PYTHON_INSTALL(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/digital_swig.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/digital
)
diff --git a/gr-digital/swig/digital_swig.i b/gr-digital/swig/digital_swig.i
deleted file mode 100644
index 6039554623..0000000000
--- a/gr-digital/swig/digital_swig.i
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Copyright 2011-2016 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.
- */
-
-#define DIGITAL_API
-#define ANALOG_API
-#define BLOCKS_API
-
-%include "gnuradio.i"
-%include "stdint.i"
-
-//load generated python docstrings
-%include "digital_swig_doc.i"
-
-%include "gnuradio/analog/cpm.h"
-
-%{
-#include <gnuradio/blocks/control_loop.h>
-%}
-%include <gnuradio/blocks/control_loop.h>
-
-%{
-#include "gnuradio/digital/glfsr.h"
-#include "gnuradio/digital/additive_scrambler_bb.h"
-#include "gnuradio/digital/binary_slicer_fb.h"
-#include "gnuradio/digital/burst_shaper_cc.h"
-#include "gnuradio/digital/burst_shaper_ff.h"
-#include "gnuradio/digital/chunks_to_symbols_bc.h"
-#include "gnuradio/digital/chunks_to_symbols_bf.h"
-#include "gnuradio/digital/chunks_to_symbols_ic.h"
-#include "gnuradio/digital/chunks_to_symbols_if.h"
-#include "gnuradio/digital/chunks_to_symbols_sc.h"
-#include "gnuradio/digital/chunks_to_symbols_sf.h"
-#include "gnuradio/digital/clock_recovery_mm_cc.h"
-#include "gnuradio/digital/clock_recovery_mm_ff.h"
-#include "gnuradio/digital/cma_equalizer_cc.h"
-#include "gnuradio/digital/constellation.h"
-#include "gnuradio/digital/constellation_decoder_cb.h"
-#include "gnuradio/digital/constellation_receiver_cb.h"
-#include "gnuradio/digital/constellation_soft_decoder_cf.h"
-#include "gnuradio/digital/corr_est_cc.h"
-#include "gnuradio/digital/correlate_access_code_bb.h"
-#include "gnuradio/digital/correlate_access_code_tag_bb.h"
-#include "gnuradio/digital/correlate_access_code_bb_ts.h"
-#include "gnuradio/digital/correlate_access_code_ff_ts.h"
-#include "gnuradio/digital/costas_loop_cc.h"
-#include "gnuradio/digital/cpmmod_bc.h"
-#include "gnuradio/digital/crc32.h"
-#include "gnuradio/digital/crc32_bb.h"
-#include "gnuradio/digital/crc32_async_bb.h"
-#include "gnuradio/digital/descrambler_bb.h"
-#include "gnuradio/digital/diff_decoder_bb.h"
-#include "gnuradio/digital/diff_encoder_bb.h"
-#include "gnuradio/digital/diff_phasor_cc.h"
-#include "gnuradio/digital/fll_band_edge_cc.h"
-#include "gnuradio/digital/framer_sink_1.h"
-#include "gnuradio/digital/glfsr_source_b.h"
-#include "gnuradio/digital/glfsr_source_f.h"
-#include "gnuradio/digital/hdlc_deframer_bp.h"
-#include "gnuradio/digital/hdlc_framer_pb.h"
-#include "gnuradio/digital/header_payload_demux.h"
-#include "gnuradio/digital/kurtotic_equalizer_cc.h"
-#include "gnuradio/digital/lfsr.h"
-#include "gnuradio/digital/lms_dd_equalizer_cc.h"
-#include "gnuradio/digital/map_bb.h"
-#include "gnuradio/digital/metric_type.h"
-#include "gnuradio/digital/modulate_vector.h"
-#include "gnuradio/digital/mpsk_receiver_cc.h"
-#include "gnuradio/digital/mpsk_snr_est.h"
-#include "gnuradio/digital/mpsk_snr_est_cc.h"
-#include "gnuradio/digital/msk_timing_recovery_cc.h"
-#include "gnuradio/digital/ofdm_carrier_allocator_cvc.h"
-#include "gnuradio/digital/ofdm_chanest_vcvc.h"
-#include "gnuradio/digital/ofdm_cyclic_prefixer.h"
-#include "gnuradio/digital/ofdm_equalizer_base.h"
-#include "gnuradio/digital/ofdm_equalizer_simpledfe.h"
-#include "gnuradio/digital/ofdm_equalizer_static.h"
-#include "gnuradio/digital/ofdm_frame_acquisition.h"
-#include "gnuradio/digital/ofdm_frame_equalizer_vcvc.h"
-#include "gnuradio/digital/ofdm_frame_sink.h"
-#include "gnuradio/digital/ofdm_insert_preamble.h"
-#include "gnuradio/digital/ofdm_mapper_bcv.h"
-#include "gnuradio/digital/ofdm_sampler.h"
-#include "gnuradio/digital/ofdm_serializer_vcc.h"
-#include "gnuradio/digital/ofdm_sync_sc_cfb.h"
-#include "gnuradio/digital/header_format_base.h"
-#include "gnuradio/digital/header_format_default.h"
-#include "gnuradio/digital/header_format_counter.h"
-#include "gnuradio/digital/header_format_crc.h"
-#include "gnuradio/digital/header_format_ofdm.h"
-#include "gnuradio/digital/protocol_formatter_async.h"
-#include "gnuradio/digital/protocol_formatter_bb.h"
-#include "gnuradio/digital/protocol_parser_b.h"
-#include "gnuradio/digital/packet_header_default.h"
-#include "gnuradio/digital/packet_header_ofdm.h"
-#include "gnuradio/digital/packet_headergenerator_bb.h"
-#include "gnuradio/digital/packet_headerparser_b.h"
-#include "gnuradio/digital/packet_sink.h"
-#include "gnuradio/digital/pfb_clock_sync_ccf.h"
-#include "gnuradio/digital/pfb_clock_sync_fff.h"
-#include "gnuradio/digital/pn_correlator_cc.h"
-#include "gnuradio/digital/probe_density_b.h"
-#include "gnuradio/digital/probe_mpsk_snr_est_c.h"
-#include "gnuradio/digital/scrambler_bb.h"
-#include "gnuradio/digital/simple_correlator.h"
-#include "gnuradio/digital/simple_framer.h"
-#include "gnuradio/digital/ofdm_serializer_vcc.h"
-#include "gnuradio/digital/packet_headerparser_b.h"
-#include "gnuradio/digital/header_payload_demux.h"
-%}
-
-%include "gnuradio/digital/glfsr.h"
-%include "gnuradio/digital/additive_scrambler_bb.h"
-%include "gnuradio/digital/binary_slicer_fb.h"
-%include "gnuradio/digital/burst_shaper_cc.h"
-%include "gnuradio/digital/burst_shaper_ff.h"
-%include "gnuradio/digital/chunks_to_symbols_bc.h"
-%include "gnuradio/digital/chunks_to_symbols_bf.h"
-%include "gnuradio/digital/chunks_to_symbols_ic.h"
-%include "gnuradio/digital/chunks_to_symbols_if.h"
-%include "gnuradio/digital/chunks_to_symbols_sc.h"
-%include "gnuradio/digital/chunks_to_symbols_sf.h"
-%include "gnuradio/digital/clock_recovery_mm_cc.h"
-%include "gnuradio/digital/clock_recovery_mm_ff.h"
-%include "gnuradio/digital/cma_equalizer_cc.h"
-%include "gnuradio/digital/constellation.h"
-%include "gnuradio/digital/constellation_decoder_cb.h"
-%include "gnuradio/digital/constellation_receiver_cb.h"
-%include "gnuradio/digital/constellation_soft_decoder_cf.h"
-%include "gnuradio/digital/corr_est_cc.h"
-%include "gnuradio/digital/correlate_access_code_bb.h"
-%include "gnuradio/digital/correlate_access_code_tag_bb.h"
-%include "gnuradio/digital/correlate_access_code_bb_ts.h"
-%include "gnuradio/digital/correlate_access_code_ff_ts.h"
-%include "gnuradio/digital/costas_loop_cc.h"
-%include "gnuradio/digital/cpmmod_bc.h"
-%include "gnuradio/digital/crc32.h"
-%include "gnuradio/digital/crc32_bb.h"
-%include "gnuradio/digital/crc32_async_bb.h"
-%include "gnuradio/digital/descrambler_bb.h"
-%include "gnuradio/digital/diff_decoder_bb.h"
-%include "gnuradio/digital/diff_encoder_bb.h"
-%include "gnuradio/digital/diff_phasor_cc.h"
-%include "gnuradio/digital/fll_band_edge_cc.h"
-%include "gnuradio/digital/framer_sink_1.h"
-%include "gnuradio/digital/glfsr_source_b.h"
-%include "gnuradio/digital/glfsr_source_f.h"
-%include "gnuradio/digital/hdlc_deframer_bp.h"
-%include "gnuradio/digital/hdlc_framer_pb.h"
-%include "gnuradio/digital/header_payload_demux.h"
-%include "gnuradio/digital/kurtotic_equalizer_cc.h"
-%include "gnuradio/digital/lfsr.h"
-%include "gnuradio/digital/lms_dd_equalizer_cc.h"
-%include "gnuradio/digital/map_bb.h"
-%include "gnuradio/digital/metric_type.h"
-%include "gnuradio/digital/modulate_vector.h"
-%include "gnuradio/digital/mpsk_receiver_cc.h"
-%include "gnuradio/digital/mpsk_snr_est.h"
-%include "gnuradio/digital/mpsk_snr_est_cc.h"
-%include "gnuradio/digital/msk_timing_recovery_cc.h"
-%include "gnuradio/digital/ofdm_carrier_allocator_cvc.h"
-%include "gnuradio/digital/ofdm_chanest_vcvc.h"
-%include "gnuradio/digital/ofdm_cyclic_prefixer.h"
-%include "gnuradio/digital/ofdm_equalizer_base.h"
-%include "gnuradio/digital/ofdm_equalizer_simpledfe.h"
-%include "gnuradio/digital/ofdm_equalizer_static.h"
-%include "gnuradio/digital/ofdm_frame_acquisition.h"
-%include "gnuradio/digital/ofdm_frame_equalizer_vcvc.h"
-%include "gnuradio/digital/ofdm_frame_sink.h"
-%include "gnuradio/digital/ofdm_insert_preamble.h"
-%include "gnuradio/digital/ofdm_mapper_bcv.h"
-%include "gnuradio/digital/ofdm_sampler.h"
-%include "gnuradio/digital/ofdm_serializer_vcc.h"
-%include "gnuradio/digital/ofdm_sync_sc_cfb.h"
-%include "gnuradio/digital/header_format_base.h"
-%include "gnuradio/digital/header_format_default.h"
-%include "gnuradio/digital/header_format_counter.h"
-%include "gnuradio/digital/header_format_crc.h"
-%include "gnuradio/digital/header_format_ofdm.h"
-%include "gnuradio/digital/protocol_formatter_async.h"
-%include "gnuradio/digital/protocol_formatter_bb.h"
-%include "gnuradio/digital/protocol_parser_b.h"
-%include "gnuradio/digital/packet_header_default.h"
-%include "gnuradio/digital/packet_header_ofdm.h"
-%include "gnuradio/digital/packet_headergenerator_bb.h"
-%include "gnuradio/digital/packet_headerparser_b.h"
-%include "gnuradio/digital/packet_sink.h"
-%include "gnuradio/digital/pfb_clock_sync_ccf.h"
-%include "gnuradio/digital/pfb_clock_sync_fff.h"
-%include "gnuradio/digital/pn_correlator_cc.h"
-%include "gnuradio/digital/probe_density_b.h"
-%include "gnuradio/digital/probe_mpsk_snr_est_c.h"
-%include "gnuradio/digital/scrambler_bb.h"
-%include "gnuradio/digital/simple_correlator.h"
-%include "gnuradio/digital/simple_framer.h"
-
-GR_SWIG_BLOCK_MAGIC2(digital, additive_scrambler_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, binary_slicer_fb);
-GR_SWIG_BLOCK_MAGIC2(digital, burst_shaper_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, burst_shaper_ff);
-GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_bc);
-GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_bf);
-GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_ic);
-GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_if);
-GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_sc);
-GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_sf);
-GR_SWIG_BLOCK_MAGIC2(digital, clock_recovery_mm_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, clock_recovery_mm_ff);
-GR_SWIG_BLOCK_MAGIC2(digital, cma_equalizer_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, constellation_decoder_cb);
-GR_SWIG_BLOCK_MAGIC2(digital, constellation_receiver_cb);
-GR_SWIG_BLOCK_MAGIC2(digital, constellation_soft_decoder_cf);
-GR_SWIG_BLOCK_MAGIC2(digital, corr_est_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, correlate_access_code_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, correlate_access_code_tag_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, correlate_access_code_bb_ts);
-GR_SWIG_BLOCK_MAGIC2(digital, correlate_access_code_ff_ts);
-GR_SWIG_BLOCK_MAGIC2(digital, costas_loop_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, crc32_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, crc32_async_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, cpmmod_bc);
-GR_SWIG_BLOCK_MAGIC2(digital, descrambler_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, diff_decoder_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, diff_encoder_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, diff_phasor_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, fll_band_edge_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, framer_sink_1);
-GR_SWIG_BLOCK_MAGIC2(digital, glfsr_source_b);
-GR_SWIG_BLOCK_MAGIC2(digital, glfsr_source_f);
-GR_SWIG_BLOCK_MAGIC2(digital, hdlc_deframer_bp);
-GR_SWIG_BLOCK_MAGIC2(digital, hdlc_framer_pb);
-GR_SWIG_BLOCK_MAGIC2(digital, header_payload_demux);
-GR_SWIG_BLOCK_MAGIC2(digital, kurtotic_equalizer_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, lms_dd_equalizer_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, map_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, mpsk_receiver_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, mpsk_snr_est_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, msk_timing_recovery_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_carrier_allocator_cvc);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_chanest_vcvc);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_cyclic_prefixer);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_frame_acquisition);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_frame_equalizer_vcvc);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_frame_sink);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_insert_preamble);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_mapper_bcv);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_sampler);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_serializer_vcc);
-GR_SWIG_BLOCK_MAGIC2(digital, ofdm_sync_sc_cfb);
-GR_SWIG_BLOCK_MAGIC2(digital, protocol_formatter_async);
-GR_SWIG_BLOCK_MAGIC2(digital, protocol_formatter_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, protocol_parser_b);
-GR_SWIG_BLOCK_MAGIC2(digital, packet_headergenerator_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, packet_headerparser_b);
-GR_SWIG_BLOCK_MAGIC2(digital, packet_sink);
-GR_SWIG_BLOCK_MAGIC2(digital, pfb_clock_sync_ccf);
-GR_SWIG_BLOCK_MAGIC2(digital, pfb_clock_sync_fff);
-GR_SWIG_BLOCK_MAGIC2(digital, pn_correlator_cc);
-GR_SWIG_BLOCK_MAGIC2(digital, probe_density_b);
-GR_SWIG_BLOCK_MAGIC2(digital, probe_mpsk_snr_est_c);
-GR_SWIG_BLOCK_MAGIC2(digital, scrambler_bb);
-GR_SWIG_BLOCK_MAGIC2(digital, simple_correlator);
-GR_SWIG_BLOCK_MAGIC2(digital, simple_framer);
-
-GR_SWIG_BLOCK_MAGIC_FACTORY(digital, cpmmod_bc, gmskmod_bc);
-
-// Properly package up non-block objects
-%include "constellation.i"
-%include "packet_header.i"
-%include "ofdm_equalizer.i"
diff --git a/gr-digital/swig/digital_swig.py.in b/gr-digital/swig/digital_swig.py.in
new file mode 100644
index 0000000000..d5d55a0f4e
--- /dev/null
+++ b/gr-digital/swig/digital_swig.py.in
@@ -0,0 +1,24 @@
+#
+# Copyright 2016 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.
+#
+
+from digital_swig0 import *
+from digital_swig1 import *
+from digital_swig2 import *
diff --git a/gr-digital/swig/digital_swig0.i b/gr-digital/swig/digital_swig0.i
new file mode 100644
index 0000000000..2ca617e293
--- /dev/null
+++ b/gr-digital/swig/digital_swig0.i
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2011-2016 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.
+ */
+
+#define DIGITAL_API
+#define ANALOG_API
+#define BLOCKS_API
+
+%include "gnuradio.i"
+%include "stdint.i"
+
+//load generated python docstrings
+%include "digital_swig0_doc.i"
+
+%include "gnuradio/analog/cpm.h"
+
+%{
+#include <gnuradio/blocks/control_loop.h>
+%}
+%include <gnuradio/blocks/control_loop.h>
+
+%{
+#include "gnuradio/digital/binary_slicer_fb.h"
+#include "gnuradio/digital/cma_equalizer_cc.h"
+#include "gnuradio/digital/constellation.h"
+#include "gnuradio/digital/constellation_decoder_cb.h"
+#include "gnuradio/digital/constellation_receiver_cb.h"
+#include "gnuradio/digital/constellation_soft_decoder_cf.h"
+#include "gnuradio/digital/corr_est_cc.h"
+#include "gnuradio/digital/correlate_access_code_bb.h"
+#include "gnuradio/digital/correlate_access_code_tag_bb.h"
+#include "gnuradio/digital/correlate_access_code_bb_ts.h"
+#include "gnuradio/digital/correlate_access_code_ff_ts.h"
+#include "gnuradio/digital/costas_loop_cc.h"
+#include "gnuradio/digital/cpmmod_bc.h"
+#include "gnuradio/digital/crc32.h"
+#include "gnuradio/digital/crc32_bb.h"
+#include "gnuradio/digital/crc32_async_bb.h"
+#include "gnuradio/digital/descrambler_bb.h"
+#include "gnuradio/digital/lms_dd_equalizer_cc.h"
+#include "gnuradio/digital/ofdm_carrier_allocator_cvc.h"
+#include "gnuradio/digital/ofdm_chanest_vcvc.h"
+#include "gnuradio/digital/ofdm_cyclic_prefixer.h"
+#include "gnuradio/digital/ofdm_equalizer_base.h"
+#include "gnuradio/digital/ofdm_equalizer_simpledfe.h"
+#include "gnuradio/digital/ofdm_equalizer_static.h"
+#include "gnuradio/digital/ofdm_frame_acquisition.h"
+#include "gnuradio/digital/ofdm_frame_equalizer_vcvc.h"
+#include "gnuradio/digital/ofdm_frame_sink.h"
+#include "gnuradio/digital/ofdm_insert_preamble.h"
+#include "gnuradio/digital/ofdm_mapper_bcv.h"
+#include "gnuradio/digital/ofdm_sampler.h"
+#include "gnuradio/digital/ofdm_serializer_vcc.h"
+#include "gnuradio/digital/ofdm_sync_sc_cfb.h"
+%}
+
+%include "gnuradio/digital/binary_slicer_fb.h"
+%include "gnuradio/digital/cma_equalizer_cc.h"
+%include "gnuradio/digital/constellation.h"
+%include "gnuradio/digital/constellation_decoder_cb.h"
+%include "gnuradio/digital/constellation_receiver_cb.h"
+%include "gnuradio/digital/constellation_soft_decoder_cf.h"
+%include "gnuradio/digital/corr_est_cc.h"
+%include "gnuradio/digital/correlate_access_code_bb.h"
+%include "gnuradio/digital/correlate_access_code_tag_bb.h"
+%include "gnuradio/digital/correlate_access_code_bb_ts.h"
+%include "gnuradio/digital/correlate_access_code_ff_ts.h"
+%include "gnuradio/digital/costas_loop_cc.h"
+%include "gnuradio/digital/cpmmod_bc.h"
+%include "gnuradio/digital/crc32.h"
+%include "gnuradio/digital/crc32_bb.h"
+%include "gnuradio/digital/crc32_async_bb.h"
+%include "gnuradio/digital/descrambler_bb.h"
+%include "gnuradio/digital/lms_dd_equalizer_cc.h"
+%include "gnuradio/digital/ofdm_carrier_allocator_cvc.h"
+%include "gnuradio/digital/ofdm_chanest_vcvc.h"
+%include "gnuradio/digital/ofdm_cyclic_prefixer.h"
+%include "gnuradio/digital/ofdm_equalizer_base.h"
+%include "gnuradio/digital/ofdm_equalizer_simpledfe.h"
+%include "gnuradio/digital/ofdm_equalizer_static.h"
+%include "gnuradio/digital/ofdm_frame_acquisition.h"
+%include "gnuradio/digital/ofdm_frame_equalizer_vcvc.h"
+%include "gnuradio/digital/ofdm_frame_sink.h"
+%include "gnuradio/digital/ofdm_insert_preamble.h"
+%include "gnuradio/digital/ofdm_mapper_bcv.h"
+%include "gnuradio/digital/ofdm_sampler.h"
+%include "gnuradio/digital/ofdm_serializer_vcc.h"
+%include "gnuradio/digital/ofdm_sync_sc_cfb.h"
+
+GR_SWIG_BLOCK_MAGIC2(digital, binary_slicer_fb);
+GR_SWIG_BLOCK_MAGIC2(digital, cma_equalizer_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, constellation_decoder_cb);
+GR_SWIG_BLOCK_MAGIC2(digital, constellation_receiver_cb);
+GR_SWIG_BLOCK_MAGIC2(digital, constellation_soft_decoder_cf);
+GR_SWIG_BLOCK_MAGIC2(digital, corr_est_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, correlate_access_code_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, correlate_access_code_tag_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, correlate_access_code_bb_ts);
+GR_SWIG_BLOCK_MAGIC2(digital, correlate_access_code_ff_ts);
+GR_SWIG_BLOCK_MAGIC2(digital, costas_loop_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, crc32_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, crc32_async_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, cpmmod_bc);
+GR_SWIG_BLOCK_MAGIC2(digital, descrambler_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, lms_dd_equalizer_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_carrier_allocator_cvc);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_chanest_vcvc);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_cyclic_prefixer);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_frame_acquisition);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_frame_equalizer_vcvc);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_frame_sink);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_insert_preamble);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_mapper_bcv);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_sampler);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_serializer_vcc);
+GR_SWIG_BLOCK_MAGIC2(digital, ofdm_sync_sc_cfb);
+
+GR_SWIG_BLOCK_MAGIC_FACTORY(digital, cpmmod_bc, gmskmod_bc);
+
+// Properly package up non-block objects
+%include "constellation.i"
+%include "ofdm_equalizer.i"
diff --git a/gr-digital/swig/digital_swig1.i b/gr-digital/swig/digital_swig1.i
new file mode 100644
index 0000000000..972ddf5cb2
--- /dev/null
+++ b/gr-digital/swig/digital_swig1.i
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2016 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.
+ */
+
+#define DIGITAL_API
+#define ANALOG_API
+#define BLOCKS_API
+
+%include "gnuradio.i"
+%include "stdint.i"
+
+//load generated python docstrings
+%include "digital_swig1_doc.i"
+
+ //%include "gnuradio/analog/cpm.h"
+
+%{
+#include <gnuradio/blocks/control_loop.h>
+%}
+%include <gnuradio/blocks/control_loop.h>
+
+%{
+#include "gnuradio/digital/additive_scrambler_bb.h"
+#include "gnuradio/digital/burst_shaper_cc.h"
+#include "gnuradio/digital/burst_shaper_ff.h"
+#include "gnuradio/digital/chunks_to_symbols_bc.h"
+#include "gnuradio/digital/chunks_to_symbols_bf.h"
+#include "gnuradio/digital/chunks_to_symbols_ic.h"
+#include "gnuradio/digital/chunks_to_symbols_if.h"
+#include "gnuradio/digital/chunks_to_symbols_sc.h"
+#include "gnuradio/digital/chunks_to_symbols_sf.h"
+#include "gnuradio/digital/clock_recovery_mm_cc.h"
+#include "gnuradio/digital/clock_recovery_mm_ff.h"
+#include "gnuradio/digital/diff_decoder_bb.h"
+#include "gnuradio/digital/diff_encoder_bb.h"
+#include "gnuradio/digital/diff_phasor_cc.h"
+#include "gnuradio/digital/fll_band_edge_cc.h"
+#include "gnuradio/digital/framer_sink_1.h"
+#include "gnuradio/digital/glfsr_source_b.h"
+#include "gnuradio/digital/glfsr_source_f.h"
+#include "gnuradio/digital/hdlc_deframer_bp.h"
+#include "gnuradio/digital/hdlc_framer_pb.h"
+#include "gnuradio/digital/header_payload_demux.h"
+#include "gnuradio/digital/kurtotic_equalizer_cc.h"
+#include "gnuradio/digital/lfsr.h"
+#include "gnuradio/digital/map_bb.h"
+#include "gnuradio/digital/metric_type.h"
+#include "gnuradio/digital/modulate_vector.h"
+#include "gnuradio/digital/msk_timing_recovery_cc.h"
+%}
+
+%include "gnuradio/digital/additive_scrambler_bb.h"
+%include "gnuradio/digital/burst_shaper_cc.h"
+%include "gnuradio/digital/burst_shaper_ff.h"
+%include "gnuradio/digital/chunks_to_symbols_bc.h"
+%include "gnuradio/digital/chunks_to_symbols_bf.h"
+%include "gnuradio/digital/chunks_to_symbols_ic.h"
+%include "gnuradio/digital/chunks_to_symbols_if.h"
+%include "gnuradio/digital/chunks_to_symbols_sc.h"
+%include "gnuradio/digital/chunks_to_symbols_sf.h"
+%include "gnuradio/digital/clock_recovery_mm_cc.h"
+%include "gnuradio/digital/clock_recovery_mm_ff.h"
+%include "gnuradio/digital/diff_decoder_bb.h"
+%include "gnuradio/digital/diff_encoder_bb.h"
+%include "gnuradio/digital/diff_phasor_cc.h"
+%include "gnuradio/digital/fll_band_edge_cc.h"
+%include "gnuradio/digital/framer_sink_1.h"
+%include "gnuradio/digital/glfsr_source_b.h"
+%include "gnuradio/digital/glfsr_source_f.h"
+%include "gnuradio/digital/hdlc_deframer_bp.h"
+%include "gnuradio/digital/hdlc_framer_pb.h"
+%include "gnuradio/digital/header_payload_demux.h"
+%include "gnuradio/digital/kurtotic_equalizer_cc.h"
+%include "gnuradio/digital/lfsr.h"
+%include "gnuradio/digital/map_bb.h"
+%include "gnuradio/digital/metric_type.h"
+%include "gnuradio/digital/modulate_vector.h"
+%include "gnuradio/digital/msk_timing_recovery_cc.h"
+
+GR_SWIG_BLOCK_MAGIC2(digital, additive_scrambler_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, burst_shaper_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, burst_shaper_ff);
+GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_bc);
+GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_bf);
+GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_ic);
+GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_if);
+GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_sc);
+GR_SWIG_BLOCK_MAGIC2(digital, chunks_to_symbols_sf);
+GR_SWIG_BLOCK_MAGIC2(digital, clock_recovery_mm_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, clock_recovery_mm_ff);
+GR_SWIG_BLOCK_MAGIC2(digital, diff_decoder_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, diff_encoder_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, diff_phasor_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, fll_band_edge_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, framer_sink_1);
+GR_SWIG_BLOCK_MAGIC2(digital, glfsr_source_b);
+GR_SWIG_BLOCK_MAGIC2(digital, glfsr_source_f);
+GR_SWIG_BLOCK_MAGIC2(digital, hdlc_deframer_bp);
+GR_SWIG_BLOCK_MAGIC2(digital, hdlc_framer_pb);
+GR_SWIG_BLOCK_MAGIC2(digital, header_payload_demux);
+GR_SWIG_BLOCK_MAGIC2(digital, kurtotic_equalizer_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, map_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, msk_timing_recovery_cc);
diff --git a/gr-digital/swig/digital_swig2.i b/gr-digital/swig/digital_swig2.i
new file mode 100644
index 0000000000..c16cc6aafb
--- /dev/null
+++ b/gr-digital/swig/digital_swig2.i
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2016 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.
+ */
+
+#define DIGITAL_API
+#define ANALOG_API
+#define BLOCKS_API
+
+%include "gnuradio.i"
+%include "stdint.i"
+
+//load generated python docstrings
+%include "digital_swig2_doc.i"
+
+// %include "gnuradio/analog/cpm.h"
+
+%{
+#include <gnuradio/blocks/control_loop.h>
+%}
+%include <gnuradio/blocks/control_loop.h>
+
+%{
+#include "gnuradio/digital/mpsk_receiver_cc.h"
+#include "gnuradio/digital/mpsk_snr_est.h"
+#include "gnuradio/digital/mpsk_snr_est_cc.h"
+#include "gnuradio/digital/header_format_base.h"
+#include "gnuradio/digital/header_format_default.h"
+#include "gnuradio/digital/header_format_counter.h"
+#include "gnuradio/digital/header_format_crc.h"
+#include "gnuradio/digital/header_format_ofdm.h"
+#include "gnuradio/digital/protocol_formatter_async.h"
+#include "gnuradio/digital/protocol_formatter_bb.h"
+#include "gnuradio/digital/protocol_parser_b.h"
+#include "gnuradio/digital/packet_header_default.h"
+#include "gnuradio/digital/packet_header_ofdm.h"
+#include "gnuradio/digital/packet_headergenerator_bb.h"
+#include "gnuradio/digital/packet_headerparser_b.h"
+#include "gnuradio/digital/packet_sink.h"
+#include "gnuradio/digital/pfb_clock_sync_ccf.h"
+#include "gnuradio/digital/pfb_clock_sync_fff.h"
+#include "gnuradio/digital/pn_correlator_cc.h"
+#include "gnuradio/digital/probe_density_b.h"
+#include "gnuradio/digital/probe_mpsk_snr_est_c.h"
+#include "gnuradio/digital/scrambler_bb.h"
+#include "gnuradio/digital/simple_correlator.h"
+#include "gnuradio/digital/simple_framer.h"
+#include "gnuradio/digital/ofdm_serializer_vcc.h"
+#include "gnuradio/digital/packet_headerparser_b.h"
+#include "gnuradio/digital/header_payload_demux.h"
+%}
+
+%include "gnuradio/digital/mpsk_receiver_cc.h"
+%include "gnuradio/digital/mpsk_snr_est.h"
+%include "gnuradio/digital/mpsk_snr_est_cc.h"
+%include "gnuradio/digital/header_format_base.h"
+%include "gnuradio/digital/header_format_default.h"
+%include "gnuradio/digital/header_format_counter.h"
+%include "gnuradio/digital/header_format_crc.h"
+%include "gnuradio/digital/header_format_ofdm.h"
+%include "gnuradio/digital/protocol_formatter_async.h"
+%include "gnuradio/digital/protocol_formatter_bb.h"
+%include "gnuradio/digital/protocol_parser_b.h"
+%include "gnuradio/digital/packet_header_default.h"
+%include "gnuradio/digital/packet_header_ofdm.h"
+%include "gnuradio/digital/packet_headergenerator_bb.h"
+%include "gnuradio/digital/packet_headerparser_b.h"
+%include "gnuradio/digital/packet_sink.h"
+%include "gnuradio/digital/pfb_clock_sync_ccf.h"
+%include "gnuradio/digital/pfb_clock_sync_fff.h"
+%include "gnuradio/digital/pn_correlator_cc.h"
+%include "gnuradio/digital/probe_density_b.h"
+%include "gnuradio/digital/probe_mpsk_snr_est_c.h"
+%include "gnuradio/digital/scrambler_bb.h"
+%include "gnuradio/digital/simple_correlator.h"
+%include "gnuradio/digital/simple_framer.h"
+
+GR_SWIG_BLOCK_MAGIC2(digital, mpsk_receiver_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, mpsk_snr_est_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, protocol_formatter_async);
+GR_SWIG_BLOCK_MAGIC2(digital, protocol_formatter_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, protocol_parser_b);
+GR_SWIG_BLOCK_MAGIC2(digital, packet_headergenerator_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, packet_headerparser_b);
+GR_SWIG_BLOCK_MAGIC2(digital, packet_sink);
+GR_SWIG_BLOCK_MAGIC2(digital, pfb_clock_sync_ccf);
+GR_SWIG_BLOCK_MAGIC2(digital, pfb_clock_sync_fff);
+GR_SWIG_BLOCK_MAGIC2(digital, pn_correlator_cc);
+GR_SWIG_BLOCK_MAGIC2(digital, probe_density_b);
+GR_SWIG_BLOCK_MAGIC2(digital, probe_mpsk_snr_est_c);
+GR_SWIG_BLOCK_MAGIC2(digital, scrambler_bb);
+GR_SWIG_BLOCK_MAGIC2(digital, simple_correlator);
+GR_SWIG_BLOCK_MAGIC2(digital, simple_framer);
+
+// Properly package up non-block objects
+%include "packet_header.i"
diff --git a/gr-trellis/swig/CMakeLists.txt b/gr-trellis/swig/CMakeLists.txt
index e1ee66cba0..14012abad5 100644
--- a/gr-trellis/swig/CMakeLists.txt
+++ b/gr-trellis/swig/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright 2012 Free Software Foundation, Inc.
+# Copyright 2012,2016 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -24,10 +24,10 @@ include(GrPython)
include(GrSwig)
set(GR_SWIG_INCLUDE_DIRS
- ${GR_TRELLIS_INCLUDE_DIRS}
- ${GR_DIGITAL_INCLUDE_DIRS}
- ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
- ${Boost_INCLUDE_DIRS}
+ ${GR_TRELLIS_INCLUDE_DIRS}
+ ${GR_DIGITAL_INCLUDE_DIRS}
+ ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
+ ${Boost_INCLUDE_DIRS}
)
set(GR_SWIG_LIBRARIES gnuradio-trellis gnuradio-digital)
@@ -36,25 +36,52 @@ if(ENABLE_GR_CTRLPORT)
list(APPEND GR_SWIG_FLAGS "-DGR_CTRLPORT")
endif(ENABLE_GR_CTRLPORT)
-# Setup swig docs to depend on includes and pull in from build directory
-set(GR_SWIG_TARGET_DEPS trellis_generated_includes)
-set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/trellis_swig_doc.i)
-set(GR_SWIG_DOC_DIRS
- ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/trellis
- ${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/trellis
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/trellis_swig.py.in
+ ${CMAKE_CURRENT_BINARY_DIR}/trellis_swig.py
+@ONLY)
+
+# We split up the swig files into multiple sections to minimize the
+# memory overhead. If a .i file grows too large, create a new file
+# named 'trellis_swigN.i' and add it to this list.
+#
+# Also add the line "from swig_trellisN import *" line to
+# trellis_swig.py.in.
+set(GR_SWIG_TRELLIS_IFILES
+ trellis_swig0
+ trellis_swig1
)
-set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
-GR_SWIG_MAKE(trellis_swig trellis_swig.i)
+foreach(swigfile ${GR_SWIG_TRELLIS_IFILES})
+ set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+ set(GR_SWIG_DOC_DIRS
+ ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/trellis
+ ${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/trellis
+ )
+ set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
+ set(GR_SWIG_TARGET_DEPS trellis_generated_includes)
+ set(GR_SWIG_LIBRARIES gnuradio-trellis gnuradio-digital)
+ GR_SWIG_MAKE(${swigfile} ${swigfile}.i)
-GR_SWIG_INSTALL(
- TARGETS trellis_swig
+ GR_SWIG_INSTALL(
+ TARGETS ${swigfile}
DESTINATION ${GR_PYTHON_DIR}/gnuradio/trellis
-)
+ )
+
+ list(APPEND SWIGFILES ${swigfile}.i)
+ list(APPEND SWIGDOCFILES ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+endforeach(swigfile)
install(
FILES
- trellis_swig.i
- ${CMAKE_CURRENT_BINARY_DIR}/trellis_swig_doc.i
+ ${SWIGFILES}
+ ${SWIGDOCFILES}
DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
)
+
+# Install the Python file that pulls in the swig built files.
+GR_PYTHON_INSTALL(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/trellis_swig.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/trellis
+ COMPONENT "trellis_python"
+)
diff --git a/gr-trellis/swig/trellis_swig.py.in b/gr-trellis/swig/trellis_swig.py.in
new file mode 100644
index 0000000000..fac5f631e2
--- /dev/null
+++ b/gr-trellis/swig/trellis_swig.py.in
@@ -0,0 +1,23 @@
+#
+# Copyright 2016 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.
+#
+
+from trellis_swig0 import *
+from trellis_swig1 import *
diff --git a/gr-trellis/swig/trellis_swig0.i b/gr-trellis/swig/trellis_swig0.i
new file mode 100644
index 0000000000..9f309c5ca3
--- /dev/null
+++ b/gr-trellis/swig/trellis_swig0.i
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2012,2016 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.
+ */
+
+#define TRELLIS_API
+#define DIGITAL_API
+
+%include "gnuradio.i"
+
+//load generated python docstrings
+%include "trellis_swig0_doc.i"
+
+%include "gnuradio/digital/metric_type.h"
+%include "gnuradio/digital/constellation.h"
+%include "gnuradio/trellis/siso_type.h"
+%include "gnuradio/trellis/fsm.h"
+%include "gnuradio/trellis/interleaver.h"
+
+%{
+#include "gnuradio/trellis/constellation_metrics_cf.h"
+#include "gnuradio/trellis/permutation.h"
+#include "gnuradio/trellis/siso_combined_f.h"
+#include "gnuradio/trellis/siso_f.h"
+#include "gnuradio/trellis/encoder_bb.h"
+#include "gnuradio/trellis/encoder_bs.h"
+#include "gnuradio/trellis/encoder_bi.h"
+#include "gnuradio/trellis/encoder_ss.h"
+#include "gnuradio/trellis/encoder_si.h"
+#include "gnuradio/trellis/encoder_ii.h"
+#include "gnuradio/trellis/sccc_encoder_bb.h"
+#include "gnuradio/trellis/sccc_encoder_bs.h"
+#include "gnuradio/trellis/sccc_encoder_bi.h"
+#include "gnuradio/trellis/sccc_encoder_ss.h"
+#include "gnuradio/trellis/sccc_encoder_si.h"
+#include "gnuradio/trellis/sccc_encoder_ii.h"
+#include "gnuradio/trellis/pccc_encoder_bb.h"
+#include "gnuradio/trellis/pccc_encoder_bs.h"
+#include "gnuradio/trellis/pccc_encoder_bi.h"
+#include "gnuradio/trellis/pccc_encoder_ss.h"
+#include "gnuradio/trellis/pccc_encoder_si.h"
+#include "gnuradio/trellis/pccc_encoder_ii.h"
+#include "gnuradio/trellis/metrics_s.h"
+#include "gnuradio/trellis/metrics_i.h"
+#include "gnuradio/trellis/metrics_f.h"
+#include "gnuradio/trellis/metrics_c.h"
+%}
+
+%include "gnuradio/trellis/constellation_metrics_cf.h"
+%include "gnuradio/trellis/permutation.h"
+%include "gnuradio/trellis/siso_combined_f.h"
+%include "gnuradio/trellis/siso_f.h"
+%include "gnuradio/trellis/encoder_bb.h"
+%include "gnuradio/trellis/encoder_bs.h"
+%include "gnuradio/trellis/encoder_bi.h"
+%include "gnuradio/trellis/encoder_ss.h"
+%include "gnuradio/trellis/encoder_si.h"
+%include "gnuradio/trellis/encoder_ii.h"
+%include "gnuradio/trellis/sccc_encoder_bb.h"
+%include "gnuradio/trellis/sccc_encoder_bs.h"
+%include "gnuradio/trellis/sccc_encoder_bi.h"
+%include "gnuradio/trellis/sccc_encoder_ss.h"
+%include "gnuradio/trellis/sccc_encoder_si.h"
+%include "gnuradio/trellis/sccc_encoder_ii.h"
+%include "gnuradio/trellis/pccc_encoder_bb.h"
+%include "gnuradio/trellis/pccc_encoder_bs.h"
+%include "gnuradio/trellis/pccc_encoder_bi.h"
+%include "gnuradio/trellis/pccc_encoder_ss.h"
+%include "gnuradio/trellis/pccc_encoder_si.h"
+%include "gnuradio/trellis/pccc_encoder_ii.h"
+%include "gnuradio/trellis/metrics_s.h"
+%include "gnuradio/trellis/metrics_i.h"
+%include "gnuradio/trellis/metrics_f.h"
+%include "gnuradio/trellis/metrics_c.h"
+
+GR_SWIG_BLOCK_MAGIC2(trellis, constellation_metrics_cf);
+GR_SWIG_BLOCK_MAGIC2(trellis, permutation);
+GR_SWIG_BLOCK_MAGIC2(trellis, siso_combined_f);
+GR_SWIG_BLOCK_MAGIC2(trellis, siso_f);
+GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bb);
+GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bs);
+GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bi);
+GR_SWIG_BLOCK_MAGIC2(trellis, encoder_ss);
+GR_SWIG_BLOCK_MAGIC2(trellis, encoder_si);
+GR_SWIG_BLOCK_MAGIC2(trellis, encoder_ii);
+GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bb);
+GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bs);
+GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bi);
+GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_ss);
+GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_si);
+GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_ii);
+GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bb);
+GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bs);
+GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bi);
+GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_ss);
+GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_si);
+GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_ii);
+GR_SWIG_BLOCK_MAGIC2(trellis, metrics_s);
+GR_SWIG_BLOCK_MAGIC2(trellis, metrics_i);
+GR_SWIG_BLOCK_MAGIC2(trellis, metrics_f);
+GR_SWIG_BLOCK_MAGIC2(trellis, metrics_c);
diff --git a/gr-trellis/swig/trellis_swig.i b/gr-trellis/swig/trellis_swig1.i
index 8c71a5e93c..6481aee245 100644
--- a/gr-trellis/swig/trellis_swig.i
+++ b/gr-trellis/swig/trellis_swig1.i
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2016 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -25,41 +25,14 @@
%include "gnuradio.i"
//load generated python docstrings
-%include "trellis_swig_doc.i"
+%include "trellis_swig1_doc.i"
%include "gnuradio/digital/metric_type.h"
-%include "gnuradio/digital/constellation.h"
%include "gnuradio/trellis/siso_type.h"
%include "gnuradio/trellis/fsm.h"
%include "gnuradio/trellis/interleaver.h"
%{
-#include "gnuradio/trellis/constellation_metrics_cf.h"
-#include "gnuradio/trellis/permutation.h"
-#include "gnuradio/trellis/siso_combined_f.h"
-#include "gnuradio/trellis/siso_f.h"
-#include "gnuradio/trellis/encoder_bb.h"
-#include "gnuradio/trellis/encoder_bs.h"
-#include "gnuradio/trellis/encoder_bi.h"
-#include "gnuradio/trellis/encoder_ss.h"
-#include "gnuradio/trellis/encoder_si.h"
-#include "gnuradio/trellis/encoder_ii.h"
-#include "gnuradio/trellis/sccc_encoder_bb.h"
-#include "gnuradio/trellis/sccc_encoder_bs.h"
-#include "gnuradio/trellis/sccc_encoder_bi.h"
-#include "gnuradio/trellis/sccc_encoder_ss.h"
-#include "gnuradio/trellis/sccc_encoder_si.h"
-#include "gnuradio/trellis/sccc_encoder_ii.h"
-#include "gnuradio/trellis/pccc_encoder_bb.h"
-#include "gnuradio/trellis/pccc_encoder_bs.h"
-#include "gnuradio/trellis/pccc_encoder_bi.h"
-#include "gnuradio/trellis/pccc_encoder_ss.h"
-#include "gnuradio/trellis/pccc_encoder_si.h"
-#include "gnuradio/trellis/pccc_encoder_ii.h"
-#include "gnuradio/trellis/metrics_s.h"
-#include "gnuradio/trellis/metrics_i.h"
-#include "gnuradio/trellis/metrics_f.h"
-#include "gnuradio/trellis/metrics_c.h"
#include "gnuradio/trellis/pccc_decoder_b.h"
#include "gnuradio/trellis/pccc_decoder_s.h"
#include "gnuradio/trellis/pccc_decoder_i.h"
@@ -95,32 +68,6 @@
#include "gnuradio/trellis/sccc_decoder_combined_ci.h"
%}
-%include "gnuradio/trellis/constellation_metrics_cf.h"
-%include "gnuradio/trellis/permutation.h"
-%include "gnuradio/trellis/siso_combined_f.h"
-%include "gnuradio/trellis/siso_f.h"
-%include "gnuradio/trellis/encoder_bb.h"
-%include "gnuradio/trellis/encoder_bs.h"
-%include "gnuradio/trellis/encoder_bi.h"
-%include "gnuradio/trellis/encoder_ss.h"
-%include "gnuradio/trellis/encoder_si.h"
-%include "gnuradio/trellis/encoder_ii.h"
-%include "gnuradio/trellis/sccc_encoder_bb.h"
-%include "gnuradio/trellis/sccc_encoder_bs.h"
-%include "gnuradio/trellis/sccc_encoder_bi.h"
-%include "gnuradio/trellis/sccc_encoder_ss.h"
-%include "gnuradio/trellis/sccc_encoder_si.h"
-%include "gnuradio/trellis/sccc_encoder_ii.h"
-%include "gnuradio/trellis/pccc_encoder_bb.h"
-%include "gnuradio/trellis/pccc_encoder_bs.h"
-%include "gnuradio/trellis/pccc_encoder_bi.h"
-%include "gnuradio/trellis/pccc_encoder_ss.h"
-%include "gnuradio/trellis/pccc_encoder_si.h"
-%include "gnuradio/trellis/pccc_encoder_ii.h"
-%include "gnuradio/trellis/metrics_s.h"
-%include "gnuradio/trellis/metrics_i.h"
-%include "gnuradio/trellis/metrics_f.h"
-%include "gnuradio/trellis/metrics_c.h"
%include "gnuradio/trellis/pccc_decoder_b.h"
%include "gnuradio/trellis/pccc_decoder_s.h"
%include "gnuradio/trellis/pccc_decoder_i.h"
@@ -155,32 +102,6 @@
%include "gnuradio/trellis/sccc_decoder_combined_cs.h"
%include "gnuradio/trellis/sccc_decoder_combined_ci.h"
-GR_SWIG_BLOCK_MAGIC2(trellis, constellation_metrics_cf);
-GR_SWIG_BLOCK_MAGIC2(trellis, permutation);
-GR_SWIG_BLOCK_MAGIC2(trellis, siso_combined_f);
-GR_SWIG_BLOCK_MAGIC2(trellis, siso_f);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bb);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bs);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bi);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_ss);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_si);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_ii);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bb);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bs);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bi);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_ss);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_si);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_ii);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bb);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bs);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bi);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_ss);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_si);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_ii);
-GR_SWIG_BLOCK_MAGIC2(trellis, metrics_s);
-GR_SWIG_BLOCK_MAGIC2(trellis, metrics_i);
-GR_SWIG_BLOCK_MAGIC2(trellis, metrics_f);
-GR_SWIG_BLOCK_MAGIC2(trellis, metrics_c);
GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_b);
GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_s);
GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_i);
diff --git a/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrPlatform.cmake b/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrPlatform.cmake
index fbbea5fee0..00a53d04d9 100644
--- a/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrPlatform.cmake
+++ b/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrPlatform.cmake
@@ -51,4 +51,12 @@ endif()
if(NOT DEFINED LIB_SUFFIX AND LIB64_CONVENTION AND CMAKE_SYSTEM_PROCESSOR MATCHES "64$")
set(LIB_SUFFIX 64)
endif()
+
+########################################################################
+# Detect /lib versus /lib64
+########################################################################
+if (CMAKE_INSTALL_LIBDIR MATCHES lib64)
+ set(LIB_SUFFIX 64)
+endif()
+
set(LIB_SUFFIX ${LIB_SUFFIX} CACHE STRING "lib directory suffix")