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

TESTNORM_OBJS= copyleft.cmo rotate.cmo func.cmo graph.cmo simplex.cmo main.cmo
TESTOPT_OBJS=  $(TESTNORM_OBJS:.cmo=.cmx)

all: expr nmnorm nmopt

expr:
	(cd EXPR;make)

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

#nmopt : $(TESTOPT_OBJS)
#	$(CSLOPT) $(CSLOPTFLAGS) -o $@ unix.cmxa str.cmxa graphics.cmxa EXPR/expr.cmxa $(TESTOPT_OBJS)

nmnorm : $(TESTNORM_OBJS)
	$(CSLC) $(CSLFLAGS)  -o $@ unix.cma str.cma graphics.cma EXPR/expr.cma $(TESTNORM_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 nmnorm* nmopt* *~ ; (cd EXPR;make clean)

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

include .depend

