From fd0fe9a4bf1410d6e80e79fe0571fc554736fb9c Mon Sep 17 00:00:00 2001 From: Garming Sam Date: Thu, 9 Jan 2014 12:01:18 +1300 Subject: [PATCH] docs: define and include entities for the docs This allows for dynamic default settings to be generated. Change-Id: If8b93d233fb941bc7e3073ccf4b5ec0b0a231bd9 Pair-programmed-with: Andrew Bartlett Signed-off-by: Garming Sam Signed-off-by: Andrew Bartlett Reviewed-by: Michael Adam (cherry picked from commit 57ba012c10fb21f261a3ab9136be05a694278df9) --- buildtools/wafsamba/wafsamba.py | 6 ++++-- docs-xml/wscript_build | 19 +++++++++++++++---- dynconfig/wscript | 35 +++++++++++++++++++++++++++-------- 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py index aaa09392f1e..9ead2329fe7 100644 --- a/buildtools/wafsamba/wafsamba.py +++ b/buildtools/wafsamba/wafsamba.py @@ -804,7 +804,7 @@ def MANPAGES(bld, manpages, install): bld.INSTALL_FILES('${MANDIR}/man%s' % m[-1], m, flat=True) Build.BuildContext.MANPAGES = MANPAGES -def SAMBAMANPAGES(bld, manpages): +def SAMBAMANPAGES(bld, manpages, extra_source=None): '''build and install manual pages''' bld.env.SAMBA_EXPAND_XSL = bld.srcnode.abspath() + '/docs-xml/xslt/expand-sambadoc.xsl' bld.env.SAMBA_MAN_XSL = bld.srcnode.abspath() + '/docs-xml/xslt/man.xsl' @@ -812,13 +812,15 @@ def SAMBAMANPAGES(bld, manpages): for m in manpages.split(): source = m + '.xml' + if extra_source is not None: + source = [source, extra_source] bld.SAMBA_GENERATOR(m, source=source, target=m, group='final', rule='''XML_CATALOG_FILES="${SAMBA_CATALOGS}" export XML_CATALOG_FILES - ${XSLTPROC} --xinclude --stringparam noreference 0 -o ${TGT}.xml --nonet ${SAMBA_EXPAND_XSL} ${SRC} + ${XSLTPROC} --xinclude --stringparam noreference 0 -o ${TGT}.xml --nonet ${SAMBA_EXPAND_XSL} ${SRC[0].abspath(env)} ${XSLTPROC} --nonet -o ${TGT} ${SAMBA_MAN_XSL} ${TGT}.xml''' ) bld.INSTALL_FILES('${MANDIR}/man%s' % m[-1], m, flat=True) diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build index 0664adea243..28221473855 100644 --- a/docs-xml/wscript_build +++ b/docs-xml/wscript_build @@ -97,9 +97,19 @@ def smbdotconf_generate_parameter_list(task): parameter_all = task.outputs[0].bldpath(task.env) articles = task.inputs - t = '
\n' + entities = bld.pathconfig_entities() + t = "\n" + t += "
\n" for article in articles: - t += "\n" + f = open(article.abspath(task.env), 'r') + t += f.read() + f.close() + t += "
\n" save_file(parameter_all, t , create_dir=True) return 0 @@ -111,8 +121,9 @@ def SMBDOTCONF_MANPAGE(bld, target): bld.SAMBA_GENERATOR(parameter_all, source=articles, target=parameter_all, - rule=smbdotconf_generate_parameter_list) - bld.SAMBAMANPAGES(target) + rule=smbdotconf_generate_parameter_list, + always=True) + bld.SAMBAMANPAGES(target, parameter_all) if ('XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']): diff --git a/dynconfig/wscript b/dynconfig/wscript index aa4e66e9d8c..a7cfa0a2d59 100755 --- a/dynconfig/wscript +++ b/dynconfig/wscript @@ -345,29 +345,48 @@ def configure(conf): conf.start_msg("Dynconfig[%s]: " % (varname)) conf.end_msg("'%s'" % (value), 'GREEN') -def dynconfig_cflags(bld, list=None): - '''work out the extra CFLAGS for dynconfig.c''' - cflags = [] - # override some paths when running from the build directory +def get_override(bld): override = { 'MODULESDIR' : 'bin/modules', 'PYTHONDIR' : 'bin/python', 'PYTHONARCHDIR' : 'bin/python', 'BINDIR' : 'bin', 'SBINDIR' : 'bin', - 'CODEPAGEDIR' : os.path.join(bld.env.srcdir, 'codepages'), - 'SCRIPTSBINDIR' : os.path.join(bld.env.srcdir, 'source4/scripting/bin'), - 'SETUPDIR' : os.path.join(bld.env.srcdir, 'source4/setup') } + 'CODEPAGEDIR' : 'codepages', + 'SCRIPTSBINDIR' : 'source4/scripting/bin', + 'SETUPDIR' : 'source4/setup' + } + return override + +def dynconfig_cflags(bld, list=None): + '''work out the extra CFLAGS for dynconfig.c''' + cflags = [] for varname in dynconfig.keys(): if list and not varname in list: continue value = bld.env[varname] if not Options.is_install: + override = get_override(bld) if varname in override: - value = os.path.join(os.getcwd(), override[varname]) + value = os.path.join(bld.env.srcdir, override[varname]) cflags.append('-D%s="%s"' % (varname, value)) return cflags Build.BuildContext.dynconfig_cflags = dynconfig_cflags +def pathconfig_entities(bld, list=None): + '''work out the extra entities for the docs''' + entities = [] + for varname in dynconfig.keys(): + if list and not varname in list: + continue + value = bld.env[varname] + if not Options.is_install: + override = get_override(bld) + if varname in override: + value = os.path.join(bld.env.srcdir, override[varname]) + entities.append("" % (varname, value)) + return entities +Build.BuildContext.pathconfig_entities = pathconfig_entities + def build(bld): cflags = bld.dynconfig_cflags() version_header = 'version.h' -- 2.11.4.GIT