From 4fbb5dd11e62054c4cde5688e32ff1d3f74532f4 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Fri, 12 May 2017 16:03:01 +0200
Subject: [PATCH] The real example ...

---
 Doc/Makefile                         | 222 ++++++++++++++++++---------
 Doc/Sd1/Ref/Fig/.gitignore           |   1 -
 Doc/Sda1/Ref/Fig/.gitignore          |   1 -
 Doc/Sda2/Ref/Fig/.gitignore          |   1 -
 Doc/Sdi/Ref/Fig/.gitignore           |   1 -
 ws/Docbook/Extensions/Tdata/Makefile |  24 +--
 6 files changed, 158 insertions(+), 92 deletions(-)
 delete mode 100644 Doc/Sd1/Ref/Fig/.gitignore
 delete mode 100644 Doc/Sda1/Ref/Fig/.gitignore
 delete mode 100644 Doc/Sda2/Ref/Fig/.gitignore
 delete mode 100644 Doc/Sdi/Ref/Fig/.gitignore

diff --git a/Doc/Makefile b/Doc/Makefile
index 8bf863945..90637ad71 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -1,91 +1,161 @@
 SHELL = /bin/bash
 
 SCRIPTBASENAME=lectures
-
-#
-# Eclipse Help XSL related plugin parameters, see
-# http://docbook.sourceforge.net/release/xsl/current/doc/param.html
-#
-
-DOCMODULES=Sd1 Sda1 Sda2 Tdoc Sdi Persist
-
 BUILDROOT=target
 
 #+++ no changes below this line ++++++++++++++++++++++++++++++++++++
-
-include make.xsl
-
+#
+DIR := ${CURDIR}
 numCores=$(shell nproc --all)
 
-SAXONCMD=java -cp "/usr/share/java/Saxon-HE.jar:/usr/share/java/xercesImpl.jar:/usr/share/xmlmind/addon/config/common/xslthl/xslthl.jar" \
- -Dxslthl.config="file:///usr/share/xmlmind/addon/config/docbook5/xsl/highlighting/xslthl-config.xml" -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
+BUILDROOT_PROFILE=${BUILDROOT}/profile
+BUILDROOT_WEBHELP=${BUILDROOT}/webhelp
+BUILDROOT_EPUB=${BUILDROOT}/epub
+
+DBOOK=/usr/share/hdm-docbook-xsl
+DBOOK_XSL=${DBOOK}/docbook-xsl
+DBOOK_XSL_CUSTOM=${DBOOK}/CustomLayer
+DBOOK_XSL_PREPROCESS=${DBOOK}/Preprocess
+
+# Common Docbook transformation parameter
+dbookXslCommonParam=\
+keep.relative.image.uris=0 \
+callout.graphics=0 \
+callout.unicode=1 \
+graphicsize.use.img.src.path=1 \
+highlight.source=1 \
+id.warnings=1 \
+olink.debug=1
+
+# Pdf related Docbook transformation parameter
+dbookXslPdfParam=${dbookXslCommonParam} \
+fop1.extensions=1 \
+paper.type=A4
+
+# Slide related Docbook transformation parameter
+dbookXslSlideParam=${dbookXslCommonParam}
+
+# Epub related Docbook transformation parameter
+dbookXslEpubParam=${dbookXslCommonParam} \
+generate.manifest=1 \
+base.dir=.
+
+# Webhelp related Docbook transformation parameter
+dbookXslWebhelpParam=${dbookXslCommonParam} \
+generate.toc='appendix toc,title \
+article/appendix  nop \
+article   toc,title \
+book      toc,title,figure,table,example,equation \
+chapter   toc,title \
+appendix  toc,title \
+part      toc,title \
+preface   toc,title \
+reference toc,title \
+sect1     toc \
+sect2     toc \
+sect3     toc \
+sect4     toc \
+sect5     toc \
+section   toc \
+set       toc,title' \
+webhelp.base.dir=.
+
+# Required for docbook Xsl 1.0 based stylesheets
+SAXON6CMD=java -cp "/usr/share/java/saxon.jar:/usr/share/java/xslthl-2.1.3.jar" \
+          '-Dxslthl.config=file://${DBOOK_XSL}/highlighting/xslthl-config.xml' \
+          com.icl.saxon.StyleSheet
+
+# XSL 2.0 processor
+SAXONCMD=java -cp "/usr/share/hdm-docbook-xsl/docbook-xsl/tools/lib/saxon9he.jar:/usr/share/java/xercesImpl.jar:/usr/share/java/xslthl-2.1.3.jar" \
+-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
     -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl \
     -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration \
-   net.sf.saxon.Transform 
+    -Dxslthl.config=file://${DBOOK_XSL}/highlighting/xslthl-config.xml \
+   net.sf.saxon.Transform
 
-#Video webm-->mp4 conversion rule
+# Docbook related build rules
 #
-%.webm.mp4:%.webm
-	avconv -i $< -acodec libx264  -c:a libvorbis -r 10 $<.mp4 || rm -f $<.mp4
-	avconv -i $< -vframes 1 $<.png || rm -f $<.png
-
-webmSet = $(shell /bin/ls target/*/Ref/Video/*.webm 2>/dev/null)
-mp4Set  = $(foreach webmFile, $(webmSet), $(webmFile).mp4 )
-
-videoformats:$(mp4Set)
-
-all: ${BUILDROOT}/stage1
-	cd ${BUILDROOT}; tar c- ${DOCMODULES} | tar -x -C . #webhelp
-	cd ${BUILDROOT};zip -r webhelp/lectures.zip webhelp Slides ${DOCMODULES} extern -x webhelp/lectures.zip
-
-${BUILDROOT}/${SCRIPTBASENAME}_print.xml \
-${BUILDROOT}/${SCRIPTBASENAME}.xml: ${SCRIPTBASENAME}.xml Common/glossary.xml Common/bibliography.xml
-	mkdir -p ${BUILDROOT};
-	${SAXONCMD} -s:${SCRIPTBASENAME}.xml -xsl:../ws/Docbook/Extensions/Xsl/docbook2docbook.xsl >  ${BUILDROOT}/${SCRIPTBASENAME}.xml
-	${SAXONCMD} -s:${BUILDROOT}/${SCRIPTBASENAME}.xml -xsl:../ws/Docbook/Extensions/Xsl/docbook2html.xsl >  ${BUILDROOT}/${SCRIPTBASENAME}_html.xml
-	${SAXONCMD} -s:${BUILDROOT}/${SCRIPTBASENAME}.xml -xsl:../ws/Docbook/Extensions/Xsl/docbook2print.xsl >  ${BUILDROOT}/${SCRIPTBASENAME}_print.xml
-	cd ${BUILDROOT}; ${SAXONCMD} -s:${SCRIPTBASENAME}.xml -xsl:../../ws/Docbook/Extensions/Xsl/docbookExtractFig.xsl 
-	for module in ${DOCMODULES}; do \
-            tar c- $$module/Ref| tar -x -C ${BUILDROOT}; \
-          done;
-	$(MAKE) $(mp4Set)
-	cd ${BUILDROOT}; $(MAKE) -f ../make.rules -j ${numCores} pdf
-
-${BUILDROOT}/stage1:\
- ${BUILDROOT}/webhelp/index.html \
- ${BUILDROOT}/webhelp/lectures.epub \
- ${BUILDROOT}/webhelp/printversion.pdf \
- ${BUILDROOT}/mobil/index.html
-	touch ${BUILDROOT}/stage1
-
-${BUILDROOT}/webhelp/index.html:${BUILDROOT}/${SCRIPTBASENAME}.xml
-	cd  ${BUILDROOT};\
-	${SAXONCMD} -s:${SCRIPTBASENAME}.xml -xsl:../../ws/Docbook/Extensions/Xsl/docbook2slides.xsl \
-         callout.unicode=1 highlight.source=1;\
-        ln -sf /usr/share/reveal.js Slides;\
-        /usr/share/xmlmind/bin/xxetool convert ${XSLPARAM} db5.toWebHelp \
-            ${SCRIPTBASENAME}_html.xml -u webhelp; ln -sf /usr/share/hdmwebhelp/extern .
-
-${BUILDROOT}/mobil/index.html:${BUILDROOT}/${SCRIPTBASENAME}.xml
-	cd  ${BUILDROOT};\
-          /usr/share/xmlmind/bin/xxetool convert ${XSLPARAM} db5.toEclipseHelp \
-           ${SCRIPTBASENAME}_html.xml -u mobil
-
-${BUILDROOT}/webhelp/printversion.pdf: ${BUILDROOT}/${SCRIPTBASENAME}_print.xml
-	cd ${BUILDROOT};\
-          /usr/share/xmlmind/bin/xxetool convert ${XSLPARAM} ${XSLPARAM_pdf} db5.toPSFile \
-          ${SCRIPTBASENAME}_print.xml -s pdf -s "|pdf" -u  webhelp/printversion.pdf
-
-${BUILDROOT}/webhelp/lectures.epub: ${BUILDROOT}/${SCRIPTBASENAME}.xml
-	cd ${BUILDROOT};\
-          /usr/share/xmlmind/bin/xxetool convert ${XSLPARAM} \
-          db5.toEpub  ${SCRIPTBASENAME}.xml -u  webhelp/lectures.epub
-
-slides:
-	${SAXONCMD} -s:${SCRIPTBASENAME}.xml -xsl:../ws/Docbook/Extensions/Xsl/docbook2docbook.xsl >  ${BUILDROOT}/${SCRIPTBASENAME}.xml
-	cd  ${BUILDROOT};\
-          ${SAXONCMD} -s:${SCRIPTBASENAME}.xml -xsl:../../ws/Docbook/Extensions/Xsl/docbook2slides.xsl \
-         callout.unicode=1 highlight.source=1;\
+# Basic profiling
+%.print.xml %.html.xml: %.xml
+	mkdir -p $(@D);  ln -sf /usr/share/hdmwebhelp/extern $(@D)/..
+	 ${SAXONCMD} -s:$(<F) \
+            -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2docbook.xsl >  ${*}.xml
+	${SAXONCMD} -s:$(<F) \
+           -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2html.xsl > ${*}.html.xml
+	 ${SAXONCMD} -s:$(<F) \
+            -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2print.xsl > ${*}.print.xml
+	cd  $(@D); ${SAXONCMD} -s:$(<F) -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbookExtractFig.xsl
+	tar cv- `find . -name Ref -and -type d|grep -v ^\./target`|tar -x -C $(@D)
+	cp -f ${DBOOK_XSL_PREPROCESS}/make.image $(@D)
+	cd  $(@D); $(MAKE) -j ${numCores} -f make.image; #rm -rf `find . -name Generate`
+
+# Webhelp and indexing
+%.webhelp: %.html.xml
+	${SAXON6CMD} $< ${DBOOK_XSL_CUSTOM}/webhelp/webhelpHdm.xsl ${dbookXslWebhelpParam}
+	rsync -a ${DBOOK_XSL}/webhelp/template/* .     # Images, Css
+	cat ${DBOOK_XSL_CUSTOM}/webhelp/common/css/positioning.supp.css >> common/css/positioning.css  # highlighting supplements
+	cp ${DBOOK_XSL_CUSTOM}/webhelp/common/images/hdmlogo.svg common/images
+	rsync -a /usr/share/hdmwebhelp/extern/libs/mathjax .
+	cd ${DBOOK_XSL}/webhelp/template/search; \
+           cp nwSearchFnt.js default.props punctuation.props en-us.props stemmers/en_stemmer.js \
+           ${DIR}/search
+	java \
+           -DhtmlDir=. \
+           '-DindexerLanguage=en' \
+           '-DhtmlExtension=html' \
+           '-DdoStem=true' \
+           '-DtocFile=$${toc.file}' \
+           '-DindexerExcludedFiles=index.html' \
+           '-Dorg.xml.sax.driver=org.ccil.cowan.tagsoup.Parser' \
+           '-Djavax.xml.parsers.SAXParserFactory=org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl' \
+           -cp '${DBOOK_XSL}/extensions/webhelpindexer.jar:${DBOOK_XSL}/extensions/lucene-analyzers-3.0.0.jar:${DBOOK_XSL}/extensions/lucene-core-3.0.0.jar:${DBOOK_XSL}/extensions/tagsoup-1.2.1.jar' \
+            com.nexwave.nquindexer.IndexerMain
+	touch $*.webhelp
+
+# Epub
+%.epub: %.html.xml
+	${SAXON6CMD} $< ${DBOOK_XSL_CUSTOM}/epub/chunkHdm.xsl ${dbookXslEpubParam}
+	cd ..; rm -rf mimetype META-INF ${*}.epub
+	mv  mimetype META-INF ..
+	rsync -av --delete ${DBOOK_XSL}/images .     # Images, Css
+	cat ${DBOOK_XSL_CUSTOM}/webhelp/common/css/positioning.supp.css >> docbook-epub.css # highlighting supplements
+	cd ..; zip -rX ${*}.epub mimetype META-INF OEBPS
+
+%.slides: %.html.xml
+	${SAXONCMD} -s:$< -xsl:${DBOOK_XSL_CUSTOM}/slide/slideHdm.xsl ${dbookXslSlideParam}
+	rsync -a /usr/share/reveal.js .
+	touch $*.slides
+
+# PDF
+# See http://stackoverflow.com/questions/39786947/how-to-convert-to-pdf-from-xsl-fo-with-mathml/39796975
+%.pdf: %.print.xml
+	${SAXON6CMD} $*.print.xml ${DBOOK_XSL_CUSTOM}/pdf/docbookHdm.xsl ${dbookXslPdfParam} > $*.fo
+	/usr/share/hdm-fop/fop-2.2/fop/fop -fo $*.fo -pdf ${*}.pdf
+
+all: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.webhelp ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.epub ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slides ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.pdf
+
+${BUILDROOT_PROFILE}/${SCRIPTBASENAME}.print.xml \
+${BUILDROOT_PROFILE}/${SCRIPTBASENAME}.html.xml \
+${BUILDROOT_PROFILE}/${SCRIPTBASENAME}.xml: ${SCRIPTBASENAME}.xml
+
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.xml \
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml \
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.print.xml :\
+  ${BUILDROOT_PROFILE}/${SCRIPTBASENAME}.html.xml
+	rsync -a --delete ${BUILDROOT_PROFILE}/* ${BUILDROOT_WEBHELP}
+
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.webhelp: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
+	cd ${BUILDROOT_WEBHELP}; ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.webhelp
+
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.epub:  ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
+	cp -r ${BUILDROOT_PROFILE} ${BUILDROOT_WEBHELP}/OEBPS
+	cd ${BUILDROOT_WEBHELP}/OEBPS; ${MAKE} -f ../../../Makefile ${SCRIPTBASENAME}.epub
+
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slides: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
+	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.slides
+
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.pdf: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.print.xml
+	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.pdf
 
 clean:
 	rm -rf ${BUILDROOT}
diff --git a/Doc/Sd1/Ref/Fig/.gitignore b/Doc/Sd1/Ref/Fig/.gitignore
deleted file mode 100644
index b72dea3da..000000000
--- a/Doc/Sd1/Ref/Fig/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-Generate
diff --git a/Doc/Sda1/Ref/Fig/.gitignore b/Doc/Sda1/Ref/Fig/.gitignore
deleted file mode 100644
index b72dea3da..000000000
--- a/Doc/Sda1/Ref/Fig/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-Generate
diff --git a/Doc/Sda2/Ref/Fig/.gitignore b/Doc/Sda2/Ref/Fig/.gitignore
deleted file mode 100644
index b72dea3da..000000000
--- a/Doc/Sda2/Ref/Fig/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-Generate
diff --git a/Doc/Sdi/Ref/Fig/.gitignore b/Doc/Sdi/Ref/Fig/.gitignore
deleted file mode 100644
index b72dea3da..000000000
--- a/Doc/Sdi/Ref/Fig/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-Generate
diff --git a/ws/Docbook/Extensions/Tdata/Makefile b/ws/Docbook/Extensions/Tdata/Makefile
index 81f4c9e08..be01e7e4b 100644
--- a/ws/Docbook/Extensions/Tdata/Makefile
+++ b/ws/Docbook/Extensions/Tdata/Makefile
@@ -132,30 +132,30 @@ SAXONCMD=java -cp "/usr/share/hdm-docbook-xsl/docbook-xsl/tools/lib/saxon9he.jar
 	${SAXON6CMD} $*.print.xml ${DBOOK_XSL_CUSTOM}/pdf/docbookHdm.xsl ${dbookXslPdfParam} > $*.fo
 	/usr/share/hdm-fop/fop-2.2/fop/fop -fo $*.fo -pdf ${*}.pdf
 
-all: ${BUILDROOT_WEBHELP}/fig.webhelp ${BUILDROOT_WEBHELP}/fig.epub ${BUILDROOT_WEBHELP}/fig.slides ${BUILDROOT_WEBHELP}/fig.pdf
+all: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.webhelp ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.epub ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slides ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.pdf
 
 ${BUILDROOT_PROFILE}/${SCRIPTBASENAME}.print.xml \
 ${BUILDROOT_PROFILE}/${SCRIPTBASENAME}.html.xml \
 ${BUILDROOT_PROFILE}/${SCRIPTBASENAME}.xml: ${SCRIPTBASENAME}.xml
 
-${BUILDROOT_WEBHELP}/fig.xml \
-${BUILDROOT_WEBHELP}/fig.html.xml \
-${BUILDROOT_WEBHELP}/fig.print.xml :\
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.xml \
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml \
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.print.xml :\
   ${BUILDROOT_PROFILE}/${SCRIPTBASENAME}.html.xml
 	rsync -a --delete ${BUILDROOT_PROFILE}/* ${BUILDROOT_WEBHELP}
 
-${BUILDROOT_WEBHELP}/fig.webhelp: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
-	cd ${BUILDROOT_WEBHELP}; ${MAKE} -f ../../Makefile fig.webhelp
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.webhelp: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
+	cd ${BUILDROOT_WEBHELP}; ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.webhelp
 
-${BUILDROOT_WEBHELP}/fig.epub:  ${BUILDROOT_WEBHELP}/fig.html.xml
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.epub:  ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
 	cp -r ${BUILDROOT_PROFILE} ${BUILDROOT_WEBHELP}/OEBPS
-	cd ${BUILDROOT_WEBHELP}/OEBPS; ${MAKE} -f ../../../Makefile fig.epub
+	cd ${BUILDROOT_WEBHELP}/OEBPS; ${MAKE} -f ../../../Makefile ${SCRIPTBASENAME}.epub
 
-${BUILDROOT_WEBHELP}/fig.slides: ${BUILDROOT_WEBHELP}/fig.html.xml
-	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile fig.slides
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slides: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
+	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.slides
 
-${BUILDROOT_WEBHELP}/fig.pdf: ${BUILDROOT_WEBHELP}/fig.print.xml
-	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile fig.pdf
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.pdf: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.print.xml
+	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}fig.pdf
 
 clean:
 	rm -rf ${BUILDROOT}
-- 
GitLab