all:	baos.rom baos.sym baos.8xu

baos.rom:	src/baos.rom
	@echo "CP       baos.rom"
	@cp $? $@

baos.sym:	src/baos.sym
	@echo "CP       baos.sym"
	@cp $? $@

baos.8xu:       src/baos.8xu
	@echo "CP       baos.8xu"
	@cp $? $@

src/baos.rom: src/*.asm src/*.h src/userspc/*.in src/userspc/*.asm
	@echo "MAKE     src/"
	@cd src && make

src/baos.sym:	src/baos.rom

src/baos.8xu:	src/baos.rom

src/flash.h:
	@echo "MAKE     src/flash.h"
	@cd src && make flash.h


tilem: debug

debug:
	@echo "MAKE     baseclean"
	@make baseclean
	@echo "MAKE     tilem-patch"
	@make tilem-patch
	@echo "MAKE"
	@make all
	@echo "MAKE     tilemstart"
	@make tilemstart
	@echo "MAKE     patchclean"
	@make patchclean

tilem-patch:
	@echo "MAKE     tilem-patch"
	@cd src && make tilem-patch

tilemstart:	all
	@echo "RUN      tilem"
	@rm ~/.TilEm/xp.sav ; cp -f baos.rom ~/.TilEm/xp.rom ; nice -n 10 tilem || echo -n ""

run:	all
	@echo "RUN      wabbitemu.exe"
	@rm baos.rom.sav ; wine /home/erik/dev/calc/wabbitemu/wabbitemu.exe

tios:	clean
	rm ~/.TilEm/xp.sav ; cp ~/.TilEm/TI83Plus.rom ~/.TilEm/xp.rom ; nice -n 10 tilem

pogos:	src/resources/pongos-0.1/Makefile
	cd src/resources/pongos-0.1 && make run

nostalgy:
	rm ~/.TilEm/xp.sav ; cp src/resources/nostalgy/nos-8xp.rom ~/.TilEm/xp.rom ; nice -n 10 tilem


stats:	lines

lines:	src/tools/linecnt
	@echo "*** BAOS statistics ***"
	@echo "" && echo "Base system:" && cat $$(for i in src/*.h src/*.asm src/userspc/*.inc; do echo $$i | grep -v flash.h| grep -v memlocks.h | grep -v restrict.h | grep -v baos.h | grep -v baos.inc | grep -v [.]bin[.]inc; done) | src/tools/linecnt
	@echo "" && echo "Installer application:" && cat $$(for i in src/install/*.asm; do echo $$i; done) | src/tools/linecnt
	@echo "" && echo "Userspace programs:" && cat $$(for i in src/userspc/*.asm; do echo $$i; done) | src/tools/linecnt
	@echo "--------------------------------"
	@echo "" && echo "Total:" && cat $$(for i in src/*.h src/*.asm src/userspc/*.inc src/userspc/*.asm src/install/*.asm; do echo $$i | grep -v flash.h| grep -v memlocks.h | grep -v restrict.h | grep -v baos.h | grep -v baos.inc | grep -v [.]bin[.]inc; done) | src/tools/linecnt


funcref: src/tools/gendoc
	@echo "GENDOC   doc/website/funcs.html"
	@cat $$(for i in src/*.h src/*.asm; do echo $$i | grep -v flash.h| grep -v memlocks.h | grep -v restrict.h | grep -v baos.h; done) | src/tools/gendoc > doc/website/funcs.html
	@echo "CAT      doc/website/index.html"
	@cat doc/website/index1.html doc/website/funcs.html doc/website/index2.html > doc/website/index.html

src/tools/linecnt:
	cd src/tools && make linecnt

src/tools/gendoc: src/tools/gendoc.c
	@echo "MAKE     src/tools/gendoc"
	@cd src/tools && make gendoc

clean:
	@echo "MAKE     baseclean"
	@make baseclean
	@echo "CLEAN    src/"
	@cd src && make clean

patchclean:
	@echo "MAKE     baseclean"
	@make baseclean
	@echo "PATCHCLEAN src/"
	@cd src && make patchclean

baseclean:
	@rm -f baos.rom baos.8xu baos.sym || echo -n ""
	@rm -f *~ || echo -n ""
	@echo "BASECLEAN src/"
	@cd src && make baseclean

baosmake:	src/tools/baosmake
	src/tools/baosmake --unix

src/tools/baosmake:	src/tools/baosmake.c
	cd src/tools && make baosmake



