[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 04/06: trellis: split swig into 2 parts (a
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 04/06: trellis: split swig into 2 parts (a la blocks/swig) to allow for building on "low memory" systems (e.g., RPi). |
Date: |
Fri, 28 Oct 2016 18:55:46 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
jcorgan pushed a commit to branch master
in repository gnuradio.
commit dee09a218218797998927b2688a7d053a53d1893
Author: Michael Dickens <address@hidden>
Date: Wed Oct 26 14:19:15 2016 -0400
trellis: split swig into 2 parts (a la blocks/swig) to allow for building
on "low memory" systems (e.g., RPi).
---
gr-trellis/swig/CMakeLists.txt | 64 +++++++++----
gr-trellis/swig/trellis_swig.py.in | 23 +++++
gr-trellis/swig/trellis_swig0.i | 103 +--------------------
.../swig/{trellis_swig0.i => trellis_swig1.i} | 83 +----------------
4 files changed, 72 insertions(+), 201 deletions(-)
diff --git a/gr-trellis/swig/CMakeLists.txt b/gr-trellis/swig/CMakeLists.txt
index d03d099..a493c67 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,27 +36,53 @@ 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
address@hidden)
+
+# 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
- COMPONENT "trellis_python"
-)
+ COMPONENT "trellis_python")
+
+ 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
COMPONENT "trellis_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 0000000..fac5f63
--- /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
index 8c71a5e..9f309c5 100644
--- a/gr-trellis/swig/trellis_swig0.i
+++ b/gr-trellis/swig/trellis_swig0.i
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2016 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -25,7 +25,7 @@
%include "gnuradio.i"
//load generated python docstrings
-%include "trellis_swig_doc.i"
+%include "trellis_swig0_doc.i"
%include "gnuradio/digital/metric_type.h"
%include "gnuradio/digital/constellation.h"
@@ -60,39 +60,6 @@
#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"
-#include "gnuradio/trellis/pccc_decoder_combined_fb.h"
-#include "gnuradio/trellis/pccc_decoder_combined_fs.h"
-#include "gnuradio/trellis/pccc_decoder_combined_fi.h"
-#include "gnuradio/trellis/pccc_decoder_combined_cb.h"
-#include "gnuradio/trellis/pccc_decoder_combined_cs.h"
-#include "gnuradio/trellis/pccc_decoder_combined_ci.h"
-#include "gnuradio/trellis/viterbi_b.h"
-#include "gnuradio/trellis/viterbi_s.h"
-#include "gnuradio/trellis/viterbi_i.h"
-#include "gnuradio/trellis/viterbi_combined_sb.h"
-#include "gnuradio/trellis/viterbi_combined_ss.h"
-#include "gnuradio/trellis/viterbi_combined_si.h"
-#include "gnuradio/trellis/viterbi_combined_ib.h"
-#include "gnuradio/trellis/viterbi_combined_is.h"
-#include "gnuradio/trellis/viterbi_combined_ii.h"
-#include "gnuradio/trellis/viterbi_combined_fb.h"
-#include "gnuradio/trellis/viterbi_combined_fs.h"
-#include "gnuradio/trellis/viterbi_combined_fi.h"
-#include "gnuradio/trellis/viterbi_combined_cb.h"
-#include "gnuradio/trellis/viterbi_combined_cs.h"
-#include "gnuradio/trellis/viterbi_combined_ci.h"
-#include "gnuradio/trellis/sccc_decoder_b.h"
-#include "gnuradio/trellis/sccc_decoder_s.h"
-#include "gnuradio/trellis/sccc_decoder_i.h"
-#include "gnuradio/trellis/sccc_decoder_combined_fb.h"
-#include "gnuradio/trellis/sccc_decoder_combined_fs.h"
-#include "gnuradio/trellis/sccc_decoder_combined_fi.h"
-#include "gnuradio/trellis/sccc_decoder_combined_cb.h"
-#include "gnuradio/trellis/sccc_decoder_combined_cs.h"
-#include "gnuradio/trellis/sccc_decoder_combined_ci.h"
%}
%include "gnuradio/trellis/constellation_metrics_cf.h"
@@ -121,39 +88,6 @@
%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"
-%include "gnuradio/trellis/pccc_decoder_combined_fb.h"
-%include "gnuradio/trellis/pccc_decoder_combined_fs.h"
-%include "gnuradio/trellis/pccc_decoder_combined_fi.h"
-%include "gnuradio/trellis/pccc_decoder_combined_cb.h"
-%include "gnuradio/trellis/pccc_decoder_combined_cs.h"
-%include "gnuradio/trellis/pccc_decoder_combined_ci.h"
-%include "gnuradio/trellis/viterbi_b.h"
-%include "gnuradio/trellis/viterbi_s.h"
-%include "gnuradio/trellis/viterbi_i.h"
-%include "gnuradio/trellis/viterbi_combined_sb.h"
-%include "gnuradio/trellis/viterbi_combined_ss.h"
-%include "gnuradio/trellis/viterbi_combined_si.h"
-%include "gnuradio/trellis/viterbi_combined_ib.h"
-%include "gnuradio/trellis/viterbi_combined_is.h"
-%include "gnuradio/trellis/viterbi_combined_ii.h"
-%include "gnuradio/trellis/viterbi_combined_fb.h"
-%include "gnuradio/trellis/viterbi_combined_fs.h"
-%include "gnuradio/trellis/viterbi_combined_fi.h"
-%include "gnuradio/trellis/viterbi_combined_cb.h"
-%include "gnuradio/trellis/viterbi_combined_cs.h"
-%include "gnuradio/trellis/viterbi_combined_ci.h"
-%include "gnuradio/trellis/sccc_decoder_b.h"
-%include "gnuradio/trellis/sccc_decoder_s.h"
-%include "gnuradio/trellis/sccc_decoder_i.h"
-%include "gnuradio/trellis/sccc_decoder_combined_fb.h"
-%include "gnuradio/trellis/sccc_decoder_combined_fs.h"
-%include "gnuradio/trellis/sccc_decoder_combined_fi.h"
-%include "gnuradio/trellis/sccc_decoder_combined_cb.h"
-%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);
@@ -181,36 +115,3 @@ 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);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_fb);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_fs);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_fi);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_cb);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_cs);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_ci);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_b);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_s);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_i);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_sb);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_ss);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_si);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_ib);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_is);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_ii);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_fb);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_fs);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_fi);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_cb);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_cs);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_ci);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_b);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_s);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_i);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_fb);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_fs);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_fi);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_cb);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_cs);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_ci);
diff --git a/gr-trellis/swig/trellis_swig0.i b/gr-trellis/swig/trellis_swig1.i
similarity index 62%
copy from gr-trellis/swig/trellis_swig0.i
copy to gr-trellis/swig/trellis_swig1.i
index 8c71a5e..6481aee 100644
--- a/gr-trellis/swig/trellis_swig0.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);
- [Commit-gnuradio] [gnuradio] branch master updated (66df227 -> 3fc5507), git, 2016/10/28
- [Commit-gnuradio] [gnuradio] 01/06: digital: swig: rename file in preparation for splitting, to keep history., git, 2016/10/28
- [Commit-gnuradio] [gnuradio] 05/06: Merge branch 'maint', git, 2016/10/28
- [Commit-gnuradio] [gnuradio] 06/06: Merge remote-tracking branch 'michaelld/split_digital_swig', git, 2016/10/28
- [Commit-gnuradio] [gnuradio] 03/06: trellis: swig: rename file in preparation for splitting, to keep history., git, 2016/10/28
- [Commit-gnuradio] [gnuradio] 04/06: trellis: split swig into 2 parts (a la blocks/swig) to allow for building on "low memory" systems (e.g., RPi).,
git <=
- [Commit-gnuradio] [gnuradio] 02/06: digital: split swig into 3 parts (a la blocks/swig) to allow for building on "low memory" systems (e.g., RPi)., git, 2016/10/28