diff --git a/ocaml/Makefile b/ocaml/Makefile new file mode 100644 index 00000000..03991b19 --- /dev/null +++ b/ocaml/Makefile @@ -0,0 +1,43 @@ +.PHONY: all clean install build +all: build test doc + +NAME=xcp-api-client + +LWT ?= $(shell if ocamlfind query lwt.ssl >/dev/null 2>&1; then echo --enable-lwt; fi) +ASYNC ?= $(shell if ocamlfind query async_core >/dev/null 2>&1; then echo --enable-async; fi) +MIRAGE ?= $(shell if ocamlfind query mirage-net >/dev/null 2>&1; then echo --enable-mirage; fi) +ifneq ($(MIRAGE_OS),xen) +TESTS ?= --enable-tests +endif +# disabled by default as they hang at the moment for Async +# NETTESTS ?= --enable-nettests + +setup.bin: setup.ml + ocamlopt.opt -o $@ $< || ocamlopt -o $@ $< || ocamlc -o $@ $< + rm -f setup.cmx setup.cmi setup.o setup.cmo + +setup.data: setup.bin + ./setup.bin -configure $(LWT) $(TESTS) $(ASYNC) #$(MIRAGE) $(NETTESTS) + +build: setup.data setup.bin + ./setup.bin -build + +doc: setup.data setup.bin + ./setup.bin -doc + +install: setup.bin + ./setup.bin -install + +test: setup.bin build + ./setup.bin -test + +fulltest: setup.bin build + ./setup.bin -test + +reinstall: setup.bin + ocamlfind remove $(NAME) || true + ./setup.bin -reinstall + +clean: + ocamlbuild -clean + rm -f setup.data setup.log setup.bin