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)

.PHONY: all
all: equeue.cma unixqueue_mt.cmo

.PHONY: opt
opt: equeue.cmxa $(MT_NATIVE_P:yes=unixqueue_mt.cmx)

equeue.cma: $(EQUEUE_CMO)
	$(OCAMLC) -a -o equeue.cma $(EQUEUE_CMO)

equeue.cmxa: $(EQUEUE_CMX)
	$(OCAMLOPT) -a -o equeue.cmxa $(EQUEUE_CMX)

unixqueue.ml: unixqueue.mlp
	$(IFDEF) unixqueue.mlp

unixqueue_mt.cmo: unixqueue_mt.cmi unixqueue_mt.ml
	$(OCAMLC) -c $(MT_BYTE) unixqueue_mt.ml

unixqueue_mt.cmx: unixqueue_mt.cmi unixqueue_mt.ml
	$(OCAMLOPT) -c $(MT_NATIVE) unixqueue_mt.ml

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

.PHONY: CLEAN
CLEAN: clean

.PHONY: distclean
distclean: clean
	rm -f META

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

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


HTML_TARGET?=html

.PHONY: htmldoc
htmldoc:
	ocamldoc -html -d $(HTML_TARGET) -stars -t "Equeue Reference Manual" *.mli

# TODO: Generate the following dependencies:

include Makefile-dep
