direct use of dsssl processor

This commit is contained in:
Radim Kolar 2014-09-07 20:45:54 +02:00
parent e72a26bfe2
commit fb255a9ca9
3 changed files with 45 additions and 6 deletions

View File

@ -63,6 +63,7 @@ from sysconfdir import checkForUserSysconfdir
from sgmlformat import checkForSGMLFMT from sgmlformat import checkForSGMLFMT
from largefiles import enableLargeFiles from largefiles import enableLargeFiles
from jade import checkDSSSLProcessor from jade import checkDSSSLProcessor
from dsssl import findDocbookStylesheets
conf = Configure(env,{'checkForCCOption':checkForCCOption, conf = Configure(env,{'checkForCCOption':checkForCCOption,
'MAINTAINER_MODE':checkForMaintainerMode, 'MAINTAINER_MODE':checkForMaintainerMode,
@ -79,7 +80,8 @@ conf = Configure(env,{'checkForCCOption':checkForCCOption,
'checkForUserSysconfdir':checkForUserSysconfdir, 'checkForUserSysconfdir':checkForUserSysconfdir,
'checkForBuildingClients':checkForBuildingClients, 'checkForBuildingClients':checkForBuildingClients,
'checkForSGMLFMT':checkForSGMLFMT, 'checkForSGMLFMT':checkForSGMLFMT,
'checkDSSSLProcessor':checkDSSSLProcessor 'checkDSSSLProcessor':checkDSSSLProcessor,
'findDocbookStylesheets':findDocbookStylesheets
}) })
if not conf.CheckCC(): Exit(1) if not conf.CheckCC(): Exit(1)
# check for CC options # check for CC options
@ -101,9 +103,14 @@ for option in Split("""
if conf.checkDSSSLProcessor("jade"): if conf.checkDSSSLProcessor("jade"):
JADE = "jade" JADE = "jade"
elif conf.checkDSSSLProcessor("openjade"): elif conf.checkDSSSLProcessor("openjade"):
JADE = "openjade" JADE = "openjade"
else: else:
JADE = False JADE = False
if JADE:
DSSSL = conf.findDocbookStylesheets()
else:
DSSSL = None
# Portability build time config # Portability build time config
if conf.CheckFunc('srandomdev'): if conf.CheckFunc('srandomdev'):
conf.env.Append(CPPFLAGS = '-DHAVE_SRANDOMDEV') conf.env.Append(CPPFLAGS = '-DHAVE_SRANDOMDEV')
@ -153,5 +160,5 @@ conf.Finish()
env.Append(CPPFLAGS = "-DPACKAGE_VERSION=\\\""+VERSION+"\\\"") env.Append(CPPFLAGS = "-DPACKAGE_VERSION=\\\""+VERSION+"\\\"")
# process build rules # process build rules
Export( Split("env PREFIX MANDIR DOCDIR CLIENTS SGML")) Export( Split("env PREFIX MANDIR DOCDIR CLIENTS JADE DSSSL"))
env.SConscript(dirs=Split("doc . bsd_src common server client clients contrib tests man")) env.SConscript(dirs=Split("doc . bsd_src common server client clients contrib tests man"))

View File

@ -1,7 +1,7 @@
Import(Split("env PREFIX DOCDIR SGML")) Import(Split("env PREFIX DOCDIR JADE DSSSL"))
env.Install(dir=DOCDIR,source=Split("PROTOCOL HISTORY faq.html")) env.Install(dir=DOCDIR,source=Split("PROTOCOL HISTORY faq.html"))
env.Alias("install",DOCDIR) env.Alias("install",DOCDIR)
if SGML: if JADE:
env.Command('fsp-faq.html','fsp-faq.sgml','sgmlfmt -d docbook -f html fsp-faq.sgml',chdir=1) env.Command('fsp-faq.html','fsp-faq.sgml',JADE+' -V nochunks -t sgml -d '+DSSSL+'/html/docbook.dsl fsp-faq.sgml',chdir=1)
env.Install(dir=DOCDIR,source='fsp-faq.html') env.Install(dir=DOCDIR,source='fsp-faq.html')

32
site_scons/dsssl.py Normal file
View File

@ -0,0 +1,32 @@
#
# SCons Locate DSSSL docbook stylesheets
#
# Version 1.0
# 07-Sep-2014
#
import os
import stat
def findDocbookStylesheets(check):
"""Return path to Docbook stylesheets or None."""
directories = [
"/usr/local/share/sgml/docbook/dsssl/modular"
]
files = [ "html/docbook.dsl", "catalog", "dtds/html/dbhtml.dtd" ]
check.Message("Locating Docbook DSSSL Stylesheets... ")
for d in directories:
try:
st = os.stat(d)
if not stat.S_ISDIR(st.st_mode):
continue
for f in files:
st = os.stat(d+os.sep+f)
if not stat.S_ISREG(st.st_mode):
raise OSError
check.Result(d)
return d
except OSError:
continue
check.Result(False)
return None