From 5d8f916619b5324e33d4a1bc3c97d6cc784f4bb9 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 5 Jan 2011 12:00:01 +0100 Subject: pidl/wscript: let the developer use the standalone build with yapp Waf isn't happy when files in the source directory are changed. metze --- pidl/wscript | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'pidl') diff --git a/pidl/wscript b/pidl/wscript index 8cb0c6f5b3..150ef41a63 100644 --- a/pidl/wscript +++ b/pidl/wscript @@ -1,6 +1,6 @@ #!/usr/bin/env python -import os +import os, sys, Logs from samba_utils import MODE_755 def set_options(opt): @@ -46,8 +46,6 @@ def build(bld): blib_bld = os.path.join(bld.srcnode.abspath(bld.env), 'pidl/blib') - link_command = 'rm -rf blib && ln -fs blib %s' % blib_bld - bld.SET_BUILD_GROUP('final') if 'POD2MAN' in bld.env and bld.env['POD2MAN'] != '': for src, manpage in pidl_manpages.iteritems(): @@ -57,15 +55,29 @@ def build(bld): 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 + # 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. need_yapp_build = ('YAPP' 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 need_yapp_build: - t = bld.SAMBA_GENERATOR('pidl_parser', - source='idl.yp expr.yp', - target='lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm Makefile.PL', - rule='cd ${pidl_srcdir} && ${LINK_COMMAND} && ${PERL} Makefile.PL && make lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm && rm -f Makefile Makefile.old && rm -f blib') - t.env.LINK_COMMAND = link_command + Logs.error(''' +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 + +If your 100% sure you haven't changed idl.yp and expr.yp +try this to avoid this message: + +$ touch lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm +''') + sys.exit(1) + -- cgit