X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=lib%2Ftevent%2Fwscript;h=31f7ee7c0cc7fdf27625541379660791f3836a03;hb=2e573eead96b2e98dd8a15c9c8e470679e530392;hp=f6d60bdcc0cda1d4eb00425dcc1a377fc4abb741;hpb=465cff7531731929b963085a13ef9a74100858e5;p=samba.git diff --git a/lib/tevent/wscript b/lib/tevent/wscript index f6d60bdcc0c..31f7ee7c0cc 100644 --- a/lib/tevent/wscript +++ b/lib/tevent/wscript @@ -1,7 +1,7 @@ #!/usr/bin/env python APPNAME = 'tevent' -VERSION = '0.9.9' +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.BUNDLED_EXTENSION_DEFAULT('tevent', noextension='tevent') + 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,64 +31,119 @@ 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.check_python_headers(mandatory=False) + conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False) if not conf.env.HAVE_PYTHON_H: Logs.warn('Disabling pytevent as python devel libs not found') conf.env.disable_python = True 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_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' + 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'), - abi_file='ABI/tevent-%s.sigs' % VERSION, + includes='.', + abi_directory='ABI', abi_match='tevent_* _tevent_*', - vnum=VERSION, - is_bundled=not bld.env.standalone_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) - if bld.env.standalone_tevent: - bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig' - bld.PKG_CONFIG_FILES('tevent.pc', vnum=VERSION) - bld.INSTALL_FILES('${INCLUDEDIR}', 'tevent.h') + 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) - bld.SAMBA_PYTHON('pytevent', - 'pytevent.c', - deps='tevent', - enabled=True, - realname='_tevent.so') + # 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''' samba_dist.dist() + +def reconfigure(ctx): + '''reconfigure if config scripts have changed''' + import samba_utils + samba_utils.reconfigure(ctx)