]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/gdome_xslt/ocaml/gdome_xslt/Makefile.am
ocaml 3.09 transition
[helm.git] / helm / DEVEL / gdome_xslt / ocaml / gdome_xslt / Makefile.am
index 42b6065e18cbc5428d43529d9f7eb978b438e620..4da9bef886c84e9faa14755cad08202ea1149406 100644 (file)
-PKGNAME = gdome2-xslt
+
 ARCHIVE = mlgdome2-xslt
-REQUIRES = gdome2
+PKGNAME = gdome2-xslt
+OCAMLINSTALLDIR = $(DESTDIR)$(OCAMLSTDLIBDIR)/$(PKGNAME)
+STUBSDIR = $(DESTDIR)$(OCAMLSTUBDIR)
+OCAMLFLAGS = -I +gdome2
+OCAMLC = @OCAMLC@ ${OCAMLFLAGS}
+OCAMLOPT = @OCAMLOPT@ ${OCAMLFLAGS}
+OCAMLDEP = @OCAMLDEP@
+OCAML_CFLAGS  = @OCAML_CFLAGS@
 OCAMLFIND = @OCAMLFIND@
-OCAMLC = $(OCAMLFIND) @OCAMLC@ -package "$(REQUIRES)"
-OCAMLOPT = $(OCAMLFIND) @OCAMLOPT@ -package "$(REQUIRES)"
-OCAMLDEP = $(OCAMLFIND) @OCAMLDEP@ -package "$(REQUIRES)"
-OCAMLMKLIB = @OCAMLMKLIB@
+OCAMLMKLIB = ocamlmklib
 DLL = dll$(ARCHIVE).so
-OCAMLSTDLIBDIR = $(DESTDIR)/@OCAMLSTDLIBDIR@
-OCAMLSTUBDIR = $(DESTDIR)/@OCAMLSTUBDIR@
-OCAMLINSTALLDIR = $(OCAMLSTDLIBDIR)/$(PKGNAME)
-MODULES = i_gdome_xslt gdome_xslt
-INIT = gdome_xslt_init
-CMI_S = $(MODULES:%=%.cmi)
-CMO_S = $(MODULES:%=%.cmo)
-CMX_S = $(MODULES:%=%.cmx)
-O_S = ml_gdome_xslt.o $(top_builddir)/C/gdome_xslt/gdome_xslt.o
-SHARED_LIBS = -lxslt -lgdome -lglib -lxml2 -lmlgdome
-BYTE_STUFF = $(ARCHIVE).cma $(INIT).cmo
-NATIVE_STUFF = $(ARCHIVE).cmxa $(ARCHIVE).a $(INIT).cmx
+
+BUILT_SOURCES = x_gdome_xslt.c
+
+CLEANFILES = \
+  $(ARCHIVE).cma $(ARCHIVE).cmxa $(ARCHIVE).a lib$(ARCHIVE).a $(DLL)   \
+  *.cmo *.cmx *.cmi $(BUILT_SOURCES)
 
 EXTRA_DIST =   \
-       META.in gdome_xslt.ml gdome_xslt.mli    \
-       gdome_xslt_init.ml gdome_xslt_init.mli i_gdome_xslt.ml  \
-       ml_gdome_xslt.c ml_gdome_xslt.h ocaml-io.h .depend
+       META.in .depend \
+       gdome_xslt.ml gdome_xslt.mli gdome_xslt_init.ml gdome_xslt_init.mli     \
+       i_gdome_xslt.ml \
+       ocaml-io.h
 
 if HAVE_OCAMLOPT_COND
-noinst_DATA = $(BYTE_STUFF) $(NATIVE_STUFF)
+noinst_DATA =  \
+       $(ARCHIVE).cma $(DLL) $(ARCHIVE).cmxa $(ARCHIVE).a lib$(ARCHIVE).a      \
+       gdome_xslt_init.cmo gdome_xslt_init.cmx
 else
-noinst_DATA = $(BYTE_STUFF)
+noinst_DATA =  \
+       $(ARCHIVE).cma $(DLL) gdome_xslt_init.cmo lib$(ARCHIVE).a
 endif
 
-noinst_LTLIBRARIES = libmlgdome2_xslt.la
-libmlgdome2_xslt_la_SOURCES = ml_gdome_xslt.c
+noinst_LTLIBRARIES = libmlgdome2-xslt.la
+C_SRC = ml_gdome_xslt.c x_gdome_xslt.c 
+libmlgdome2_xslt_la_SOURCES = $(C_SRC)
+
+O_S = $(C_SRC:%.c=.libs/%.o)
+LO_S = $(O_S:%.o=%.lo)
+CMA_DEPS = i_gdome_xslt.cmo gdome_xslt.cmo
+CMXA_DEPS = $(CMA_DEPS:%.cmo=%.cmx)
+SHARED_LIBS = $(LIBXSLT_LIBS) $(GDOME_LIBS)
+
+x_gdome_xslt.c: $(top_srcdir)/C/gdome_xslt/gdome_xslt.c
+       cp $< $@
+
+$(ARCHIVE).cma: $(CMA_DEPS)
+       $(OCAMLMKLIB) -o $(ARCHIVE) $^ $(SHARED_LIBS)
+$(ARCHIVE).cmxa: $(CMXA_DEPS)
+       $(OCAMLMKLIB) -o $(ARCHIVE) $^ $(SHARED_LIBS)
+lib$(ARCHIVE).a $(DLL): $(O_S)
+       $(OCAMLMKLIB) -o $(ARCHIVE) $^ $(SHARED_LIBS)
+
+INCLUDES = $(GDOME_CFLAGS) $(MLGDOME_CFLAGS) -I/usr/include/caml -I$(top_srcdir)/C/gdome_xslt
 
+BYTECODE_STUFF =       \
+       $(ARCHIVE).cma $(DLL) i_gdome_xslt.cmi i_gdome_xslt.ml gdome_xslt.cmi   \
+       gdome_xslt.mli gdome_xslt_init.cmi gdome_xslt_init.mli gdome_xslt_init.cmo      \
+       lib$(ARCHIVE).a
+NATIVECODE_STUFF =     \
+       $(ARCHIVE).cmxa $(ARCHIVE).a gdome_xslt_init.cmx gdome_xslt_init.o
 if HAVE_OCAMLOPT_COND
-install-data-local:    \
-       gdome_xslt.cmi gdome_xslt.mli $(ARCHIVE).cma    \
-       $(INIT).cmi $(INIT).cmo $(INIT).mli $(DLL) META \
-       $(ARCHIVE).a $(ARCHIVE).cmxa $(INIT).cmx $(INIT).o
+install-data-local: $(BYTECODE_STUFF) $(NATIVECODE_STUFF)
 else
-install-data-local:    \
-       gdome_xslt.cmi gdome_xslt.mli $(ARCHIVE).cma    \
-       $(INIT).cmi $(INIT).cmo $(INIT).mli $(DLL) META
+install-data-local: $(BYTECODE_STUFF)
 endif
-       $(mkinstalldirs) $(OCAMLSTDLIBDIR) $(OCAMLSTUBDIR)
+       $(mkinstalldirs) $(OCAMLINSTALLDIR) $(STUBSDIR)
        chmod -x $(DLL)
-       $(OCAMLFIND) install -destdir $(OCAMLSTDLIBDIR) $(PKGNAME) $^
-       ln -fs $(DLL) $(OCAMLSTUBDIR)/lib$(ARCHIVE).so
-
-CLEANFILES =   \
-       $(ARCHIVE).{cma,cmxa,a} $(CMI_S) $(CMO_S) $(CMX_S) ml_gdome_xslt.o      \
-       $(DLL) $(INIT).cm[iox] libmlgdome2-xslt.a
-
-INCLUDES =     \
-       $(GDOME_CFLAGS) $(MLGDOME_CFLAGS)       \
-       -I/usr/include/caml     -I$(top_srcdir)/C/gdome_xslt
-
-$(ARCHIVE).cma $(DLL): $(CMO_S)
-       $(OCAMLMKLIB) -o $(ARCHIVE) -L@OCAMLSTUBDIR@ $(CMO_S) $(O_S) $(SHARED_LIBS)
-$(ARCHIVE).cmxa $(ARCHIVE).a: $(CMX_S)
-       $(OCAMLMKLIB) -o $(ARCHIVE) -L@OCAMLSTUBDIR@ $(CMX_S) $(O_S) $(SHARED_LIBS)
-
-%.cmi: %.mli
-       $(OCAMLC) -c $<
-%.cmo: %.ml %.cmi
-       $(OCAMLC) -c $<
-%.cmx: %.ml %.cmi
-       $(OCAMLOPT) -c $<
-
-i_gdome_xslt.cmo: i_gdome_xslt.ml
-       $(OCAMLC) -c $<
-i_gdome_xslt.cmx: i_gdome_xslt.ml
-       $(OCAMLOPT) -c $<
-
-depend: *.ml *.mli
-       $(OCAMLDEP) *.ml *.mli >.depend
+       for i in $^; do \
+               if [ "$$i" != "$(DLL)" ]; then  \
+                       $(INSTALL_DATA) $$i $(OCAMLINSTALLDIR)/$$i; \
+               fi      \
+       done
+       if [ "x$(OCAMLFIND)" != "x" ]; then \
+               mv $(OCAMLINSTALLDIR) $(OCAMLINSTALLDIR).saved; \
+               $(OCAMLFIND) install -destdir $(DESTDIR)$(OCAMLSTDLIBDIR)/ $(PKGNAME) META $(DLL); \
+               $(INSTALL_DATA) $(OCAMLINSTALLDIR).saved/* $(OCAMLINSTALLDIR)/; \
+               rm -rf $(OCAMLINSTALLDIR).saved/;       \
+       else    \
+               $(INSTALL_DATA) $(DLL) $(STUBSDIR);     \
+       fi
+
+uninstall-local:
+       if [ "x$(OCAMLFIND)" != "x" ]; then     \
+         $(OCAMLFIND) remove -destdir $(DESTDIR)$(OCAMLSTDLIBDIR)/ $(PKGNAME); \
+       else    \
+               rm -rf $(OCAMLINSTALLDIR);      \
+               rm $(STUBSDIR)/$(DLL);  \
+       fi
+       rm $(STUBSDIR)/lib$(ARCHIVE).so
+
+#### OCaml only stuff from now on
+
+DEPOBJS = *.ml *.mli
+
+depend:
+       $(OCAMLDEP) $(DEPOBJS) > .depend
+
+%.cmi : $(srcdir)/%.mli
+       if test ! -e $(@:%.cmi=%.mli) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
+       $(OCAMLC) -c $(@:%.cmi=%.mli)
+
+%.cmo : $(srcdir)/%.ml
+       if test ! -e $(@:%.cmo=%.ml) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
+       $(OCAMLC) -c $(@:%.cmo=%.ml)
+
+%.cmx %.o : $(srcdir)/%.ml
+       if test ! -e $(@:%.cmx=%.ml) -a "x$(srcdir)" != "x." ; then $(LN_S) $< . ; fi
+       $(OCAMLOPT) -c $(@:%.cmx=%.ml)
+
 include .depend