############################################################################
# File : xml.mak
# Function : Produce DocBook based documentation output
# Dependencies : NMAKE.EXE (Microsoft)
#
############################################################################
#----------------------------------------------
# Set the name of the main XML source
#----------------------------------------------
SOURCE=docbook_win32_xml_setup
#----------------------------------------------
# Configure the home of the tools...
#----------------------------------------------
XFC_HOME=d:\tools\xml\xfc-09
SAXON_HOME=d:\tools\xml\saxon6_5_1
FOP_HOME=d:\tools\xml\fop-0.20.3
JHHOME=c:\jh1.1
JAVAJAR=$(JAVA_HOME)\bin\jar
#----------------------------------------------
# Configure the home of HTML Help Workshop in
# PATH environment variable
#----------------------------------------------
PATH=$(PATH);C:\"Program Files\HTML Help Workshop"
#----------------------------------------------
# Configure location of stylesheets
#----------------------------------------------
XSL_HOME=d:\tools\xml\docbook-xsl
XSL_HTML=$(XSL_HOME)\html\docbook.xsl
XSL_XHTML=$(XSL_HOME)\xhtml\docbook.xsl
XSL_HTML_HELP=$(XSL_HOME)\htmlhelp\htmlhelp.xsl
XSL_JAVA_HELP=$(XSL_HOME)\javahelp\javahelp.xsl
XSL_HTML_CHUNK=$(XSL_HOME)\html\chunk.xsl
XSL_XHTML_CHUNK=$(XSL_HOME)\xhtml\chunk.xsl
XSL_FO=$(XSL_HOME)\fo\docbook.xsl
#----------------------------------------------
# Configure XSL parameters for HTML generation
#----------------------------------------------
XSL_HTML_PARM_1=shade.verbatim="1" section.autolabel="1"
XSL_HTML_PARM_2=callout.graphics.path="images/callouts/gif/"
XSL_HTML_PARM_3=callout.graphics="1" callout.graphics.extension=".gif"
XSL_HTML_PARMS=$(XSL_HTML_PARM_1) $(XSL_HTML_PARM_2) $(XSL_HTML_PARM_3)
#----------------------------------------------
# Configure XSL parameters for PDF generation
#----------------------------------------------
XSL_FO_PARM_01=paper.type="A4"
XSL_FO_PARM_02=draft.watermark.image=" "
XSL_FO_PARM_03=ulink.show="1" ulink.footnotes="0" ulink.hyphenate=" "
XSL_FO_PARM_04=section.autolabel="1"
XSL_FO_PARM_05=generate.index="1"
XSL_FO_PARM_06=page.margin.top="0.5in"
XSL_FO_PARM_07=body.margin.top="0.5in"
XSL_FO_PARM_08=page.margin.bottom="0.5in"
XSL_FO_PARM_09=body.margin.bottom="0.5in"
# fop.extensions="1" enables bookmarks:
# not to be used in RTF generation
# due to bug in XFC
XSL_FO_PARM_10=fop.extensions="1"
XSL_FO_PARMS=$(XSL_HTML_PARMS) $(XSL_FO_PARM_01)
XSL_FO_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_02)
XSL_FO_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_03)
XSL_FO_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_04)
XSL_FO_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_05)
XSL_FO_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_06)
XSL_FO_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_07)
XSL_FO_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_08)
XSL_FO_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_09)
XSL_RTF_PARMS=$(XSL_FO_PARMS)
XSL_PDF_PARMS=$(XSL_FO_PARMS) $(XSL_FO_PARM_10)
#----------------------------------------------
# All code to follow need not to be changed if you
# adhere to the following directory structure:
#
# <your DocBook project directory>
# |
# +----- ~temp (intermediate build products)
# |
# +----- source (DocBook XML sources)
# | |
# | +----- img
# |
# +----- target (generated publications)
# |
# +----- html
# |
# +----- html-chunk
# |
# +----- htmlhelp
# |
# +----- javahelp
# |
# +----- pdf
# |
# +----- rtf
# |
# +----- xhtml
# |
# +----- xhtml-chunk
#
#----------------------------------------------
#----------------------------------------------
# Directory structure
#----------------------------------------------
S=.
PATH2ROOT=..
PATH2TARGET=..\target
T_XML_TEMP=$(PATH2ROOT)\~temp
T_XML_HTML=$(PATH2TARGET)\html
T_XML_XHTML=$(PATH2TARGET)\xhtml
T_XML_PDF=$(PATH2TARGET)\pdf
T_XML_RTF=$(PATH2TARGET)\rtf
T_XML_HTML_CHUNK=$(PATH2TARGET)\html-chunk
T_XML_XHTML_CHUNK=$(PATH2TARGET)\xhtml-chunk
T_XML_HTML_HELP=$(PATH2TARGET)\htmlhelp
T_XML_JAVA_HELP=$(PATH2TARGET)\javahelp
#----------------------------------------------
# Win32 Tooling: HTML Help Workshop
#----------------------------------------------
HHC=hhc.exe
#----------------------------------------------
# Java tooling
#----------------------------------------------
HSVIEWER=$(JHHOME)\demos\bin\hsviewer1_1
#----------------------------------------------
# Program macro's
#----------------------------------------------
XFC_CLASSPATH=$(XFC_HOME)\xfc.jar;$(XFC_HOME)\jaxp.jar
XFC_CLASSPATH=$(XFC_CLASSPATH);$(XFC_HOME)\sax.jar;$(XFC_HOME)\xp.jar
XFC=java -cp $(XFC_CLASSPATH) com.xmlmind.fo.converter.Driver
SAXON=java -jar $(SAXON_HOME)\saxon.jar
FOP_CLASSPATH=$(FOP_HOME)\build\fop.jar;$(FOP_HOME)\lib\batik.jar
FOP_CLASSPATH=$(FOP_CLASSPATH);$(FOP_HOME)\lib\xalan-2.0.0.jar
FOP_CLASSPATH=$(FOP_CLASSPATH);$(FOP_HOME)\lib\xerces-1.2.3.jar
FOP_CLASSPATH=$(FOP_CLASSPATH);$(FOP_HOME)\lib\avalon-framework-4.0.jar
FOP_CLASSPATH=$(FOP_CLASSPATH);$(FOP_HOME)\lib\logkit-1.0.jar;
FOP_CLASSPATH=$(FOP_CLASSPATH);$(FOP_HOME)\lib\jimi-1.0.jar
FOP=java -cp $(FOP_CLASSPATH) org.apache.fop.apps.Fop
#----------------------------------------------
# rules
#----------------------------------------------
.SUFFIXES: .xml .html
.SUFFIXES: .xml .fo
.SUFFIXES: .fo-pdf .pdf
.SUFFIXES: .fo-rtf .rtf
.SUFFIXES: .xml .xhtml
.SUFFIXES: .xml .chm
.SUFFIXES: .xml .hs
#----------------------------------------------
# Products
#----------------------------------------------
all: html xhtml pdf rtf \
html-chunk xhtml-chunk \
htmlhelp javahelp
html: $(T_XML_HTML)\$(SOURCE).html
xhtml: $(T_XML_XHTML)\$(SOURCE).xhtml
pdf: $(T_XML_TEMP)\$(SOURCE).fo-pdf $(T_XML_PDF)\$(SOURCE).pdf
rtf: $(T_XML_TEMP)\$(SOURCE).fo-rtf $(T_XML_RTF)\$(SOURCE).rtf
htmlhelp: $(T_XML_HTML_HELP)\$(SOURCE).chm
html-chunk: $(T_XML_HTML_CHUNK)\index.html
xhtml-chunk: $(T_XML_XHTML_CHUNK)\index.html
javahelp: $(T_XML_JAVA_HELP)\$(SOURCE).jar
#----------------------------------------------
{$(S)}.xml{$(T_XML_HTML)}.html:
@echo Generating $(@B).html ...
@$(SAXON) -o $(T_XML_HTML)\$(@B).html $(S)\$(@B).xml $(XSL_HTML) $(XSL_HTML_PARMS)
#----------------------------------------------
{$(S)}.xml{$(T_XML_XHTML)}.xhtml:
@echo Generating $(@B).xhtml ...
@$(SAXON) -o $(T_XML_XHTML)\$(@B).xhtml $(S)\$(@B).xml $(XSL_XHTML)
#----------------------------------------------
{$(S)}.xml{$(T_XML_TEMP)}.fo-pdf:
@echo Generating $(@B).fo-pdf ...
@$(SAXON) -o $(T_XML_TEMP)\$(@B).fo-pdf $(S)\$(@B).xml $(XSL_FO) $(XSL_PDF_PARMS)
#----------------------------------------------
{$(S)}.xml{$(T_XML_TEMP)}.fo-rtf:
@echo Generating $(@B).fo-rtf ...
@$(SAXON) -o $(T_XML_TEMP)\$(@B).fo-rtf $(S)\$(@B).xml $(XSL_FO) $(XSL_RTF_PARMS)
#----------------------------------------------
{$(T_XML_TEMP)}.fo-pdf{$(T_XML_PDF)}.pdf:
@echo Generating $(@B).pdf ...
@copy $(T_XML_TEMP)\$(@B).fo-pdf
@$(FOP) -q -fo $(@B).fo-pdf -pdf $(T_XML_PDF)\$(@B).pdf
@del $(@B).fo-pdf
#----------------------------------------------
{$(T_XML_TEMP)}.fo-rtf{$(T_XML_RTF)}.rtf:
@echo Generating $(@B).rtf ...
@copy $(T_XML_TEMP)\$(@B).fo-rtf
$(XFC) $(@B).fo-rtf $(T_XML_RTF)\$(@B).rtf
@del $(@B).fo-rtf
#----------------------------------------------
$(T_XML_HTML_CHUNK)\index.html: $(S)\$(SOURCE).xml
@echo Generating html chunks ...
@$(SAXON) $(S)\$(SOURCE).xml $(XSL_HTML_CHUNK) $(XSL_HTML_PARMS)
@move *.html $(T_XML_HTML_CHUNK)
#----------------------------------------------
$(T_XML_XHTML_CHUNK)\index.html: $(S)\$(SOURCE).xml
@echo Generating xhtml chunks ...
@$(SAXON) $(S)\$(SOURCE).xml $(XSL_XHTML_CHUNK)
@move *.html $(T_XML_XHTML_CHUNK)
#----------------------------------------------
{$(S)}.xml{$(T_XML_HTML_HELP)}.chm:
@echo Generating $(@B).chm ...
@$(SAXON) $(S)\$(@B).xml $(XSL_HTML_HELP)
@-1 $(HHC) htmlhelp.hhp
@move *.html $(T_XML_TEMP)
@move *.hhp $(T_XML_TEMP)
@move *.hhc $(T_XML_TEMP)
@move *.chm $(T_XML_HTML_HELP)\$(SOURCE).chm
#----------------------------------------------
$(T_XML_JAVA_HELP)\$(SOURCE).jar: $(S)\$(SOURCE).xml
@echo Generating JavaHelp ...
@$(SAXON) $(S)\$(SOURCE).xml $(XSL_JAVA_HELP)
@$(JAVAJAR) cf $(T_XML_JAVA_HELP)\$(SOURCE).jar jhelp*.* *.html img\*.*
@if exist *.html del *.html /Q
@if exist jhelp*.* del jhelp*.* /Q
#----------------------------------------------
saxon:
$(SAXON) -?
hhc:
$(HHC) -?
fop:
$(FOP) -?
xfc:
$(XFC) -help
v-javahelp: javahelp
$(HSVIEWER) jhelpset.hs $(T_XML_JAVA_HELP)\$(SOURCE).jar
showjar:
$(JAVAJAR) tf $(T_XML_JAVA_HELP)\$(SOURCE).jar
v-pdf: pdf
@start /B $(T_XML_PDF)\$(SOURCE).pdf
#-----------------------
clean:
@if exist $(T_XML_TEMP)\*.h* del $(T_XML_TEMP)\*.h*
@if exist $(T_XML_TEMP)\*.fo del $(T_XML_TEMP)\*.fo
@if exist $(T_XML_HTML)\*.h* del $(T_XML_HTML)\*.h*
@if exist $(T_XML_XHTML)\*.x* del $(T_XML_XHTML)\*.x*
@if exist $(T_XML_PDF)\*.pdf del $(T_XML_PDF)\*.pdf
@if exist $(T_XML_HTML_CHUNK)\*.h* del $(T_XML_HTML_CHUNK)\*.h*
@if exist $(T_XML_XHTML_CHUNK)\*.h* del $(T_XML_XHTML_CHUNK)\*.h*
@if exist $(T_XML_HTML_HELP)\*.c* del $(T_XML_HTML_HELP)\*.c*
@if exist $(T_XML_JAVA_HELP)\*.h* del $(T_XML_JAVA_HELP)\*.h*
@if exist $(T_XML_JAVA_HELP)\*.j* del $(T_XML_JAVA_HELP)\*.j*
@if exist $(T_XML_JAVA_HELP)\*.x* del $(T_XML_JAVA_HELP)\*.x*
#-----------------------
# end of makefile
|