source: stylesheets/lfs-xsl/docbook-xsl-1.78.1/tools/make/Makefile.combine@ 8944824

8.3
Last change on this file since 8944824 was 15c7d39, checked in by Matthew Burgess <matthew@…>, 11 years ago

Update stylesheets to docbook-xsl-1.78.1.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@10355 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 6.5 KB
RevLine 
[15c7d39]1# $Source$
2# $Author: xmldoc $
3# $Date: 2007-03-05 06:28:18 +0000 (Mon, 05 Mar 2007) $
4# $Revision: 6666 $
5# vim: number
6#
7# -----------------------------------------------------------------
8# ** Makefile.combine -- combine source files **
9# -----------------------------------------------------------------
10#
11# This file is part of the DocBook Project XSL Stylesheet
12# distribution.
13#
14# See http://docbook.sourceforge.net/release/xsl/current/
15# for copyright and other information.
16#
17# This makefile creates "wrapper" files that combine sets of
18# individual DocBook source files. The purpose of combining the
19# files is to speed up processing time. By default it puts 20
20# files into each wrapper. Use CHUNKSIZE to configure the number
21# of files per wrapper.
22#
23# Currently, this makefile has only a "man" target and is mainly
24# intended to speed up processing of large numbers of individual
25# refentry instances.
26
27# What file extension do you use for DocBook source files?
28DOCBOOK_FILE_EXTENSION = .xml
29SOURCE_FILES_DBK = $(wildcard *$(DOCBOOK_FILE_EXTENSION))
30
31MAKEFILE_DOCBOOK = Makefile.DocBook
32
33XSLTPROC=xsltproc
34XSLTPROC_FLAGS=
35
36SED=sed
37SED_FLAGS=-i
38
39CHUNKSIZE ?= 20
40
41WRAPPER_ELEMENT = reference
42WRAPPER_TITLE=Combined contents
43
44COMBINE_XSL = <?xml version="1.0"?> \
45<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
46 xmlns:exsl="http://exslt.org/common" \
47 xmlns:xi="http://www.w3.org/2001/XInclude" \
48 exclude-result-prefixes="exsl xi" \
49 extension-element-prefixes="exsl" \
50 version="1.0"> \
51 <xsl:param name="files"/> \
52 <xsl:param name="chunk.size"/> \
53 <xsl:template match="/"> \
54 <xsl:call-template name="make.file"/> \
55 </xsl:template> \
56 \
57 <xsl:template name="make.file"> \
58 <xsl:param name="count" select="1"/> \
59 <xsl:param name="current.files" select="concat(normalize-space($$files), ^^ ^^)"/> \
60 <xsl:param name="more.files" \
61 select="concat(normalize-space(substring-after($$current.files, ^^ ^^)),^^ ^^)"/> \
62 <xsl:param name="file.number" select="1"/> \
63 <xsl:param name="filename" select="concat(^^./build/^^,$$file.number,^^.xml^^)"/> \
64 \
65 <xsl:choose> \
66 <xsl:when test="$$more.files = ^^ ^^"/> \
67 <xsl:when test="$$count mod $$chunk.size = 0"> \
68 <xsl:variable name="fileset" select="concat($$current.files, ^^ ^^, \
69 substring-before($$more.files, ^^ ^^))"/> \
70 <exsl:document href="{$$filename}" \
71 method="xml" \
72 encoding="UTF-8" \
73 indent="yes" \
74 omit-xml-declaration="yes" \
75 media-type="" \
76 standalone="no"> \
77 <$(WRAPPER_ELEMENT)> \
78 <title>$(WRAPPER_TITLE)</title> \
79 <xsl:call-template name="make.xinclude"> \
80 <xsl:with-param name="file"> \
81 <xsl:choose> \
82 <xsl:when test="contains($$fileset, ^^ ^^)"> \
83 <xsl:value-of \
84 select="normalize-space(substring-before($$fileset, ^^ ^^))"/> \
85 </xsl:when> \
86 <xsl:otherwise> \
87 <xsl:value-of select="$$fileset"/> \
88 </xsl:otherwise> \
89 </xsl:choose> \
90 </xsl:with-param> \
91 <xsl:with-param \
92 name="remaining.files" \
93 select="concat(normalize-space(substring-after($$fileset, ^^ ^^)),^^ ^^)"/> \
94 </xsl:call-template> \
95 </$(WRAPPER_ELEMENT)> \
96 </exsl:document> \
97 <xsl:call-template name="make.file"> \
98 <xsl:with-param name="count" select="1"/> \
99 <xsl:with-param name="current.files" \
100 select="$$more.files"/> \
101 <xsl:with-param name="file.number" select="number($$file.number) + 1"/> \
102 <xsl:with-param name="filename" select="concat(^^./build/^^,$$file.number,^^.xml^^)"/> \
103 </xsl:call-template> \
104 </xsl:when> \
105 <xsl:otherwise> \
106 <xsl:call-template name="make.file"> \
107 <xsl:with-param name="count" select="$$count + 1"/> \
108 <xsl:with-param name="current.files"> \
109 <xsl:choose> \
110 <xsl:when test="$$count = 1 and $$file.number = 1"> \
111 <xsl:value-of \
112 select="concat(substring-before($$current.files, ^^ ^^), \
113 ^^ ^^, \
114 substring-before($$more.files, ^^ ^^))"/> \
115 </xsl:when> \
116 <xsl:when test="$$count = 1"> \
117 <xsl:value-of \
118 select="substring-before($$more.files, ^^ ^^)"/> \
119 </xsl:when> \
120 <xsl:otherwise> \
121 <xsl:value-of \
122 select="concat($$current.files, ^^ ^^, \
123 substring-before($$more.files, ^^ ^^))"/> \
124 </xsl:otherwise> \
125 </xsl:choose> \
126 </xsl:with-param> \
127 <xsl:with-param name="more.files" \
128 select="substring-after($$more.files, ^^ ^^)"/> \
129 <xsl:with-param name="file.number" select="$$file.number"/> \
130 </xsl:call-template> \
131 </xsl:otherwise> \
132 </xsl:choose> \
133 </xsl:template> \
134 \
135 <xsl:template name="make.xinclude"> \
136 <xsl:param name="file"/> \
137 <xsl:param name="remaining.files"/> \
138 <xsl:param name="count" select="1"/> \
139 <xsl:if test="not($$file = ^^^^)"> \
140 <xi:include href="../{$$file}"/> \
141 <xsl:call-template name="make.xinclude"> \
142 <xsl:with-param \
143 name="file" \
144 select="substring-before($$remaining.files, ^^ ^^)"/> \
145 <xsl:with-param \
146 name="remaining.files" \
147 select="substring-after($$remaining.files, ^^ ^^)"/> \
148 <xsl:with-param name="count" select="$$count + 1"/> \
149 </xsl:call-template> \
150 </xsl:if> \
151 </xsl:template> \
152 \
153</xsl:stylesheet>
154
155all: man
156
157man: build/man
158
159build/Makefile:
160 if [ ! -d build ]; then mkdir build; fi
161 cp $(MAKEFILE_DOCBOOK) $@
162
163combine.xsl: Makefile
164 @echo '$(COMBINE_XSL)' > $@
165 $(SED) $(SED_FLAGS) "s/\^\^/'/g" $@
166
167build/1.xml: combine.xsl
168 $(XSLTPROC) $(XSLTPROC_FLAGS) \
169 --stringparam files "$(SOURCE_FILES_DBK)" \
170 --stringparam chunk.size $(CHUNKSIZE) \
171 $< $<
172
173build/man: build/Makefile build/1.xml
174 time $(MAKE) -C build man \
175 MAN_PARAMS="--stringparam man.output.quietly 1 \
176 --stringparam refentry.meta.get.quietly 1 \
177 --stringparam man.charmap.enabled 0"
178
179debug:
180
181clean:
182 $(RM) -r build
Note: See TracBrowser for help on using the repository browser.