summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.common121
1 files changed, 85 insertions, 36 deletions
diff --git a/Makefile.common b/Makefile.common
index c610c01..7cece96 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -21,51 +21,100 @@
# providing additional rules, also marked with double-colons, in the
# document Makefile.
#########################################################################
+# Supply default values for the boilerplate files _unless_ the user has
+# provided their own values.
+ifeq (${XSLPDF},)
+XSLPDF = ../docs-common/xsl/main-pdf.xsl
+endif
+ifeq (${XSLHTML},)
+XSLHTML = ../docs-common/xsl/main-html.xsl
+endif
+ifeq (${XSHTMLNOCHUNKS},)
+XSLHTMLNOCHUNKS = ../docs-common/xsl/main-html-nochunks.xsl
+endif
+#########################################################################
# PUT NO TARGETS BEFORE THIS ONE, not even in your base Makefile
# In a properly-constructed Makefile, this will be the default target
-.PHONY: all tarball pdf html html-nochunks clean distclean
-
-all:: ${DOCNAME}/index.html
-
-# The "tarball" or "${DOCNAME}.tar.gz" target will bind the HTML formatted
-# document into a compressed tar archive.
+TARGETS=all tarball pdf html html-nochunks clean distclean
+.PHONY: ${TARGETS}
-tarball ${DOCNAME}.tar.gz:: ${DOCNAME}/index.html
- tar -zc --exclude '*.eps' -f ${DOCNAME}.tar.gz ${DOCNAME}
+all:: html html-nochunks tarball # pdf
-# The "pdf" or "${DOCNAME}.pdf" target produces an Adobe Portable Document
-# Format (PDF) file as output.
+${TARGETS}::
-pdf ${DOCNAME}.pdf:: ${XMLFILE} ${XMLEXTRAFILES}
- xmlto pdf -x $(XSLPDF) $(XMLFILE)
-
-# The "html" or "${DOCNAME}.
-html ${DOCNAME}/index.html:: ${XMLFILE} ${XMLEXTRAFILES}
- xmlto html -x $(XSLHTML) -o $(DOCNAME) $(XMLFILE)
- mkdir -p $(DOCNAME)/stylesheet-images
- cp ../docs-common/stylesheet-images/*.png $(DOCNAME)/stylesheet-images
- cp ../docs-common/css/fedora.css $(DOCNAME)
+#########################################################################
+# For each LANG in LANGUAGES, generate a target and rule similar to:
+# mydoc-en/index.html:: mydoc-en.xml ${XMLEXTRAFILES}-en
+# LANG=en.UTF-8 xmlto html -x $(XSLHTML) -o mydoc-en mydoc-en.xml
+# mkdir -p mydoc-en/stylesheet-images
+# cp ../docs-common/stylesheet-images/*.png mydoc-en/stylesheet-images/
+# cp ../docs-common/css/fedora.css mydoc-en/
+#
+define HTML_template
+${DOCBASE}-$(1)/index.html:: ${DOCBASE}-$(1).xml $$(XMLEXTRAFILES-$(1))
+ LANG=$(1).UTF-8 xmlto html -x $(XSLHTML) -o $(DOCBASE)-$(1) $(DOCBASE)-$(1).xml
+ mkdir -p $(DOCBASE)-$(1)/stylesheet-images/
+ cp ../docs-common/stylesheet-images/*.png $(DOCBASE)-$(1)/stylesheet-images
+ cp ../docs-common/css/fedora.css $$(DOCBASE)-$(1)/
+endef
+#
+html:: $(foreach LANG,${LANGUAGES},$(DOCBASE)-$(LANG)/index.html)
-html-nochunks $(DOCNAME).html:: ${XMLFILE} ${XMLEXTRAFILES}
- xmlto html-nochunks -x $(XSLHTMLNOCHUNKS) $(XMLFILE)
- mkdir -p stylesheet-images
- cp ../docs-common/stylesheet-images/*.png stylesheet-images
+$(foreach LANG,${LANGUAGES},$(eval $(call HTML_template,${LANG})))
+#
+#########################################################################
+# For each language in ${LANGUAGES}, generate a single HTML file
+define HTMLNOCHUNK_template
+${DOCBASE}-$(1).html:: ${DOCBASE}-$(1).xml $$(XMLEXTRAFILES-$(1))
+ xmlto html-nochunks -x $(XSLHTMLNOCHUNKS) $(DOCBASE)-$(1).xml
+ mkdir -p stylesheet-images/
+ cp ../docs-common/stylesheet-images/*.png stylesheet-images/
cp ../docs-common/css/fedora.css .
+endef
+#
+html-nochunks:: $(foreach LANG,${LANGUAGES},$(DOCBASE)-$(LANG).html)
-# The "view" target ensures that the HTML version of the document is built
-# then displays it using the "htmlview" tool to start up the browser. It
-# assumes that the current working directory is immediately above the HTML
-# document directory. (We could change this if we wanted to futz around
-# with making up an absolute pathname, but why bother.)
+$(foreach LANG,${LANGUAGES},$(eval $(call HTMLNOCHUNK_template,${LANG})))
+#
+#########################################################################
+# For each language in ${LANGUAGES}, build a tarball of the HTML files.
+#
+define TAR_template
+${DOCBASE}-$(1).tar.gz:: ${DOCBASE}-$(1)/index.html
+ tar -zc --exclude '*.eps' -f ${DOCBASE}-$(1).tar.gz ${DOCBASE}-$(1)
+endef
+#
+tarball:: $(foreach LANG,${LANGUAGES},$(DOCBASE)-$(LANG).tar.gz)
-view:: ${DOCNAME}/index.html
- /usr/bin/htmlview file://localhost/${PWD}/${DOCNAME}/index.html
+$(foreach LANG,${LANGUAGES},$(eval $(call TAR_template,${LANG})))
+#
+#########################################################################
+# For each language in ${LANGUAGES}, generate an Adobe Portable Document
+# Format (PDF) file.
+define PDF_template
+${DOCBASE}-$(1).pdf:: ${DOCBASE}-$(1).xml $$(XMLEXTRAFILES-$(1))
+ xmlto pdf -x $(XSLPDF) $(DOCBASE)-$(1).xml
+endef
+#
+pdf:: $(foreach LANG,${LANGUAGES},$(DOCBASE)-$(LANG).pdf)
-# The "clean" or "distclean" target will remove all generated and temporary
-# files.
+$(foreach LANG,${LANGUAGES},$(eval $(call PDF_template,${LANG})))
+#
+#########################################################################
+# For each language in ${LANGUAGES}, clean up!
+define CLEAN_template
+${DOCBASE}-$(1)-clean::
+ ${RM} -r ${DOCBASE}-$(1)
+ ${RM} -r ${DOCBASE}-$(1).html stylesheet-images fedora.css
+ ${RM} -r ${DOCBASE}-$(1).pdf
+ ${RM} -r ${DOCBASE}-$(1).tar.gz
+endef
+#
+distclean clean:: $(foreach LANG,${LANGUAGES},${DOCBASE}-${LANG}-clean)
-distclean clean:
- ${RM} -r ${DOCNAME}.pdf $(DOCNAME) \
- ${DOCNAME}.tar.gz \
- ${DOCNAME}.html stylesheet-images fedora.css
+$(foreach LANG,${LANGUAGES},$(eval $(call CLEAN_template,${LANG})))
+#
+#########################################################################
+# End of Makefile.common
+#########################################################################