6 from waflib
import Options
, Errors
8 # work out what python external libraries we need to install
10 "iso8601": "pyiso8601/iso8601",
14 def find_third_party_module(conf
, module
, package
):
15 conf
.COMPOUND_START("Checking for third party Python module %s" % module
)
21 # Installed on the system
22 conf
.COMPOUND_END("system")
26 sys
.path
.append(os
.path
.join(conf
.path
.abspath(), os
.path
.dirname(package
)))
30 if samba_git
.has_submodules(conf
.srcnode
.abspath()):
31 raise Errors
.WafError("""\
32 Unable to find Python module '%s'. Please install the system package or check \
33 out the relevant submodule by running 'git submodule update --init'.
36 raise Errors
.WafError("""\
37 Unable to find Python module '%s'. Please install the system package or place a copy in
39 """ % (module
, package
))
41 conf
.COMPOUND_END("bundled")
47 for module
, package
in external_pkgs
.items():
48 find_third_party_module(conf
, module
, package
)
49 conf
.RECURSE('cmocka')
51 conf
.RECURSE('aesni-intel')
52 if conf
.CONFIG_GET('ENABLE_SELFTEST'):
53 conf
.RECURSE('socket_wrapper')
54 conf
.RECURSE('nss_wrapper')
55 conf
.RECURSE('resolv_wrapper')
56 conf
.RECURSE('uid_wrapper')
57 if Options
.options
.with_pam
:
58 conf
.RECURSE('pam_wrapper')
62 if not bld
.env
.disable_python
:
65 for module
, package
in external_pkgs
.items():
72 bld
.INSTALL_WILDCARD('${PYTHONARCHDIR}/samba/third_party', e
+ '/**/*', flat
=False,
73 exclude
='*.pyc', trim_path
=os
.path
.dirname(e
))
75 bld
.SAMBA_GENERATOR('third_party_init_py',
79 bld
.INSTALL_FILES('${PYTHONARCHDIR}/samba/third_party', 'empty_file', destname
='__init__.py')
83 bld
.RECURSE('aesni-intel')
84 if bld
.CONFIG_GET('SOCKET_WRAPPER'):
85 bld
.RECURSE('socket_wrapper')
86 if bld
.CONFIG_GET('NSS_WRAPPER'):
87 bld
.RECURSE('nss_wrapper')
88 if bld
.CONFIG_GET('RESOLV_WRAPPER'):
89 bld
.RECURSE('resolv_wrapper')
90 if bld
.CONFIG_GET('UID_WRAPPER'):
91 bld
.RECURSE('uid_wrapper')
92 if bld
.CONFIG_GET('PAM_WRAPPER'):
93 bld
.RECURSE('pam_wrapper')