1
.SUBDIRS: ocaml_backend js_backend
3
PSTOPDF = $(shell bash -c "which pstopdf 2>/dev/null || which ps2pdf 2>/dev/null || which ps2pdf14 2>/dev/null || echo false")
5
OCAMLINCLUDES = ocaml_backend ../database
6
OCAMLPACKS = xml-light2 sexpr log http-svr
8
CAMLP4_FILES = datamodel_types
10
UseCamlp4(rpc-light.syntax, $(CAMLP4_FILES))
12
# -----------------------------------------------------------------------
13
# Build datamodel library
14
# -----------------------------------------------------------------------
16
OCamlLibrary(datamodel, datamodel constants datamodel_utils datamodel_types api_errors api_messages dm_api ocaml_backend/ocaml_utils ocaml_backend/ref ../database/string_marshall_helper)
18
# -----------------------------------------------------------------------
19
# Build datamodel documentation
20
# -----------------------------------------------------------------------
23
DATAMODEL_FILES = constants datamodel_types api_errors api_messages dm_api datamodel datamodel_utils dtd_backend latex_backend dot_backend ocaml_backend/ref ../database/string_marshall_helper
25
SHARED_TEX = coversheet.tex presentation.tex vm-lifecycle.tex wire-protocol.tex
26
SHARED_EPS = vm_lifecycle.eps
27
OPEN_TEX = xenapi.tex xenapi-coversheet.tex xenapi-datamodel.tex
28
OPEN_EPS = xenapi-datamodel-graph.eps xen.eps
29
CLOSED_TEX = xenenterpriseapi.tex xenenterpriseapi-coversheet.tex xenenterpriseapi-datamodel.tex
30
CLOSED_EPS = xenenterpriseapi-datamodel-graph.eps citrix_logo_black.eps
32
DOCDIR = $(ROOT)/ocaml/autogen/doc
34
OCamlProgram($(DATAMODEL), $(DATAMODEL_FILES) datamodel_main)
35
OCamlDocProgram(datamodel, $(DATAMODEL_FILES))
38
#sdk-classes: sdk-classes.dot
39
# dot -Tps2 -Kneato -Goverlap=false sdk-classes.dot > sdk-classes.ps
40
# dot -Tgif -Kneato -Goverlap=false sdk-classes.dot > sdk-classes.gif
42
xenapi-datamodel-graph.dot: datamodel
45
xenenterpriseapi-datamodel-graph.dot: datamodel
46
./datamodel -dot -closed >$@
48
xenapi-datamodel.tex: datamodel
49
./datamodel -latex >$@
52
xenenterpriseapi-datamodel.tex: datamodel
53
./datamodel -latex -closed >$@
55
datamodel-dtd.xml: datamodel
58
xenenterpriseapi.dvi: $(CLOSED_TEX) $(SHARED_TEX) $(CLOSED_EPS) $(SHARED_EPS)
62
xenapi.dvi: $(OPEN_TEX) $(SHARED_TEX) $(OPEN_EPS) $(SHARED_EPS)
83
rm -rf *.cmi *.cma *.cmxa *.a *.cmo *.cmx *.o *.opt *.aux *.log *.fig *.run *.spot *.spit datamodel
84
rm -rf *.ps *.pdf *.dvi *.annot
85
rm -rf *datamodel.tex datamodel-dtd.xml datamodel-coversheet.tex
87
sdk-README.txt : sdk-README.html
88
lynx -dump sdk-README.html > sdk-README.txt
91
doc: xenenterpriseapi.pdf
94
sdk-install: doc sdk-README.txt
95
mkdir -p $(SDK)/docs/pdf
96
cp xenenterpriseapi.pdf $(SDK)/docs/pdf/
97
cp sdk-README.txt $(SDK)/README.txt
98
cp sdk-index.html $(SDK)/index.html
101
sed 's/@VERSION@/$(PRODUCT_VERSION)/g' < $< > $@
103
if $(defined DESTDIR)
104
INSTALL_PATH = $(DESTDIR)/$(shell ocamlfind printconf destdir)
107
INSTALL_PATH = $(shell ocamlfind printconf destdir)
111
mkdir -p $(INSTALL_PATH)
112
ocamlfind install -destdir $(INSTALL_PATH) -ldconf ignore xapi-datamodel META datamodel.{a,cmxa,cmi} datamodel_types.cmi datamodel_utils.cmi dm_api.cmi api_messages.cmi
114
.PHONY: lib-uninstall
116
ocamlfind remove -destdir $(INSTALL_PATH) xapi-datamodel