From 12248e4c3d6df32aea3a0eba0d771aaa42ebbf1e Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Fri, 19 May 2017 13:04:06 +0200
Subject: [PATCH] common make rules

---
 Doc/Makefile                         | 167 +-------------------------
 Doc/lectures.xml                     |  18 +--
 ws/Docbook/Extensions/Tdata/Makefile | 167 +-------------------------
 ws/Docbook/Preprocess/make.rules     | 172 +++++++++++++++++++++++++++
 4 files changed, 183 insertions(+), 341 deletions(-)
 create mode 100644 ws/Docbook/Preprocess/make.rules

diff --git a/Doc/Makefile b/Doc/Makefile
index f723aedf6..b354defb5 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -1,171 +1,6 @@
-SHELL = /bin/bash
-
 SCRIPTBASENAME=lectures
-BUILDROOT=target
-
-#+++ no changes below this line ++++++++++++++++++++++++++++++++++++
-#
-DIR := ${CURDIR}
-numCores=$(shell nproc --all)
-
-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 "${DBOOK_XSL}/extensions/saxon65.jar:${DBOOK_XSL}/tools/lib/saxon.jar:${DBOOK}/lib/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 "${DBOOK_XSL}/tools/lib/saxon9he.jar:/usr/share/java/xercesImpl.jar:${DBOOK}/lib/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 \
-    -Dxslthl.config=file://${DBOOK_XSL}/highlighting/xslthl-config.xml \
-   net.sf.saxon.Transform
-
-# Docbook related build rules
-#
-# 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:$*.xml \
-           -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2html.xsl > ${*}.html.xml
-	${SAXONCMD} -s:$*.xml \
-           -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2slide.xsl > ${*}.slide.xml
-	 ${SAXONCMD} -s:$*.xml \
-            -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
-	cp ${DBOOK_XSL_CUSTOM}/webhelp/common/images/favicon.ico .
-	rsync -a --exclude='.git' /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
-	rsync -av --delete ${DBOOK_XSL}/images OEBPS     # Images, Css
-	cat ${DBOOK_XSL_CUSTOM}/webhelp/common/css/positioning.supp.css >> OEBPS/docbook-epub.css # highlighting supplements
-	zip -rX ${*}.epub mimetype META-INF OEBPS
-
-%.slide: %.slide.xml
-	${SAXONCMD} -s:$< -xsl:${DBOOK_XSL_CUSTOM}/slide/slideHdm.xsl ${dbookXslSlideParam}
-	rsync -a /usr/share/reveal.js .
-	touch $*.slide
-
-# 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}/${SCRIPTBASENAME}.zip ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.epub ${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
-	mkdir -p ${BUILDROOT_WEBHELP}/OEBPS
-	rsync -a ${BUILDROOT_PROFILE}/* ${BUILDROOT_WEBHELP}/OEBPS
-	cd ${BUILDROOT_WEBHELP}; ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.epub
-
-${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slide: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
-	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.slide
-
-${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.pdf: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.print.xml
-	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.pdf
-
-
-${BUILDROOT}/${SCRIPTBASENAME}.zip:${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.webhelp \
-                                   ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slide
-	cd ${BUILDROOT}; zip -r ${SCRIPTBASENAME}.zip --exclude=webhelp/OEBPS/\* \
-         --exclude=${SCRIPTBASENAME}.epub --exclude=${SCRIPTBASENAME}.pdf webhelp
-
-clean:
-	rm -rf ${BUILDROOT}
-#end
+include ${DBOOK_XSL_PREPROCESS}/make.rules
diff --git a/Doc/lectures.xml b/Doc/lectures.xml
index 23f2f22fa..b26d6de64 100644
--- a/Doc/lectures.xml
+++ b/Doc/lectures.xml
@@ -80,7 +80,7 @@
 
       <listitem xml:id="prefaceFormatEpub">
         <para><filename
-        xlink:href="https://freedocs.mi.hdm-stuttgart.de/webhelp/lectures.epub">lectures.epub</filename>
+        xlink:href="https://freedocs.mi.hdm-stuttgart.de/lectures.epub">lectures.epub</filename>
         featuring the <xref linkend="glo_EPUB"/> 3 format containing <xref
         linkend="glo_SVG"/> images and MathML formulas based on <link
         xlink:href="https://www.mathjax.org">MathJax JavaScript</link>
@@ -108,15 +108,15 @@
           </listitem>
 
           <listitem>
-            <para>The author very much welcomes hints to appropriate software
-            accessing these pages.</para>
+            <para>The author very much welcomes hints to appropriate <xref
+            linkend="glo_EPUB"/> reader software accessing these pages.</para>
           </listitem>
         </itemizedlist>
       </listitem>
 
       <listitem xml:id="prefaceFormatPdf">
         <para><filename
-        xlink:href="https://freedocs.mi.hdm-stuttgart.de/webhelp/lectures.pdf">printversion.pdf</filename>
+        xlink:href="https://freedocs.mi.hdm-stuttgart.de/lectures.pdf">lectures.pdf</filename>
         featuring the <xref linkend="glo_PDF"/> format (hopefully) providing
         improved printout typography.</para>
 
@@ -129,12 +129,12 @@
 
       <listitem xml:id="prefaceFormatZip">
         <para>Self contained zip archive <link
-        xlink:href="https://freedocs.mi.hdm-stuttgart.de/webhelp/lectures.zip">lectures.zip</link>
-        of above offline resources including <filename
-        xlink:href="https://freedocs.mi.hdm-stuttgart.de/webhelp/printversion.pdf">printversion.pdf</filename>
+        xlink:href="https://freedocs.mi.hdm-stuttgart.de/lectures.zip">lectures.zip</link>
+        of above resources for offline usage excluding <filename
+        xlink:href="https://freedocs.mi.hdm-stuttgart.de/lectures.pdf">lectures.pdf</filename>
         and <filename
-        xlink:href="https://freedocs.mi.hdm-stuttgart.de/webhelp/lectures.epub">lectures.epub</filename>
-        for offline usage.</para>
+        xlink:href="https://freedocs.mi.hdm-stuttgart.de/lectures.epub">lectures.epub</filename>
+        .</para>
       </listitem>
     </itemizedlist>
   </preface>
diff --git a/ws/Docbook/Extensions/Tdata/Makefile b/ws/Docbook/Extensions/Tdata/Makefile
index f16ad8b30..1e8541b41 100644
--- a/ws/Docbook/Extensions/Tdata/Makefile
+++ b/ws/Docbook/Extensions/Tdata/Makefile
@@ -1,171 +1,6 @@
-SHELL = /bin/bash
-
 SCRIPTBASENAME=fig
-BUILDROOT=target
-
-#+++ no changes below this line ++++++++++++++++++++++++++++++++++++
-#
-DIR := ${CURDIR}
-numCores=$(shell nproc --all)
-
-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 "${DBOOK_XSL}/extensions/saxon65.jar:${DBOOK_XSL}/tools/lib/saxon.jar:${DBOOK}/lib/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 "${DBOOK_XSL}/tools/lib/saxon9he.jar:/usr/share/java/xercesImpl.jar:${DBOOK}/lib/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 \
-    -Dxslthl.config=file://${DBOOK_XSL}/highlighting/xslthl-config.xml \
-   net.sf.saxon.Transform
-
-# Docbook related build rules
-#
-# 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:$*.xml \
-           -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2html.xsl > ${*}.html.xml
-	${SAXONCMD} -s:$*.xml \
-           -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2slide.xsl > ${*}.slide.xml
-	 ${SAXONCMD} -s:$*.xml \
-            -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
-	cp ${DBOOK_XSL_CUSTOM}/webhelp/common/images/favicon.ico .
-	rsync -a --exclude='.git' /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
-	rsync -av --delete ${DBOOK_XSL}/images OEBPS     # Images, Css
-	cat ${DBOOK_XSL_CUSTOM}/webhelp/common/css/positioning.supp.css >> OEBPS/docbook-epub.css # highlighting supplements
-	zip -rX ${*}.epub mimetype META-INF OEBPS
-
-%.slide: %.slide.xml
-	${SAXONCMD} -s:$< -xsl:${DBOOK_XSL_CUSTOM}/slide/slideHdm.xsl ${dbookXslSlideParam}
-	rsync -a /usr/share/reveal.js .
-	touch $*.slide
-
-# 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}/${SCRIPTBASENAME}.zip ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.epub ${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
-	mkdir -p ${BUILDROOT_WEBHELP}/OEBPS
-	rsync -a ${BUILDROOT_PROFILE}/* ${BUILDROOT_WEBHELP}/OEBPS
-	cd ${BUILDROOT_WEBHELP}; ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.epub
-
-${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slide: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
-	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.slide
-
-${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.pdf: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.print.xml
-	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.pdf
-
-
-${BUILDROOT}/${SCRIPTBASENAME}.zip:${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.webhelp \
-                                   ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slide
-	cd ${BUILDROOT}; zip -r ${SCRIPTBASENAME}.zip --exclude=webhelp/OEBPS/\* \
-         --exclude=${SCRIPTBASENAME}.epub --exclude=${SCRIPTBASENAME}.pdf webhelp
-
-clean:
-	rm -rf ${BUILDROOT}
-#end
+include ${DBOOK_XSL_PREPROCESS}/make.rules
diff --git a/ws/Docbook/Preprocess/make.rules b/ws/Docbook/Preprocess/make.rules
new file mode 100644
index 000000000..d092b91e1
--- /dev/null
+++ b/ws/Docbook/Preprocess/make.rules
@@ -0,0 +1,172 @@
+SHELL = /bin/bash
+DIR := ${CURDIR}
+numCores=$(shell nproc --all)
+
+BUILDROOT=target
+
+BUILDROOT_PROFILE=${BUILDROOT}/profile
+BUILDROOT_WEBHELP=${BUILDROOT}/webhelp
+BUILDROOT_EPUB=${BUILDROOT}/epub
+
+DBOOK_XSL=${DBOOK}/docbook-xsl
+DBOOK_XSL_CUSTOM=${DBOOK}/CustomLayer
+
+# 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 "${DBOOK_XSL}/extensions/saxon65.jar:${DBOOK_XSL}/tools/lib/saxon.jar:${DBOOK}/lib/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 "${DBOOK_XSL}/tools/lib/saxon9he.jar:/usr/share/java/xercesImpl.jar:${DBOOK}/lib/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 \
+    -Dxslthl.config=file://${DBOOK_XSL}/highlighting/xslthl-config.xml \
+   net.sf.saxon.Transform
+
+# Docbook related build rules
+#
+# 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:$*.xml \
+           -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2html.xsl > ${*}.html.xml
+	${SAXONCMD} -s:$*.xml \
+           -xsl:${DBOOK_XSL_PREPROCESS}/Xsl/docbook2slide.xsl > ${*}.slide.xml
+	 ${SAXONCMD} -s:$*.xml \
+            -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
+	cp ${DBOOK_XSL_CUSTOM}/webhelp/common/images/favicon.ico .
+	rsync -a --exclude='.git' /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
+	rsync -av --delete ${DBOOK_XSL}/images OEBPS     # Images, Css
+	cat ${DBOOK_XSL_CUSTOM}/webhelp/common/css/positioning.supp.css >> OEBPS/docbook-epub.css # highlighting supplements
+	zip -rX ${*}.epub mimetype META-INF OEBPS
+
+%.slide: %.slide.xml
+	${SAXONCMD} -s:$< -xsl:${DBOOK_XSL_CUSTOM}/slide/slideHdm.xsl ${dbookXslSlideParam}
+	rsync -a /usr/share/reveal.js .
+	touch $*.slide
+
+# PDF
+# See http://stackoverflow.com/questions/39786947/how-to-convert-to-pdf-from-xsl-fo-with-mathml/39796975
+%.pdf: %.print.xml
+	/usr/share/hdm-fop/fop-2.2/fop/fop -xml $*.print.xml -xsl ${DBOOK_XSL_CUSTOM}/pdf/docbookHdm.xsl -pdf ${*}.pdf
+
+%.fo: %.print.xml # for debugging
+	${SAXON6CMD} $*.print.xml ${DBOOK_XSL_CUSTOM}/pdf/docbookHdm.xsl ${dbookXslPdfParam} > $*.fo
+
+all: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.zip ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.epub ${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 --exclude=mediaobjects.list --exclude=make.image ${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
+	mkdir -p ${BUILDROOT_WEBHELP}/OEBPS
+	rsync -a ${BUILDROOT_PROFILE}/* ${BUILDROOT_WEBHELP}/OEBPS
+	cd ${BUILDROOT_WEBHELP}; ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.epub
+
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slide: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.html.xml
+	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.slide
+
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.pdf: ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.print.xml
+	cd ${BUILDROOT_WEBHELP};  ${MAKE} -f ../../Makefile ${SCRIPTBASENAME}.pdf
+
+
+${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.zip:${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.webhelp \
+                                   ${BUILDROOT_WEBHELP}/${SCRIPTBASENAME}.slide
+	cd ${BUILDROOT_WEBHELP}; zip -r ${SCRIPTBASENAME}.zip --exclude=OEBPS/\* --exclude=META-INF/\* --exclude=mimetype \
+         --exclude=${SCRIPTBASENAME}.epub --exclude=${SCRIPTBASENAME}.pdf webhelp --exclude=${SCRIPTBASENAME}.zip *
+
+clean:
+	rm -rf ${BUILDROOT}
+
+diff:
+	diff -r --brief targetReference/ target|grep -v pdf
+
+
+#end
-- 
GitLab