From a4d6373406ca9cf85611e183fdbdfa90365e509a Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 19 Mar 2003 00:28:20 +0000 Subject: [PATCH] Setup the BoostBook XSL and DTD directories along with the DocBook XSL and DTD directories, in the initialization phase. After that, we don't get to peek at BOOST_ROOT anymore. [SVN r17984] --- boostbook.jam | 61 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/boostbook.jam b/boostbook.jam index 963ddd0de..b7a2164b8 100644 --- a/boostbook.jam +++ b/boostbook.jam @@ -42,14 +42,22 @@ generators.register-standard boostbook.docbook-to-fo : DOCBOOK : FO ; generators.register-standard boostbook.fo-to-print : FO : PDF ; generators.register-standard boostbook.fo-to-print : FO : PS ; -# Initialize BoostBook support. The docbook-xsl-dir parameter refers -# to the DocBook XSL stylesheet directory and the docbook-dtd-dir -# parameter refers to the DocBook DTD directory. If not provided, the -# parameters are derived from DOCBOOK_XL_DIR and DOCBOOK_DTD_DIR, -# respectively, although no definition of these variables is required -# because we can just download the stylesheets/DTD on-the-fly (or -# there may be another, local catalog to fall back on) -rule init ( docbook-xsl-dir ? : docbook-dtd-dir ? ) +# Initialize BoostBook support. The parameters are: +# docbook-xsl-dir: The DocBook XSL stylesheet directory. If not provided, +# we use DOCBOOK_XSL_DIR from the environment (if available). Otherwise, +# we let the XML processor load the stylesheets remotely. +# +# docbook-dtd-dir: The DocBook DTD directory. If not provided, we use +# DOCBOOK_DTD_DIR From the environment (if available). Otherwise, we let +# the XML processor load the DTD remotely. +# +# boostbook-xsl-dir: The BoostBook XSL stylesheet directory. If not provided, +# we use $(BOOST_ROOT)/tools/boostbook/xsl (the default location). +# +# boostbook-dtd-dir: The BoostBook DTD directory. If not provided, we use +# $(BOOST_ROOT)/tools/boostbook/dtd (the default location). +rule init ( docbook-xsl-dir ? : docbook-dtd-dir ? : boostbook-xsl-dir ? + : boostbook-dtd-dir ? ) { if ! $(docbook-xsl-dir) { @@ -61,11 +69,25 @@ rule init ( docbook-xsl-dir ? : docbook-dtd-dir ? ) docbook-dtd-dir = [ modules.peek : DOCBOOK_DTD_DIR ] ; } + if ! $(boostbook-xsl-dir) + { + boostbook-xsl-dir = [ modules.peek : BOOST_ROOT ] ; + boostbook-xsl-dir = $(boostbook-xsl-dir)/tools/boostbook/xsl ; + } + + if ! $(boostbook-dtd-dir) + { + boostbook-dtd-dir = [ modules.peek : BOOST_ROOT ] ; + boostbook-dtd-dir = $(boostbook-dtd-dir)/tools/boostbook/dtd ; + } + if ! $(.initialized) { $(.initialized) = true ; .docbook-xsl-dir = $(docbook-xsl-dir) ; .docbook-dtd-dir = $(docbook-dtd-dir) ; + .boostbook-xsl-dir = $(boostbook-xsl-dir) ; + .boostbook-dtd-dir = $(boostbook-dtd-dir) ; } } @@ -101,37 +123,31 @@ rule xslt-dir ( target : source stylesheet : properties * : dirname ) rule boostbook-to-docbook ( target : source : properties * ) { - local dir = [ modules.peek : BOOST_ROOT ] ; - xslt $(target) : $(source) "$(dir)/tools/boostbook/xsl/docbook.xsl" : $(properties) ; + xslt $(target) : $(source) "$(.boostbook-xsl-dir)/docbook.xsl" : $(properties) ; } rule docbook-to-onehtml ( target : source : properties * ) { - local dir = [ modules.peek : BOOST_ROOT ] ; - xslt $(target) : $(source) "$(dir)/tools/boostbook/xsl/html-single.xsl" : $(properties) ; + xslt $(target) : $(source) "$(.boostbook-xsl-dir)/html-single.xsl" : $(properties) ; } rule docbook-to-htmldir ( target : source : properties * ) { - local dir = [ modules.peek : BOOST_ROOT ] ; - xslt-dir $(target) : $(source) "$(dir)/tools/boostbook/xsl/html.xsl" : $(properties) : html ; + xslt-dir $(target) : $(source) "$(.boostbook-xsl-dir)/html.xsl" : $(properties) : html ; } rule docbook-to-manpages ( target : source : properties * ) { - local dir = [ modules.peek : BOOST_ROOT ] ; - xslt-dir $(target) : $(source) "$(dir)/tools/boostbook/xsl/manpages.xsl" : $(properties) : man ; + xslt-dir $(target) : $(source) "$(.boostbook-xsl-dir)/manpages.xsl" : $(properties) : man ; } rule docbook-to-fo ( target : source : properties * ) { - local dir = [ modules.peek : BOOST_ROOT ] ; - xslt $(target) : $(source) "$(dir)/tools/boostbook/xsl/fo.xsl" : $(properties) ; + xslt $(target) : $(source) "$(.boostbook-xsl-dir)/fo.xsl" : $(properties) ; } rule fo-to-print ( target : source : properties * ) { - local dir = [ modules.peek : BOOST_ROOT ] ; JAVA_HOME on $(target) = [ modules.peek : JAVA_HOME ] ; FOP_DIR on $(target) = [ modules.peek : FOP_DIR ] ; fop $(target) : $(source) ; @@ -150,6 +166,8 @@ rule xml-catalog-action ( target : property-set ? : catalog-entries * ) [ feature.get-values : $(catalog-entries) ] ; self.docbook-dtd-dir = [ feature.get-values : $(catalog-entries) ] ; + self.boostbook-dtd-dir = + [ feature.get-values : $(catalog-entries) ] ; rule actualize ( ) { @@ -159,11 +177,10 @@ rule xml-catalog-action ( target : property-set ? : catalog-entries * ) local actual = [ $(self.targets[1]).actualize ] ; local text = "" ; - local boost-root = [ modules.peek : BOOST_ROOT ] ; local rewrites ; # BoostBook DTD catalog entry - rewrites += "" ; + rewrites += "" ; if ! $(self.docbook-xsl-dir) { @@ -224,7 +241,6 @@ rule boostbook-target-class ( name : project : sources * : requirements * rule construct ( source-targets * : property-set ) { - # Not working :( local path = [ project.attribute $(self.project) location ] ; local catalog = [ new file-target catalog : XML : $(self.project) ] ; $(catalog).action [ new xml-catalog-action $(catalog) : $(property-set) @@ -301,6 +317,7 @@ rule boostbook ( target-name : source : requirements * : default-build * ) : [ targets.main-target-requirements $(requirements) : $(project) ] : [ targets.main-target-default-build $(default-build) : $(project) ] : $(.docbook-xsl-dir) $(.docbook-dtd-dir) + $(.boostbook-dtd-dir) ] ; }