OCAMLC=ocamlc
OCAMLOPT=ocamlopt.opt
OCAMLDEP=ocamldep

INCLUDES= 
OCAMLFLAGS=$(INCLUDES) 
OCAMLOPTFLAGS=$(INCLUDES) -unsafe -inline 500

TSP_OBJS=trajet.cmx graphe.cmx graphips.cmx graphiques.cmx acm.cmx resultats.cmx permutation.cmx TwoOpt.cmx twooptjulien.cmx GreedyApprox.cmx exhaustif.ml fusion.cmx cell.cmx main3.cmx
TSP_LIBS=graphics.cmxa

tsp: $(TSP_OBJS)
	$(OCAMLOPT) -o tsp $(OCAMLOPTFLAGS) $(TSP_LIBS) $(TSP_OBJS)

# Common rules
.SUFFIXES: .ml .mli .cmo .cmi .cmx

.ml.cmo:
	$(OCAMLC) $(OCAMLFLAGS) -c $<

.mli.cmi:
	$(OCAMLOPT) $(OCAMLOPTFLAGS) -c $<

.ml.cmx:
	$(OCAMLOPT) $(OCAMLOPTFLAGS) $(TSP_LIBS) -c $<

# Clean up
clean:
	rm -f tsp
	rm -f *.cm[iox]
	rm -f *.o

# Dependencies
depend:
	$(OCAMLDEP) $(INCLUDES) *.mli *.ml > .depend

include .depend