From 30553c71af363d3db5423884911ad0006a274abb Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Wed, 26 Mar 2008 06:13:59 +0000 Subject: [PATCH] Added checks and hacks to various makefiles to enable building under Cygwin. This stuff is ugly and maybe not worth the mess and trouble, but does seem to work as expected and not break anything else. --- releasetools/Targets.mk | 4 +-- releasetools/Variables.mk | 58 +++++++++++++++++++++++++++++++++------ xsl/Makefile.incl | 56 ++++++++++++++++++++++++++++++------- xsl/docsrc/Makefile | 40 +++++++++++++++++++++++++++ xsl/html/Makefile | 12 ++++++++ xsl/slides/fo/Makefile | 3 +- xsl/slides/html/Makefile | 1 + 7 files changed, 153 insertions(+), 21 deletions(-) diff --git a/releasetools/Targets.mk b/releasetools/Targets.mk index 2f5bea4dc..1309cd401 100644 --- a/releasetools/Targets.mk +++ b/releasetools/Targets.mk @@ -56,8 +56,8 @@ NEWS.xml: ChangeLog.xml distro="$(DISTRO)" \ previous-release="$(PREVIOUS_RELEASE)" \ release-version="$(RELVER)" \ - element.file="$(shell $(cd -P $(dirname $(DOCBOOK_ELEMENTS)) && pwd -P))" \ - param.file="$(shell $(cd -P $(dirname $(XSL_PARAMS)) && pwd -P))" + element.file="$(DOCBOOK_ELEMENTS)" \ + param.file="$(XSL_PARAMS)" NEWS.html: NEWS.xml $(XSLT) $< $(DOC_LINK_STYLE) $@ \ diff --git a/releasetools/Variables.mk b/releasetools/Variables.mk index 0afb978bc..cd9ccc9cf 100644 --- a/releasetools/Variables.mk +++ b/releasetools/Variables.mk @@ -17,9 +17,27 @@ FRESHMEAT_SUBMIT=$(DOCBOOK_SVN)/releasetools/freshmeat-submit CATALOGMANAGER=$(DOCBOOK_SVN)/releasetools/.CatalogManager.properties.example INSTALL_SH=$(DOCBOOK_SVN)/releasetools/install.sh +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +MAKECATALOG=../releasetools/make-catalog.xsl +else +MAKECATALOG=$(DOCBOOK_SVN)/releasetools/make-catalog.xsl +endif +else MAKECATALOG=$(DOCBOOK_SVN)/releasetools/make-catalog.xsl +endif +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +DOCBUILD_STYLESHEETS=../../xsl/tools/xsl/build +RELEASEDOC_STYLESHEETS=../xsl/tools/xsl/build +else DOCBUILD_STYLESHEETS=$(DOCBOOK_SVN)/xsl/tools/xsl/build +RELEASEDOC_STYLESHEETS=$(DOCBOOK_SVN)/xsl/tools/xsl/build +endif +else +RELEASEDOC_STYLESHEETS=$(DOCBOOK_SVN)/xsl/tools/xsl/build +endif PARAMPROF=$(VPATH)/.param.profiled PARAMSTRIP=$(VPATH)/.param.stripped @@ -44,10 +62,10 @@ MAKE_PARAMS_XSL=$(DOCBUILD_STYLESHEETS)/make-xsl-params.xsl # XSL PI files to PI list MAKE_PI_XSL=$(DOCBUILD_STYLESHEETS)/make-xsl-pi.xsl # generated elements list -DOCBOOK_ELEMENTS=$(DOCBUILD_STYLESHEETS)/docbook-elements.xsl -XSL_PARAMS=$(DOCBUILD_STYLESHEETS)/xsl-params.xsl -XSL_PI=$(DOCBUILD_STYLESHEETS)/xsl-pi.xsl -DOCPARAM2TXT=$(DOCBUILD_STYLESHEETS)/docparam2txt.xsl +DOCBOOK_ELEMENTS=$(RELEASEDOC_STYLESHEETS)/docbook-elements.xsl +XSL_PARAMS=$(RELEASEDOC_STYLESHEETS)/xsl-params.xsl +XSL_PI=$(RELEASEDOC_STYLESHEETS)/xsl-pi.xsl +DOCPARAM2TXT=$(RELEASEDOC_STYLESHEETS)/docparam2txt.xsl # reference.xml to reference.html RSTYLE=$(DOCBUILD_STYLESHEETS)/reference.xsl @@ -57,18 +75,34 @@ REFERENCEFOXSL=$(DOCBUILD_STYLESHEETS)/reference-fo.xsl REFERENCETXTXSL=$(DOCBUILD_STYLESHEETS)/reference-txt.xsl # RELEASE-NOTES.xml to RELEASE-NOTES.html -DOC_LINK_STYLE=$(DOCBUILD_STYLESHEETS)/doc-link-docbook.xsl +DOC_LINK_STYLE=$(RELEASEDOC_STYLESHEETS)/doc-link-docbook.xsl DOC_BASEURI=http://docbook.sourceforge.net/release/xsl/current/doc/ # RELEASE-NOTES.xml to RELEASE-NOTES.pdf -DBX_STYLE=$(DOCBUILD_STYLESHEETS)/dblatex-release-notes.xsl +DBX_STYLE=$(RELEASEDOC_STYLESHEETS)/dblatex-release-notes.xsl # MARKUP_XSL is a modified version of Jeni Tennison's "Markup Utility" +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +MARKUP_XSL=$(DOCBOOK_SVN)/releasetools/modified-markup.xsl +else +MARKUP_XSL=../releasetools/modified-markup.xsl +endif +else MARKUP_XSL=$(DOCBOOK_SVN)/releasetools/modified-markup.xsl +endif # stylesheet used in taking XML output from "svn log" and using it # to generate NEWS file(s) and releases notes +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +SVNLOG2DOCBOOK=../releasetools/svnlog2docbook.xsl +else +SVNLOG2DOCBOOK=$(DOCBOOK_SVN)/releasetools/svnlog2docbook.xsl +endif +else SVNLOG2DOCBOOK=$(DOCBOOK_SVN)/releasetools/svnlog2docbook.xsl +endif SVN_INFO_FILE=.svninfo.xml @@ -81,10 +115,10 @@ REVISION=$(shell if [ -f $(SVN_INFO_FILE) ]; then $(XSLTPROC) --stringparam expr DISTRO_PARENT_URL=$(dir $(basename $(DISTRO_URL))) # stylesheet for stripping DB5 namespace -STRIP_NS=$(DOCBOOK_SVN)/xsl/common/stripns.xsl +STRIP_NS=common/stripns.xsl # stylesheet for generating FO version of release notes -FO_STYLE=$(DOCBOOK_SVN)/xsl/fo/docbook.xsl +FO_STYLE=fo/docbook.xsl # BROWSER is the Web browser to use for dumpin a text version of # release notes; text output from w3m looks better than that from @@ -206,7 +240,15 @@ GZIPFLAGS= XSLTPROC=xsltproc XSLTPROC_OPTS= +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +EVALXPATH=../releasetools/eval-xpath.xsl +else +EVALXPATH=$(DOCBOOK_SVN)/releasetools/eval-xpath.xsl +endif +else EVALXPATH=$(DOCBOOK_SVN)/releasetools/eval-xpath.xsl +endif XMLLINT=xmllint XMLLINT_OPTS=--noent diff --git a/xsl/Makefile.incl b/xsl/Makefile.incl index e9c742aca..a2710a632 100644 --- a/xsl/Makefile.incl +++ b/xsl/Makefile.incl @@ -1,11 +1,18 @@ +# NOTE: the conditional checks for combination of Cygwin and Saxon +# are used in a few places in this makefile to make it possible to +# build with Saxon. (Java under Cygwin doesn't grok Cygwin +# absolute paths, so use instead use relative paths.) +# The NESTLEVEL variable is to compensate for the fact that the +# slides/fo and slides/html stylesheets are in a subdirectory +# nested one additional level lower than the other stylesheets. XJPARSEFLAGS= -E 0 -w PARAMPROF=.$(PARAMBASE).profiled PARAMSTRIP=.$(PARAMBASE).stripped PARAMDBKNS=.$(PARAMBASE).dbkns PARAMXMLID=.$(PARAMBASE).xmlid -FIXPARAMNS=$(DOCBOOK_SVN)/xsl/tools/xsl/build/fix-params-ns.xsl -ADDNEWLINE=$(DOCBOOK_SVN)/xsl/tools/xsl/build/addnewline.xsl -IDTOXMLID=$(DOCBOOK_SVN)/xsl/tools/xsl/build/id-to-xmlid.xsl +FIXPARAMNS=$(NESTLEVEL)../tools/xsl/build/fix-params-ns.xsl +ADDNEWLINE=$(NESTLEVEL)../tools/xsl/build/addnewline.xsl +IDTOXMLID=$(NESTLEVEL)../tools/xsl/build/id-to-xmlid.xsl XMLFILES=$(foreach file,$(XSLFILES),$(basename $(file)).xml) @@ -32,31 +39,60 @@ $(PARAMXMLID): $(PARAMSTRIP) ifneq ($(XSLTENGINE),saxon) $(XSLT) $< $(DOCBOOK_SVN)/releasetools/w2docbook.xsl $@ else - $(XSLT) $< $(DOCBOOK_SVN)/releasetools/w2docbook.xsl $@.tmp +ifneq ($(shell uname -s | grep -i cygwin),) + $(XSLT) $< $(NESTLEVEL)../../releasetools/w2docbook.xsl $@.tmp +else + $(XSLT) $< $(DOCBOOK_SVN)/../releasetools/w2docbook.xsl $@.tmp +endif $(XSLT) $@.tmp $(ADDNEWLINE) $@ $(RM) $@.tmp endif $(PARAMSTRIP): $(PARAMBASE).xweb $(PARAMS) ifeq (,$(NO_MAKEFILE_PARAM)) +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) + $(NESTLEVEL)../../buildtools/paramchk -m Makefile.param $< +else $(DOCBOOK_SVN)/buildtools/paramchk -m Makefile.param $< endif - $(XSLT) $< $(DOCBOOK_SVN)/xsl/profiling/profile.xsl $(PARAMPROF) profile.condition=$(PROFILECONDITION) - $(XSLT) $(PARAMPROF) $(DOCBOOK_SVN)/xsl/profiling/strip-attributes.xsl $@ attributes=condition +else + $(DOCBOOK_SVN)/buildtools/paramchk -m Makefile.param $< +endif +endif + $(XSLT) $< $(NESTLEVEL)../profiling/profile.xsl $(PARAMPROF) profile.condition=$(PROFILECONDITION) + $(XSLT) $(PARAMPROF) $(NESTLEVEL)../profiling/strip-attributes.xsl $@ attributes=condition $(RM) $(PARAMPROF) $(PARAMDBKNS): $(PARAMSTRIP) +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) + $(XSLT) $< $(NESTLEVEL)../../releasetools/xtangle.xsl $@ +else + $(XSLT) $< $(DOCBOOK_SVN)/releasetools/xtangle.xsl $@ +endif +else $(XSLT) $< $(DOCBOOK_SVN)/releasetools/xtangle.xsl $@ +endif -titlepage.templates.xsl: titlepage.templates.xml $(DOCBOOK_SVN)/xsl/template/titlepage.xsl - $(XSLT) $< $(DOCBOOK_SVN)/xsl/template/titlepage.xsl $@ + +titlepage.templates.xsl: titlepage.templates.xml $(NESTLEVEL)../template/titlepage.xsl + $(XSLT) $< $(NESTLEVEL)../template/titlepage.xsl $@ Makefile.param: +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) + $(NESTLEVEL)../../buildtools/paramchk -m $@ param.xweb +else $(DOCBOOK_SVN)/buildtools/paramchk -m $@ param.xweb +endif +else + $(DOCBOOK_SVN)/buildtools/paramchk -m $@ param.xweb +endif $(MAKE) -profile-docbook.xsl: docbook.xsl $(DOCBOOK_SVN)/xsl/profiling/xsl2profile.xsl - $(XSLT) $< $(DOCBOOK_SVN)/xsl/profiling/xsl2profile.xsl $@ +profile-docbook.xsl: docbook.xsl $(NESTLEVEL)../profiling/xsl2profile.xsl + $(XSLT) $< $(NESTLEVEL)../profiling/xsl2profile.xsl $@ clean: $(CLEANTARGETS) $(RM) $(XSLFILES) diff --git a/xsl/docsrc/Makefile b/xsl/docsrc/Makefile index 37284b905..780df533e 100644 --- a/xsl/docsrc/Makefile +++ b/xsl/docsrc/Makefile @@ -9,11 +9,27 @@ PARAM_XML_FILES=$(foreach format,$(PARAM_DIRS),../$(format)/param.xml) PI_XML_FILES=$(foreach format,$(PI_DIRS),../$(format)/pi.xml) OTHER_XML_FILES=../common/common.xml ../common/utility.xml ../common/refentry.xml ../common/charmap.xml ../template/titlepage.xml ../fo/table.xml +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +DOCBOOK_RNG=../../releasetools/docbook.rng +else DOCBOOK_RNG=$(DOCBOOK_SVN)/releasetools/docbook.rng +endif +else +DOCBOOK_RNG=$(DOCBOOK_SVN)/releasetools/docbook.rng +endif PARAM_XSL_FILES=$(foreach format,$(PARAM_DIRS),../$(format)/param.xsl) PI_XSL_FILES=$(foreach format,$(PI_DIRS),../$(format)/pi.xsl) +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +all: $(PARAM_XML_FILES) ../lib/lib.xml $(PI_XML_FILES) $(OTHER_XML_FILES) ../$(DOCBOOK_ELEMENTS) ../$(XSL_PARAMS) ../$(XSL_PI) +else +all: $(PARAM_XML_FILES) ../lib/lib.xml $(PI_XML_FILES) $(OTHER_XML_FILES) $(DOCBOOK_ELEMENTS) $(XSL_PARAMS) $(XSL_PI) +endif +else all: $(PARAM_XML_FILES) ../lib/lib.xml $(PI_XML_FILES) $(OTHER_XML_FILES) $(DOCBOOK_ELEMENTS) $(XSL_PARAMS) $(XSL_PI) +endif ../%/param.xml: ../%/param.xsl $(MAKE) -C $(dir $@) param.xml @@ -34,13 +50,37 @@ clean: $(RM) $(OTHER_XML_FILES) $(RM) reference.xml.included +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +../$(DOCBOOK_ELEMENTS): $(MAKE_ELEMENTS_XSL) $(DOCBOOK_RNG) +else +$(DOCBOOK_ELEMENTS): $(MAKE_ELEMENTS_XSL) $(DOCBOOK_RNG) +endif +else $(DOCBOOK_ELEMENTS): $(MAKE_ELEMENTS_XSL) $(DOCBOOK_RNG) +endif $(XSLT) $(DOCBOOK_RNG) $< $@ +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +../$(XSL_PARAMS): $(MAKE_PARAMS_XSL) $(PARAM_XSL_FILES) +else $(XSL_PARAMS): $(MAKE_PARAMS_XSL) $(PARAM_XSL_FILES) +endif +else +$(XSL_PARAMS): $(MAKE_PARAMS_XSL) $(PARAM_XSL_FILES) +endif $(XSLT) $< $< $@ +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +../$(XSL_PI): $(MAKE_PI_XSL) $(PI_XSL_FILES) +else +$(XSL_PI): $(MAKE_PI_XSL) $(PI_XSL_FILES) +endif +else $(XSL_PI): $(MAKE_PI_XSL) $(PI_XSL_FILES) +endif $(XSLT) $< $< $@ release-clean: clean diff --git a/xsl/html/Makefile b/xsl/html/Makefile index ca72b89b0..fbccf1c85 100644 --- a/xsl/html/Makefile +++ b/xsl/html/Makefile @@ -7,5 +7,17 @@ PROFILECONDITION=html include ../Makefile.incl +ifneq ($(shell uname -s | grep -i cygwin),) +ifeq ($(XSLTENGINE),saxon) +# Java under Cygwin doesn't grok Cygwin absolute paths, so use +# relative path instead +profile-chunk-code.xsl: chunk-code.xsl ../profiling/xsl2profile.xsl + $(XSLT) $< ../profiling/xsl2profile.xsl $@ +else profile-chunk-code.xsl: chunk-code.xsl $(DOCBOOK_SVN)/xsl/profiling/xsl2profile.xsl $(XSLT) $< $(DOCBOOK_SVN)/xsl/profiling/xsl2profile.xsl $@ +endif +else +profile-chunk-code.xsl: chunk-code.xsl $(DOCBOOK_SVN)/xsl/profiling/xsl2profile.xsl + $(XSLT) $< $(DOCBOOK_SVN)/xsl/profiling/xsl2profile.xsl $@ +endif diff --git a/xsl/slides/fo/Makefile b/xsl/slides/fo/Makefile index f7a85a3cd..f0c932ce4 100644 --- a/xsl/slides/fo/Makefile +++ b/xsl/slides/fo/Makefile @@ -4,8 +4,9 @@ PARAMBASE=param XSLFILES=param.xsl ALLTARGETS=$(XSLFILES) plain-titlepage.xsl PROFILECONDITION=slides-fo -TTLTEMPLATEXSL=$(DOCBOOK_SVN)/xsl/template/titlepage.xsl +TTLTEMPLATEXSL=../../template/titlepage.xsl CLEANTARGETS=titlepage-clean +NESTLEVEL=../ include ../../Makefile.incl diff --git a/xsl/slides/html/Makefile b/xsl/slides/html/Makefile index 8c381aebe..669988dd8 100644 --- a/xsl/slides/html/Makefile +++ b/xsl/slides/html/Makefile @@ -4,5 +4,6 @@ PARAMBASE=param XSLFILES=param.xsl ALLTARGETS=$(XSLFILES) PROFILECONDITION=slides-html +NESTLEVEL=../ include ../../Makefile.incl -- 2.40.0