| # $Source$ |
| # $Author: xmldoc $ |
| # $Date: 2008-03-03 09:20:29 +0000 (Mon, 03 Mar 2008) $ |
| # $Revision: 7787 $ |
| # vim: number |
| # |
| # ----------------------------------------------------------------- |
| # ** Makefile.DocBook -- generate output from DocBook sources ** |
| # ----------------------------------------------------------------- |
| # |
| # This file is part of the DocBook Project XSL Stylesheet |
| # distribution. |
| # |
| # See http://docbook.sourceforge.net/release/xsl/current/ |
| # for copyright and other information. |
| |
| # DOCBOOK_OUTPUT_FORMATS is the default set of targets (output |
| # formats) that get built when you type "make" without any targets |
| # explicitly specified. To generate a different set of output |
| # formats, change the value of DOCBOOK_OUTPUT_FORMATS here or set |
| # it in your environment; for example: |
| # |
| # set DOCBOOK_OUTPUT_FORMATS="html pdf"; export DOCBOOK_OUTPUT_FORMATS |
| # |
| # Of course by explicitly specifying particular targets when you |
| # invoke "make", you can always override generation of the default |
| # set of targets; for example: |
| # |
| # make html txt |
| # |
| # That would generate just HTML (unchunked) and plain-text output. |
| # |
| DOCBOOK_OUTPUT_FORMATS ?= xml man man-pdf chunk txt pdf |
| |
| # If you want XHTML output instead of HTML, set HTML_OR_XHTML to |
| # 'xhtml' or just specify 'xhtml" in DOCBOOK_OUTPUT_FORMATS. |
| ifeq ($(findstring xhtml,$(DOCBOOK_OUTPUT_FORMATS)),) |
| HTML_OR_XHTML ?= html |
| else |
| HTML_OR_XHTML ?= xhtml |
| endif |
| |
| # if your source is in asciidoc instead of DocBook, set |
| # ASCII_OR_DOCBOOK to "ascii" |
| ASCII_OR_DOCBOOK ?= docbook |
| |
| # ----------------------------------------------------------------- |
| # *** TOOLS and other DEPENDENCIES *** |
| # ----------------------------------------------------------------- |
| # we use rmdir(1) to remove dirs we create for chunked HTML output |
| RMDIR = rmdir |
| # "-p" causes empty parent dirs to be deleted as well |
| RMDIR_FLAGS = --ignore-fail-on-non-empty -p |
| |
| # possible values for PDF_MAKER are: |
| # dblatex|fop|xep|xmlroff|passivetex |
| PDF_MAKER = dblatex |
| |
| # possible values for TXT_MAKER are: |
| # links|lynx|w3m|w3mmee |
| TXT_MAKER = links |
| TXT_MAKER_FLAGS = -dump |
| |
| # xsl |
| XSLT = xsltproc |
| XSLT_FLAGS = --xinclude |
| |
| # http://dblatex.sourceforge.net/ |
| DBLATEX = dblatex |
| DBLATEX_FLAGS = -b pdftex |
| |
| FOP = fop |
| FOP_FLAGS = |
| |
| XEP = xep |
| XEP_FLAGS = |
| |
| # http://xmlroff.sourceforge.net/ |
| XMLROFF = xmlroff |
| XMLROFF_FLAGS = |
| |
| PDFTEX = pdftex |
| PDFTEX_FLAGS = |
| |
| # used by PassiveTeX |
| PDFXMLTEX = pdfxmltex |
| |
| # http://docbook2x.sourceforge.net/ |
| DB2X_XSLTPROC = db2x_xsltproc |
| DB2X_XSLTPROC_FLAGS = |
| DB2X_TEXIXML = db2x_texixml |
| DB2X_TEXIXML_FLAGS = |
| |
| # we call the man(1) command to generate "foo.N.pdf" and |
| # "foo.N.txt" output (see "man-pdf" & "man-txt" targets) |
| MAN = man |
| MAN_FLAGS = |
| |
| # The "ps2pdf" command is part of GhostSript (gs) distro. |
| # It is just a wrapper script around gs that does this: |
| # |
| # gs -dCompatibilityLevel=1.2 -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \ |
| # "-sOutputFile=$outfile" -dCompatibilityLevel=1.2 -c .setpdfwrite -f "$infile" |
| # |
| # Where, for example: $outfile = foo.pdf and $infile = foo.1 |
| PS2PDF = ps2pdf |
| PS2PDF_FLAGS = |
| |
| # asciidoc is used to generate DocBook XML from asciidoc source |
| ASCIIDOC=asciidoc |
| ASCIIDOCFLAGS= |
| |
| # asciidoc source seems to have DOS line endings, so we use |
| # DOS2UNIX to be able to grep them correctly |
| DOS2UNIX=dos2unix |
| DOS2UNIXFLAGS= |
| |
| # The "col" command is needed for stripping backspaces and |
| # underscores from man(1) output to get pure plain-text |
| COL = col |
| COL_FLAGS = |
| |
| # The "expand" command is needed for expanding tabs from files |
| # generated from "man foo.1 | col -b" output |
| # output to get pure plain-text |
| EXPAND = expand |
| EXPAND_FLAGS = |
| |
| # value of DOCBOOK_XSL should either be the canonical |
| # (docbook.sourceforge.net) URL for the DocBook Project XSL |
| # stylesheets OR it can be a local system path |
| DOCBOOK_XSL = http://docbook.sourceforge.net/release/xsl/current |
| |
| # ----------------------------------------------------------------- |
| # names of some DIRECTORIES and FILES we need |
| # ----------------------------------------------------------------- |
| # We create a tmp directory once per make invocation; it's needed |
| # for holding a temporary copy of the custom DBLaTeX stylesheet |
| # (because dblatex currently can't read a stylesheet from stdin) |
| TMP ?= /tmp |
| TMPNUM := $(shell echo $$$$) |
| DOCBOOK_TMP := $(TMP)/docbook-make-$(TMPNUM) |
| |
| # MAN_MANIFEST_EXT is file extension added to individual manifest |
| # files |
| MAN_MANIFEST_EXT = manifest_man |
| |
| # HTML_MANIFEST_EXT is file extension added to HTML manifest files |
| HTML_MANIFEST_EXT = manifest_html |
| |
| # BASEDIR_SUFFIX is a what you need to set if you want a suffix |
| # added to the end of each "base.dir" we create while generating |
| # chunked HTML output |
| #BASEDIR_SUFFIX = -html |
| #BASEDIR_SUFFIX = _html |
| BASEDIR_SUFFIX = |
| |
| # ----------------------------------------------------------------- |
| # assorted OPTIONS |
| # ----------------------------------------------------------------- |
| # HTML_STYLESHEET -> $html.stylesheet stylesheet param |
| # http://docbook.sourceforge.net/snapshots/xsl/doc/html/html.stylesheet.html |
| HTML_STYLESHEET = style.css |
| # HTML_IMAGES -> $admon.graphics.path |
| # http://docbook.sourceforge.net/snapshots/xsl/doc/html/admon.graphics.path.html |
| HTML_IMAGES = images/ |
| # HTML_IMAGES_EXT -> $admon.graphics.extension |
| # http://docbook.sourceforge.net/snapshots/xsl/doc/html/admon.graphics.extension.html |
| HTML_IMAGES_EXT = .png |
| |
| # use these to set params on the command-line |
| # format is, e.g., HTML_PARAMS="--stringparam variablelist.as.table 1..." |
| FO_PARAMS = |
| HTML_PARAMS = |
| MAN_PARAMS = |
| |
| # DBX_PARAMS is for dblatex(1); format uses "-p": |
| # DBX_PARAMS="-p doc.publisher.show 1 -p term.breakline 1... |
| DBX_PARAMS= |
| |
| # What file extension do you use for DocBook source files? |
| DOCBOOK_FILE_EXTENSION = .xml |
| |
| # ----------------------------------------------------------------- |
| # make(1) functions for building file lists |
| # ----------------------------------------------------------------- |
| # |
| # the values of the following are used for determing what needs |
| # to be built and/or cleaned up |
| |
| ifeq ($(ASCII_OR_DOCBOOK),docbook) |
| SOURCE_FILES_DBK = $(wildcard *$(DOCBOOK_FILE_EXTENSION)) |
| else |
| SOURCE_FILES_DBK = $(foreach base,$(basename $(wildcard *.txt)),$(base)$(DOCBOOK_FILE_EXTENSION)) |
| endif |
| |
| FILES_FO = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).fo) |
| FILES_TXT = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).out.txt) |
| FILES_PDF = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).pdf) |
| FILES_LOG = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).log) |
| FILES_OUT = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).out) |
| FILES_AUX = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).aux) |
| FILES_HTML = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).html) |
| FILES_INFO = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).info) |
| DIRS_CHUNK = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base)$(BASEDIR_SUFFIX)) |
| LISTS_HTML = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).$(HTML_MANIFEST_EXT)) |
| LISTS_MAN = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).$(MAN_MANIFEST_EXT)) |
| FILES_CHNK = $(shell for manifest in $(LISTS_HTML); do if [ -f "$$manifest" ]; then cat $$manifest; fi done) |
| FILES_MAN = $(shell for manifest in $(LISTS_MAN); do if [ -f "$$manifest" ]; then cat $$manifest; fi done) |
| FILES_MANP = $(foreach base,$(FILES_MAN),$(base).man.pdf) |
| FILES_MANT = $(foreach base,$(FILES_MAN),$(base).out.txt) |
| DIRS_MAN = $(shell for file in $(FILES_MAN); do dirname $$file; done | uniq) |
| |
| # ----------------------------------------------------------------- |
| # ** stylesheet for testing whether a file has a refentry |
| # ----------------------------------------------------------------- |
| REFENTRY_CHECK := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \ |
| version="1.0" \ |
| xmlns:db="http://docbook.org/ns/docbook" \ |
| > \ |
| <xsl:output method="text"/> \ |
| <xsl:template match="/"> \ |
| <xsl:if test="//refentry|//db:refentry"> \ |
| <xsl:text>true</xsl:text> \ |
| </xsl:if> \ |
| </xsl:template> \ |
| </xsl:stylesheet> |
| |
| # ----------------------------------------------------------------- |
| # ** Stylesheet Customization Layers ** |
| # ----------------------------------------------------------------- |
| # |
| # for DBLaTeX |
| DBX_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \ |
| version="1.0"> \ |
| <xsl:param name="co.linkends.show">0</xsl:param> \ |
| <xsl:param name="callout.markup.circled">1</xsl:param> \ |
| <xsl:param name="callout.linkends.hot">0</xsl:param> \ |
| <xsl:param name="doc.publisher.show">1</xsl:param> \ |
| <xsl:param name="term.breakline">1</xsl:param> \ |
| <xsl:param name="doc.alignment">left</xsl:param> \ |
| <xsl:param name="newtbl.use">1</xsl:param> \ |
| <xsl:param name="latex.hyperparam"/> \ |
| <xsl:param name="latex.style">docbook</xsl:param> \ |
| <xsl:param name="latex.biblio.output">all</xsl:param> \ |
| <xsl:param name="latex.bibfiles">""</xsl:param> \ |
| <xsl:param name="latex.bibwidelabel">WIDELABEL</xsl:param> \ |
| <xsl:param name="latex.output.revhistory">0</xsl:param> \ |
| <xsl:param name="latex.figure.position">[htbp]</xsl:param> \ |
| <xsl:param name="latex.figure.boxed">0</xsl:param> \ |
| <xsl:param name="latex.babel.use">1</xsl:param> \ |
| <xsl:param name="latex.babel.language"></xsl:param> \ |
| <xsl:param name="latex.class.options">twoside</xsl:param> \ |
| <xsl:param name="biblioentry.item.separator">, </xsl:param> \ |
| <xsl:param name="refentry.xref.manvolnum">1</xsl:param> \ |
| <xsl:param name="refsynopsis.title">Synopsis</xsl:param> \ |
| <xsl:param name="refnamediv.title"></xsl:param> \ |
| <xsl:param name="funcsynopsis.style">ansi</xsl:param> \ |
| <xsl:param name="funcsynopsis.decoration">1</xsl:param> \ |
| <xsl:param name="function.parens">0</xsl:param> \ |
| <xsl:param name="classsynopsis.default.language">java</xsl:param> \ |
| <xsl:param name="show.comments">0</xsl:param> \ |
| </xsl:stylesheet> |
| |
| # for FO output |
| FO_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \ |
| xmlns:fo="http://www.w3.org/1999/XSL/Format" \ |
| version="1.0"> \ |
| <xsl:import href="$(DOCBOOK_XSL)/fo/docbook.xsl"/> \ |
| <xsl:param name="$(PDF_MAKER).extensions">1</xsl:param> \ |
| <xsl:param name="paper.type">A4</xsl:param> \ |
| <xsl:param name="draft.watermark.image"></xsl:param> \ |
| <xsl:param name="hyphenation">false</xsl:param> \ |
| <xsl:param name="hyphenate.verbatim">1</xsl:param> \ |
| <xsl:param name="alignment">left</xsl:param> \ |
| <xsl:param name="refentry.generate.name">1</xsl:param> \ |
| <xsl:param name="refentry.generate.title">0</xsl:param> \ |
| <xsl:param name="refentry.pagebreak">1</xsl:param> \ |
| <xsl:param name="shade.verbatim">1</xsl:param> \ |
| <xsl:param name="variablelist.as.blocks">1</xsl:param> \ |
| <xsl:param name="ulink.show">1</xsl:param> \ |
| <xsl:param name="ulink.footnotes">1</xsl:param> \ |
| <xsl:param name="index.on.type">1</xsl:param> \ |
| <xsl:attribute-set name="xref.properties"> \ |
| <xsl:attribute name="color">blue</xsl:attribute> \ |
| </xsl:attribute-set> \ |
| <xsl:attribute-set name="shade.verbatim.style"> \ |
| <xsl:attribute name="background-color">\#E0E0E0</xsl:attribute> \ |
| <xsl:attribute name="padding-left">4pt</xsl:attribute> \ |
| <xsl:attribute name="padding-right">4pt</xsl:attribute> \ |
| <xsl:attribute name="padding-top">4pt</xsl:attribute> \ |
| <xsl:attribute name="padding-bottom">4pt</xsl:attribute> \ |
| </xsl:attribute-set> \ |
| <xsl:attribute-set name="section.title.level1.properties"> \ |
| <xsl:attribute name="font-size"> \ |
| <xsl:value-of select="$$body.font.master * 1.5"></xsl:value-of> \ |
| <xsl:text>pt</xsl:text> \ |
| </xsl:attribute> \ |
| </xsl:attribute-set> \ |
| <xsl:attribute-set name="section.title.level2.properties"> \ |
| <xsl:attribute name="font-size"> \ |
| <xsl:value-of select="$$body.font.master * 1.3"></xsl:value-of> \ |
| <xsl:text>pt</xsl:text> \ |
| </xsl:attribute> \ |
| </xsl:attribute-set> \ |
| <xsl:attribute-set name="section.title.level3.properties"> \ |
| <xsl:attribute name="font-size"> \ |
| <xsl:value-of select="$$body.font.master * 1.1"></xsl:value-of> \ |
| <xsl:text>pt</xsl:text> \ |
| </xsl:attribute> \ |
| </xsl:attribute-set> \ |
| <xsl:attribute-set name="section.title.level4.properties"> \ |
| <xsl:attribute name="font-size"> \ |
| <xsl:value-of select="$$body.font.master"></xsl:value-of> \ |
| <xsl:text>pt</xsl:text> \ |
| </xsl:attribute> \ |
| </xsl:attribute-set> \ |
| <xsl:attribute-set name="component.title.properties"> \ |
| <xsl:attribute name="font-size"> \ |
| <xsl:value-of select="$$body.font.master * 1.5"></xsl:value-of> \ |
| <xsl:text>pt</xsl:text> \ |
| </xsl:attribute> \ |
| </xsl:attribute-set> \ |
| <xsl:attribute-set name="monospace.verbatim.properties"> \ |
| <xsl:attribute name="wrap-option">wrap</xsl:attribute> \ |
| <xsl:attribute name="hyphenation-character">\</xsl:attribute> \ |
| <xsl:attribute name="font-size"> \ |
| <xsl:value-of select="$$body.font.master * 0.8"></xsl:value-of> \ |
| <xsl:text>pt</xsl:text> \ |
| </xsl:attribute> \ |
| </xsl:attribute-set> \ |
| </xsl:stylesheet> |
| |
| # for single-file (X)HTML outpout |
| HTML_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \ |
| version="1.0"> \ |
| <xsl:import href="$(DOCBOOK_XSL)/$(HTML_OR_XHTML)/docbook.xsl"/> \ |
| <xsl:param name="gentext.custom">local.l10n.xml</xsl:param> \ |
| <xsl:param name="local.l10n.xml" select="document($$gentext.custom)"/> \ |
| <xsl:param name="refentry.generate.name">1</xsl:param> \ |
| <xsl:param name="refentry.generate.title">0</xsl:param> \ |
| <xsl:param name="root.filename"></xsl:param> \ |
| <xsl:param name="variablelist.as.table">0</xsl:param> \ |
| <xsl:param name="html.stylesheet">$(HTML_STYLESHEET)</xsl:param> \ |
| <xsl:param name="admon.graphics">0</xsl:param> \ |
| <xsl:param name="index.on.type">1</xsl:param> \ |
| </xsl:stylesheet> |
| |
| # for chunked (X)HTML output |
| CHNK_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \ |
| version="1.0"> \ |
| <xsl:import href="$(DOCBOOK_XSL)/$(HTML_OR_XHTML)/chunk.xsl"/> \ |
| <xsl:param name="refentry.generate.name">0</xsl:param> \ |
| <xsl:param name="refentry.generate.title">1</xsl:param> \ |
| <xsl:param name="variablelist.as.table">0</xsl:param> \ |
| <xsl:param name="html.stylesheet">$(HTML_STYLESHEET)</xsl:param> \ |
| <xsl:param name="admon.graphics">1</xsl:param> \ |
| <xsl:param name="admon.graphics.path">$(HTML_IMAGES)</xsl:param> \ |
| <xsl:param name="admon.graphics.extension">$(HTML_IMAGES_EXT)</xsl:param> \ |
| <xsl:param name="root.filename"></xsl:param> \ |
| <xsl:param name="generate.manifest">1</xsl:param> \ |
| <xsl:param name="use.id.as.filename">1</xsl:param> \ |
| <xsl:param name="chunker.output.indent">yes</xsl:param> \ |
| <xsl:param name="index.on.type">1</xsl:param> \ |
| </xsl:stylesheet> |
| |
| # for man-page output |
| MAN_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \ |
| version="1.0"> \ |
| <xsl:import href="$(DOCBOOK_XSL)/manpages/docbook.xsl"/> \ |
| <xsl:param name="man.output.manifest.enabled" select="1"/> \ |
| <xsl:param name="man.output.in.separate.dir" select="1"/> \ |
| <xsl:param name="man.output.base.dir">man/</xsl:param> \ |
| <xsl:param name="man.output.subdirs.enabled" select="1"/> \ |
| </xsl:stylesheet> |
| |
| # ----------------------------------------------------------------- |
| # ** TARGETS START HERE ** |
| # ----------------------------------------------------------------- |
| # prevents make from deleting, e.g. foo.1, after making foo.1.pdf |
| # and foo.1.txt from it. |
| .PRECIOUS: %.1 %.2 %.3 %.4 %.5 %.6 %.7 %.8 %.9 |
| |
| docbook: $(DOCBOOK_OUTPUT_FORMATS) |
| |
| xml: $(SOURCE_FILES_DBK) |
| |
| man: $(LISTS_MAN) |
| |
| # we can generate PDFs from man pages |
| man-pdf: man |
| $(MAKE) $(FILES_MANP) |
| |
| # we can generate plain text from man pages |
| man-txt: man |
| $(MAKE) $(FILES_MANT) |
| |
| html: $(FILES_HTML) |
| |
| chunk: $(LISTS_HTML) |
| |
| txt: $(FILES_TXT) |
| |
| pdf: $(FILES_PDF) |
| |
| info: $(FILES_INFO) |
| |
| # use the "debug" target to echo variables, etc., to |
| # test/troubleshoot changes you make to this makefile |
| debug: |
| echo $(wildcard *$(DOCBOOK_FILE_EXTENSION)) |
| echo $(ASCII_OR_DOCBOOK) |
| echo $(SOURCE_FILES_DBK) |
| |
| # ----------------------------------------------------------------- |
| # pattern rule to make DocBook refentry from asciidoc source |
| # ----------------------------------------------------------------- |
| %.1$(DOCBOOK_FILE_EXTENSION): %.1.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| %.2$(DOCBOOK_FILE_EXTENSION): %.2.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| %.3$(DOCBOOK_FILE_EXTENSION): %.3.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| %.4$(DOCBOOK_FILE_EXTENSION): %.4.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| %.5$(DOCBOOK_FILE_EXTENSION): %.5.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| %.6$(DOCBOOK_FILE_EXTENSION): %.6.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| %.7$(DOCBOOK_FILE_EXTENSION): %.7.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| %.8$(DOCBOOK_FILE_EXTENSION): %.8.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| %.9$(DOCBOOK_FILE_EXTENSION): %.9.txt |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $< |
| |
| # ----------------------------------------------------------------- |
| # pattern rule to make DocBook article from asciidoc source |
| # ----------------------------------------------------------------- |
| %$(DOCBOOK_FILE_EXTENSION): %.txt |
| export LINECOUNT1=$$(cat $< | $(DOS2UNIX) $(DOS2UNIXFLAGS) | egrep "^=+$$" | wc -l); \ |
| export LINECOUNT2=$$(cat $< | $(DOS2UNIX) $(DOS2UNIXFLAGS) | egrep "^= $$" | wc -l); \ |
| if [[ $$LINECOUNT1 > 1 || $$LINECOUNT2 > 1 ]]; then \ |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -d book -b docbook $<; \ |
| else \ |
| $(ASCIIDOC) $(ASCIIDOCFLAGS) -b docbook $<; \ |
| fi |
| |
| # ----------------------------------------------------------------- |
| # pattern rule for making (X)HTML and plain-text output |
| # ----------------------------------------------------------------- |
| %.html: %$(DOCBOOK_FILE_EXTENSION) |
| @echo '$(HTML_CUSTOM)' | $(XSLT) $(XSLT_FLAGS) $(HTML_PARAMS) - $< > $@ |
| |
| %.out.txt: %.html |
| $(TXT_MAKER) $(TXT_MAKER_FLAGS) ./$< \ |
| | sed "s/^\(\s\+[0-9]\+\. \)file:\/\/.\+$$/\\1(local)/g" \ |
| | egrep -v '^ file:///.+$$' \ |
| > $@ |
| # if DOCBOOK_OUTPUT_FORMATS does not contain "html", then we need |
| # to remove the "intermediate" HTML files we used for generating |
| # plain-text output |
| ifeq ($(findstring html,$(DOCBOOK_OUTPUT_FORMATS)),) |
| $(RM) $< |
| endif |
| |
| # ----------------------------------------------------------------- |
| # pattern rule for making chunked (X)HTML pages |
| # ----------------------------------------------------------------- |
| %.$(HTML_MANIFEST_EXT): %$(DOCBOOK_FILE_EXTENSION) |
| @echo '$(CHNK_CUSTOM)' | $(XSLT) $(XSLT_FLAGS) $(HTML_PARAMS) \ |
| --stringparam manifest $@ \ |
| --stringparam base.dir $(basename $@)$(BASEDIR_SUFFIX)/ \ |
| - $< |
| |
| # ----------------------------------------------------------------- |
| # pattern rules for making FO and PDF stuff |
| # ----------------------------------------------------------------- |
| %.fo: %$(DOCBOOK_FILE_EXTENSION) |
| @echo '$(FO_CUSTOM)' \ |
| | $(XSLT) $(XSLT_FLAGS) $(FO_PARAMS) - $< > $@ |
| |
| ifeq ($(PDF_MAKER),dblatex) |
| %.pdf: %$(DOCBOOK_FILE_EXTENSION) |
| mkdir -p $(DOCBOOK_TMP) |
| echo '$(DBX_CUSTOM)' > $(DOCBOOK_TMP)/dblatex.xsl |
| -$(DBLATEX) $(DBLATEX_FLAGS)\ |
| -p $(DOCBOOK_TMP)/dblatex.xsl \ |
| -o $@ \ |
| $< |
| $(RM) -r $(DOCBOOK_TMP) |
| endif |
| |
| %.pdf: %.fo |
| ifeq ($(PDF_MAKER),) |
| $(error No PDF_MAKER specified. Cannot make pdf) |
| else |
| ifeq ($(PDF_MAKER),xep) |
| $(XEP) $(XEP_FLAGS) $< $@ |
| else |
| ifeq ($(PDF_MAKER),fop) |
| $(FOP) $(FOP_FLAGS) $< $@ |
| else |
| ifeq ($(PDF_MAKER),xmlroff) |
| $(XMLROFF) $(XMLROFF_FLAGS) $< -o $@ |
| else |
| ifeq ($(PDF_MAKER),passivetex) |
| $(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $< |
| @if [ `egrep Rerun $(basename $@).log | wc -l` -gt 0 ]; then \ |
| $(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $< ; \ |
| fi |
| @if [ `egrep Rerun $(basename $@).log | wc -l` -gt 0 ]; then \ |
| $(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $< ; \ |
| fi |
| $(RM) $(basename $@).log |
| $(RM) $(basename $@).aux |
| $(RM) $(basename $@).out |
| else |
| $(error I do not know how to make a PDF using "$(PDF_MAKER)") |
| endif |
| endif |
| endif |
| endif |
| endif |
| |
| # ----------------------------------------------------------------- |
| # pattern rules for making TeXinfo stuff |
| # ----------------------------------------------------------------- |
| %.txml: %$(DOCBOOK_FILE_EXTENSION) |
| $(DB2X_XSLTPROC) $(DB2X_XSLTPROC_FLAGS) -s texi -o $@ $< |
| |
| %.texi: %.txml |
| $(DB2X_TEXIXML) $(DB2X_TEXIXML_FLAGS) $< |
| |
| # the following is actually a built-in rule, but it's redefined |
| # here just for the sake of clarity |
| %.info: %.texi |
| $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@ |
| |
| # ----------------------------------------------------------------- |
| # pattern rule for making man pages |
| # ----------------------------------------------------------------- |
| %.$(MAN_MANIFEST_EXT): %$(DOCBOOK_FILE_EXTENSION) |
| @if [ "$(strip $(shell echo '$(REFENTRY_CHECK)' | $(XSLT) $(XSLT_FLAGS) - $<))" != "true" ]; then \ |
| touch $@; \ |
| else \ |
| echo '$(MAN_CUSTOM)' \ |
| | $(XSLT) $(XSLT_FLAGS) $(MAN_PARAMS) \ |
| --stringparam man.output.manifest.filename $@ \ |
| - $<; \ |
| fi |
| |
| # ----------------------------------------------------------------- |
| # pattern rule for enabling direct "make foo.1" to work |
| # ----------------------------------------------------------------- |
| |
| %.1 %.2 %.3 %.4 %.5 %.6 %.7: %.xml |
| $(MAKE) $(basename $<).$(MAN_MANIFEST_EXT) |
| |
| # ----------------------------------------------------------------- |
| # pattern rules for making Postscript/PDF output from man pages |
| # ----------------------------------------------------------------- |
| %.1.man.ps: %.1 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| %.2.man.ps: %.2 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| %.3.man.ps: %.3 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| %.4.man.ps: %.4 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| %.5.man.ps: %.5 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| %.6.man.ps: %.6 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| %.7.man.ps: %.7 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| %.8.man.ps: %.8 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| %.9.man.ps: %.9 |
| $(MAN) -l $(MAN_FLAGS) -Tps $< > $@ |
| |
| # ----------------------------------------------------------------- |
| # pattern rule for converting Postscript to PDF |
| # ----------------------------------------------------------------- |
| %.pdf: %.ps |
| $(PS2PDF) $(PS2PDF_FLAGS) $< |
| |
| # ----------------------------------------------------------------- |
| # pattern rules for making plain-text output from man pages |
| # ----------------------------------------------------------------- |
| %.1.out.txt: %.1 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| %.2.out.txt: %.2 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| %.3.out.txt: %.3 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| %.4.out.txt: %.4 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| %.5.out.txt: %.5 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| %.6.out.txt: %.6 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| %.7.out.txt: %.7 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| %.8.out.txt: %.8 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| %.9.out.txt: %.9 |
| $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@ |
| |
| # ----------------------------------------------------------------- |
| # target(s) for cleaning up the mess |
| # ----------------------------------------------------------------- |
| clean: |
| ifneq ($(FILES_TXT),) |
| $(RM) $(FILES_TXT) |
| endif |
| ifneq ($(FILES_PDF),) |
| $(RM) $(FILES_PDF) |
| endif |
| ifneq ($(FILES_FO),) |
| $(RM) $(FILES_FO) |
| endif |
| ifneq ($(FILES_LOG),) |
| $(RM) $(FILES_LOG) |
| endif |
| ifneq ($(FILES_OUT),) |
| $(RM) $(FILES_OUT) |
| endif |
| ifneq ($(FILES_AUX),) |
| $(RM) $(FILES_AUX) |
| endif |
| ifneq ($(FILES_HTML),) |
| $(RM) $(FILES_HTML) |
| endif |
| ifneq ($(FILES_CHNK),) |
| $(RM) $(FILES_CHNK) |
| endif |
| ifneq ($(FILES_MAN),) |
| $(RM) $(FILES_MAN) |
| endif |
| ifneq ($(FILES_MANT),) |
| $(RM) $(FILES_MANT) |
| endif |
| ifneq ($(FILES_MANP),) |
| $(RM) $(FILES_MANP) |
| endif |
| ifneq ($(FILES_INFO),) |
| $(RM) $(FILES_INFO) |
| endif |
| ifneq ($(DIRS_CHUNK),) |
| for dir in $(DIRS_CHUNK); do \ |
| if [ -d "$$dir" ]; then \ |
| $(RMDIR) $(RMDIR_FLAGS) $$dir; \ |
| fi \ |
| done |
| endif |
| ifneq ($(DIRS_MAN),) |
| ifneq ($(DIRS_MAN),.) |
| for dir in $(DIRS_MAN); do \ |
| if [ -d "$$dir" ]; then \ |
| $(RMDIR) $(RMDIR_FLAGS) $$dir; \ |
| fi \ |
| done |
| endif |
| endif |
| ifneq ($(LISTS_MAN),) |
| $(RM) $(LISTS_MAN) |
| endif |
| ifneq ($(LISTS_HTML),) |
| $(RM) $(LISTS_HTML) |
| endif |
| ifneq ($(ASCII_OR_DOCBOOK),docbook) |
| $(RM) -i $(SOURCE_FILES_DBK) |
| endif |