@conf
-def CHECK_COMMAND(conf, cmd, msg=None, define=None, on_target=True):
+def CHECK_COMMAND(conf, cmd, msg=None, define=None, on_target=True, boolean=False):
'''run a command and return result'''
if msg is None:
msg = 'Checking %s' % ' '.join(cmd)
except:
conf.COMPOUND_END(False)
return False
- ret = ret.strip()
- conf.COMPOUND_END(ret)
- if define:
- conf.DEFINE(define, ret, quote=True)
+ if boolean:
+ conf.COMPOUND_END('ok')
+ if define:
+ conf.DEFINE(define, '1')
+ else:
+ ret = ret.strip()
+ conf.COMPOUND_END(ret)
+ if define:
+ conf.DEFINE(define, ret, quote=True)
return ret
conf.COMPOUND_END(i)
return ret
+@conf
+def CHECK_XSLTPROC_MANPAGES(conf):
+ '''check if xsltproc can run with the given stylesheets'''
+
+ stylesheets='http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl'
+ if not conf.CONFIG_SET('XSLTPROC'):
+ conf.find_program('xsltproc', var='XSLTPROC')
+ if not conf.CONFIG_SET('XSLTPROC'):
+ return False
+
+ for s in TO_LIST(stylesheets):
+ if not conf.CONFIG_SET('XSLTPROC_%s' % s):
+ ret = conf.CHECK_COMMAND('%s --nonet %s 2> /dev/null' % (conf.env.XSLTPROC, s),
+ msg='Checking for stylesheet %s' % s,
+ define=None, on_target=False,
+ boolean=True)
+ if not ret:
+ return False
+ conf.env['XSLTPROC_%s' % s] = True
+ conf.env['XSLTPROC_MANPAGES'] = True
+ return True
if pc_files is not None:
bld.PKG_CONFIG_FILES(pc_files, vnum=vnum)
- if manpages is not None and 'XSLTPROC' in bld.env and bld.env['XSLTPROC']:
+ if manpages is not None and 'XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']:
bld.MANPAGES(manpages)
if subsystem_name is not None:
bld.TARGET_ALIAS(subsystem_name, binname)
- if manpages is not None and 'XSLTPROC' in bld.env and bld.env['XSLTPROC']:
+ if manpages is not None and 'XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']:
bld.MANPAGES(manpages)
Build.BuildContext.SAMBA_BINARY = SAMBA_BINARY
source=source,
target=m,
group='final',
- rule='${XSLTPROC} -o ${TGT} ${MAN_XSL} ${SRC}'
+ rule='${XSLTPROC} -o ${TGT} --nonet ${MAN_XSL} ${SRC}'
)
bld.INSTALL_FILES('${MANDIR}/man%s' % m[-1], m, flat=True)
Build.BuildContext.MANPAGES = MANPAGES