transform = s,x,x,;
+AMPLOT_MAN_PAGES = amplot.8
+
+COMMON_MAN_PAGES = amanda.8 \
+ amanda.conf.5 \
+ amanda-client.conf.5 \
+ amanda-scripts.7 \
+ amanda-archive-format.5 \
+ amanda-auth.7 \
+ amarchiver.8 \
+ script-email.8
+
+CLIENT_MAN_PAGES = \
+ amanda-applications.7 \
+ amgtar.8 \
+ amsamba.8 \
+ amstar.8 \
+ amzfs-snapshot.8 \
+ amzfs-sendrecv.8
+
+SERVER_MAN_PAGES = \
+ amanda-devices.7 \
+ amanda-changers.7 \
+ amaddclient.8 \
+ amadmin.8 \
+ amaespipe.8 \
+ amcheck.8 \
+ amcheckdb.8 \
+ amcheckdump.8 \
+ amcleanup.8 \
+ amcrypt-ossl-asym.8 \
+ amcrypt-ossl.8 \
+ amcrypt.8 \
+ amcryptsimple.8 \
+ amdevcheck.8 \
+ amdump.8 \
+ amflush.8 \
+ amgetconf.8 \
+ amgpgcrypt.8 \
+ amlabel.8 \
+ amoverview.8 \
+ amreport.8 \
+ amrmtape.8 \
+ amserverconfig.8 \
+ amservice.8 \
+ amstatus.8 \
+ amtape.8 \
+ amtapetype.8 \
+ amtoc.8 \
+ amvault.8 \
+ disklist.5 \
+ tapelist.5
+
+RECOVER_MAN_PAGES = amrecover.8
+
+RESTORE_MAN_PAGES = amrestore.8 \
+ amfetchdump.8
+
+ALL_MAN_PAGES = $(AMPLOT_MAN_PAGES) \
+ $(CLIENT_MAN_PAGES) \
+ $(COMMON_MAN_PAGES) \
+ $(SERVER_MAN_PAGES) \
+ $(RECOVER_MAN_PAGES) \
+ $(RESTORE_MAN_PAGES)
+
+WANTED_MAN_PAGES = $(COMMON_MAN_PAGES)
if WANT_AMPLOT
-AMPLOT_MAN8_PAGES = amplot.8
+ WANTED_MAN_PAGES += $(AMPLOT_MAN_PAGES)
+endif
+if WANT_CLIENT
+ WANTED_MAN_PAGES += $(CLIENT_MAN_PAGES)
+endif
+if WANT_SERVER
+ WANTED_MAN_PAGES += $(SERVER_MAN_PAGES)
endif
-
-COMMON_MAN8_PAGES = amanda.8
-
-COMMON_MAN5_PAGES = amanda.conf.5 \
- amanda-client.conf.5
-
-#if WANT_SERVER
-SERVER_MAN8_PAGES = amadmin.8 \
- amcheck.8 \
- amcheckdb.8 \
- amcleanup.8 \
- amdd.8 \
- amdump.8 \
- amflush.8 \
- amgetconf.8 \
- amlabel.8 \
- ammt.8 \
- amoverview.8 \
- amreport.8 \
- amrmtape.8 \
- amstatus.8 \
- amtape.8 \
- amtapetype.8 \
- amtoc.8 \
- amverify.8 \
- amverifyrun.8 \
- amfetchdump.8 \
- amcrypt.8 \
- amaespipe.8 \
- amcrypt-ossl.8 \
- amcrypt-ossl-asym.8
-#endif
-
if WANT_RECOVER
-RECOVER_MAN8_PAGES = amrecover.8
+ WANTED_MAN_PAGES += $(RECOVER_MAN_PAGES)
endif
-
if WANT_RESTORE
-RESTORE_MAN8_PAGES = amrestore.8
+ WANTED_MAN_PAGES += $(RESTORE_MAN_PAGES)
endif
-man8_pages = $(COMMON_MAN8_PAGES) \
- $(AMPLOT_MAN8_PAGES) \
- $(SERVER_MAN8_PAGES) \
- $(RECOVER_MAN8_PAGES) \
- $(RESTORE_MAN8_PAGES)
-
-man5_pages = $(COMMON_MAN5_PAGES)
-
-ALL_MAN_PAGES = $(AMPLOT_MAN8_PAGES) \
- $(COMMON_MAN5_PAGES) \
- $(COMMON_MAN8_PAGES) \
- $(SERVER_MAN8_PAGES) \
- $(RECOVER_MAN8_PAGES) \
- $(RESTORE_MAN8_PAGES)
-
-# These lines are needed to force automake to set the $man<n>dir variables.
-man5_MANS =
-man8_MANS =
-
SRCMANPAGEDIR = $(srcdir)/xml-source
MAN_XML = $(ALL_MAN_PAGES:%=xml-source/%.xml)
EXTRA_XML = xslt/expand-sambadoc.xsl \
- xslt/man.xsl \
+ xslt/man.xsl.in \
+ xslt/html.xsl.in \
xslt/settings.xsl \
- entities/global.entities \
+ entities/global.entities.in \
entities/xinclude.dtd
-EXTRA_DIST = $(ALL_MAN_PAGES) $(MAN_XML) $(EXTRA_XML)
+EXTRA_DIST = $(ALL_MAN_PAGES) $(MAN_XML) $(EXTRA_HTML) $(EXTRA_XML)
GEN_XML = $(ALL_MAN_PAGES:%=xml-source/%.proc.xml)
MOSTLYCLEANFILES = $(GEN_XML)
MAINTAINERCLEANFILES = $(ALL_MAN_PAGES)
+# some of the XSL needs to know what docbook-xsl version we've selected
+%.xsl: %.xsl.in $(top_builddir)/config.status
+ $(top_builddir)/config.status --file=$@:$<
+ rm -f config.log
+
+entities/global.entities: entities/global.entities.in $(top_builddir)/config.status
+ $(top_builddir)/config.status --file=$@:$<
+ rm -f config.log
+
if ENABLE_MANPAGE_BUILD
-xml-source/%.proc.xml: $(SRCMANPAGEDIR)/%.xml $(srcdir)/xslt/expand-sambadoc.xsl
+# phase one of the documentation build expands some macros.
+xml-source/%.proc.xml: $(SRCMANPAGEDIR)/%.xml $(srcdir)/xslt/expand-sambadoc.xsl entities/global.entities
$(XSLTPROC) $(XSLTPROC_FLAGS) --path $(srcdir)/xslt/ --xinclude --stringparam latex.imagebasedir "$*/" --stringparam noreference 1 --output $@ $(srcdir)/xslt/expand-sambadoc.xsl $<
-%: xml-source/%.proc.xml $(srcdir)/xslt/man.xsl
- $(XSLTPROC) $(XSLTPROC_FLAGS) --path $(srcdir)/xslt/ --output $@ http://docbook.sourceforge.net/release/xsl/1.72.0/manpages/docbook.xsl $<
+# phase two generates a manpage from the resulting "expanded" docbook XML
+%: xml-source/%.proc.xml $(srcdir)/xslt/man.xsl entities/global.entities
+ $(XSLTPROC) $(XSLTPROC_FLAGS) --path $(srcdir)/xslt/ --output $@ xslt/man.xsl $<
+
+%.html: xml-source/%.proc.xml $(srcdir)/xslt/html.xsl entities/global.entities
+ $(XSLTPROC) $(XSLTPROC_FLAGS) --path $(srcdir)/xslt/ --output $@ xslt/html.xsl $<
else !ENABLE_MANPAGE_BUILD
%: $(SRCMANPAGEDIR)/%.xml
@echo WARNING: Not building needed $@ because building manpages is disabled.
+ @echo 'DUMMY' > $@
+
+# (no rule to build HTML without ENABLE_MANPAGE_BUILD)
+
endif
-all: $(ALL_MAN_PAGES)
-
-# this is conditioned on ENABLE_MANPAGE_BUILD; it checks for the
-# existence of the file to be installed when building manpages is
-# not enabled.
-install-data-hook: $(ALL_MAN_PAGES)
-if ENABLE_MANPAGE_BUILD
- @list="$(man8_pages)"; \
- for p in $$list; do \
- pa=$(DESTDIR)$(man8dir)/`echo $$p|sed '$(transform)'`; \
- echo $(INSTALL) -c -m 644 $$p $(DESTDIR)$(man8dir); \
- $(INSTALL) -c -m 644 $$p $(DESTDIR)$(man8dir); \
- echo chown \"$(BINARY_OWNER)\" $$pa; \
- chown "$(BINARY_OWNER)" $$pa; \
- echo chgrp \"$(SETUID_GROUP)\" $$pa; \
- chgrp "$(SETUID_GROUP)" $$pa; \
- done
- @list="$(man5_pages)"; \
- for p in $$list; do \
- pa=$(DESTDIR)$(man5dir)/`echo $$p|sed '$(transform)'`; \
- echo $(INSTALL) -c -m 644 $$p $(DESTDIR)$(man5dir); \
- $(INSTALL) -c -m 644 $$p $(DESTDIR)$(man5dir); \
- echo chown \"$(BINARY_OWNER)\" $$pa; \
- chown "$(BINARY_OWNER)" $$pa; \
- echo chgrp \"$(SETUID_GROUP)\" $$pa; \
- chgrp "$(SETUID_GROUP)" $$pa; \
- done
-else !ENABLE_MANPAGE_BUILD
- @list="$(man8_pages)"; \
- for p in $$list; do \
- if test -e $$p; then \
- pa=$(DESTDIR)$(man8dir)/`echo $$p|sed '$(transform)'`; \
- echo $(INSTALL) -c -m 644 $$p $(DESTDIR)$(man8dir); \
- $(INSTALL) -c -m 644 $$p $(DESTDIR)$(man8dir); \
- echo chown \"$(BINARY_OWNER)\" $$pa; \
- chown "$(BINARY_OWNER)" $$pa; \
- echo chgrp \"$(SETUID_GROUP)\" $$pa; \
- chgrp "$(SETUID_GROUP)" $$pa; \
- fi \
- done
- @list="$(man5_pages)"; \
- for p in $$list; do \
- if test -e $$p; then \
- pa=$(DESTDIR)$(man5dir)/`echo $$p|sed '$(transform)'`; \
- echo $(INSTALL) -c -m 644 $$p $(DESTDIR)$(man5dir); \
- $(INSTALL) -c -m 644 $$p $(DESTDIR)$(man5dir); \
- echo chown \"$(BINARY_OWNER)\" $$pa; \
- chown "$(BINARY_OWNER)" $$pa; \
- echo chgrp \"$(SETUID_GROUP)\" $$pa; \
- chgrp "$(SETUID_GROUP)" $$pa; \
- fi \
+##
+## HTML Generation
+##
+
+EXTRA_DIST += \
+ index.php \
+ amanda.css
+
+ALL_MAN_HTMLS = $(ALL_MAN_PAGES:%=%.html)
+
+# toplevel rule to build HTML manpages and tar them up
+html: amanda.css index.php $(ALL_MAN_HTMLS)
+ tar -zcf html.tar.gz $(ALL_MAN_HTMLS) amanda.css index.php
+
+# double-check that we don't ship dummy manpages
+dist-hook:
+ for f in $(WANTED_MAN_PAGES); do \
+ if sed -e 1q $(distdir)/$$f | $(GREP) '^DUMMY$$' >/dev/null 2>/dev/null; then \
+ echo "$(distdir)/$$f is a dummy manpage; cannot create distribution"; \
+ exit 1; \
+ fi; \
done
-endif
+
+man_MANS = $(WANTED_MAN_PAGES)