goaljobs 0.3
[goaljobs.git] / Makefile.am
index 1aa4248..7ed61d1 100644 (file)
@@ -22,21 +22,29 @@ ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = \
        COPYING \
        goaljobs \
+       goaljobs_config.ml.in \
+       goaljobs.ml \
+       goaljobs.mli \
+       goaljobs_memory.ml \
+       goaljobs.pod \
+       goaljobs-reference.pod \
        goaljobs.spec \
        goaljobs.spec.in \
+       html/.gitignore \
        META.in \
-       NOTES \
+       pa_goal.ml \
        README \
-       $(sources) \
-       pa_goal.ml
+       TODO
 
 SUBDIRS = . examples tests
 
 sources = \
+       goaljobs_config.ml \
        goaljobs.ml \
-       goaljobs.mli
+       goaljobs.mli \
+       goaljobs_memory.ml
 
-bin_SCRIPTS = goaljobs
+bin_SCRIPTS = goaljobs goaljobs-memory
 
 # These targets are noinst because we use a custom install hook to
 # install them, and are _SCRIPTS because automake doesn't know how to
@@ -44,17 +52,22 @@ bin_SCRIPTS = goaljobs
 noinst_SCRIPTS = goaljobs.cma goaljobs.cmxa pa_goal.cmo
 
 # Library.
-goaljobs.cma: goaljobs.cmo
-       $(OCAMLFIND) ocamlc -a -o $@ $(OCAMLCFLAGS) $(OCAMLCPACKAGES) $<
+goaljobs.cma: goaljobs_config.cmo goaljobs.cmo
+       $(OCAMLFIND) ocamlc -a -o $@ $(OCAMLCFLAGS) $(OCAMLCPACKAGES) $^
 
-goaljobs.cmxa: goaljobs.cmx
-       $(OCAMLFIND) ocamlopt -a -o $@ $(OCAMLOPTFLAGS) $(OCAMLOPTPACKAGES) $<
+goaljobs.cmxa: goaljobs_config.cmx goaljobs.cmx
+       $(OCAMLFIND) ocamlopt -a -o $@ $(OCAMLOPTFLAGS) $(OCAMLOPTPACKAGES) $^
 
 # Preprocessor for goaljobs scripts.
 pa_goal.cmo: pa_goal.ml
        $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package camlp4.lib -linkpkg \
            -pp $(CAMLP4OF) -c $< -o $@
 
+# Standalone program for examining the goaljobs memory.
+goaljobs-memory: goaljobs_config.cmx goaljobs.cmx goaljobs_memory.cmx
+       $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) $(OCAMLOPTPACKAGES) \
+         $^ -linkpkg -o $@
+
 # Install.
 install-data-hook:
        mkdir -p $(DESTDIR)$(OCAMLLIB)
@@ -81,6 +94,56 @@ depend: .depend
 rpm: dist
        rpmbuild -ta $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz
 
+if HAVE_POD2MAN
+
+man_MANS = goaljobs.1 goaljobs-reference.1
+
+goaljobs.1: goaljobs.pod
+       $(POD2MAN) -c "Goaljobs" --release $(PACKAGE)-$(VERSION) $< > $@-t
+       mv $@-t $@
+
+goaljobs-reference.1: goaljobs-reference.pod
+       $(POD2MAN) -c "Goaljobs" --release $(PACKAGE)-$(VERSION) $< > $@-t
+       mv $@-t $@
+
+goaljobs.1.txt: goaljobs.pod
+       pod2text $< > $@-t
+       mv $@-t $@
+
+goaljobs-reference.1.txt: goaljobs-reference.pod
+       pod2text $< > $@-t
+       mv $@-t $@
+
+endif
+
+if HAVE_OCAMLDOC
+
+# HTML library documentation.
+# XXX The list below probably changes with every ocamldoc version.
+# How can we use a wildcard?
+doc_DATA = \
+       html/Goaljobs.html \
+       html/index_attributes.html \
+       html/index_classes.html \
+       html/index_class_types.html \
+       html/index_exceptions.html \
+       html/index.html \
+       html/index_methods.html \
+       html/index_modules.html \
+       html/index_module_types.html \
+       html/index_types.html \
+       html/index_values.html \
+       html/style.css \
+       html/type_Goaljobs.html
+
+$(doc_DATA): stamp-ocamldoc
+stamp-ocamldoc: goaljobs.mli goaljobs.ml
+       rm -f $@
+       $(OCAMLFIND) ocamldoc -html -d html $(OCAMLCPACKAGES) $^
+       touch $@
+
+endif
+
 # License check.
 licensecheck:
        licensecheck $$(git ls-files)