KOLEJNOSC=protocol.ml prot_test.ml players.ml main.ml

OCAMLC=ocamlc
OCAMLOPT=ocamlopt
OCAMLDEP=ocamldep
LIB=unix.cma
OPT_LIB=unix.cmxa

NAME=runme
EXEC=$(NAME)
EXEC_NOOPT=$(NAME)_noopt

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

INCLUDES=-I +camlpr 
PREPROCESS= -pp "camlp4o"

#all: .depend $(EXEC_NOOPT)
all: .depend $(EXEC)
	
MLI := $(wildcard *.mli)
IBJ := $(subst .mli,.cmi,$(MLI)) 
ML := $(KOLEJNOSC)
OBJ := $(subst .ml,.cmo,$(ML)) 
XBJ := $(subst .ml,.cmx,$(ML)) 


$(EXEC_NOOPT): $(IBJ) $(OBJ)
	$(OCAMLC) $(INCLUDES) $(LIB) -o $@ $(OBJ) $(LINK_FLAGS)

$(EXEC): $(IBJ) $(XBJ)
	$(OCAMLOPT) $(INCLUDES) $(OPT_LIB) $(OCAMLOPTFLAGS) -o $@ $(XBJ) $(LINK_FLAGS)

clean:
	rm -f *.o *.obj *.cmi *.cml *.cmx *.cmo .depend
	rm -f $(EXEC) $(EXEC_NOOPT)

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

.SUFFIXES: .ml .mli .cmo .cmi .cmx
.ml.cmo:
	$(OCAMLC) $(PREPROCESS) -c $(OCAMLFLAGS) $<
.mli.cmi:
	$(OCAMLC) $(PREPROCESS) -c $(OCAMLFLAGS) $<
.ml.cmx:
	$(OCAMLOPT) $(PREPROCESS) -c $(OCAMLOPTFLAGS) $<
	
-include .depend
