1
2OCAMLBUILDDIR = $(top_builddir)/src/gdome_caml
3OCAMLINSTALLDIR = $(DESTDIR)$(OCAML_LIB_PREFIX)/gdome2
4
5OCAMLFLAGS = \
6  -I $(OCAMLBUILDDIR) \
7  -I $(OCAMLBUILDDIR)/types \
8  -I $(OCAMLBUILDDIR)/basic \
9  -I $(OCAMLBUILDDIR)/core \
10  -I $(OCAMLBUILDDIR)/events
11
12OCAMLC = @OCAMLC@ ${OCAMLFLAGS}
13OCAMLOPT = @OCAMLOPT@ ${OCAMLFLAGS}
14OCAMLDEP = @OCAMLDEP@
15OCAML_CFLAGS  = @OCAML_CFLAGS@
16ARCHIVE = mlogdome
17
18MODULES = \
19  Node \
20  NodeList \
21  NamedNodeMap \
22  CharacterData \
23  Attr \
24  Element \
25  Text \
26  Comment \
27  CDATASection \
28  DocumentType \
29  Notation \
30  Entity \
31  EntityReference \
32  ProcessingInstruction \
33  DocumentFragment \
34  Document
35
36EVENTS_MODULES = \
37  EventTarget \
38  Event \
39  MutationEvent
40
41O_AUTO_ML = \
42  gdome.ml
43
44ALL_ML_SOURCES_ = $(O_AUTO_ML) $(O_AUTO_ML:%.ml=%.mli)
45
46# OCaml objects
47OCAML_OBJECTS = $(O_AUTO_ML:%.ml=%.cmo)
48OCAMLOPT_OBJECTS = $(O_AUTO_ML:%.ml=%.cmx)
49
50OCAML_INTERFACES = $(O_AUTO_ML:%.ml=%.cmi)
51
52BUILT_SOURCES = $(O_AUTO_ML) $(O_AUTO_ML:%.ml=%.mli)
53
54MAINTAINERCLEANFILES = \
55  $(O_AUTO_ML:%.ml=%.mli) \
56  $(O_AUTO_ML)
57
58CLEANFILES = \
59  $(OCAML_INTERFACES) \
60  $(OCAML_OBJECTS) \
61  $(OCAMLOPT_OBJECTS) \
62  $(O_AUTO_ML:%.ml=%.o) \
63  $(ARCHIVE).cma $(ARCHIVE).cmxa $(ARCHIVE).a
64
65EXTRA_DIST = \
66  $(ALL_ML_SOURCES_) \
67  gdomeCore.ml.prefix \
68  gdomeCore.ml.suffix \
69  gdomeEvents.ml.prefix \
70  gdomeEvents.ml.suffix \
71  gdomeCore.mli.prefix \
72  gdomeCore.mli.suffix \
73  gdomeEvents.mli.prefix \
74  gdomeEvents.mli.suffix \
75  .depend
76
77XML2OML = $(srcdir)/../xsl/xml2oml.xsl
78XML2OMLI = $(srcdir)/../xsl/xml2omli.xsl
79XML2OMLCASTS = $(srcdir)/../xsl/xml2omlcasts.xsl
80XML2OMLICASTS = $(srcdir)/../xsl/xml2omlicasts.xsl
81XSLUTILS = $(srcdir)/../xsl/xslutils.xsl
82XML2MLDOC = $(srcdir)/../xsl/xml2mldoc.xsl
83
84if HAVE_OCAMLOPT_COND
85noinst_DATA = $(ARCHIVE).cma $(ARCHIVE).cmxa $(ARCHIVE).a
86else
87noinst_DATA = $(ARCHIVE).cma
88endif
89
90$(ARCHIVE).cma : $(OCAML_OBJECTS)
91	$(OCAMLC) -o $@ -a $^
92
93$(ARCHIVE).cmxa $(ARCHIVE).a : $(OCAMLOPT_OBJECTS)
94	$(OCAMLOPT) -o $@ -a $^
95
96if HAVE_XSLTPROC_COND
97
98gdome.ml : $(XML2OML) $(XSLUTILS) $(XML2OMLCASTS) \
99           $(MODULES:%=$(top_srcdir)/xml/DOM/Core/%.xml) \
100           $(MODULES:%=$(srcdir)/../xml/Core/%.xml) \
101           $(EVENTS_MODULES:%=$(top_srcdir)/xml/DOM/Events/%.xml) \
102           $(EVENTS_MODULES:%=$(srcdir)/../xml/Events/%.xml) \
103           gdomeCore.ml.prefix gdomeCore.ml.suffix \
104           gdomeEvents.ml.prefix gdomeEvents.ml.suffix
105	cp gdomeCore.ml.prefix $@
106	echo "(********** Events Module: generated class definitions **********)" >> $@
107	for i in $(EVENTS_MODULES) ; do $(XSLTPROC) --param uriprefix "'$(top_srcdir)/xml/DOM/Events'" --param annotations "'$(srcdir)/../xml/Events/$$i.xml'" --param module "'$$i'" $(XML2OML) $(top_srcdir)/xml/DOM/Events/$$i.xml >> $@ ; done
108	cat gdomeEvents.ml.prefix >> $@
109	echo "(********** Core Module: generated class definitions **********)" >> $@
110	for i in $(MODULES) ; do $(XSLTPROC) --param uriprefix "'$(top_srcdir)/xml/DOM/Core'" --param annotations "'$(srcdir)/../xml/Core/$$i.xml'" --param module "'$$i'" $(XML2OML) $(top_srcdir)/xml/DOM/Core/$$i.xml >> $@ ; done
111	cat gdomeCore.ml.suffix >> $@
112	cat gdomeEvents.ml.suffix >> $@
113	echo " " >> $@
114	echo "(********** Events Module: generated dynamic down-casts **********)" >> $@
115	for i in $(EVENTS_MODULES) ; do $(XSLTPROC) --param uriprefix "'$(top_srcdir)/xml/DOM/Events'" --param annotations "'$(srcdir)/../xml/Events/$$i.xml'" --param module "'$$i'" $(XML2OMLCASTS) $(top_srcdir)/xml/DOM/Events/$$i.xml >> $@ ; done
116	echo " " >> $@
117	echo "(********** Core Module: generated dynamic down-casts **********)" >> $@
118	for i in $(MODULES) ; do $(XSLTPROC) --param uriprefix "'$(top_srcdir)/xml/DOM/Core'" --param annotations "'$(srcdir)/../xml/Core/$$i.xml'" --param module "'$$i'" $(XML2OMLCASTS) $(top_srcdir)/xml/DOM/Core/$$i.xml >> $@ ; done
119
120gdome.mli : $(XML2OMLI) $(XSLUTILS) $(XML2MLDOC) $(XML2OMLICASTS) \
121           $(MODULES:%=$(top_srcdir)/xml/DOM/Core/%.xml) \
122           $(MODULES:%=$(srcdir)/../xml/Core/%.xml) \
123           $(EVENTS_MODULES:%=$(top_srcdir)/xml/DOM/Events/%.xml) \
124           $(EVENTS_MODULES:%=$(srcdir)/../xml/Events/%.xml) \
125           gdomeCore.mli.prefix gdomeCore.mli.suffix \
126           gdomeEvents.mli.prefix gdomeEvents.mli.suffix
127	cp gdomeCore.mli.prefix $@
128	echo "(********** Events Module: generated class definitions **********)" >> $@
129	for i in $(EVENTS_MODULES) ; do $(XSLTPROC) --param uriprefix "'$(top_srcdir)/xml/DOM/Events'" --param annotations "'$(srcdir)/../xml/Events/$$i.xml'" --param module "'$$i'" $(XML2OMLI) $(top_srcdir)/xml/DOM/Events/$$i.xml >> $@ ; done
130	cat gdomeEvents.mli.prefix >> $@
131	echo "(********** Core Module: generated class definitions **********)" >> $@
132	for i in $(MODULES) ; do $(XSLTPROC) --param uriprefix "'$(top_srcdir)/xml/DOM/Core'" --param annotations "'$(srcdir)/../xml/Core/$$i.xml'" --param module "'$$i'" $(XML2OMLI) $(top_srcdir)/xml/DOM/Core/$$i.xml >> $@ ; done
133	cat gdomeCore.mli.suffix >> $@
134	cat gdomeEvents.mli.suffix >> $@
135	echo " " >> $@
136	echo "(********** Events Module: generated dynamic down-casts **********)" >> $@
137	for i in $(EVENTS_MODULES) ; do $(XSLTPROC) --param uriprefix "'$(top_srcdir)/xml/DOM/Events'" --param annotations "'$(srcdir)/../xml/Events/$$i.xml'" --param module "'$$i'" $(XML2OMLICASTS) $(top_srcdir)/xml/DOM/Events/$$i.xml >> $@ ; done
138	echo " " >> $@
139	echo "(********** Core Module: generated dynamic down-casts **********)" >> $@
140	for i in $(MODULES) ; do $(XSLTPROC) --param uriprefix "'$(top_srcdir)/xml/DOM/Core'" --param annotations "'$(srcdir)/../xml/Core/$$i.xml'" --param module "'$$i'" $(XML2OMLICASTS) $(top_srcdir)/xml/DOM/Core/$$i.xml >> $@ ; done
141
142endif
143
144if HAVE_OCAMLOPT_COND
145install-data-local: $(OCAML_INTERFACES) gdome.mli $(ARCHIVE).cma $(ARCHIVE).cmxa $(ARCHIVE).a
146else
147install-data-local: $(OCAML_INTERFACES) gdome.mli $(ARCHIVE).cma
148endif
149	$(mkinstalldirs) $(OCAMLINSTALLDIR)
150	for i in $^; do \
151		$(INSTALL_DATA) $$i $(OCAMLINSTALLDIR); \
152	done
153	for i in $(ALL_ML_SOURCES); do \
154		$(INSTALL_DATA) $(srcdir)/$$i $(OCAMLINSTALLDIR); \
155	done
156
157#### OCaml only stuff from now on
158
159DEPOBJS = $(ALL_ML_SOURCES)
160
161depend:
162	$(OCAMLDEP) $(DEPOBJS) > .depend
163
164%.cmi : $(srcdir)/%.mli
165	if test ! -e $(@:%.cmi=%.mli) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
166	$(OCAMLC) -c $(@:%.cmi=%.mli)
167
168%.cmo : $(srcdir)/%.ml
169	if test ! -e $(@:%.cmo=%.ml) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
170	$(OCAMLC) -c $(@:%.cmo=%.ml)
171
172%.cmx %.o : $(srcdir)/%.ml
173	if test ! -e $(@:%.cmx=%.ml) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
174	$(OCAMLOPT) -c $(@:%.cmx=%.ml)
175
176include .depend
177
178