# Compiler Construction 2013 
# Computer Laboratory 
# University of Cambridge 
# Timothy G. Griffin (tgg22@cam.ac.uk) 

# Unix Makefile for Slang.1 implementation

# adjust this for your system
#MOSMLHOME=${HOME}/mosml
MOSMLHOME=/Users/timothygriffin/installs/mosml
MOSMLTOOLS=$(MOSMLHOME)/bin/camlrunm $(MOSMLHOME)/tools
MOSMLC=$(MOSMLHOME)/bin/mosmlc 

FILES=Library.uo AST_expr.uo AST_vrm_assembler.uo AST_vrm_bytecode.uo AST_vsm_assembler.uo AST_vsm_bytecode.uo Lexer.uo parser.uo static_semantics.uo normalise.uo vrm_code_gen.uo vrm_assemble.uo vrm_emit.uo vsm_code_gen.uo vsm_assemble.uo vsm_emit.uo slang_compile.uo

all: $(FILES)
	$(MOSMLC) -o slang1 $(FILES) main.sml 

.SUFFIXES :
.SUFFIXES : .sml .sig .ui .uo 

.sig.ui:
	$(MOSMLC) -c $<

.sml.uo:
	$(MOSMLC) -c $<

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

clean:
	rm -f *.ui *.uo
	rm -f Makefile.bak


### DO NOT DELETE THIS LINE
vsm_emit.uo: AST_vsm_bytecode.uo 
vsm_code_gen.uo: Library.ui AST_vsm_assembler.uo AST_normal_expr.uo 
vsm_assemble.uo: Library.ui AST_vsm_assembler.uo AST_vsm_bytecode.uo 
vrm_emit.uo: AST_vrm_bytecode.uo 
vrm_code_gen.uo: Library.ui AST_normal_expr.uo AST_vrm_assembler.uo 
vrm_assemble.uo: Library.ui AST_vrm_bytecode.uo AST_vrm_assembler.uo 
static_semantics.uo: Library.ui AST_expr.uo 
slang_compile.uo: parser.uo vrm_assemble.uo vrm_code_gen.uo Lexer.ui \
    vrm_emit.uo static_semantics.uo vsm_emit.uo normalise.uo vsm_assemble.uo \
    vsm_code_gen.uo 
parser.uo: Lexer.ui AST_expr.uo 
normalise.uo: Library.ui AST_normal_expr.uo AST_expr.uo 
main.uo: Library.ui parser.uo vrm_emit.uo lexer.ui static_semantics.uo \
    slang_compile.uo 
Library.uo: Library.ui 
Lexer.uo: Lexer.ui 
AST_vsm_assembler.uo: Library.ui 
AST_vrm_assembler.uo: Library.ui 
AST_normal_expr.uo: AST_expr.uo 
