You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
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.
This commit is contained in:
32
Makefile
32
Makefile
@@ -1,33 +1,23 @@
|
||||
.SUFFIXES: .asm .tx .o .gbc .png .2bpp .lz
|
||||
|
||||
TEXTFILES = \
|
||||
text/sweethoney.tx \
|
||||
text/phone/bill.tx \
|
||||
text/phone/elm.tx \
|
||||
text/phone/mom.tx \
|
||||
text/phone/trainers1.tx \
|
||||
text/common.tx \
|
||||
text/common_2.tx \
|
||||
text/common_3.tx \
|
||||
main.tx
|
||||
TEXTFILES := $(shell find ./ -type f -name '*.asm' | grep -v pokecrystal.asm | grep -v constants.asm | grep -v gbhw.asm | grep -v hram.asm | grep -v constants | grep -v wram.asm)
|
||||
TEXTQUEUE :=
|
||||
|
||||
PNG_GFX = $(shell find gfx/ -type f -name '*.png')
|
||||
LZ_GFX = $(shell find gfx/ -type f -name '*.lz')
|
||||
TWOBPP_GFX = $(shell find gfx/ -type f -name '*.2bpp')
|
||||
PNG_GFX := $(shell find gfx/ -type f -name '*.png')
|
||||
LZ_GFX := $(shell find gfx/ -type f -name '*.lz')
|
||||
TWOBPP_GFX := $(shell find gfx/ -type f -name '*.2bpp')
|
||||
|
||||
all: pokecrystal.gbc
|
||||
cmp baserom.gbc $<
|
||||
clean:
|
||||
rm -f main.tx pokecrystal.o pokecrystal.gbc ${TEXTFILES}
|
||||
pokecrystal.o: pokecrystal.asm constants.asm wram.asm ${TEXTFILES} lzs
|
||||
rm -f pokecrystal.o pokecrystal.gbc
|
||||
@echo rm -f $$\(TEXTFILES:.asm=.tx\)
|
||||
@rm -f $(TEXTFILES:.asm=.tx)
|
||||
pokecrystal.o: $(TEXTFILES:.asm=.tx) pokecrystal.asm constants.asm wram.asm lzs
|
||||
python prequeue.py $(TEXTQUEUE)
|
||||
rgbasm -o pokecrystal.o pokecrystal.asm
|
||||
|
||||
pokecrystal.asm: depend
|
||||
depend:
|
||||
@touch main.asm
|
||||
|
||||
.asm.tx:
|
||||
python preprocessor.py < $< > $@
|
||||
$(eval TEXTQUEUE := $(TEXTQUEUE) $<)
|
||||
|
||||
pokecrystal.gbc: pokecrystal.o
|
||||
rgblink -o $@ $<
|
||||
|
Reference in New Issue
Block a user