1
2SUBDIRS = xsl xml include types basic core events . ocaml test
3
4ARCHIVE = mlgdome
5PKGNAME = gdome2
6OCAMLBUILDDIR = $(top_builddir)/src/gdome_caml
7OCAMLINSTALLDIR = $(DESTDIR)$(OCAML_LIB_PREFIX)/$(PKGNAME)
8STUBSDIR = $(DESTDIR)$(OCAML_LIB_PREFIX)/stublibs
9OCAMLFLAGS = \
10  -I $(OCAMLBUILDDIR)/types \
11  -I $(OCAMLBUILDDIR)/core \
12  -I $(OCAMLBUILDDIR)/basic
13OCAMLC = @OCAMLC@ ${OCAMLFLAGS}
14OCAMLOPT = @OCAMLOPT@ ${OCAMLFLAGS}
15OCAMLDEP = @OCAMLDEP@
16OCAML_CFLAGS  = @OCAML_CFLAGS@
17OCAMLFIND = @OCAMLFIND@
18OCAMLMKLIB = ocamlmklib
19DLL = dll$(ARCHIVE).so
20
21CLEANFILES = \
22  $(ARCHIVE).cma $(ARCHIVE).cmxa $(ARCHIVE).a lib$(ARCHIVE).a \
23  iDOMImplementation.cmi iDOMImplementation.cmo \
24  iDOMImplementation.cmx iDOMImplementation.o \
25  $(DLL)
26
27EXTRA_DIST =	\
28	META.in iDOMImplementation.ml iDOMImplementation.mli	\
29	.depend .linkorder \
30	examples/Makefile \
31	examples/test.ml \
32	examples/hi.xml \
33	doc/index.html
34
35if HAVE_OCAMLOPT_COND
36noinst_DATA = $(ARCHIVE).cma $(ARCHIVE).cmxa $(ARCHIVE).a $(DLL)
37else
38noinst_DATA = $(ARCHIVE).cma $(DLL)
39endif
40
41noinst_LTLIBRARIES = libmlgdome.la
42
43libmlgdome_la_SOURCES = ml_DOMImplementation.c
44
45LIB_DEPS =	\
46	$(patsubst %, basic/%, $(shell cat $(srcdir)/basic/.linkorder))	\
47	$(patsubst %, core/%, $(shell cat $(srcdir)/core/.linkorder))	\
48	$(patsubst %, events/%, $(shell cat $(srcdir)/events/.linkorder))	\
49	$(shell cat $(srcdir)/.linkorder)
50O_S =	\
51	  $(patsubst basic/%.c, basic/.libs/%.o, $(wildcard basic/ml_*.c))	\
52	  $(patsubst core/%.c, core/.libs/%.o, $(wildcard core/ml_*.c))	\
53	  $(patsubst events/%.c, events/.libs/%.o, $(wildcard events/ml_*.c))	\
54	  $(patsubst %.c, .libs/%.o, $(wildcard ml_*.c))
55LO_S = $(patsubst %.o, %.lo, $(O_S))
56CMA_DEPS = $(LIB_DEPS:%=%.cmo)
57CMXA_DEPS = $(LIB_DEPS:%=%.cmx)
58
59$(ARCHIVE).cma: $(CMA_DEPS) iDOMImplementation.cmo
60	$(OCAMLMKLIB) -o $(ARCHIVE) $^ $(GDOME_LIBS)
61$(ARCHIVE).cmxa: $(CMXA_DEPS) iDOMImplementation.cmx
62	$(OCAMLMKLIB) -o $(ARCHIVE) $^ $(GDOME_LIBS)
63lib$(ARCHIVE).a $(DLL): $(O_S)
64	$(OCAMLMKLIB) -o $(ARCHIVE) $^ $(GDOME_LIBS)
65
66INCLUDES = $(OCAML_CFLAGS) $(GDOME_CFLAGS) -I$(srcdir)/include
67
68NULL =
69BYTE_INST = iDOMImplementation.cmi iDOMImplementation.ml iDOMImplementation.mli $(ARCHIVE).cma lib$(ARCHIVE).a $(DLL)
70OPT_INST = $(BYTE_INST) $(ARCHIVE).cmxa $(ARCHIVE).a
71
72if HAVE_OCAMLOPT_COND
73install-data-local: $(OPT_INST)
74else
75install-data-local: $(BYTE_INST)
76endif
77	$(mkinstalldirs) $(OCAMLINSTALLDIR) $(STUBSDIR)
78	for i in $^; do \
79		if [ "$$i" != "$(DLL)" ]; then	\
80			$(INSTALL_DATA) $$i $(OCAMLINSTALLDIR)/$$i; \
81		fi	\
82	done
83	if [ "x$(OCAMLFIND)" != "x" ]; then \
84		mv $(OCAMLINSTALLDIR) $(OCAMLINSTALLDIR).saved &&	\
85		$(mkinstalldirs) $(DESTDIR)$(OCAML_LIB_PREFIX)/ && \
86		$(OCAMLFIND) install -destdir $(DESTDIR)$(OCAML_LIB_PREFIX)/ $(PKGNAME) META $(DLL) && \
87		$(INSTALL_DATA) $(OCAMLINSTALLDIR).saved/* $(OCAMLINSTALLDIR)/ &&	\
88		rm -rf $(OCAMLINSTALLDIR).saved/;	\
89	else	\
90		$(INSTALL_DATA) $(DLL) $(STUBSDIR);	\
91	fi
92
93uninstall-local:
94	if [ "x$(OCAMLFIND)" != "x" ]; then	\
95	  $(OCAMLFIND) remove -destdir $(DESTDIR)$(OCAML_LIB_PREFIX)/ $(PKGNAME);	\
96	else	\
97		rm -rf $(OCAMLINSTALLDIR);	\
98		rm $(STUBSDIR)/$(DLL);	\
99	fi
100	rm $(STUBSDIR)/lib$(ARCHIVE).so
101
102#### OCaml only stuff from now on
103
104DEPOBJS = iDOMImplementation.ml iDOMImplementation.mli
105LINKORDER = iDOMImplementation
106
107depend:
108	$(OCAMLDEP) $(DEPOBJS) > .depend
109	echo "$(LINKORDER)" > .linkorder
110
111%.cmi : $(srcdir)/%.mli
112	if test ! -e $(@:%.cmi=%.mli) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
113	$(OCAMLC) -c $(@:%.cmi=%.mli)
114
115%.cmo : $(srcdir)/%.ml
116	if test ! -e $(@:%.cmo=%.ml) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
117	$(OCAMLC) -c $(@:%.cmo=%.ml)
118
119%.cmx %.o : $(srcdir)/%.ml
120	if test ! -e $(@:%.cmx=%.ml) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
121	$(OCAMLOPT) -c $(@:%.cmx=%.ml)
122
123include .depend
124
125