OCAMLC=ocamlc -g OCAMLOPT=ocamlopt OPTCOMPOPTS=-inline 20 OPTLINKOPTS= OCAMLYACC=ocamlyacc OCAMLLEX=ocamllex OCAMLDEP=ocamldep OBJS=misc.cmo point.cmo config.cmo vector.cmo matrix.cmo object.cmo \ simplify.cmo intersect.cmo \ light.cmo surface.cmo \ render.cmo \ eval.cmo gmlparser.cmo gmllexer.cmo main.cmo LIBS=graphics.cma all: tracer.opt ppmdiff.opt bad_example.opt tracer: $(OBJS) $(OCAMLC) -o $@ $(LIBS) $(OBJS) clean:: rm -f tracer tracer.opt: $(OBJS:.cmo=.cmx) $(OCAMLOPT) $(OPTLINKOPTS) -o $@ $(LIBS:.cma=.cmxa) $(OBJS:.cmo=.cmx) clean:: rm -f tracer.opt gmlparser.ml gmlparser.mli: gmlparser.mly $(OCAMLYACC) gmlparser.mly clean:: rm -f gmlparser.ml gmlparser.mli beforedepend:: gmlparser.ml gmlparser.mli gmllexer.ml: gmllexer.mll $(OCAMLLEX) gmllexer.mll clean:: rm -f gmllexer.ml beforedepend:: gmllexer.ml ppmdiff.opt: ppmdiff.cmx ocamlopt -o ppmdiff.opt ppmdiff.cmx clean:: rm -f ppmdiff.opt bad_example.opt: bad_example.cmx ocamlopt -o bad_example.opt bad_example.cmx clean:: rm -f bad_example.opt .SUFFIXES: .ml .mli .cmo .cmi .cmx .mli.cmi: $(OCAMLC) -c $< .ml.cmo: $(OCAMLC) -c $< .ml.cmx: $(OCAMLOPT) -c $(OPTCOMPOPTS) $< clean:: rm -f *.cm[iox] *.o depend: beforedepend $(OCAMLDEP) *.mli *.ml > .depend include .depend