blob: 7e42be4012611e29348b3c7c74a4c0dc18dcba9a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
|
#####################################################################
#
# A-A-P file for making AsciiDoc distribution documentation.
# (you can obtain A-A-P from http://www.a-a-p.org)
#
# Stuart Rackham <srackham@gmail.com>
#####################################################################
:execute ../common.aap
ASCIIDOC = python ../asciidoc.py -a revnumber=$(VERS)@ -a revdate="$(DATE)@"
A2X = python ../a2x.py
:syseval which fop | :assign FOP
@if not _no.FOP:
:syseval which fop.sh | :assign FOP
:syseval which lynx | :assign LYNX # Converts HTML to text.
:syseval which xmllint | :assign XMLLINT # Validates XML.
:syseval which dblatex | :assign DBLATEX # Converts DocBook XML to PDF.
:syseval which aspell | :assign ASPELL
:syseval which xsltproc | :assign XSLTPROC
ROOT = asciidoc asciidoc.1
INFILES = $*(ROOT).txt
CHUNK_DIR = ./asciidoc.chunked
HTMLHELP_DIR = ./asciidoc.htmlhelp
HTMLHELP_FILE = asciidoc
OUTFILES = $*(ROOT).html $*(ROOT).css.html $*(ROOT).css-embedded.html \
asciidoc.pdf asciidoc.1.man a2x.1.man \
article.html book.html book-multi.html asciidoc.xml asciidoc.1.xml \
../BUGS ../CHANGELOG ../README ../INSTALL \
latex-backend.html \
$HTMLHELP_DIR/index.html \
$CHUNK_DIR/index.html \
article.pdf \
latexmath.pdf \
latex-filter.pdf \
source-highlight-filter.pdf \
music-filter.pdf \
book.epub \
article-standalone.html \
article-html5-toc2.html
TEST_FILES = $*(ROOT).css-embedded.html
article.css-embedded.html book.css-embedded.html \
article.xml book.xml book-multi.xml asciidoc.xml asciidoc.1.xml \
asciidoc.1.html a2x.1.xml music-filter.xml \
book.epub asciidoc.epub \
#####################################################################
# Filetype build rules.
#####################################################################
:rule %.epub : %.txt
:sys $A2X -f epub -d book --epubcheck --icons $source
:rule %.text : %.txt
# Convert AsciiDoc to HTML then use lynx(1) to convert HTML to text.
@if not _no.LYNX:
:print WARNING: lynx(1) unavailable: skipping $target file generation
@else:
opt = -f ../text.conf
@if source_list[0] == 'asciidoc.1.txt':
opt += -d manpage
@else:
opt += -n
:sys $ASCIIDOC $opt -b html4 -o - $source | \
lynx -dump -stdin > $target
:rule %.css.html : %.txt
opt =
@if source_list[0] == 'asciidoc.1.txt':
opt += -d manpage
@else:
opt += -n
opt += -a toc -a toclevels=2 -a scriptsdir=../javascripts
:sys $ASCIIDOC $opt -b xhtml11 -a linkcss -a icons -a stylesdir=../stylesheets -o $target $(source[0])
@if _no.XMLLINT:
:sys $XMLLINT --nonet --noout --valid $target
@else:
:print WARNING: xmllint(1) unavailable: skipping validation
:rule %.css-embedded.html : %.txt
opt =
@if source_list[0] == 'asciidoc.1.txt':
opt += -d manpage
@else:
opt += -n
opt += -a toc -a toclevels=2
:sys $ASCIIDOC -b xhtml11 $opt -o $target $(source[0])
@if _no.XMLLINT:
:sys $XMLLINT --nonet --noout --valid $target
@else:
:print WARNING: xmllint(1) unavailable: skipping validation
:rule %.xml : %.txt
opt =
@if source_list[0] in ('asciidoc.1.txt','a2x.1.txt'):
opt += -d manpage
@else:
opt += -n
@if source_list[0] == 'asciidoc.txt' or source_list[0].startswith('book'):
opt += -d book
:sys $ASCIIDOC $opt -b docbook $(source[0])
@if _no.XMLLINT:
:sys $XMLLINT --nonet --noout --valid $target
@else:
:print WARNING: xmllint(1) unavailable: skipping validation
:rule %.sgml : %.txt
opt =
@if source_list[0] in ('asciidoc.1.txt','a2x.1.txt'):
opt += -d manpage
@if source_list[0] == 'asciidoc.txt' or source_list[0].startswith('book'):
opt += -d book
:sys $ASCIIDOC $opt -b docbook-sgml $(source[0])
:rule %.html: %.xml
:sys $XSLTPROC --nonet --stringparam admon.textlabel 0 --stringparam html.stylesheet ./docbook-xsl.css ../docbook-xsl/xhtml.xsl $source >$target
:rule %.man : %.xml
:sys $XSLTPROC --nonet ../docbook-xsl/manpage.xsl $source
:sys touch $target # Dummy target.
:rule %.fo: %.xml
:sys $XSLTPROC --nonet --stringparam admon.textlabel 0 ../docbook-xsl/fo.xsl $source >$target
# This kludge forces the User Guide and LaTeX related PDFs to be generated
# using dblatex so we include a dblatex example in the distribution.
@if _no.DBLATEX:
asciidoc.pdf: asciidoc.txt
:sys $ASCIIDOC -b docbook $(source[0])
:sys $DBLATEX -p ../dblatex/asciidoc-dblatex.xsl -s ../dblatex/asciidoc-dblatex.sty -o $target asciidoc.xml
latexmath.pdf: latexmath.xml
:sys $DBLATEX -p ../dblatex/asciidoc-dblatex.xsl -s ../dblatex/asciidoc-dblatex.sty -o $target $source
latex-filter.pdf: latex-filter.xml
:sys $DBLATEX -p ../dblatex/asciidoc-dblatex.xsl -s ../dblatex/asciidoc-dblatex.sty -o $target $source
# Force the Source Highlighter PDF to be generated using dblatex
# because dblatex has builtin source code highlighting.
@if _no.DBLATEX:
source-highlight-filter.pdf: source-highlight-filter.xml
:sys $DBLATEX -p ../dblatex/asciidoc-dblatex.xsl -s ../dblatex/asciidoc-dblatex.sty -o $target $source
@if _no.FOP:
:rule %.pdf: %.fo
:sys $FOP $source $target
@elif _no.DBLATEX:
# Fall back to dblatex if no FOP.
:rule %.pdf: %.xml
:sys $DBLATEX -p ../dblatex/asciidoc-dblatex.xsl -s ../dblatex/asciidoc-dblatex.sty -o $target $source
@else:
:rule %.pdf:
:print WARNING: PDF processor unavailable: skipping $target file generation
#####################################################################
# Explicit file generation (cases that don't fit the rules).
#####################################################################
article-standalone.html: article.txt
:sys $ASCIIDOC -a data-uri -a icons -a toc -a max-width=55em -o $target $source
article-html5-toc2.html: article.txt
:sys $ASCIIDOC -b html5 -a icons -a toc2 -a theme=flask -o $target $source
asciidoc.1.html: asciidoc.1.txt
:sys $ASCIIDOC -d manpage -b html4 $source
@if _no.XMLLINT:
:sys $XMLLINT --nonet --noout --valid --html $target
@else:
:print WARNING: xmllint(1) unavailable: skipping validation
# User Guide 'chunked' into linked HTML pages.
$CHUNK_DIR/index.html: asciidoc.txt
:sys $A2X -fchunked -dbook --icons -D ./ asciidoc.txt
# HTML Help formatted User Guide.
$HTMLHELP_DIR/index.html: asciidoc.xml
:sys $A2X -fhtmlhelp -dbook --icons -D ./ asciidoc.txt
../BUGS: ../BUGS.text
# Make BUGS.text and copy to BUGS.
:copy ../BUGS.text ../BUGS
../CHANGELOG: ../CHANGELOG.text
# Make CHANGELOG.text and copy to CHANGELOG.
:copy ../CHANGELOG.text ../CHANGELOG
../README: ../README.text
# Make README.text and copy to README.
:copy ../README.text ../README
../INSTALL: ../INSTALL.text
# Make INSTALL.text and copy to INSTALL.
:copy ../INSTALL.text ../INSTALL
asciimathml.html: asciimathml.txt
:sys $ASCIIDOC -a asciimath $source
# No xmllint(1) checking -- fails on embedded JavaScript.
latexmathml.html: latexmathml.txt
:sys $ASCIIDOC -a latexmath $source
# No xmllint(1) checking -- fails on embedded JavaScript.
#####################################################################
# Build commands.
#####################################################################
all: $OUTFILES
clean:
:del {f} $OUTFILES $TEST_FILES
:del {f} *.bak # Remove aspell backups.
spell: $INFILES ../CHANGELOG.txt ../README.txt ../BUGS.txt ../INSTALL.txt \
a2x.1.txt faq.txt asciidocapi.txt testasciidoc.txt \
epub-notes.txt publishing-ebooks-with-asciidoc.txt \
source-highlight-filter.txt \
slidy.txt slidy-example.txt
# Interactively spell check all files.
@for s in source_list:
:sys {i} $ASPELL check -p ./asciidoc.dict $s
clean_testfiles:
:del {f} $TEST_FILES
:del {f} music*.png # Force Lilypond to run.
test: clean_testfiles $TEST_FILES
# Force generation and validation of .html and Docbook (.xml) files.
|