mirror of
https://github.com/samba-team/samba.git
synced 2024-12-28 07:21:54 +03:00
1da22ab994
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
86 lines
3.0 KiB
Python
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
|
|
''')
|
|
|