wireshark/docbook/Makefile.nmake

298 lines
9.8 KiB
Makefile

#
# Make the "Wireshark User Guide" and "Wireshark Developer Guide"
# in several formats.
# See the Readme.txt file for instructions.
#
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake [target ...]
#
############### YOU SHOULDN'T HAVE TO EDIT ANYTHING BELOW THIS LINE! ################
TOOLS_DIR=..\tools
include ..\config.nmake
top_srcdir=..
include Makefile.common
WSUG_SOURCE = $(WSUG_SOURCE) Makefile.nmake
WSDG_SOURCE = $(WSDG_SOURCE) Makefile.nmake
RELEASE_NOTES_SOURCE = $(RELEASE_NOTES_SOURCE) Makefile.nmake
# Asciidoc converter
A2X_HTML_OPTS="--stylesheet=ws.css"
A2X_TEXT_OPTS=
!ifdef LYNX
A2X_TEXT_OPTS=$(A2X_TEXT_OPTS) --lynx
!endif
# Automatically generate .pdf files from .fo files
.fo.pdf:
$(FOP) $< $@
.SUFFIXES: .fo .pdf
# Convert an AsciiDoc document to a DocBook chapter
# Used for chapter-by-chapter conversion from DocBook to AsciiDoc.
# .asciidoc -> whole book (.dbk) -> chapter (.xml)
# Can be removed after the User's Guide is converted.
.asciidoc.xml:
$(SH) <<
PATH=/usr/bin
$(A2X) --verbose \
--asciidoc-opts="--conf-file=asciidoc.conf --conf-file=asciidoctor-asciidoc.conf" \
--no-xmllint \
--format=docbook --doctype=book \
$<
<<
mv $*.xml $*.dbk
xmllint --xpath "//chapter | //preface" $*.dbk > $@
.SUFFIXES: .asciidoc .xml
# -- (Public) targets -------------------------------------------------------
# Make all (default)
all: all_x
# Make only the WSUG
wsug: wsug.validated wsug_x
# Make only the WSDG
wsdg: wsdg.validated wsdg_x
# Make only the release notes
release_notes: release_notes_x
# Clean all
clean:
rm -rf $(CLEANFILES) $(CLEANDIRS)
distclean: clean
maintainer-clean: distclean
# -- All -------------------------------------------------------------------------------
all_x: wsug.validated wsdg.validated wsug_x wsdg_x release_notes_x
# -- Documentation version ------------------------------------------------------------------------
# On every build, record the working copy revision string
# in git_version.xml (if the git version has changed).
# This is done during nmake "preprocessing" so that it's done *before*
# nmake gets the date/time of the dependency file(s)].
git_version_check: _FORCE_
$(SH) ./check_git_version.sh
git_version.xml: git_version_check
# -- User Guide ------------------------------------------------------------------------
wsug_x: wsug_html_chunked wsug_html user-guide-a4.pdf user-guide-us.pdf user-guide.chm
# validate the content
wsug.validated: $(WSUG_SOURCE) wsluarm
@ echo --- WSUG - VALIDATING XML ---
$(XMLLINT) --valid --noout user-guide.xml
touch $@
# create html single page file
wsug_html: wsug_html\index.html
wsug_html\index.html: $(WSUG_SOURCE) wsluarm
@ echo --- WSUG - HTML SINGLE PAGE ---
if not exist wsug_html\wsug_graphics\toolbar md wsug_html\wsug_graphics\toolbar
cp wsug_graphics/*.* wsug_html/wsug_graphics
cp common_graphics/*.* wsug_html/wsug_graphics
cp wsug_graphics/toolbar/* wsug_html/wsug_graphics/toolbar
cp ws.css wsug_html
$(XSLTPROC) --stringparam base.dir wsug_html/ $(COMMON_XSLTPROC_ARGS) \
$(SINGLE_XSLTPROC_ARGS) user-guide.xml > $@
-chmod -R og+rX wsug_html
# create html chunked page files
wsug_html_chunked: wsug_html_chunked\index.html
wsug_html_chunked\index.html: $(WSUG_SOURCE) wsluarm
@ echo --- WSUG - HTML CHUNKED ---
if not exist wsug_html_chunked\wsug_graphics\toolbar md wsug_html_chunked\wsug_graphics\toolbar
cp wsug_graphics/*.* wsug_html_chunked/wsug_graphics
cp common_graphics/*.* wsug_html_chunked/wsug_graphics
cp wsug_graphics/toolbar/* wsug_html_chunked/wsug_graphics/toolbar
cp ws.css wsug_html_chunked
$(XSLTPROC) --stringparam base.dir wsug_html_chunked/ $(COMMON_XSLTPROC_ARGS) \
$(CHUNKED_XSLTPROC_ARGS) user-guide.xml
-chmod -R og+rX wsug_html_chunked
# create pdf file (through XSL-FO), portrait pages on US letter paper (the default)
# you will get lot's of errors, but that's ok
user-guide-us.fo: $(WSUG_SOURCE) custom_layer_pdf.xsl wsluarm
!ifdef FOP
@ echo --- WSUG - PDF US PAPER ---
$(XSLTPROC) --stringparam paper.type letter --nonet custom_layer_pdf.xsl user-guide.xml > $@
!endif
# create pdf file (through XSL-FO), portrait pages on A4 paper
# you will get lot's of errors, but that's ok
user-guide-a4.fo: $(WSUG_SOURCE) custom_layer_pdf.xsl wsluarm
!ifdef FOP
@ echo --- WSUG - PDF A4 PAPER ---
$(XSLTPROC) --stringparam paper.type A4 --nonet custom_layer_pdf.xsl user-guide.xml > $@
!endif
# create MS html help file (through html chunked pages)
user-guide.chm: $(WSUG_SOURCE) wsluarm
!ifdef HHC_EXE
@ echo --- WSUG - MICROSOFT HTML HELP ---
if not exist wsug_chm\wsug_graphics\toolbar md wsug_chm\wsug_graphics\toolbar
-cp wsug_graphics/*.* wsug_chm/wsug_graphics
-cp common_graphics/*.* wsug_chm/wsug_graphics
-cp wsug_graphics/toolbar/* wsug_chm/wsug_graphics/toolbar
$(XSLTPROC) --stringparam base.dir wsug_chm/ $(COMMON_XSLTPROC_ARGS) \
$(HTMLHELP_XSLTPROC_ARGS) user-guide.xml
-$(HHC_EXE) htmlhelp.hhp
-mv htmlhelp.chm $@
-rm -r htmlhelp.hhp
-rm -r toc.hhc
!endif
wsluarm: make-wsluarm.pl $(WSLUA_MODULES)
if not exist wsluarm_src md wsluarm_src
$(PERL) make-wsluarm.pl $(WSLUA_MODULES)
touch wsluarm
# -- Developer's Guide ------------------------------------------------------------------------
wsdg_x: wsdg_html_chunked wsdg_html developer-guide-a4.pdf developer-guide-us.pdf developer-guide.chm
developer-guide.xml: developer-guide.asciidoc $(WSDG_FILES)
$(SH) <<
PATH=/usr/bin
$(A2X) --verbose \
--attribute=docinfo \
--asciidoc-opts="--conf-file=asciidoc.conf --conf-file=asciidoctor-asciidoc.conf" \
--no-xmllint \
--format=docbook \
developer-guide.asciidoc
<<
# validate the content
wsdg.validated: $(WSDG_SOURCE)
@ echo --- WSDG - VALIDATING XML ---
$(XMLLINT) --valid --noout developer-guide.xml
touch $@
# create html single page file
wsdg_html: wsdg_html\index.html
wsdg_html\index.html: $(WSDG_SOURCE)
@ echo --- WSDG - HTML SINGLE PAGE ---
if not exist wsdg_html\wsdg_graphics md wsdg_html\wsdg_graphics
if not exist wsdg_html\wsdg_graphics\toolbar md wsdg_html\wsdg_graphics\toolbar
cp wsdg_graphics/*.* wsdg_html/wsdg_graphics
cp common_graphics/*.* wsdg_html/wsdg_graphics
cp wsdg_graphics/toolbar/* wsdg_html/wsdg_graphics/toolbar
cp ws.css wsdg_html
$(XSLTPROC) --stringparam base.dir wsdg_html/ $(COMMON_XSLTPROC_ARGS) \
$(SINGLE_XSLTPROC_ARGS) developer-guide.xml > $@
-chmod -R og+rX wsdg_html
# create html chunked page files
wsdg_html_chunked: wsdg_html_chunked\index.html
wsdg_html_chunked\index.html: $(WSDG_SOURCE)
@ echo --- WSDG - HTML CHUNKED ---
if not exist wsdg_html_chunked\wsdg_graphics md wsdg_html_chunked\wsdg_graphics
if not exist wsdg_html_chunked\wsdg_graphics\toolbar md wsdg_html_chunked\wsdg_graphics\toolbar
cp wsdg_graphics/*.* wsdg_html_chunked/wsdg_graphics
cp common_graphics/*.* wsdg_html_chunked/wsdg_graphics
cp wsdg_graphics/toolbar/* wsdg_html_chunked/wsdg_graphics/toolbar
cp ws.css wsdg_html_chunked
$(XSLTPROC) --stringparam base.dir wsdg_html_chunked/ $(COMMON_XSLTPROC_ARGS) \
$(CHUNKED_XSLTPROC_ARGS) developer-guide.xml
# create pdf file (through XSL-FO), portrait pages on US letter paper (the default)
# you will get lot's of errors, but that's ok
developer-guide-us.fo: $(WSDG_SOURCE) custom_layer_pdf.xsl
!ifdef FOP
@ echo --- WSDG - PDF US PAPER ---
$(XSLTPROC) --stringparam paper.type letter --nonet custom_layer_pdf.xsl developer-guide.xml > $@
!endif
# create pdf file (through XSL-FO), portrait pages on A4 paper
# you will get lot's of errors, but that's ok
developer-guide-a4.fo: $(WSDG_SOURCE) custom_layer_pdf.xsl
!ifdef FOP
@ echo --- WSDG - PDF A4 PAPER ---
$(XSLTPROC) --stringparam paper.type A4 --nonet custom_layer_pdf.xsl developer-guide.xml > $@
!endif
# create MS html help file (through html chunked pages)
developer-guide.chm: $(WSDG_SOURCE)
!ifdef HHC_EXE
@ echo --- WSDG - MICROSOFT HTML HELP ---
if not exist wsdg_chm\wsdg_graphics md wsdg_chm\wsdg_graphics
if not exist wsdg_chm\wsdg_graphics\toolbar md wsdg_chm\wsdg_graphics\toolbar
cp wsdg_graphics/*.* wsdg_chm/wsdg_graphics
cp common_graphics/*.* wsdg_chm/wsdg_graphics
cp wsdg_graphics/toolbar/* wsdg_chm/wsdg_graphics/toolbar
$(XSLTPROC) --stringparam base.dir wsdg_chm/ $(COMMON_XSLTPROC_ARGS) \
$(HTMLHELP_XSLTPROC_ARGS) developer-guide.xml
-$(HHC_EXE) htmlhelp.hhp
-mv htmlhelp.chm $@
-rm -r htmlhelp.hhp
-rm -r toc.hhc
!endif
# -- Release Notes ------------------------------------------------------------------------
release_notes_x: release-notes.html release-notes.txt release-notes-a4.pdf release-notes-us.pdf
# create html single page file
release-notes.html: $(RELEASE_NOTES_SOURCE)
@ echo --- RELEASE NOTES - HTML ---
$(SH) <<
PATH=/usr/bin
$(A2X) -v --format=xhtml $(A2X_HTML_OPTS) release-notes.asciidoc
<<
# create txt single page file (through HTML)
release-notes.txt: $(RELEASE_NOTES_SOURCE)
@ echo --- RELEASE NOTES - TXT ---
$(SH) <<
PATH=/usr/bin
$(A2X) -v --format=text $(A2X_TEXT_OPTS) \
--xsltproc-opts "--stringparam generate.toc \"article nop\"" \
release-notes.asciidoc
<<
mv release-notes.text $@
news: release-notes.txt
copy release-notes.txt ..\NEWS
# create pdf file, portrait pages on US letter paper
release-notes-us.pdf: $(RELEASE_NOTES_SOURCE) custom_layer_pdf.xsl
@ echo --- RELEASE NOTES - PDF US LETTER PAPER ---
$(SH) <<
PATH=/usr/bin
$(A2X) --format=pdf $(A2X_HTML_OPTS) \
--xsltproc-opts "--stringparam paper.type letter --nonet" \
--xsl-file=custom_layer_pdf.xsl \
release-notes.asciidoc
<<
mv release-notes.pdf $@
# create pdf file, portrait pages on A4 paper
release-notes-a4.pdf: $(RELEASE_NOTES_SOURCE) custom_layer_pdf.xsl
@ echo --- RELEASE NOTES - PDF A4 PAPER ---
$(SH) <<
PATH=/usr/bin
$(A2X) --format=pdf $(A2X_HTML_OPTS) \
--xsltproc-opts "--stringparam paper.type A4 --nonet" \
--xsl-file=custom_layer_pdf.xsl \
release-notes.asciidoc
<<
mv release-notes.pdf $@
_FORCE_: ## Assumption: no file named _FORCE_ exists in the current directory