# Ou aller chercher le compilo... Avec un / a la fin
BINDIR =
CAMLC = $(BINDIR)ocamlc
CAMLOPT = $(BINDIR)ocamlopt
CAMLDEP = $(BINDIR)ocamldep
CAMLLEX = $(BINDIR)ocamllex
CAMLYACC = $(BINDIR)ocamlyacc

CAMLCOPT =

# User definitions must be here
GENERATED = lexfile.ml parserequest.ml lexrequest.ml parserequest.mli

TEST = a.out
TESTOPT = a.out.opt
TESTSRCS = types.ml myformat.ml request.ml gclist.ml main.ml
TESTOBJS = types.cmo myformat.cmo lexfile.cmo gclist.cmo request.cmo \
	parserequest.cmo lexrequest.cmo main.cmo

# Building the world
all: $(TEST) $(TESTOPT)

$(TEST): $(TESTOBJS)
	$(CAMLC) $(TESTOBJS) -o $(TEST)

$(TESTOPT): $(TESTOBJS:.cmo=.cmx)
	$(CAMLOPT) $(TESTOBJS:.cmo=.cmx) -o $(TESTOPT)


.SUFFIXES:
.SUFFIXES: .ml .mli .cmo .cmi .cmx
.SUFFIXES: .mll .mly

.ml.cmo:
	$(CAMLC) $(CAMLCOPT) -c $<

.ml.cmx:
	$(CAMLOPT) $(CAMLCOPT) -c $<

.mli.cmi:
	$(CAMLC) $(CAMLCOPT) -c $<

.mll.ml:
	$(CAMLLEX) $<

.mly.ml:
	$(CAMLYACC) $<

# Clean up
clean:
	rm -f *.cm[io] *.cmx *~ .*~ *.o
	rm -f $(TEST) $(TESTOPT)
	rm -f parser.mli
	rm -f $(GENERATED)


# Dependencies
depend: $(TESTSRCS) $(GENERATED)
	$(CAMLDEP) $(CAMLCOPT) *.ml{,i} > .depend

include .depend
