
VERSION=2.9.0
RELEASE=""
DATE=`date '+%D'`

SML=front-fiacre.sml front-printer.sml front-util.sml front-flags.sml front-parser.sml front-typer.sml frac-util.sml frac-flags.sml frac-json.sml frac-tts.sml frac-emit-abstract.sml frac-emit-tts.sml frac-emit-hippo.sml frac-emit-types.sml frac-emit.sml frac-simpl.sml frac-observers.sml frac-precompose.sml frac-arch.sml frac-compose.sml frac-postcompose.sml frac-optimize.sml frac-compile.sml frac-main.sml


frac: $(SML) front-parser.grm.sml front-parser.grm.sig front-parser.lex.sml version.sml
	@# builds frac using mlton, writes executable in ./ (frac or frac.exe)
	@# debug version:
	@# mlton -const 'Exn.keepHistory true' frac.mlb
	@# run version:
	mlton frac.mlb
	if test -f frac.exe; then strip frac.exe; else strip frac; fi
	rm version.sml

front-parser.lex.sml front-parser.grm.sml front-parser.grm.sig: front-parser.lex front-parser.grm
	mllex front-parser.lex
	mlyacc front-parser.grm

version.sml:
	echo "val version=\"$(VERSION)\"; val release=\"$(RELEASE)\"; val date=\"$(DATE)\";" > version.sml

clean:
	rm -f frac frac.exe version.sml

cleansrc:
	@# removes files built by Makefile and mllex/yacc
	rm -f front-parser.lex.sml front-parser.grm.sml front-parser.grm.sig front-parser.grm.desc version.sml

cleanall:
	rm -rf bin/*
	rm -f front-parser.lex.sml front-parser.grm.sml front-parser.grm.sig front-parser.grm.desc version.sml


