2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-18 14:02:11 +00:00

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]
This commit is contained in:
Douglas Gregor
2003-03-19 00:28:20 +00:00
parent 56e18cfcc2
commit a4d6373406

View File

@@ -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 <docbook-xsl> : $(catalog-entries) ] ;
self.docbook-dtd-dir =
[ feature.get-values <docbook-dtd> : $(catalog-entries) ] ;
self.boostbook-dtd-dir =
[ feature.get-values <boostbook-dtd> : $(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 = "<?xml version=\\\"1.0\\\"?>" ;
local boost-root = [ modules.peek : BOOST_ROOT ] ;
local rewrites ;
# BoostBook DTD catalog entry
rewrites += "<rewriteURI uriStartString=\\\"http://www.boost.org/tools/boostbook/dtd/\\\" rewritePrefix=\\\"$(boost-root)/tools/boostbook/dtd/\\\"/>" ;
rewrites += "<rewriteURI uriStartString=\\\"http://www.boost.org/tools/boostbook/dtd/\\\" rewritePrefix=\\\"$(self.boostbook-dtd-dir)/\\\"/>" ;
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>$(.docbook-xsl-dir) <docbook-dtd>$(.docbook-dtd-dir)
<boostbook-dtd>$(.boostbook-dtd-dir)
] ;
}