1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-28 07:21:54 +03:00
samba-mirror/pidl/wscript
Andrew Bartlett 1da22ab994 build: Do not force a specific perl from ${PERL} when running pod2man
pod2man should have the right #!/usr/bin/perl line already, and forcing it may
cause us to use the wrong perl.

Essentially treat this like any other system binary, rather than forcing
it to use the first perl we found.

This essentially reverts e80f576db6.
Current SLES11 does not seem to have the issue this was added to
address.

Andrew Bartlett

Reviewed-by: Michael Adam <obnox@samba.org>

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Thu Feb 28 02:14:25 CET 2013 on sn-devel-104
2013-02-28 02:14:25 +01:00

86 lines
3.0 KiB
Python

#!/usr/bin/env python
import os, sys, Logs
from samba_utils import MODE_755
def set_options(opt):
opt.tool_options('perl')
def configure(conf):
conf.check_tool('perl')
# we need a recent version of MakeMaker to get the right man page names
if conf.CHECK_PERL_MANPAGE():
conf.env.PERLMAN1EXT = conf.CHECK_PERL_MANPAGE(section='1')
conf.env.PERLMAN3EXT = conf.CHECK_PERL_MANPAGE(section='3')
conf.DEFINE('HAVE_PERL_MAKEMAKER', 1)
# yapp is used for building the parser
conf.find_program('yapp', var='YAPP')
conf.find_program('pod2man', var='POD2MAN')
def build(bld):
bld.INSTALL_FILES('${BINDIR}', 'pidl', chmod=MODE_755)
bld.RECURSE('lib')
if not bld.CONFIG_SET('HAVE_PERL_MAKEMAKER'):
return
pidl_src = ['pidl']
pidl_src.extend(bld.path.ant_glob('lib/**/*.pm').split())
pidl_manpages = {
'pidl': 'man1/pidl.${PERLMAN1EXT}',
'lib/Parse/Pidl/NDR.pm': 'man3/Parse::Pidl::NDR.${PERLMAN3EXT}',
'lib/Parse/Pidl/Wireshark/Conformance.pm': 'man3/Parse::Pidl::Wireshark::Conformance.${PERLMAN3EXT}',
'lib/Parse/Pidl/Dump.pm': 'man3/Parse::Pidl::Dump.${PERLMAN3EXT}',
'lib/Parse/Pidl/Util.pm': 'man3/Parse::Pidl::Util.${PERLMAN3EXT}',
'lib/Parse/Pidl/Wireshark/NDR.pm': 'man3/Parse::Pidl::Wireshark::NDR.${PERLMAN3EXT}'
}
for k, v in pidl_manpages.iteritems():
pidl_manpages[k] = bld.EXPAND_VARIABLES(v)
# use perl to build the manpages
bld.env.pidl_srcdir = os.path.join(bld.srcnode.abspath(), 'pidl')
blib_bld = os.path.join(bld.srcnode.abspath(bld.env), 'pidl/blib')
bld.SET_BUILD_GROUP('final')
if 'POD2MAN' in bld.env and bld.env['POD2MAN'] != '':
for src, manpage in pidl_manpages.iteritems():
bld(rule='${POD2MAN} -c "Samba Documentation" ${SRC} ${TGT}',
shell=True,
source=src,
install_path=os.path.dirname(bld.EXPAND_VARIABLES('${MANDIR}/'+manpage)),
target=os.path.basename(manpage))
# we want to prefer the git version of the parsers if we can.
# Only if the source has changed do we want to re-run yapp
# But we force the developer to use the pidl standalone build
# to regenerate the files.
# TODO: only warn in developer mode and if 'git diff HEAD'
# shows a difference
warn_about_grammar_changes = ('PIDL_BUILD_WARNINGS' in bld.env and (
bld.IS_NEWER('idl.yp', 'lib/Parse/Pidl/IDL.pm') or
bld.IS_NEWER('expr.yp', 'lib/Parse/Pidl/Expr.pm')))
if warn_about_grammar_changes:
Logs.warn('''
Pidl grammar files have changed. Please use the pidl standalone build
to regenerate them with yapp.
$ cd ../pidl
$ perl Makefile.PL
$ make lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm
$ git add lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm
$ git commit
$ cd -
If your 100% sure you haven't changed idl.yp and expr.yp
try this to avoid this message:
$ touch ../pidl/lib/Parse/Pidl/IDL.pm ../pidl/lib/Parse/Pidl/Expr.pm
''')