PCOMP=./pcomp
SASM=./sasm
LSYMGEN=./lsymgen

.SUFFIXES:
.SUFFIXES: .pas .o .s .prog

.pas.s:
	$(PCOMP) $<
.s.prog:
	$(SASM) $<

.pas:
	fpc -Mobjfpc -gl $<

all: libs pcomp sasm sdis lsymgen shortgen nativecomp nativeprogs

libs: pcomp sasm lsymgen shortgen
	$(SASM) ../lib/coreloader.s
	$(LSYMGEN) ../lib/coreloader.sym
	$(PCOMP) -n ../lib/stdlib.pas
	$(SASM) ../lib/stdlibwrap.s ../lib/stdlib.lib
	$(LSYMGEN) ../lib/stdlibwrap.sym ../lib/stdlib.lsym

test: libs sasm.s pcomp.s lsymgen.s shortgen.s

testprgs: libs sasm.prog pcomp.prog lsymgen.prog shortgen.prog

nativecomp: libs pcomp.prog sasm.prog lsymgen.prog shortgen.prog

nativeprogs: pcomp ../progs/shell.prog ../progs/editor.prog ../progs/reclaim.prog \
        ../progs/dumpdir.prog ../progs/partmgr.prog ../progs/xfer.prog \
        ../progs/recover.prog ../progs/changemem.prog
	$(SASM) ../lib/rommon.s
	$(SASM) -A ../lib/rommon.s ../lib/rom.mem

examples: nativecomp ../tests/readtest.prog ../tests/readchartest.prog ../tests/timetest.prog \
	../tests/test133.prog ../tests/cchangetest.prog ../tests/tree.prog
	-$(PCOMP) ../examples/chase.pas
	-$(SASM) ../examples/chase.s
	-$(MAKE) -C ../rogue -f Makefile.tridoracpu

clean:
	rm -f pcomp sasm sdis libgen lsymgen shortgen*.o *.s *.prog \
		../lib/stdlib.s ../lib/stdlib.lib ../lib/stdlib.lsym
