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


SANORM_OBJS= copyleft.cmo rotate.cmo func.cmo graph.cmo local.cmo 
SAOPT_OBJS=  $(SANORM_OBJS:.cmo=.cmx)


all: expr sanorm saopt

expr:
	(cd EXPR;make)

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

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

sanorm : $(SANORM_OBJS)
	$(CSLC) -custom $(CSLFLAGS)  -o $@ graphics.cma unix.cma str.cma EXPR/expr.cma $(SANORM_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 sanorm saopt sanorm.exe saopt.exe *~;(cd EXPR;make clean)

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

include .depend

