1 # waf build tool for building IDL files with pidl
4 from samba_utils import *
5 from samba_autoconf import *
8 def SAMBA_PYTHON(bld, name,
15 init_function_sentinal=None,
19 '''build a python extension for Samba'''
21 # when we support static python modules we'll need to gather
22 # the list from all the SAMBA_PYTHON() targets
23 if init_function_sentinal is not None:
24 cflags += '-DSTATIC_LIBPYTHON_MODULES=%s' % init_function_sentinal
26 source = bld.EXPAND_VARIABLES(source, vars=vars)
29 # a SAMBA_PYTHON target without a realname is just a
30 # subsystem with needs_python=True
31 return bld.SAMBA_SUBSYSTEM(name,
34 public_deps=public_deps,
37 init_function_sentinal=init_function_sentinal,
38 local_include=local_include,
43 SET_TARGET_TYPE(bld, name, 'DISABLED')
46 if not SET_TARGET_TYPE(bld, name, 'PYTHON'):
49 deps += ' ' + public_deps
52 realname = '%s.so' % name
53 link_name = 'python/%s' % realname
56 features = 'cc cshlib pyext symlink_lib',
59 samba_cflags = CURRENT_CFLAGS(bld, name, cflags),
60 samba_includes = includes,
61 local_include = local_include,
62 samba_deps = TO_LIST(deps),
63 link_name = link_name,
68 destdir='${PYTHONDIR}'
69 dname=os.path.dirname(realname)
71 destdir += '/' + dname
72 bld.INSTALL_FILES(destdir, name + '.so', destname=os.path.basename(realname))
74 Build.BuildContext.SAMBA_PYTHON = SAMBA_PYTHON