TOP_DIR=../..
include $(TOP_DIR)/Makefile.rules

EQUEUE_CMO = equeue.cmo unixqueue.cmo uq_engines.cmo uq_socks5.cmo
EQUEUE_CMX = $(EQUEUE_CMO:.cmo=.cmx)
EQUEUE_CMI = $(EQUEUE_CMO:.cmo=.cmi)

COPY_ML  = equeue.ml uq_engines.ml uq_socks5.ml
COPY_MLI = $(EQUEUE_CMI:.cmi=.mli)

.PHONY: all
all: equeue.cma

.PHONY: opt
opt: equeue.cmxa

equeue.cma: $(EQUEUE_CMO) tclqueue.o
	$(OCAMLMKLIB) -oc tclqueue -o equeue \
		$(EQUEUE_TCL_LIBS) $(EQUEUE_CMO) tclqueue.o

equeue.cmxa: $(EQUEUE_CMX) tclqueue.o
	$(OCAMLMKLIB) -oc tclqueue -o equeue \
		$(EQUEUE_TCL_LIBS) $(EQUEUE_CMX) tclqueue.o

unixqueue.ml: unixqueue.mlp
	$(IFDEF) -D TCL -D TCL_NATIVE unixqueue.mlp

unixqueue.mlp: ../equeue-core/unixqueue.mlp
	cp $< .

$(COPY_MLI) $(COPY_ML): done-copy

done-copy:
	for file in $(COPY_MLI) $(COPY_ML); do \
	    cp ../equeue-core/$$file .;        \
	done
	touch done-copy

#libtclqueue.a: tclqueue.o
#	ocamlmklib -o tclqueue tclqueue.o -ltcl

tclqueue.o: tclqueue.h tclqueue.c
	$(OCAMLC) $(EQUEUE_TCL_DEFS) -c tclqueue.c

.PHONY: clean
clean:
	rm -f $(CLEAN_LIST) unixqueue.ml unixqueue.mlp done-copy

.PHONY: CLEAN
CLEAN: clean

.PHONY: distclean
distclean: clean
	rm -f META

.PHONY: install
install:
	files=`$(COLLECT_FILES) *.mli *.cmi *.cma *.cmxa *.a dll* unixqueue_mt.cmo unixqueue_mt.cmx unixqueue_mt.o META` && \
	$(OCAMLFIND) install equeue-tcl $$files

.PHONY: uninstall
uninstall:
	$(OCAMLFIND) remove equeue-tcl

include ../equeue-core/Makefile-dep
