From e733c4234c0064102f9732f23ed869660c847d31 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 21 Jun 2013 00:58:35 -0400 Subject: preprocess asm files individually this fixes a lot of previous hacks first off, rgbds requires that labels from includes be marked as globals. instead, 3626ddeb stuffed includes into the parent file in the preprocessor. this meant one huge file got preprocessed every time, adding an additional ten seconds to compile time. running the preprocessor once for each file would create too much overhead, so a list is fed into prequeue.py, which then makes calls to preprocessor.py. this paves the way for compiling source files separately some day. next, compiling previously required `make clean` to be executed first. f3340de6 touched main.asm to force a fresh compile instead. this behavior has been reverted. now, `make all` will only attempt to recompile if a source file has changed. preprocessor.py has some marginal changes. prequeue.py is created to keep the original functionality of preprocessor.py intact. so many files are preprocessed on first compile (1951 as of this commit) that the prequeue call has been hidden. compile time is reduced to 15-30 seconds on first compile, and 5-10 seconds subsequently. the majority of this time is spent in rgbasm. --- prequeue.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 prequeue.py (limited to 'prequeue.py') diff --git a/prequeue.py b/prequeue.py new file mode 100644 index 000000000..991db7eb8 --- /dev/null +++ b/prequeue.py @@ -0,0 +1,11 @@ +import os +import sys +import preprocessor + +if __name__ == '__main__': + for source in sys.argv[1:]: + dest = os.path.splitext(source)[0] + '.tx' + sys.stdin = open(source, 'r') + sys.stdout = open(dest, 'w') + preprocessor.preprocess() + -- cgit v1.2.3 From 44571dc23645d4bdf7492efb236fc80c0537e460 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 25 Jun 2013 21:28:25 -0400 Subject: give prequeue a reason to exist --- prequeue.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'prequeue.py') diff --git a/prequeue.py b/prequeue.py index 991db7eb8..156d3e942 100644 --- a/prequeue.py +++ b/prequeue.py @@ -1,3 +1,9 @@ +# coding: utf-8 + +# Starting a new python process to preprocess each source file +# creates too much overhead. Instead, a list of files to preprocess +# is fed into a script run from a single process. + import os import sys import preprocessor -- cgit v1.2.3