+OCAMLC = ocamlopt -g -rectypes
+LIB = unix.cmxa str.cmxa
+UTILS = parser.cmx console.cmx listx.cmx util.cmx pure.cmx num.cmx
+
+all: a.out test.out test34.out
+
+a.out: $(UTILS) lambda3.cmx lambda4.cmx problems.cmx
+ $(OCAMLC) -o a.out $(LIB) $^
+
+test.out: $(UTILS) lambda3.cmx test1.ml
+ $(OCAMLC) -o test.out $(LIB) $^
+
+test34.out: $(UTILS) lambda3.cmx lambda4.cmx test.ml
+ $(OCAMLC) -o test34.out $(LIB) $^
+
+andrea.out: $(UTILS) a.out andrea6.ml
+ $(OCAMLC) -o andrea.out $(LIB) $(UTILS) andrea6.ml
+
+#test2.out: $(UTILS) lambda3.ml test2.ml andrea
+# ocamlc -o test2.out $(LIB) $(UTILS) lambda3.ml andrea4.ml test2.ml
+
+%.cmi: %.mli
+ $(OCAMLC) -c $<
+
+%.cmx: %.ml %.cmi
+ $(OCAMLC) -c $<
+
+clean:
+ rm -f *.cm* *.out .depend log
+
+.depend: *.ml *.mli
+ ocamldep *.ml *.mli > .depend
+
+include .depend
+
+.PHONY: clean all