X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=lib%2Ftevent%2Fwscript;h=31f7ee7c0cc7fdf27625541379660791f3836a03;hb=2e573eead96b2e98dd8a15c9c8e470679e530392;hp=b82a41f573f60f7b34c5549aaeac78be2d0de087;hpb=3254e392208ac06c7cce3d89ca6369a224f7f481;p=samba.git diff --git a/lib/tevent/wscript b/lib/tevent/wscript index b82a41f573f..31f7ee7c0cc 100644 --- a/lib/tevent/wscript +++ b/lib/tevent/wscript @@ -1,7 +1,7 @@ #!/usr/bin/env python APPNAME = 'tevent' -VERSION = '0.9.10' +VERSION = '0.9.34' blddir = 'bin' @@ -10,22 +10,18 @@ import sys, os # find the buildtools directory srcdir = '.' while not os.path.exists(srcdir+'/buildtools') and len(srcdir.split('/')) < 5: - srcdir = '../' + srcdir + srcdir = srcdir + '/..' sys.path.insert(0, srcdir + '/buildtools/wafsamba') -import wafsamba, samba_dist, Options, Logs +import wafsamba, samba_dist, samba_utils, Options, Logs -samba_dist.DIST_DIRS('lib/tevent:. lib/replace:lib/replace lib/talloc:lib/talloc buildtools:buildtools') +samba_dist.DIST_DIRS('lib/tevent:. lib/replace:lib/replace lib/talloc:lib/talloc buildtools:buildtools third_party/waf:third_party/waf') def set_options(opt): opt.BUILTIN_DEFAULT('replace') opt.PRIVATE_EXTENSION_DEFAULT('tevent', noextension='tevent') opt.RECURSE('lib/replace') opt.RECURSE('lib/talloc') - if opt.IN_LAUNCH_DIR(): - opt.add_option('--disable-python', - help=("disable the pytevent module"), - action="store_true", dest='disable_python', default=False) def configure(conf): @@ -35,17 +31,36 @@ def configure(conf): conf.env.standalone_tevent = conf.IN_LAUNCH_DIR() if not conf.env.standalone_tevent: - if conf.CHECK_BUNDLED_SYSTEM('tevent', minversion=VERSION, + if conf.CHECK_BUNDLED_SYSTEM_PKG('tevent', minversion=VERSION, onlyif='talloc', implied_deps='replace talloc'): conf.define('USING_SYSTEM_TEVENT', 1) + if not conf.env.disable_python and \ + conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytevent', 'tevent', minversion=VERSION): + conf.define('USING_SYSTEM_PYTEVENT', 1) if conf.CHECK_FUNCS('epoll_create', headers='sys/epoll.h'): conf.DEFINE('HAVE_EPOLL', 1) - conf.env.disable_python = getattr(Options.options, 'disable_python', False) + tevent_num_signals = 64 + v = conf.CHECK_VALUEOF('NSIG', headers='signal.h') + if v is not None: + tevent_num_signals = max(tevent_num_signals, v) + v = conf.CHECK_VALUEOF('_NSIG', headers='signal.h') + if v is not None: + tevent_num_signals = max(tevent_num_signals, v) + v = conf.CHECK_VALUEOF('SIGRTMAX', headers='signal.h') + if v is not None: + tevent_num_signals = max(tevent_num_signals, v) + v = conf.CHECK_VALUEOF('SIGRTMIN', headers='signal.h') + if v is not None: + tevent_num_signals = max(tevent_num_signals, v*2) + + if not conf.CONFIG_SET('USING_SYSTEM_TEVENT'): + conf.DEFINE('TEVENT_NUM_SIGNALS', tevent_num_signals) if not conf.env.disable_python: # also disable if we don't have the python libs installed + conf.find_program('python', var='PYTHON') conf.check_tool('python') conf.check_python_version((2,4,2)) conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False) @@ -55,47 +70,74 @@ def configure(conf): conf.SAMBA_CONFIG_H() + conf.SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS() + def build(bld): bld.RECURSE('lib/replace') bld.RECURSE('lib/talloc') SRC = '''tevent.c tevent_debug.c tevent_fd.c tevent_immediate.c - tevent_queue.c tevent_req.c tevent_select.c - tevent_poll.c + tevent_queue.c tevent_req.c + tevent_poll.c tevent_threads.c tevent_signal.c tevent_standard.c tevent_timed.c tevent_util.c tevent_wakeup.c''' if bld.CONFIG_SET('HAVE_EPOLL'): SRC += ' tevent_epoll.c' + if bld.CONFIG_SET('HAVE_SOLARIS_PORTS'): + SRC += ' tevent_port.c' + if bld.env.standalone_tevent: bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig' - bld.PKG_CONFIG_FILES('tevent.pc', vnum=VERSION) - bld.INSTALL_FILES('${INCLUDEDIR}', 'tevent.h') private_library = False else: private_library = True if not bld.CONFIG_SET('USING_SYSTEM_TEVENT'): + tevent_deps = 'replace talloc' + if bld.CONFIG_SET('HAVE_PTHREAD'): + tevent_deps += ' pthread' + bld.SAMBA_LIBRARY('tevent', SRC, - deps='replace talloc', + deps=tevent_deps, enabled= not bld.CONFIG_SET('USING_SYSTEM_TEVENT'), + includes='.', abi_directory='ABI', abi_match='tevent_* _tevent_*', vnum=VERSION, + public_headers=('' if private_library else 'tevent.h'), + public_headers_install=not private_library, + pc_files='tevent.pc', private_library=private_library) - bld.SAMBA_PYTHON('pytevent', - 'pytevent.c', - deps='tevent', - enabled=True, - realname='_tevent.so') + if not bld.CONFIG_SET('USING_SYSTEM_PYTEVENT') and not bld.env.disable_python: + for env in bld.gen_python_environments(['PKGCONFIGDIR']): + bld.SAMBA_PYTHON('_tevent', + 'pytevent.c', + deps='tevent', + realname='_tevent.so', + cflags='-DPACKAGE_VERSION=\"%s\"' % VERSION) + + + bld.INSTALL_WILDCARD('${PYTHONARCHDIR}', 'tevent.py', flat=False) + + # install out various python scripts for use by make test + bld.SAMBA_SCRIPT('tevent_python', + pattern='tevent.py', + installdir='python') def test(ctx): '''test tevent''' print("The tevent testsuite is part of smbtorture in samba4") + samba_utils.ADD_LD_LIBRARY_PATH('bin/shared') + samba_utils.ADD_LD_LIBRARY_PATH('bin/shared/private') + + pyret = samba_utils.RUN_PYTHON_TESTS(['bindings.py']) + sys.exit(pyret) + def dist(): '''makes a tarball for distribution'''