bootstrap, doc/Makefile: build documentation at package build time.
[Ale.git] / doc / Makefile
blobf74503408635f8bcf856386fedb441dbb132db01
2 # Makefile modified by David Hilvert to generate ALE documentation.
3 # 24-Sep-2006
6 # $Source$
7 # $Author: xmldoc $
8 # $Date: 2006-09-01 15:47:16 +0900 (Fri, 01 Sep 2006) $
9 # $Revision: 6235 $
10 # vim: number
12 # -----------------------------------------------------------------
13 # ** Makefile.DocBook -- generate output from DocBook sources **
14 # -----------------------------------------------------------------
16 # This file is part of the DocBook Project XSL Stylesheet
17 # distribution.
19 # See http://docbook.sourceforge.net/release/xsl/current/
20 # for copyright and other information.
22 # DOCBOOK_OUTPUT_FORMATS is the default set of targets (output
23 # formats) that get built when you type "make" without any targets
24 # explicitly specified. To generate a different set of output
25 # formats, change the value of DOCBOOK_OUTPUT_FORMATS here or set
26 # it in your environment; for example:
28 # set DOCBOOK_OUTPUT_FORMATS="html pdf"; export DOCBOOK_OUTPUT_FORMATS
30 # Of course by explicitly specifying particular targets when you
31 # invoke "make", you can always override generation of the default
32 # set of targets; for example:
34 # make html txt
36 # That would generate just HTML (unchunked) and plain-text output.
38 DOCBOOK_OUTPUT_FORMATS ?= man chunk txt pdf info
40 # If you want XHTML output instead of HTML, set HTML_OR_XHTML to
41 # 'xhtml' or just specify 'xhtml" in DOCBOOK_OUTPUT_FORMATS.
42 ifeq ($(findstring xhtml,$(DOCBOOK_OUTPUT_FORMATS)),)
43 HTML_OR_XHTML ?= html
44 else
45 HTML_OR_XHTML ?= xhtml
46 endif
48 # -----------------------------------------------------------------
49 # *** TOOLS and other DEPENDENCIES ***
50 # -----------------------------------------------------------------
51 # we use rmdir(1) to remove dirs we create for chunked HTML output
52 RMDIR = rmdir
53 # "-p" causes empty parent dirs to be deleted as well
54 RMDIR_FLAGS = --ignore-fail-on-non-empty -p
56 # possible values for PDF_MAKER are:
57 # dblatex|fop|xep|xmlroff|passivetex
58 PDF_MAKER = fop
60 # possible values for TXT_MAKER are:
61 # links|lynx|w3m|w3mmee
62 TXT_MAKER = links
63 TXT_MAKER_FLAGS = -dump -no-numbering -no-references
65 # xsl
66 XSLT = xsltproc
67 XSLT_FLAGS = --xinclude
69 # http://dblatex.sourceforge.net/
70 DBLATEX = dblatex
71 DBLATEX_FLAGS = -b pdftex -P page.margin.inner=0.8 -P page.margin.outer=0.5 -P double.sided=1 -T db2latex
73 FOP = fop
74 FOP_FLAGS =
76 XEP = xep
77 XEP_FLAGS =
79 # http://xmlroff.sourceforge.net/
80 XMLROFF = xmlroff
81 XMLROFF_FLAGS =
83 PDFTEX = pdftex
84 PDFTEX_FLAGS =
86 # used by PassiveTeX
87 PDFXMLTEX = pdfxmltex
89 # http://docbook2x.sourceforge.net/
90 DB2X_XSLTPROC = db2x_xsltproc
91 DB2X_XSLTPROC_FLAGS = --xinclude
92 DB2X_TEXIXML = db2x_texixml --list-files
93 DB2X_TEXIXML_FLAGS =
95 # we call the man(1) command to generate "foo.N.pdf" and
96 # "foo.N.txt" output (see "man-pdf" & "man-txt" targets)
97 MAN = man
98 MAN_FLAGS =
100 # The "ps2pdf" command is part of GhostSript (gs) distro.
101 # It is just a wrapper script around gs that does this:
103 # gs -dCompatibilityLevel=1.2 -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
104 # "-sOutputFile=$outfile" -dCompatibilityLevel=1.2 -c .setpdfwrite -f "$infile"
106 # Where, for example: $outfile = foo.pdf and $infile = foo.1
107 PS2PDF = ps2pdf
108 PS2PDF_FLAGS =
110 # The "col" command is needed for stripping backspaces and
111 # underscores from man(1) output to get pure plain-text
112 COL = col
113 COL_FLAGS =
115 # The "expand" command is needed for expanding tabs from files
116 # generated from "man foo.1 | col -b" output
117 # output to get pure plain-text
118 EXPAND = expand
119 EXPAND_FLAGS =
121 # value of DOCBOOK_XSL should either be the canonical
122 # (docbook.sourceforge.net) URL for the DocBook Project XSL
123 # stylesheets OR it can be a local system path
124 DOCBOOK_XSL = http://docbook.sourceforge.net/release/xsl/current
126 # -----------------------------------------------------------------
127 # names of some DIRECTORIES and FILES we need
128 # -----------------------------------------------------------------
129 # We create a tmp directory once per make invocation; it's needed
130 # for holding a temporary copy of the custom DBLaTeX stylesheet
131 # (because dblatex currently can't read a stylesheet from stdin)
132 TMP ?= /tmp
133 TMPNUM := $(shell echo $$$$)
134 DOCBOOK_TMP := $(TMP)/docbook-make-$(TMPNUM)
136 # MAN_MANIFEST_EXT is file extension added to individual manifest
137 # files
138 MAN_MANIFEST_EXT = manifest_man
140 # HTML_MANIFEST_EXT is file extension added to HTML manifest files
141 HTML_MANIFEST_EXT = manifest_html
143 # BASEDIR_SUFFIX is a what you need to set if you want a suffix
144 # added to the end of each "base.dir" we create while generating
145 # chunked HTML output
146 #BASEDIR_SUFFIX = -html
147 #BASEDIR_SUFFIX = _html
148 BASEDIR_SUFFIX =
151 # Workaround the fact that we don't calculate dependencies.
154 BROKEN_DEPENDENCIES = $(shell find . -name "*.xml")
157 # -----------------------------------------------------------------
158 # assorted OPTIONS
159 # -----------------------------------------------------------------
160 # HTML_STYLESHEET -> $html.stylesheet stylesheet param
161 # http://docbook.sourceforge.net/snapshots/xsl/doc/html/html.stylesheet.html
162 HTML_STYLESHEET = style.css
163 # HTML_IMAGES -> $admon.graphics.path
164 # http://docbook.sourceforge.net/snapshots/xsl/doc/html/admon.graphics.path.html
165 HTML_IMAGES = images/
166 # HTML_IMAGES_EXT -> $admon.graphics.extension
167 # http://docbook.sourceforge.net/snapshots/xsl/doc/html/admon.graphics.extension.html
168 HTML_IMAGES_EXT = .png
170 # use these to set params on the command-line
171 # format is, e.g., HTML_PARAMS="--stringparam variablelist.as.table 1..."
172 FO_PARAMS =
173 HTML_PARAMS =
174 MAN_PARAMS =
176 # DBX_PARAMS is for dblatex(1); format uses "-p":
177 # DBX_PARAMS="-p doc.publisher.show 1 -p term.breakline 1...
178 DBX_PARAMS=
180 # What file extension do you use for DocBook source files?
181 DOCBOOK_FILE_EXTENSION = .docbook
182 SOURCE_FILE_EXTENSION = .xml
184 # -----------------------------------------------------------------
185 # make(1) functions for building file lists
186 # -----------------------------------------------------------------
188 # the values of the following are used for determing what needs
189 # to be built and/or cleaned up
191 SOURCE_FILES_DBK = $(wildcard *$(SOURCE_FILE_EXTENSION))
193 FILES_FO = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).fo)
194 FILES_TXT = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).txt)
195 FILES_PDF = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).pdf)
196 FILES_LOG = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).log)
197 FILES_OUT = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).out)
198 FILES_AUX = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).aux)
199 FILES_HTML = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).html)
200 FILES_INFO = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).info)
201 DIRS_CHUNK = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base)$(BASEDIR_SUFFIX))
202 LISTS_HTML = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).$(HTML_MANIFEST_EXT))
203 LISTS_MAN = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).$(MAN_MANIFEST_EXT))
204 FILES_CHNK = $(shell for manifest in $(LISTS_HTML); do if [ -f "$$manifest" ]; then cat $$manifest; fi done)
205 FILES_MAN = $(shell for manifest in $(LISTS_MAN); do if [ -f "$$manifest" ]; then cat $$manifest; fi done)
206 FILES_MANP = $(foreach base,$(FILES_MAN),$(base).pdf)
207 FILES_MANT = $(foreach base,$(FILES_MAN),$(base).txt)
208 DIRS_MAN = $(shell for file in $(FILES_MAN); do dirname $$file; done | uniq)
210 # -----------------------------------------------------------------
211 # ** stylesheet for testing whether a file has a refentry
212 # -----------------------------------------------------------------
213 REFENTRY_CHECK := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
214 version="1.0" \
215 xmlns:db="http://docbook.org/ns/docbook" \
217 <xsl:output method="text"/> \
218 <xsl:template match="/"> \
219 <xsl:if test="//refentry|//db:refentry"> \
220 <xsl:text>true</xsl:text> \
221 </xsl:if> \
222 </xsl:template> \
223 </xsl:stylesheet>
225 # -----------------------------------------------------------------
226 # ** Stylesheet Customization Layers **
227 # -----------------------------------------------------------------
229 # for DBLaTeX
230 DBX_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
231 version="1.0"> \
232 <xsl:param name="co.linkends.show">0</xsl:param> \
233 <xsl:param name="callout.markup.circled">1</xsl:param> \
234 <xsl:param name="callout.linkends.hot">0</xsl:param> \
235 <xsl:param name="doc.publisher.show">1</xsl:param> \
236 <xsl:param name="term.breakline">1</xsl:param> \
237 <xsl:param name="doc.alignment">left</xsl:param> \
238 <xsl:param name="newtbl.use">1</xsl:param> \
239 <xsl:param name="latex.hyperparam"/> \
240 <xsl:param name="latex.style">docbook</xsl:param> \
241 <xsl:param name="latex.biblio.output">all</xsl:param> \
242 <xsl:param name="latex.bibfiles">""</xsl:param> \
243 <xsl:param name="latex.bibwidelabel">WIDELABEL</xsl:param> \
244 <xsl:param name="latex.output.revhistory">0</xsl:param> \
245 <xsl:param name="latex.figure.position">[htbp]</xsl:param> \
246 <xsl:param name="latex.figure.boxed">0</xsl:param> \
247 <xsl:param name="latex.babel.use">1</xsl:param> \
248 <xsl:param name="latex.babel.language"></xsl:param> \
249 <xsl:param name="latex.class.options">twoside</xsl:param> \
250 <xsl:param name="biblioentry.item.separator">, </xsl:param> \
251 <xsl:param name="refentry.xref.manvolnum">1</xsl:param> \
252 <xsl:param name="refsynopsis.title">Synopsis</xsl:param> \
253 <xsl:param name="refnamediv.title"></xsl:param> \
254 <xsl:param name="funcsynopsis.style">ansi</xsl:param> \
255 <xsl:param name="funcsynopsis.decoration">1</xsl:param> \
256 <xsl:param name="function.parens">0</xsl:param> \
257 <xsl:param name="classsynopsis.default.language">java</xsl:param> \
258 <xsl:param name="show.comments">0</xsl:param> \
259 </xsl:stylesheet>
261 # for FO output
262 FO_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
263 xmlns:fo="http://www.w3.org/1999/XSL/Format" \
264 version="1.0"> \
265 <xsl:import href="$(DOCBOOK_XSL)/fo/docbook.xsl"/> \
266 <xsl:param name="$(PDF_MAKER).extensions">1</xsl:param> \
267 <xsl:param name="paper.type">Custom</xsl:param> \
268 <xsl:param name="page.height">9.25in</xsl:param> \
269 <xsl:param name="page.width">7.5in</xsl:param> \
270 <xsl:param name="commented.page.margin.inner">3in</xsl:param> \
271 <xsl:param name="commented.page.margin.outer">3in</xsl:param> \
272 <xsl:param name="double.sided">1</xsl:param> \
273 <xsl:param name="draft.watermark.image"></xsl:param> \
274 <xsl:param name="hyphenation">false</xsl:param> \
275 <xsl:param name="hyphenate.verbatim">1</xsl:param> \
276 <xsl:param name="alignment">left</xsl:param> \
277 <xsl:param name="refentry.generate.name">1</xsl:param> \
278 <xsl:param name="refentry.generate.title">0</xsl:param> \
279 <xsl:param name="refentry.pagebreak">1</xsl:param> \
280 <xsl:param name="shade.verbatim">1</xsl:param> \
281 <xsl:param name="variablelist.as.blocks">1</xsl:param> \
282 <xsl:param name="ulink.show">1</xsl:param> \
283 <xsl:param name="ulink.footnotes">1</xsl:param> \
284 <xsl:param name="index.on.type">1</xsl:param> \
285 <xsl:attribute-set name="xref.properties"> \
286 <xsl:attribute name="color">blue</xsl:attribute> \
287 </xsl:attribute-set> \
288 <xsl:attribute-set name="shade.verbatim.style"> \
289 <xsl:attribute name="background-color">\#E0E0E0</xsl:attribute> \
290 <xsl:attribute name="padding-left">4pt</xsl:attribute> \
291 <xsl:attribute name="padding-right">4pt</xsl:attribute> \
292 <xsl:attribute name="padding-top">4pt</xsl:attribute> \
293 <xsl:attribute name="padding-bottom">4pt</xsl:attribute> \
294 </xsl:attribute-set> \
295 <xsl:attribute-set name="section.title.level1.properties"> \
296 <xsl:attribute name="font-size"> \
297 <xsl:value-of select="$$body.font.master * 1.5"></xsl:value-of> \
298 <xsl:text>pt</xsl:text> \
299 </xsl:attribute> \
300 </xsl:attribute-set> \
301 <xsl:attribute-set name="section.title.level2.properties"> \
302 <xsl:attribute name="font-size"> \
303 <xsl:value-of select="$$body.font.master * 1.3"></xsl:value-of> \
304 <xsl:text>pt</xsl:text> \
305 </xsl:attribute> \
306 </xsl:attribute-set> \
307 <xsl:attribute-set name="section.title.level3.properties"> \
308 <xsl:attribute name="font-size"> \
309 <xsl:value-of select="$$body.font.master * 1.1"></xsl:value-of> \
310 <xsl:text>pt</xsl:text> \
311 </xsl:attribute> \
312 </xsl:attribute-set> \
313 <xsl:attribute-set name="section.title.level4.properties"> \
314 <xsl:attribute name="font-size"> \
315 <xsl:value-of select="$$body.font.master"></xsl:value-of> \
316 <xsl:text>pt</xsl:text> \
317 </xsl:attribute> \
318 </xsl:attribute-set> \
319 <xsl:attribute-set name="component.title.properties"> \
320 <xsl:attribute name="font-size"> \
321 <xsl:value-of select="$$body.font.master * 1.5"></xsl:value-of> \
322 <xsl:text>pt</xsl:text> \
323 </xsl:attribute> \
324 </xsl:attribute-set> \
325 <xsl:attribute-set name="monospace.verbatim.properties"> \
326 <xsl:attribute name="wrap-option">wrap</xsl:attribute> \
327 <xsl:attribute name="hyphenation-character">\</xsl:attribute> \
328 <xsl:attribute name="font-size"> \
329 <xsl:value-of select="$$body.font.master * 0.8"></xsl:value-of> \
330 <xsl:text>pt</xsl:text> \
331 </xsl:attribute> \
332 </xsl:attribute-set> \
333 </xsl:stylesheet>
335 # for single-file (X)HTML outpout
336 HTML_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
337 version="1.0"> \
338 <xsl:import href="$(DOCBOOK_XSL)/$(HTML_OR_XHTML)/docbook.xsl"/> \
339 <xsl:param name="gentext.custom">local.l10n.xml</xsl:param> \
340 <xsl:param name="local.l10n.xml" select="document($$gentext.custom)"/> \
341 <xsl:param name="refentry.generate.name">1</xsl:param> \
342 <xsl:param name="refentry.generate.title">0</xsl:param> \
343 <xsl:param name="root.filename"></xsl:param> \
344 <xsl:param name="variablelist.as.table">0</xsl:param> \
345 <xsl:param name="html.stylesheet">$(HTML_STYLESHEET)</xsl:param> \
346 <xsl:param name="admon.graphics">0</xsl:param> \
347 <xsl:param name="index.on.type">1</xsl:param> \
348 </xsl:stylesheet>
350 # for chunked (X)HTML output
351 CHNK_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
352 version="1.0"> \
353 <xsl:import href="$(DOCBOOK_XSL)/$(HTML_OR_XHTML)/chunk.xsl"/> \
354 <xsl:param name="refentry.generate.name">0</xsl:param> \
355 <xsl:param name="refentry.generate.title">1</xsl:param> \
356 <xsl:param name="variablelist.as.table">0</xsl:param> \
357 <xsl:param name="html.stylesheet">$(HTML_STYLESHEET)</xsl:param> \
358 <xsl:param name="admon.graphics">1</xsl:param> \
359 <xsl:param name="admon.graphics.path">$(HTML_IMAGES)</xsl:param> \
360 <xsl:param name="admon.graphics.extension">$(HTML_IMAGES_EXT)</xsl:param> \
361 <xsl:param name="root.filename"></xsl:param> \
362 <xsl:param name="generate.manifest">1</xsl:param> \
363 <xsl:param name="use.id.as.filename">1</xsl:param> \
364 <xsl:param name="chunker.output.indent">yes</xsl:param> \
365 <xsl:param name="index.on.type">1</xsl:param> \
366 </xsl:stylesheet>
368 # for man-page output
369 MAN_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
370 version="1.0"> \
371 <xsl:import href="$(DOCBOOK_XSL)/manpages/docbook.xsl"/> \
372 <xsl:param name="man.output.manifest.enabled" select="1"/> \
373 <xsl:param name="man.output.in.separate.dir" select="1"/> \
374 <xsl:param name="man.output.base.dir">man/</xsl:param> \
375 <xsl:param name="man.output.subdirs.enabled" select="1"/> \
376 </xsl:stylesheet>
378 # -----------------------------------------------------------------
379 # ** TARGETS START HERE **
380 # -----------------------------------------------------------------
381 # prevents make from deleting, e.g. foo.1, after making foo.1.pdf
382 # and foo.1.txt from it.
383 .PRECIOUS: %.1 %.2 %.3 %.4 %.5 %.6 %.7 %.8 %.9
385 docbook: index.docbook $(DOCBOOK_OUTPUT_FORMATS) ../TODO
387 ../TODO: package/todo/index.txt
388 mv package/todo/index.txt ../TODO
391 man: $(LISTS_MAN)
393 # we can generate PDFs from man pages
394 man-pdf: man
395 $(MAKE) $(FILES_MANP)
397 # we can generate plain text from man pages
398 man-txt: man
399 $(MAKE) $(FILES_MANT)
401 html: $(FILES_HTML)
403 chunk: $(LISTS_HTML)
405 txt: $(FILES_TXT)
407 pdf: $(FILES_PDF)
409 info: $(FILES_INFO)
411 # use the "debug" target to echo variables, etc., to
412 # test/troubleshoot changes you make to this makefile
413 debug:
414 @echo $(DIRS_MAN)
416 # -----------------------------------------------------------------
417 # preprocess xml to docbook.
418 # -----------------------------------------------------------------
419 %$(DOCBOOK_FILE_EXTENSION): %.xml ale-doc.xsl $(BROKEN_DEPENDENCIES)
420 $(XSLT) $(XSLT_FLAGS) ale-doc.xsl $< > $@
422 # -----------------------------------------------------------------
423 # pattern rule for making (X)HTML and plain-text output
424 # -----------------------------------------------------------------
425 %.html: %$(DOCBOOK_FILE_EXTENSION)
426 @echo '$(HTML_CUSTOM)' | $(XSLT) $(XSLT_FLAGS) $(HTML_PARAMS) - $< > $@
428 %.txt: %.html
429 $(TXT_MAKER) $(TXT_MAKER_FLAGS) ./$< \
430 | sed "s/^\(\s\+[0-9]\+\. \)file:\/\/.\+$$/\\1(local)/g" \
431 | egrep -v '^ file:///.+$$' \
432 > $@
433 # if DOCBOOK_OUTPUT_FORMATS does not contain "html", then we need
434 # to remove the "intermediate" HTML files we used for generating
435 # plain-text output
436 ifeq ($(findstring html,$(DOCBOOK_OUTPUT_FORMATS)),)
437 $(RM) $<
438 endif
440 # -----------------------------------------------------------------
441 # pattern rule for making chunked (X)HTML pages
442 # -----------------------------------------------------------------
443 %.$(HTML_MANIFEST_EXT): %$(DOCBOOK_FILE_EXTENSION)
444 @echo '$(CHNK_CUSTOM)' | $(XSLT) $(XSLT_FLAGS) $(HTML_PARAMS) \
445 --stringparam manifest $@ \
446 --stringparam base.dir $(basename $@)$(BASEDIR_SUFFIX)/ \
447 - $<
449 # -----------------------------------------------------------------
450 # pattern rules for making FO and PDF stuff
451 # -----------------------------------------------------------------
452 %.fo: %$(DOCBOOK_FILE_EXTENSION)
453 @echo '$(FO_CUSTOM)' \
454 | $(XSLT) $(XSLT_FLAGS) $(FO_PARAMS) - $< > $@
456 ifeq ($(PDF_MAKER),dblatex)
457 %.pdf: %$(DOCBOOK_FILE_EXTENSION)
458 mkdir -p $(DOCBOOK_TMP)
459 echo '$(DBX_CUSTOM)' > $(DOCBOOK_TMP)/dblatex.xsl
460 -$(DBLATEX) $(DBLATEX_FLAGS)\
461 -p $(DOCBOOK_TMP)/dblatex.xsl \
462 -o $@ \
464 $(RM) -r $(DOCBOOK_TMP)
465 endif
467 %.pdf: %.fo
468 ifeq ($(PDF_MAKER),)
469 $(error No PDF_MAKER specified. Cannot make pdf)
470 else
471 ifeq ($(PDF_MAKER),xep)
472 $(XEP) $(XEP_FLAGS) $< $@
473 else
474 ifeq ($(PDF_MAKER),fop)
475 $(FOP) $(FOP_FLAGS) $< $@
476 else
477 ifeq ($(PDF_MAKER),xmlroff)
478 $(XMLROFF) $(XMLROFF_FLAGS) $< -o $@
479 else
480 ifeq ($(PDF_MAKER),passivetex)
481 $(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $<
482 @if [ `egrep Rerun $(basename $@).log | wc -l` -gt 0 ]; then \
483 $(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $< ; \
485 @if [ `egrep Rerun $(basename $@).log | wc -l` -gt 0 ]; then \
486 $(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $< ; \
488 $(RM) $(basename $@).log
489 $(RM) $(basename $@).aux
490 $(RM) $(basename $@).out
491 else
492 $(error I do not know how to make a PDF using "$(PDF_MAKER)")
493 endif
494 endif
495 endif
496 endif
497 endif
499 # -----------------------------------------------------------------
500 # pattern rules for making TeXinfo stuff
501 # -----------------------------------------------------------------
502 %.txml: %$(DOCBOOK_FILE_EXTENSION)
503 $(DB2X_XSLTPROC) $(DB2X_XSLTPROC_FLAGS) -s texi -o $@ $<
505 %.texi-list: %.txml
506 $(DB2X_TEXIXML) $(DB2X_TEXIXML_FLAGS) $< > $@
508 # the following is actually a built-in rule, but it's redefined
509 # here just for the sake of clarity
510 %.info: %.texi-list
511 /usr/bin/perl -w make-infos $(MAKEINFO) < $<
512 -@ # This doesn't work in general.
513 -@ # $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@
515 # -----------------------------------------------------------------
516 # pattern rule for making man pages
517 # -----------------------------------------------------------------
518 %.$(MAN_MANIFEST_EXT): %$(DOCBOOK_FILE_EXTENSION)
519 @if [ "$(strip $(shell echo '$(REFENTRY_CHECK)' | $(XSLT) $(XSLT_FLAGS) - $<))" != "true" ]; then \
520 touch $@; \
521 else \
522 echo '$(MAN_CUSTOM)' \
523 | $(XSLT) $(XSLT_FLAGS) $(MAN_PARAMS) \
524 --stringparam man.output.manifest.filename $@ \
525 - $<; \
528 # -----------------------------------------------------------------
529 # pattern rule for enabling direct "make foo.1" to work
530 # -----------------------------------------------------------------
532 %.1 %.2 %.3 %.4 %.5 %.6 %.7: %.xml
533 $(MAKE) $(basename $<).$(MAN_MANIFEST_EXT)
535 # -----------------------------------------------------------------
536 # pattern rules for making Postscript/PDF output from man pages
537 # -----------------------------------------------------------------
538 %.1.ps: %.1
539 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
541 %.2.ps: %.2
542 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
544 %.3.ps: %.3
545 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
547 %.4.ps: %.4
548 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
550 %.5.ps: %.5
551 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
553 %.6.ps: %.6
554 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
556 %.7.ps: %.7
557 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
559 %.8.ps: %.8
560 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
562 %.9.ps: %.9
563 $(MAN) -l $(MAN_FLAGS) -Tps $< > $@
565 # -----------------------------------------------------------------
566 # pattern rule for converting Postscript to PDF
567 # -----------------------------------------------------------------
568 %.pdf: %.ps
569 $(PS2PDF) $(PS2PDF_FLAGS) $<
571 # -----------------------------------------------------------------
572 # pattern rules for making plain-text output from man pages
573 # -----------------------------------------------------------------
574 %.1.txt: %.1
575 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
577 %.2.txt: %.2
578 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
580 %.3.txt: %.3
581 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
583 %.4.txt: %.4
584 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
586 %.5.txt: %.5
587 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
589 %.6.txt: %.6
590 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
592 %.7.txt: %.7
593 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
595 %.8.txt: %.8
596 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
598 %.9.txt: %.9
599 $(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
601 # -----------------------------------------------------------------
602 # target(s) for cleaning up the mess
603 # -----------------------------------------------------------------
604 clean:
605 $(RM) *.info
606 $(RM) *.texi
607 $(RM) *.texi-list
608 ifneq ($(FILES_TXT),)
609 $(RM) $(FILES_TXT)
610 endif
611 ifneq ($(FILES_PDF),)
612 $(RM) $(FILES_PDF)
613 endif
614 ifneq ($(FILES_FO),)
615 $(RM) $(FILES_FO)
616 endif
617 ifneq ($(FILES_LOG),)
618 $(RM) $(FILES_LOG)
619 endif
620 ifneq ($(FILES_OUT),)
621 $(RM) $(FILES_OUT)
622 endif
623 ifneq ($(FILES_AUX),)
624 $(RM) $(FILES_AUX)
625 endif
626 ifneq ($(FILES_HTML),)
627 $(RM) $(FILES_HTML)
628 endif
629 ifneq ($(FILES_CHNK),)
630 $(RM) $(FILES_CHNK)
631 endif
632 ifneq ($(FILES_MAN),)
633 $(RM) $(FILES_MAN)
634 endif
635 ifneq ($(FILES_MANT),)
636 $(RM) $(FILES_MANT)
637 endif
638 ifneq ($(FILES_MANP),)
639 $(RM) $(FILES_MANP)
640 endif
641 ifneq ($(FILES_INFO),)
642 $(RM) $(FILES_INFO)
643 endif
644 ifneq ($(DIRS_CHUNK),)
645 for dir in $(DIRS_CHUNK); do \
646 if [ -d "$$dir" ]; then \
647 $(RMDIR) $(RMDIR_FLAGS) $$dir; \
648 fi \
649 done
650 endif
651 ifneq ($(DIRS_MAN),)
652 ifneq ($(DIRS_MAN),.)
653 for dir in $(DIRS_MAN); do \
654 if [ -d "$$dir" ]; then \
655 $(RMDIR) $(RMDIR_FLAGS) $$dir; \
656 fi \
657 done
658 endif
659 endif
660 ifneq ($(LISTS_MAN),)
661 $(RM) $(LISTS_MAN)
662 endif
663 ifneq ($(LISTS_HTML),)
664 $(RM) $(LISTS_HTML)
665 endif