CSLC = ocamlc
CSLOPT = ocamlopt
CSLDEP=ocamldep
INCLUDES= -I AG -I EXPR
CSLFLAGS=$(INCLUDES)
CSLOPTFLAGS=$(INCLUDES)


AGNORM_OBJS= copyleft.cmo rotate.cmo func.cmo graph.cmo local.cmo 
AGOPT_OBJS=  $(AGNORM_OBJS:.cmo=.cmx)


all: ag expr agnorm agopt

ag:
	(cd AG;make)

expr:
	(cd EXPR;make)

#agopt : AG/ag.cmxa $(AGOPT_OBJS)
#	$(CSLOPT) $(CSLOPTFLAGS) -o $@ graphics.cmxa unix.cmxa str.cmxa EXPR/expr.cmxa AG/ag.cmxa $(AGOPT_OBJS)

agopt : AG/ag.cmxa $(AGOPT_OBJS)
	$(CSLOPT) $(CSLOPTFLAGS) -o $@ graphics.cmxa unix.cmxa str.cmxa EXPR/expr.cmxa AG/ag.cmxa $(AGOPT_OBJS) -ccopt -static -ccopt -static-libgcc -cclib -lxcb -cclib -lXau -cclib -lXdmcp -cclib -lX11 -cclib -lpthread

agnorm : AG/ag.cma $(AGNORM_OBJS)
	$(CSLC) -custom $(CSLFLAGS)  -o $@ graphics.cma unix.cma str.cma EXPR/expr.cma AG/ag.cma $(AGNORM_OBJS) 

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

.ml.cmo :
	$(CSLC) $(CSLFLAGS) -c $<
.mli.cmi :
	$(CSLC) $(CSLFLAGS) -c $<
.ml.cmx :
	$(CSLOPT) $(CSLOPTFLAGS) -c $<

clean:
	\rm -f *.cmo *.cmi *.cmx *.o *.a *.cma *.cmxa agnorm agopt agnorm.exe agopt.exe *~;(cd AG;make clean);(cd EXPR;make clean)

depend:
	$(CSLDEP) $(INCLUDES) *.mli *.ml >.depend

include .depend

