
OCAMLC=ocamlc -g
OCAMLOPT=ocamlopt #-inline 10 -unsafe #-p -cclib -ldl
OCAMLDEP=ocamldep

OBJS=debug.cmo state.cmo time.cmo print.cmo communication.cmo distance.cmo select.cmo select2.cmo select3.cmo alerte.cmo alphabeta.cmo

ROBOT=$(OBJS) action.cmo
HUMAN=$(OBJS) human.cmo

OPTLINKFLAGS=unix.cmxa
BYTELINKFLAGS=unix.cma

all: ../runme runme.byte human

../runme: $(ROBOT:cmo=cmx)
	$(OCAMLOPT) -o $@ $(OPTLINKFLAGS) $(LINKFLAGS) $(ROBOT:cmo=cmx)

runme.byte: $(ROBOT)
	$(OCAMLC) -o $@ $(BYTELINKFLAGS) $(LINKFLAGS) $(ROBOT)

human: $(HUMAN)
	$(OCAMLC) -o $@ $(BYTELINKFLAGS) $(LINKFLAGS) $(HUMAN)

clean::
	 rm -f ../runme
	 rm -f ../runme.byte

auto0: $(OBJS) goto.cmo auto0.cmo
	$(OCAMLC) -o auto0 $(BYTELINKFLAGS) $(LINKFLAGS) $(OBJS) goto.cmo auto0.cmo

action: $(OBJS) action.cmo
	$(OCAMLC) -o $@ $(BYTELINKFLAGS) $(LINKFLAGS) $(OBJS) action.cmo

fmTest.opt: $(OBJS:cmo=cmx) fmTest.cmx
	$(OCAMLOPT) -o fmTest.opt \
	     $(OPTLINKFLAGS) $(LINKFLAGS) $(OBJS:cmo=cmx) fmTest.cmx

#####

.SUFFIXES: .cmo .cmi .cmx .ml .mli .idl .o .c

.ml.cmx:
	$(OCAMLOPT) $(COMPFLAGS) -c $<

.ml.cmo:
	$(OCAMLC) $(BYTECOMPFLAGS) $(COMPFLAGS) -c $<

.mli.cmi:
	$(OCAMLC) $(COMPFLAGS) -c $<

.c.o:
	$(OCAMLC) $(COMPFLAGS) -ccopt "$(CFLAGS)" -c $<

depend:
	$(OCAMLDEP) $(DEPFLAGS) *.ml *.mli > .depend

clean::
	rm -f *.cmo *.cmi *.cmx *.o

realclean:: clean
	rm -f *~

include .depend
