#!/usr/bin/env python
-import os
-import sys
-import samba_git
-from waflib import Options, Utils
-
-# work out what python external libraries we need to install
-external_pkgs = {
- "dns.resolver": "dnspython/dns",
- "iso8601": "pyiso8601/iso8601",
- }
-
-
-def find_third_party_module(conf, module, package):
- conf.COMPOUND_START("Checking for third party Python module %s" % module)
- try:
- __import__(module)
- except ImportError:
- pass
- else:
- # Installed on the system
- conf.COMPOUND_END("system")
-
- old_path = sys.path
- try:
- sys.path.append(os.path.join(conf.path.abspath(), os.path.dirname(package)))
- try:
- __import__(module)
- except ImportError:
- if samba_git.has_submodules(conf.srcnode.abspath()):
- raise Utils.WafError("""\
-Unable to find Python module '%s'. Please install the system package or check \
-out the relevant submodule by running 'git submodule update --init'.
-""" % module)
- else:
- raise Utils.WafError("""\
-Unable to find Python module '%s'. Please install the system package or place a copy in
-%s.
-""" % (module, package))
- else:
- conf.COMPOUND_END("bundled")
- finally:
- sys.path = old_path
-
+from waflib import Options
def configure(conf):
- for module, package in external_pkgs.items():
- find_third_party_module(conf, module, package)
conf.RECURSE('cmocka')
conf.RECURSE('popt')
- conf.RECURSE('zlib')
conf.RECURSE('aesni-intel')
if conf.CONFIG_GET('ENABLE_SELFTEST'):
conf.RECURSE('socket_wrapper')
def build(bld):
- list = []
-
- for module, package in external_pkgs.items():
- try:
- __import__(module)
- except ImportError:
- list.append(package)
-
- for e in list:
- bld.INSTALL_WILDCARD('${PYTHONARCHDIR}/samba/third_party', e + '/**/*', flat=False,
- exclude='*.pyc', trim_path=os.path.dirname(e))
-
- bld.SAMBA_GENERATOR('third_party_init_py',
- rule='touch ${TGT}',
- target='empty_file')
-
- bld.INSTALL_FILES('${PYTHONARCHDIR}/samba/third_party', 'empty_file', destname='__init__.py')
bld.RECURSE('cmocka')
- bld.RECURSE('zlib')
bld.RECURSE('popt')
bld.RECURSE('aesni-intel')
if bld.CONFIG_GET('SOCKET_WRAPPER'):