######################################################################### # Makefile.common # # This file, to be included from every document's local Makefile, provides # the basic targets used by the Fedora Docs Project: # all -- Default target, builds HTML document only # ${DOCNAME}/index.html -- Builds HTML version of document # html -- See "${DOCNAME}/index.html" # html-nochunks -- See "${DOCNAME}.html"; single HTML file # ${DOCNAME}.tar.gz -- Packages HTML document into a tar archive # tarball -- See "${DOCNAME}.tar.gz" # clean -- Deletes all generated files and directories # distclean -- See "clean" # ${DOCNAME}.pdf -- Builds PDF version of document # pdf -- See "${DOCNAME}.pdf" ######################################################################### # PDF generation is still fragile and probably won't work on your document ######################################################################### # Note: all targets within this Makefile.common must be defined as # double-colon (::) targets so that additional steps can be added by # 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 TARGETS=all tarball pdf html html-nochunks clean distclean .PHONY: ${TARGETS} all:: html html-nochunks tarball # pdf ${TARGETS}:: ######################################################################### # 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) $(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) $(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) $(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) $(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) $(foreach LANG,${LANGUAGES},$(eval $(call CLEAN_template,${LANG}))) # ######################################################################### # End of Makefile.common #########################################################################