# waf build tool for building automatic prototypes from C source
+import os
import Build
-from samba_utils import *
+from samba_utils import SET_TARGET_TYPE, os_path_relpath
-# rule for heimdal prototype generation
-def HEIMDAL_AUTOPROTO(bld, header, source, options=None, group='prototypes'):
- bld.SET_BUILD_GROUP(group)
- if options is None:
- options='-q -P comment -o'
- t = bld(rule='${PERL} ../heimdal/cf/make-proto.pl ${OPTIONS} ${TGT[0].abspath(env)} ${SRC}',
- source=source,
- target=header,
- on_results=True,
- ext_out='.c',
- before='cc')
- t.env.OPTIONS = options
-Build.BuildContext.HEIMDAL_AUTOPROTO = HEIMDAL_AUTOPROTO
-
-# rule for private heimdal prototype generation
-def HEIMDAL_AUTOPROTO_PRIVATE(bld, header, source):
- bld.HEIMDAL_AUTOPROTO(header, source, options='-q -P comment -p')
-Build.BuildContext.HEIMDAL_AUTOPROTO_PRIVATE = HEIMDAL_AUTOPROTO_PRIVATE
-
-# rule for samba prototype generation
def SAMBA_AUTOPROTO(bld, header, source):
+ '''rule for samba prototype generation'''
bld.SET_BUILD_GROUP('prototypes')
- bld(
+ relpath = os_path_relpath(bld.curdir, bld.srcnode.abspath())
+ name = os.path.join(relpath, header)
+ SET_TARGET_TYPE(bld, name, 'PROTOTYPE')
+ t = bld(
+ name = name,
source = source,
target = header,
- on_results=True,
+ update_outputs=True,
ext_out='.c',
before ='cc',
- rule = '../script/mkproto.pl --srcdir=.. --builddir=. --public=/dev/null --private=${TGT} ${SRC}'
+ rule = '${PERL} "${SCRIPT}/mkproto.pl" --srcdir=.. --builddir=. --public=/dev/null --private="${TGT}" ${SRC}'
)
+ t.env.SCRIPT = os.path.join(bld.srcnode.abspath(), 'source4/script')
Build.BuildContext.SAMBA_AUTOPROTO = SAMBA_AUTOPROTO