diff --git a/SConstruct b/SConstruct index 6eeb5b2..afcfd25 100644 --- a/SConstruct +++ b/SConstruct @@ -63,6 +63,7 @@ from sysconfdir import checkForUserSysconfdir from sgmlformat import checkForSGMLFMT from largefiles import enableLargeFiles from jade import checkDSSSLProcessor +from dsssl import findDocbookStylesheets conf = Configure(env,{'checkForCCOption':checkForCCOption, 'MAINTAINER_MODE':checkForMaintainerMode, @@ -79,7 +80,8 @@ conf = Configure(env,{'checkForCCOption':checkForCCOption, 'checkForUserSysconfdir':checkForUserSysconfdir, 'checkForBuildingClients':checkForBuildingClients, 'checkForSGMLFMT':checkForSGMLFMT, - 'checkDSSSLProcessor':checkDSSSLProcessor + 'checkDSSSLProcessor':checkDSSSLProcessor, + 'findDocbookStylesheets':findDocbookStylesheets }) if not conf.CheckCC(): Exit(1) # check for CC options @@ -101,9 +103,14 @@ for option in Split(""" if conf.checkDSSSLProcessor("jade"): JADE = "jade" elif conf.checkDSSSLProcessor("openjade"): - JADE = "openjade" + JADE = "openjade" else: JADE = False +if JADE: + DSSSL = conf.findDocbookStylesheets() +else: + DSSSL = None + # Portability build time config if conf.CheckFunc('srandomdev'): conf.env.Append(CPPFLAGS = '-DHAVE_SRANDOMDEV') @@ -153,5 +160,5 @@ conf.Finish() env.Append(CPPFLAGS = "-DPACKAGE_VERSION=\\\""+VERSION+"\\\"") # 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")) diff --git a/doc/SConscript b/doc/SConscript index c95e430..0317355 100644 --- a/doc/SConscript +++ b/doc/SConscript @@ -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.Alias("install",DOCDIR) -if SGML: - env.Command('fsp-faq.html','fsp-faq.sgml','sgmlfmt -d docbook -f html fsp-faq.sgml',chdir=1) +if JADE: + 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') diff --git a/site_scons/dsssl.py b/site_scons/dsssl.py new file mode 100644 index 0000000..6a61f2f --- /dev/null +++ b/site_scons/dsssl.py @@ -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