Add the recent fix for CID 105.
[obnox/wireshark/wip.git] / docbook / Makefile
1 #
2 # Make the "Ethereal User's Guide" in several formats.
3 # See the Readme.txt file for instructions.
4 #
5 # $Id$
6 #
7
8 # formatting objects processor
9 # Additional options to fop.
10 # This needs to contain at least the argument '-Xmx256m'
11 FOP_OPTS=-Xmx256m
12 # (comment this out, if you don't want pdf or don't have fop installed)
13 # for win32 (cygwin) environments (as of fop-0.20 the cygwin script does
14 # not use $FOP_OPTS)
15 FOP=fop-0.20.5/fop.bat
16 # for unix like environments (if you have problems with fop, try to use an absolute path here)
17 #FOP="/usr/share/fop-0.20.5/fop.sh"
18 # One SUSE 9.1 and 9.2 uncomment the following line (make sure you have at least fop-0.20.5-71.2)
19 #FOP=fop
20
21 # html help compiler (Win32 only)
22 # (comment this out, if you don't want chm or don't have hhc installed)
23 HHC="/cygdrive/c/Program Files/HTML Help Workshop/hhc.exe"
24 #HHC="true"
25
26 # elinks (text version of release notes)
27 # This could also be "lynx", or "true" if neither elinks nor lynx is installed
28 #ELINKS=elinks
29 ELINKS="true"
30
31 ############### YOU SHOULDN'T HAVE TO EDIT ANYTHING BELOW THIS LINE! ################
32
33 # the XSL processor
34 XSLTPROC="xsltproc"
35
36 # the XML validator (from the xsltproc package)
37 XMLLINT="xmllint"
38
39 # Automatically generate .pdf files from .fo files
40 .fo.pdf:
41         FOP_OPTS="$(FOP_OPTS)" $(FOP) $< $@
42
43 EUG_FILES =     \
44         eug_src/EUG_app_files.xml \
45         eug_src/EUG_app_howitworks.xml \
46         eug_src/EUG_app_messages.xml \
47         eug_src/EUG_app_protocols.xml \
48         eug_src/EUG_app_tools.xml \
49         eug_src/EUG_chapter_advanced.xml \
50         eug_src/EUG_chapter_build_install.xml \
51         eug_src/EUG_chapter_capture.xml \
52         eug_src/EUG_chapter_customize.xml \
53         eug_src/EUG_chapter_introduction.xml \
54         eug_src/EUG_chapter_io.xml \
55         eug_src/EUG_chapter_statistics.xml \
56         eug_src/EUG_chapter_troubleshoot.xml \
57         eug_src/EUG_chapter_use.xml \
58         eug_src/EUG_chapter_work.xml \
59         eug_src/EUG_meta_info.xml \
60         eug_src/EUG_preface.xml
61
62 EUG_GRAPHICS =  \
63         graphics/ethereal-3pane.png                     \
64         graphics/ethereal-analyze-menu.png              \
65         graphics/ethereal-bytes-pane-popup-menu.png     \
66         graphics/ethereal-bytes-pane-tabs.png           \
67         graphics/ethereal-bytes-pane.png                \
68         graphics/ethereal-capture-info.png              \
69         graphics/ethereal-capture-interfaces.png        \
70         graphics/ethereal-capture-menu.png              \
71         graphics/ethereal-capture-options.png           \
72         graphics/ethereal-capture-preferences.png       \
73         graphics/ethereal-choose-color-rule.png         \
74         graphics/ethereal-coloring-rules-dialog.png     \
75         graphics/ethereal-decode-as-show.png            \
76         graphics/ethereal-decode-as.png                 \
77         graphics/ethereal-details-pane-popup-menu.png   \
78         graphics/ethereal-details-pane.png              \
79         graphics/ethereal-display-filter-tcp.png        \
80         graphics/ethereal-edit-color-rule-dialog.png    \
81         graphics/ethereal-edit-menu.png                 \
82         graphics/ethereal-empty.png                     \
83         graphics/ethereal-enabled-protocols.png         \
84         graphics/ethereal-error-file-exists.png         \
85         graphics/ethereal-error-open.png                \
86         graphics/ethereal-export-pdml.png               \
87         graphics/ethereal-export-plain.png              \
88         graphics/ethereal-export-ps.png                 \
89         graphics/ethereal-export-psml.png               \
90         graphics/ethereal-export-selected.png           \
91         graphics/ethereal-file-menu.png                 \
92         graphics/ethereal-filter-add-expression.png     \
93         graphics/ethereal-filter-toolbar.png            \
94         graphics/ethereal-filters-2.png                 \
95         graphics/ethereal-filters.png                   \
96         graphics/ethereal-find-packet.png               \
97         graphics/ethereal-follow-stream.png             \
98         graphics/ethereal-go-menu.png                   \
99         graphics/ethereal-goto-packet.png               \
100         graphics/ethereal-gui-colors-preferences.png    \
101         graphics/ethereal-gui-columns-preferences.png   \
102         graphics/ethereal-gui-font-preferences.png      \
103         graphics/ethereal-gui-layout-preferences.png    \
104         graphics/ethereal-gui-preferences.png           \
105         graphics/ethereal-help-menu.png                 \
106         graphics/ethereal-list-pane.png                 \
107         graphics/ethereal-logo.png                      \
108         graphics/ethereal-main-toolbar.png              \
109         graphics/ethereal-main.png                      \
110         graphics/ethereal-menu.png                      \
111         graphics/ethereal-merge.png                     \
112         graphics/ethereal-nameresolution-preferences.png        \
113         graphics/ethereal-open.png                      \
114         graphics/ethereal-packet-format.png             \
115         graphics/ethereal-packet-pane-popup-menu.png    \
116         graphics/ethereal-packet-range.png              \
117         graphics/ethereal-packet-selected.png           \
118         graphics/ethereal-packet-sep-win.png            \
119         graphics/ethereal-print.png                     \
120         graphics/ethereal-printing-preferences.png      \
121         graphics/ethereal-save-as.png                   \
122         graphics/ethereal-statistics-menu.png           \
123         graphics/ethereal-stats-conversations.png       \
124         graphics/ethereal-stats-endpoints.png           \
125         graphics/ethereal-stats-hierarchy.png           \
126         graphics/ethereal-stats-iographs.png            \
127         graphics/ethereal-stats-srt-dcerpc-filter.png   \
128         graphics/ethereal-stats-srt-dcerpc.png          \
129         graphics/ethereal-stats-summary.png             \
130         graphics/ethereal-statusbar-empty.png           \
131         graphics/ethereal-statusbar-loaded.png          \
132         graphics/ethereal-statusbar-selected.png        \
133         graphics/ethereal-time-reference.png            \
134         graphics/ethereal-view-menu.png                 \
135         graphics/note.png                               \
136         graphics/tip.png                                \
137         graphics/warning.png                            \
138         graphics/toolbar/autoscroll_24.png              \
139         graphics/toolbar/capture_filter_24.png          \
140         graphics/toolbar/capture_interfaces_24.png      \
141         graphics/toolbar/capture_options_24.png         \
142         graphics/toolbar/capture_restart_24.png         \
143         graphics/toolbar/capture_start_24.png           \
144         graphics/toolbar/capture_stop_24.png            \
145         graphics/toolbar/colorize_24.png                \
146         graphics/toolbar/display_filter_24.png          \
147         graphics/toolbar/resize_columns_24.png          \
148         graphics/toolbar/stock_add_24.png               \
149         graphics/toolbar/stock_bottom_24.png            \
150         graphics/toolbar/stock_close_24.png             \
151         graphics/toolbar/stock_colorselector_24.png     \
152         graphics/toolbar/stock_help_24.png              \
153         graphics/toolbar/stock_jump_to_24.png           \
154         graphics/toolbar/stock_left_arrow_24.png        \
155         graphics/toolbar/stock_open_24.png              \
156         graphics/toolbar/stock_preferences_24.png       \
157         graphics/toolbar/stock_print_24.png             \
158         graphics/toolbar/stock_properties_24.png        \
159         graphics/toolbar/stock_refresh_24.png           \
160         graphics/toolbar/stock_right_arrow_24.png       \
161         graphics/toolbar/stock_save_24.png              \
162         graphics/toolbar/stock_save_as_24.png           \
163         graphics/toolbar/stock_search_24.png            \
164         graphics/toolbar/stock_stop_24.png              \
165         graphics/toolbar/stock_top_24.png               \
166         graphics/toolbar/stock_zoom_1_24.png            \
167         graphics/toolbar/stock_zoom_in_24.png           \
168         graphics/toolbar/stock_zoom_out_24.png
169
170 EDG_FILES =     \
171         edg_src/EDG_chapter_build_intro.xml     \
172         edg_src/EDG_chapter_capture.xml         \
173         edg_src/EDG_chapter_dissection.xml      \
174         edg_src/EDG_chapter_env_intro.xml       \
175         edg_src/EDG_chapter_libraries.xml       \
176         edg_src/EDG_chapter_sources.xml         \
177         edg_src/EDG_chapter_tools.xml           \
178         edg_src/EDG_chapter_userinterface.xml   \
179         edg_src/EDG_chapter_works.xml           \
180         edg_src/EDG_meta_info.xml               \
181         edg_src/EDG_preface.xml
182
183 EDG_GRAPHICS =  \
184         edg_graphics/ethereal-capture-sync.dia          \
185         edg_graphics/ethereal-capture-sync.png          \
186         edg_graphics/ethereal-capture_internals.dia     \
187         edg_graphics/ethereal-capture_internals.png     \
188         edg_graphics/ethereal-function-blocks.dia       \
189         edg_graphics/ethereal-function-blocks.png       \
190         edg_graphics/ethereal-logo.png                  \
191         edg_graphics/note.png                           \
192         edg_graphics/tip.png                            \
193         edg_graphics/warning.png
194
195 # user-guide.xml must be first in the list (to match $<)
196 EUG_SOURCE =    \
197         user-guide.xml          \
198         svn_version.xml         \
199         $(EUG_FILES)            \
200         $(EUG_GRAPHICS)
201
202 # developer-guide.xml must be first in the list (to match $<)
203 EDG_SOURCE =    \
204         developer-guide.xml     \
205         svn_version.xml         \
206         $(EDG_FILES)            \
207         $(EDG_GRAPHICS)
208
209 RELEASE_NOTES_SOURCE = \
210         release-notes.xml       \
211         svn_version.xml
212
213 CLEANFILES =    \
214         *.chm                   \
215         *.fo                    \
216         *.hhc                   \
217         *.hhp                   \
218         *.pdf                   \
219         *.validated             \
220         edg_chm                 \
221         edg_html                \
222         edg_html_chunked        \
223         eug_chm                 \
224         eug_html                \
225         eug_html_chunked        \
226         htmlhelp.*              \
227         release_notes_chm       \
228         release-notes.html      \
229         release-notes.txt       \
230         svn_version.xml         \
231
232
233 all: eug.validated edg.validated release_notes.validated eug edg release_notes
234
235 clean:
236         rm -rf $(CLEANFILES)
237
238 .SUFFIXES: .fo .pdf
239
240 #
241 # on every build, record the working copy revision string
242 #
243 # FORCE is the portable version of .PHONY
244 FORCE:
245
246 svn_version.xml: FORCE
247         echo -n '<!ENTITY SvnVersion "' > svn_version.xml
248         svnversion -n .                   >> svn_version.xml
249         echo '">'   >> svn_version.xml
250
251
252 eug: eug_html_chunked user-guide.html user-guide-a4.pdf user-guide-us.pdf user-guide.chm
253
254 # validate the content
255 eug.validated: $(EUG_SOURCE)
256         @ echo --- EUG - VALIDATING XML ---
257         $(XMLLINT) --valid --noout $<
258         touch $@
259
260 # create html single page file
261 user-guide.html: $(EUG_SOURCE)
262         @ echo --- EUG - HTML SINGLE PAGE ---
263         mkdir -p eug_html/graphics/toolbar
264         cp graphics/*.* eug_html/graphics
265         cp graphics/toolbar/* eug_html/graphics/toolbar
266         $(XSLTPROC) --nonet http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl $< > eug_html/$@
267         -chmod -R og+rX eug_html
268         
269 # create html chunked page files
270 eug_html_chunked: $(EUG_SOURCE)
271         @ echo --- EUG - HTML CHUNKED ---
272         mkdir -p eug_html_chunked/graphics/toolbar
273         cp graphics/*.* eug_html_chunked/graphics
274         cp graphics/toolbar/* eug_html_chunked/graphics/toolbar
275         $(XSLTPROC) --stringparam base.dir eug_html_chunked/ --stringparam  use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path graphics/ --stringparam section.autolabel 1 --stringparam  section.label.includes.component.label 1 --nonet http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl $<
276         -chmod -R og+rX eug_html_chunked
277
278 # create pdf file (through XSL-FO), portrait pages on US letter paper (the default)
279 # you will get lot's of errors, but that's ok
280 user-guide-us.fo: $(EUG_SOURCE)
281 ifdef FOP
282         @ echo --- EUG - PDF US PAPER ---
283         $(XSLTPROC) --stringparam paper.type letter --nonet custom_layer_pdf.xsl $< > $@
284 endif
285
286 # create pdf file (through XSL-FO), portrait pages on A4 paper
287 # you will get lot's of errors, but that's ok
288 user-guide-a4.fo: $(EUG_SOURCE)
289 ifdef FOP
290         @ echo --- EUG - PDF A4 PAPER ---
291         $(XSLTPROC) --stringparam paper.type A4 --nonet custom_layer_pdf.xsl $< > $@
292 endif
293
294 # create MS html help file (through html chunked pages)
295 user-guide.chm: $(EUG_SOURCE)
296 ifdef HHC
297         @ echo --- EUG - MICROSOFT HTML HELP ---
298         mkdir -p eug_chm/graphics/toolbar
299         -cp graphics/*.* eug_chm/graphics/
300         -cp graphics/toolbar/* eug_chm/graphics/toolbar/
301         $(XSLTPROC) --stringparam base.dir eug_chm/ --stringparam  use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path graphics/ --stringparam section.autolabel 1 --stringparam  section.label.includes.component.label 1 --nonet http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl $<
302         -$(HHC) htmlhelp.hhp
303         -mv htmlhelp.chm $@
304         -rm -r htmlhelp.hhp
305         -rm -r toc.hhc
306 endif
307
308
309 edg: edg_html_chunked developer-guide.html developer-guide-a4.pdf developer-guide-us.pdf developer-guide.chm
310
311 # validate the content
312 edg.validated: $(EDG_SOURCE)
313         @ echo --- EDG - VALIDATING XML ---
314         $(XMLLINT) --valid --noout $<
315         touch $@
316
317 # create html single page file
318 developer-guide.html: $(EDG_SOURCE)
319         @ echo --- EDG - HTML SINGLE PAGE ---
320         mkdir -p edg_html/edg_graphics
321         cp edg_graphics/* edg_html/edg_graphics
322         $(XSLTPROC) --nonet http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl $< > edg_html/$@
323         -chmod -R og+rX edg_html
324         
325 # create html chunked page files
326 edg_html_chunked: $(EDG_SOURCE)
327         @ echo --- EDG - HTML CHUNKED ---
328         mkdir -p edg_html_chunked
329         mkdir -p edg_html_chunked/edg_graphics
330         cp edg_graphics/* edg_html_chunked/edg_graphics
331         $(XSLTPROC) --stringparam base.dir edg_html_chunked/ --stringparam  use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path edg_graphics/ --stringparam section.autolabel 1 --stringparam  section.label.includes.component.label 1 --nonet http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl $<
332         -chmod -R og+rX edg_html
333
334 # create pdf file (through XSL-FO), portrait pages on US letter paper (the default)
335 # you will get lot's of errors, but that's ok
336 developer-guide-us.fo: $(EDG_SOURCE)
337 ifdef FOP
338         @ echo --- EDG - PDF US PAPER ---
339         $(XSLTPROC) --stringparam paper.type letter --nonet custom_layer_pdf.xsl $< > $@
340 endif
341
342 # create pdf file (through XSL-FO), portrait pages on A4 paper
343 # you will get lot's of errors, but that's ok
344 developer-guide-a4.fo: $(EDG_SOURCE)
345 ifdef FOP
346         @ echo --- EDG - PDF A4 PAPER ---
347         $(XSLTPROC) --stringparam paper.type A4 --nonet custom_layer_pdf.xsl $< > $@
348 endif
349
350 # create MS html help file (through html chunked pages)
351 developer-guide.chm: $(EDG_SOURCE)
352 ifdef HHC
353         @ echo --- EDG - MICROSOFT HTML HELP ---
354         mkdir -p edg_chm/edg_graphics
355         cp edg_graphics/* edg_chm/edg_graphics
356         $(XSLTPROC) --stringparam base.dir edg_chm/ --stringparam  use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path edg_graphics/ --stringparam section.autolabel 1 --stringparam  section.label.includes.component.label 1 --nonet http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl $<
357         -$(HHC) htmlhelp.hhp
358         -mv htmlhelp.chm $@
359         -rm -r htmlhelp.hhp
360         -rm -r toc.hhc
361 endif
362
363
364 release_notes: release-notes.html release-notes.txt release-notes-a4.pdf release-notes-us.pdf release-notes.chm
365
366 # validate the content
367 release_notes.validated: $(RELEASE_NOTES_SOURCE)
368         @ echo --- RELEASE NOTES - VALIDATING XML ---
369         $(XMLLINT) --valid --noout $<
370         touch $@
371
372 # create html single page file
373 release-notes.html: $(RELEASE_NOTES_SOURCE)
374         @ echo --- RELEASE NOTES - HTML ---
375         $(XSLTPROC) --nonet http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl $< > $@
376
377 # create txt single page file
378 release-notes.txt: $(RELEASE_NOTES_SOURCE)
379         @ echo --- RELEASE NOTES - HTML ---
380         $(XSLTPROC) --stringparam generate.toc "article nop" --nonet http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl $< | $(ELINKS) -dump -dump-width 72 > $@
381         
382 # create pdf file (through XSL-FO), portrait pages on US letter paper (the default)
383 # you will get lot's of errors, but that's ok
384 release-notes-us.fo: $(RELEASE_NOTES_SOURCE)
385 ifdef FOP
386         @ echo --- RELEASE NOTES - PDF US PAPER ---
387         $(XSLTPROC) --stringparam paper.type letter --nonet custom_layer_pdf.xsl $< > $@
388 endif
389
390 # create pdf file (through XSL-FO), portrait pages on A4 paper
391 # you will get lot's of errors, but that's ok
392 release-notes-a4.fo: $(RELEASE_NOTES_SOURCE)
393 ifdef FOP
394         @ echo --- RELEASE NOTES - PDF A4 PAPER ---
395         $(XSLTPROC) --stringparam paper.type A4 --nonet custom_layer_pdf.xsl $< > $@
396 endif
397
398 # create MS html help file (through html chunked pages)
399 release-notes.chm: $(RELEASE_NOTES_SOURCE)
400 ifdef HHC
401         @ echo --- RELEASE NOTES - MICROSOFT HTML HELP ---
402         $(XSLTPROC) --stringparam base.dir release_notes_chm/ --stringparam  use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path graphics/ --stringparam section.autolabel 1 --stringparam  section.label.includes.component.label 1 --nonet http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl $<
403         -$(HHC) htmlhelp.hhp
404         -mv htmlhelp.chm $@
405         -rm -r htmlhelp.hhp
406         -rm -r toc.hhc
407 endif
408