<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/mkrules.mk, branch cross</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=cross</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=cross'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2016-08-04T20:46:08+00:00</updated>
<entry>
<title>py/mkrules.mk: Allow to add more items for "clean" target using CLEAN_EXTRA.</title>
<updated>2016-08-04T20:46:08+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-08-04T20:40:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7fb31479bfffd8026e2b4b259b50bcacfed95a8a'/>
<id>urn:sha1:7fb31479bfffd8026e2b4b259b50bcacfed95a8a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Rename __QSTR_EXTRACT flag to NO_QSTR.</title>
<updated>2016-06-15T22:42:48+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-06-15T22:40:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=f469c764428230363a2b22fedf303d86eea82853'/>
<id>urn:sha1:f469c764428230363a2b22fedf303d86eea82853</id>
<content type='text'>
It has more usages than just qstr extraction, for example, embedding (where
people don't care about efficient predefined qstrs).
</content>
</entry>
<entry>
<title>py/mkrules.mk: Define "lib" outside conditional block.</title>
<updated>2016-06-15T22:11:24+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-06-15T22:11:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=230d5cda0529c1111595833c054abdb7d568c271'/>
<id>urn:sha1:230d5cda0529c1111595833c054abdb7d568c271</id>
<content type='text'>
"lib" happened to be defined inside block conditional on $(PROG).
</content>
</entry>
<entry>
<title>py/mkrules.mk: Typo fixes in comments.</title>
<updated>2016-04-26T09:39:28+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-04-26T09:39:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=51cee4495ea74bdde7b3ce0293e818dd08a998ba'/>
<id>urn:sha1:51cee4495ea74bdde7b3ce0293e818dd08a998ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/mkrules.mk: Remove obsolete rules for auto qstr generation.</title>
<updated>2016-04-22T10:36:19+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-04-22T10:36:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=51dca54cd09ba66986191129dfa5dfcfcf8b4e01'/>
<id>urn:sha1:51dca54cd09ba66986191129dfa5dfcfcf8b4e01</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Divide "split" and "cat" phases of qstr extraction for better efficiency.</title>
<updated>2016-04-19T11:39:08+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-04-19T11:39:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1b60a6dc4e755e14453e024364c8ef5f07780d80'/>
<id>urn:sha1:1b60a6dc4e755e14453e024364c8ef5f07780d80</id>
<content type='text'>
E.g. for stmhal, accumulated preprocessed output may grow large due to
bloated vendor headers, and then reprocessing tens of megabytes on each
build make take couple of seconds on fast hardware (=&gt; potentially dozens
of seconds on slow hardware). So instead, split once after each change,
and only cat repetitively (guaranteed to be fast, as there're thousands
of lines involved at most).
</content>
</entry>
<entry>
<title>py/mkrules.mk: Fix Bashism.</title>
<updated>2016-04-19T09:32:23+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-04-19T09:32:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=4494b521ea12034f495b0d98e079a62e9953f61b'/>
<id>urn:sha1:4494b521ea12034f495b0d98e079a62e9953f61b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/mkrules.mk: Cleanup command passed to shell.</title>
<updated>2016-04-19T09:28:30+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-04-19T09:28:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=21ab304c410679b0b8182e75a32d368f00ebfefd'/>
<id>urn:sha1:21ab304c410679b0b8182e75a32d368f00ebfefd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/mkrules.mk: Try to detect and emulate make -B behavior for qstr extraction.</title>
<updated>2016-04-19T09:18:46+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-04-19T09:18:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0dc85c9f86735c35cf14555482b2c8923cf31a6a'/>
<id>urn:sha1:0dc85c9f86735c35cf14555482b2c8923cf31a6a</id>
<content type='text'>
If make -B is run, the rule is run with $? empty. Extract fron all file in
this case. But this gets fragile, really "make clean" should be used instead
with such build complexity.
</content>
</entry>
<entry>
<title>py: Rework QSTR extraction to work in simple and obvious way.</title>
<updated>2016-04-19T08:37:56+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-04-19T08:30:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c618f91e22613b2e530f7c21be0be789a7e8eed5'/>
<id>urn:sha1:c618f91e22613b2e530f7c21be0be789a7e8eed5</id>
<content type='text'>
When there're C files to be (re)compiled, they're all passed first to
preprocessor. QSTR references are extracted from preprocessed output and
split per original C file. Then all available qstr files (including those
generated previously) are catenated together. Only if the resulting content
has changed, the output file is written (causing almost global rebuild
to pick up potentially renumbered qstr's). Otherwise, it's not updated
to not cause spurious rebuilds. Related make rules are split to minimize
amount of commands executed in the interim case (when some C files were
updated, but no qstrs were changed).
</content>
</entry>
</feed>
