summaryrefslogtreecommitdiff
path: root/buildlib
diff options
context:
space:
mode:
Diffstat (limited to 'buildlib')
-rw-r--r--buildlib/Makefile.am1
-rw-r--r--buildlib/doc.mk14
-rw-r--r--buildlib/docbook.mk167
-rw-r--r--buildlib/po4a.mk23
4 files changed, 205 insertions, 0 deletions
diff --git a/buildlib/Makefile.am b/buildlib/Makefile.am
new file mode 100644
index 00000000..ffc97506
--- /dev/null
+++ b/buildlib/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = doc.mk docbook.mk po4a.mk
diff --git a/buildlib/doc.mk b/buildlib/doc.mk
new file mode 100644
index 00000000..ac8e8ab7
--- /dev/null
+++ b/buildlib/doc.mk
@@ -0,0 +1,14 @@
+# Standard makefile rules for documentation
+#
+
+HTML2TEXT = $(top_srcdir)/doc/html-to-text
+
+mandir = $(if $(findstring en,$(LC)),@mandir@,@mandir@/$(LC))
+htmldir = @htmldir@/$(LC)
+imagesdir = $(htmldir)/images
+
+man_MANS =
+html_DATA =
+images_DATA =
+pkgdata_DATA = $(README)
+pdf_DATA = $(aptitude.pdf)
diff --git a/buildlib/docbook.mk b/buildlib/docbook.mk
new file mode 100644
index 00000000..76d0378a
--- /dev/null
+++ b/buildlib/docbook.mk
@@ -0,0 +1,167 @@
+# Makefile rules for targets from docbook source
+#
+
+dbiftargets = $(if $(findstring $(1),$(DOCBOOK_TARGETS)),$(2))
+
+DOCBOOK_IMAGES ?= $(patsubst %.svg,%.png,$(IMAGES))
+
+DOCBOOK_XML ?= aptitude.xml manpage.xml
+DOCBOOK_HTML_XSL ?= aptitude-html.xsl
+
+DOCBOOK_HTML ?= $(wildcard output-html/*.html) $(wildcard output-html/*.css)
+DOCBOOK_HTML_IMAGES ?= $(wildcard output-html/images/*.png) $(wildcard output-html/images/*.gif)
+DOCBOOK_MANS ?= $(call dbiftargets,docbook-man, \
+ aptitude.8 aptitude-create-state-bundle.1 aptitude-run-state-bundle.1)
+
+docbook-stamp: $(DOCBOOK_TARGETS)
+ touch docbook-stamp
+
+docbook-man: docbook-man-stamp
+docbook-html: docbook-html-stamp docbook-css-stamp docbook-html-images-stamp
+docbook-readme: docbook-readme-stamp
+docbook-pdf: docbook-pdf-stamp
+
+.PHONY: docbook-man docbook-html docbook-readme docbook-pdf
+.PHONY: clean-local clean-docbookclean-docbook-readme
+.PHONY: clean-docbook-man clean-docbook-fo clean-docbook-pdf
+.PHONY: clean-docbook-html clean-docbook-css clean-docbook-html-images
+.PHONY: install-data-docbook uninstall-docbook
+.PHONY: install-docbook-html uninstall-docbook-html
+
+vpath %.xsl $(top_srcdir)/doc
+vpath %.css $(top_srcdir)/doc
+
+DOCBOOK_INSTALL_CANDIDATES = docbook-html
+DOCBOOK_INSTALL_TARGETS = $(filter $(DOCBOOK_INSTALL_CANDIDATES),$(DOCBOOK_TARGETS))
+
+install-data-hook: install-data-docbook
+install-data-docbook: $(addprefix install-, $(DOCBOOK_INSTALL_TARGETS))
+
+uninstall-hook: uninstall-docbook
+uninstall-docbook: $(addprefix uninstall-, $(DOCBOOK_INSTALL_TARGETS))
+
+dbinstall = @list='$(1)'; test -n "$(2)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(2)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(2)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(2)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(2)" || exit $$?; \
+ done
+
+dbuninstall = @list='$(1)'; test -n "$(2)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(2)'; $(am__uninstall_files_from_dir)
+
+man_MANS += $(DOCBOOK_MANS)
+
+install-docbook-html: docbook-html
+ @$(NORMAL_INSTALL)
+ $(call dbinstall,$(DOCBOOK_HTML),$(htmldir))
+ $(call dbinstall,$(DOCBOOK_HTML_IMAGES),$(imagesdir))
+uninstall-docbook-html:
+ @$(NORMAL_UNINSTALL)
+ $(call dbuninstall,$(DOCBOOK_HTML),$(htmldir))
+ $(call dbuninstall,$(DOCBOOK_HTML_IMAGES),$(imagesdir))
+
+clean-local: clean-docbook
+clean-docbook: $(addprefix clean-,$(DOCBOOK_TARGETS))
+ -rm -f docbook-stamp
+clean-docbook-man:
+ -rm -fr output-man/ docbook-man-stamp $(DOCBOOK_MANS)
+clean-docbook-html: clean-docbook-css clean-docbook-html-images
+ -rm -fr output-html/ docbook-html-stamp
+clean-docbook-css:
+ -rm -f output-html/aptitude.css docbook-css-stamp
+clean-docbook-html-images:
+ -rm -f output-html/images/ docbook-html-images-stamp
+clean-docbook-readme:
+ -rm -fr output-readme/ docbook-readme-stamp $(README)
+clean-docbook-fo:
+ -rm -fr output-fo/ docbook-fo-stamp
+clean-docbook-pdf: clean-docbook-fo
+ -rm -fr docbook-pdf-stamp $(aptitude.pdf)
+
+docbook-css-stamp: aptitude.css docbook-html-stamp
+ -rm -f output-html/aptitude.css
+ cp $< output-html/
+ touch docbook-css-stamp
+
+docbook-html-images-stamp: $(DOCBOOK_IMAGES) docbook-html-stamp
+ mkdir output-html/images/
+ cp -f $(filter-out docbook-html-stamp,$^) output-html/images/
+ for x in caution important note tip warning; do \
+ ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.png \
+ output-html/images/; \
+ done
+ for x in home next prev up; do \
+ ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.gif \
+ output-html/images/; \
+ done
+ touch docbook-html-images-stamp
+
+$(DOCBOOK_MANS): $(findstring docbook-man,$(DOCBOOK_TARGETS))
+$(README): $(findstring docbook-readme,$(DOCBOOK_TARGETS))
+$(aptitude.pdf): $(findstring docbook-pdf,$(DOCBOOK_TARGETS)
+
+if HAVE_RSVGCONVERT
+
+images/%.png: images/%.svg
+ $(RSVGCONVERT) -x 1.5 -y 1.5 -f png -o $@ $<
+
+endif
+
+if HAVE_XSLTPROC
+
+docbook-man-stamp: $(DOCBOOK_XML) aptitude-man.xsl aptitude-common.xsl
+ -rm -fr output-man/
+ $(XSLTPROC) -o output-man/aptitude.8 $(filter %aptitude-man.xsl,$^) $<
+ ln -f $(addprefix output-man/,$(DOCBOOK_MANS)) .
+ @if [ -x "$(srcdir)/fixman" ]; then \
+ for i in $(DOCBOOK_MANS); do \
+ echo "$(srcdir)/fixman $$i"; \
+ . $(srcdir)/fixman $$i; \
+ done; \
+ fi
+ touch docbook-man-stamp
+
+docbook-html-stamp: $(DOCBOOK_XML) $(DOCBOOK_HTML_XSL) aptitude-common.xsl
+ -rm -fr output-html/
+ $(XSLTPROC) -o output-html/ $(filter %$(DOCBOOK_HTML_XSL),$^) $<
+ touch docbook-html-stamp
+
+docbook-readme-stamp: $(DOCBOOK_XML) aptitude-txt.xsl aptitude-common.xsl
+ -rm -fr output-readme/ $(README)
+ $(XSLTPROC) -o output-readme/index.html $(filter %aptitude-txt.xsl,$^) $<
+ @echo "$(HTML2TEXT) output-readme/index.html $(README_encoding) > $(README)"; \
+ $(HTML2TEXT) output-readme/index.html $(README_encoding) > $(README) \
+ || (rm -f $(README); exit 1)
+ touch docbook-readme-stamp
+
+docbook-fo-stamp: $(DOCBOOK_XML) aptitude-fo.xsl aptitude-common.xsl $(IMAGES)
+ -rm -fr output-fo/
+ $(XSLTPROC) -o output-fo/aptitude.fo $(filter %aptitude-fo.xsl,$^) $<
+
+ mkdir output-fo/images/
+ ln -f $(srcdir)/images/*.png output-fo/images/
+ for x in caution important note tip warning; do \
+ ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.png \
+ output-html/images/; \
+ done
+
+ touch docbook-fo-stamp
+
+endif
+
+if HAVE_FOP
+
+docbook-pdf-stamp: docbook-fo-stamp
+ $(FOP) output-fo/aptitude.fo -pdf $(aptitude.pdf)
+ touch docbook-pdf-stamp
+
+endif
diff --git a/buildlib/po4a.mk b/buildlib/po4a.mk
new file mode 100644
index 00000000..9b995580
--- /dev/null
+++ b/buildlib/po4a.mk
@@ -0,0 +1,23 @@
+# Makefile rules for targets from po4a translations
+#
+
+PO4A_TRANSLATED ?= $(shell cat $(top_srcdir)/doc/po4a/TRANSLATED)
+PO4A_IMAGES := $(filter images/%,$(PO4A_TRANSLATED))
+
+PO4AFLAGS = --srcdir=$(top_srcdir)/doc --destdir=$(top_builddir)/doc \
+ $(top_srcdir)/doc/po4a/po4a.cfg
+
+clean-local: clean-po4a
+
+clean-po4a:
+ -rm -fr $(PO4A_TRANSLATED) $(PO4A_IMAGES)
+ -rm -fr $(addprefix "$(srcdir)/",$(PO4A_IMAGES))
+
+vpath %.po $(top_srcdir)/doc/po4a/po
+
+if HAVE_PO4A
+
+$(PO4A_TRANSLATED): $(LC).po $(top_srcdir)/doc/en/$@
+ $(PO4A) --translate-only=$(LC)/$@ $(PO4AFLAGS)
+
+endif