One day this will not be required. But until then, waiting one or more
seconds for the build to fail just to learn that you forgot baserom.gbc
is really silly.
This makes failure almost instantaneous compared to before, which would
take between one and ten seconds depending on system performance.
fixes#167
the preprocessor queue was preventing files from being recognized as out-of-date
this highlights similar errors with graphics targets, which need to be fixed anyway
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.
A quirk of the Decompressed class dissociated the orientation from
the output attribute.
The makefile no longer suppresses output since it's still relevant.
To enable, append '${IMGFILES}' to line 22:
pokecrystal.o: pokecrystal.asm constants.asm wram.asm ${TEXTFILES} ${IMGFILES}
Also append '${LZFILES}' to line 48:
rm -f main.tx pokecrystal.o pokecrystal.gbc ${TEXTFILES} ${LZFILES}