# Makefile for the Galahad compiler

MOSMLHOME=/home/adc/mosml
MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools
MOSMLC=mosmlc -c -liberal 
MOSMLCT = mosmlc -c -toplevel
MOSMLL=mosmlc
MOSMLLEX=mosmllex
MOSMLYACC=mosmlyac


US = Table.uo Symbol.ui Symbol.uo CamelotAbsyn.uo Absyn.uo Translate.uo Lexer.uo  \
     Parser.ui Parser.uo Parse.ui Parse.uo Output.uo Outputsml.uo

all: $(US) galahad

galahad: $(US)
	mosmlc -o galahad main.sml

Parser.sml Parser.sig: Parser.grm
	$(MOSMLYACC) Parser.grm

.SUFFIXES :
.SUFFIXES : .sml .sig .ui .uo .mlp .lex .c .o

.sig.ui:
	$(MOSMLC) $<

.sml.uo:
	$(MOSMLC) $<

.lex.sml:
	$(MOSMLLEX) $<

depend: Lexer.sml Parser.sml 
	rm -f Makefile.bak
	mv Makefile Makefile.bak
	$(MOSMLTOOLS)/cutdeps < Makefile.bak > Makefile
	$(MOSMLTOOLS)/mosmldep >> Makefile

tidy: 
	rm -f Makefile.bak
	rm -f ../tst/*.hll ../tst/*~ ../tst/*.gal.sml

clean: tidy
	rm -f Parser.sig Parser.sml Lexer.sml
	rm -f *.ui *.uo *~
	rm -f galahad


### DO NOT DELETE THIS LINE
Parser.ui: Absyn.uo Symbol.ui 
Parser.uo: Parser.ui Absyn.uo Symbol.ui 
Lexer.uo: Parser.ui Symbol.ui 
Parse.ui: Absyn.uo 
main.uo: Translate.uo Outputsml.uo Parse.ui Output.uo 
Translate.uo: Symbol.ui 
Symbol.uo: Symbol.ui Table.uo 
Parse.uo: Parse.ui Parser.ui Lexer.uo 
Absyn.uo: Symbol.ui 
