# Practical 2: Maklefile for GNU Make on Suns

all : go

OBJ = yyprim.o yyparse.zo lexer.zo parser.zo main.zo

go : $(OBJ)
	camlc -g -o go -custom $(OBJ)

clean :
	rm -f *.o *.zi *.zo *.zix lexer.ml parser.mli parser.ml go yyout.*

lexer.ml : lexer.mll
	camllex lexer.mll

parser.mli parser.ml : parser.mly yyfix.awk
	camlyacc -v -b yyout parser.mly
	mv yyout.mli parser.mli
	gawk -f yyfix.awk yyout.ml >parser.ml
	@rm yyout.ml

%.zi : %.mli
	camlc -c -g $<

%.zo : %.ml
	camlc -c -g $<

%.o : %.c
	camlc -c $<

depend : parser.mli parser.ml lexer.ml
	camldep *.mli *.ml >new
	mv new Makefile

###

parser.zi     : tree.zi
yyprim.zi     : yyparse.zi
lexer.zo      : parser.zi
main.zo       : parser.zi lexer.zo yyparse.zi
parser.zo     : parser.zi lexer.zo yyparse.zi
yyparse.zo    : yyparse.zi yyprim.zi
