mirror of
https://github.com/samba-team/samba.git
synced 2025-01-13 13:18:06 +03:00
47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
# waf build tool for building automatic prototypes from C source
|
|
|
|
import Build
|
|
from samba_utils import *
|
|
|
|
def HEIMDAL_AUTOPROTO(bld, header, source, options=None, group='prototypes'):
|
|
'''rule for heimdal prototype generation'''
|
|
bld.SET_BUILD_GROUP(group)
|
|
if options is None:
|
|
options='-q -P comment -o'
|
|
SET_TARGET_TYPE(bld, header, 'PROTOTYPE')
|
|
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.HEIMDAL = os.path.join(bld.srcnode.abspath(), 'source4/heimdal')
|
|
t.env.OPTIONS = options
|
|
Build.BuildContext.HEIMDAL_AUTOPROTO = HEIMDAL_AUTOPROTO
|
|
|
|
|
|
def HEIMDAL_AUTOPROTO_PRIVATE(bld, header, source):
|
|
'''rule for private heimdal prototype generation'''
|
|
bld.HEIMDAL_AUTOPROTO(header, source, options='-q -P comment -p')
|
|
Build.BuildContext.HEIMDAL_AUTOPROTO_PRIVATE = HEIMDAL_AUTOPROTO_PRIVATE
|
|
|
|
|
|
def SAMBA_AUTOPROTO(bld, header, source):
|
|
'''rule for samba prototype generation'''
|
|
bld.SET_BUILD_GROUP('prototypes')
|
|
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,
|
|
ext_out='.c',
|
|
before ='cc',
|
|
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
|
|
|