configure: Fix perldoc detection.
[guestfs-browser.git] / Makefile.am
index 569d350..21cab22 100644 (file)
 
 ACLOCAL_AMFLAGS = -I m4
 
-EXTRA_DIST = HACKING Throbber.png Throbber.gif
+EXTRA_DIST = \
+       $(SOURCES) \
+       HACKING \
+       Throbber.png Throbber.gif \
+       .gitignore guestfs-browser.spec \
+       guestfs-browser.pod \
+       guestfs-browser.1 \
+       html/pod.css
 
-CLEANFILES = *.cmi *.cmo *.cmx *.o guestfs-browser
+CLEANFILES = *.cmi *.cmo *.cmx *.cmxa *.o guestfs-browser *~
 
+# These are listed here in alphabetical order.
 SOURCES = \
        cmdline.mli \
        cmdline.ml \
+       config.mli \
        config.ml \
+       deviceSet.mli \
+       deviceSet.ml \
        filetree.mli \
        filetree.ml \
+       filetree_markup.mli \
+       filetree_markup.ml \
+       filetree_ops.mli \
+       filetree_ops.ml \
+       filetree_type.mli \
+       filetree_type.ml \
        main.ml \
        slave.mli \
        slave.ml \
+       slave_types.mli \
+       slave_types.ml \
+       slave_utils.mli \
+       slave_utils.ml \
        throbber.ml \
        utils.mli \
        utils.ml \
        window.mli \
        window.ml
 
+# Note this list must be in dependency order.
 OBJECTS = \
-       throbber.cmx \
        config.cmx \
+       throbber.cmx \
        utils.cmx \
+       cmdline.cmx \
+       deviceSet.cmx \
+       slave_types.cmx \
+       slave_utils.cmx \
        slave.cmx \
+       filetree_type.cmx \
+       filetree_markup.cmx \
+       filetree_ops.cmx \
        filetree.cmx \
-       cmdline.cmx \
        window.cmx \
        main.cmx
 
 bin_SCRIPTS = guestfs-browser
 
+OCAMLPACKAGES = \
+       -package libvirt,guestfs,hivex,lablgtk2,extlib,xml-light,camomile,threads,bitstring,bitstring.syntax -syntax bitstring
 OCAMLCFLAGS = \
        -g \
-       -warn-error A \
+       -warn-error CDEFLMPSUVYZX \
        -thread \
-       -package libvirt,guestfs,lablgtk2,extlib,xml-light,threads
-
+       $(OCAMLPACKAGES) \
+       -predicates threads
 OCAMLOPTFLAGS = $(OCAMLCFLAGS)
+OCAMLDOCFLAGS = \
+       $(OCAMLPACKAGES) \
+       -predicates threads \
+       -I +threads \
+       -sort -html
 
 guestfs-browser: $(OBJECTS)
        $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) \
@@ -79,11 +114,58 @@ throbber.ml: Throbber.png Throbber.gif
 .ml.cmx:
        $(OCAMLFIND) ocamlopt $(OCAMLCFLAGS) -c $< -o $@
 
+# Man page.
+man_MANS = guestfs-browser.1
+
+if HAVE_PERLDOC
+
+guestfs-browser.1: guestfs-browser.pod
+       pod2man \
+         --section 1 \
+         -c "Virtualization Support" \
+         --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
+         $< > $@
+
+noinst_DATA = \
+       html/guestfs-browser.1.html
+
+html/guestfs-browser.1.html: guestfs-browser.pod
+       mkdir -p html
+       pod2html \
+         --css 'pod.css' \
+         --htmldir html \
+         --outfile html/guestfs-browser.1.html \
+         guestfs-browser.pod
+
+endif
+
+# Maintainer website update.
+HTMLFILES = \
+       html/guestfs-browser.1.html
+
+WEBSITEDIR = $(HOME)/d/redhat/websites/libguestfs
+
+website: $(HTMLFILES)
+       cp $(HTMLFILES) $(WEBSITEDIR)
+
+CLEANFILES += $(HTMLFILES) pod2*.tmp
+
+# Convert internal documentation to HTML.
+docs:
+       rm -rf doc
+       mkdir -p doc
+       $(OCAMLFIND) ocamldoc -d doc $(OCAMLDOCFLAGS) $(SOURCES)
+
+# Dependencies.
 depend: .depend
 
 .depend: $(wildcard *.mli) $(wildcard *.ml)
        rm -f $@ $@-t
-       $(OCAMLFIND) ocamldep $^ > $@-t
+       $(OCAMLFIND) ocamldep $(OCAMLPACKAGES) $^ | \
+         $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \
+         sort > $@-t
        mv $@-t $@
 
 include .depend
+
+.PHONY: depend docs