From 985e83ef520da68a60899f0ad977cb28a77b8cbe Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 20 Jun 2011 18:40:34 +0930 Subject: tdb2: tie it into build process if --enable-tdb2-breaks-compat This is simplistic. We need to support making TDB2 a standalone library, but for now, we simply built it in-tree. Once we have tdb1 compatibility in tdb2, we can rename this option to --enable-tdb2. Signed-off-by: Rusty Russell --- lib/tdb2/TODO | 4 ++ lib/tdb2/wscript | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++ lib/tdb_compat/wscript | 15 +++++++- 3 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 lib/tdb2/TODO create mode 100644 lib/tdb2/wscript (limited to 'lib') diff --git a/lib/tdb2/TODO b/lib/tdb2/TODO new file mode 100644 index 0000000000..0a9374f016 --- /dev/null +++ b/lib/tdb2/TODO @@ -0,0 +1,4 @@ +- tdb2restore, tdb2dump, tdb2backup +- tdb2tool man page +- Integrate ccan testsuite +- Integrate tdb2 testsuite diff --git a/lib/tdb2/wscript b/lib/tdb2/wscript new file mode 100644 index 0000000000..386768f0fc --- /dev/null +++ b/lib/tdb2/wscript @@ -0,0 +1,99 @@ +#!/usr/bin/env python + +APPNAME = 'tdb' +VERSION = '2.0-alpha' + +blddir = 'bin' + +import sys, os + +# find the buildtools directory +srcdir = '.' +while not os.path.exists(srcdir+'/buildtools') and len(srcdir.split('/')) < 5: + srcdir = '../' + srcdir +sys.path.insert(0, srcdir + '/buildtools/wafsamba') + +import wafsamba, samba_dist, Options, Logs + +samba_dist.DIST_DIRS('lib/tdb2:. lib/replace:lib/replace buildtools:buildtools') + +def set_options(opt): + opt.BUILTIN_DEFAULT('replace') + opt.PRIVATE_EXTENSION_DEFAULT('tdb2', noextension='tdb2') + opt.RECURSE('lib/replace') + opt.add_option('--enable-tdb2-breaks-compat', + help=("Build tdb2 instead of tdb1 (BREAKS TDB1!) [False]"), + action="store_true", dest='BUILD_TDB2', default=False) + if opt.IN_LAUNCH_DIR(): + opt.add_option('--disable-python', + help=("disable the pytdb module"), + action="store_true", dest='disable_python', default=False) + +def configure(conf): + if conf.env.BUILD_TDB2: + conf.DEFINE('BUILD_TDB2', 1) + conf.RECURSE('lib/replace') + conf.RECURSE('lib/ccan') + + conf.env.standalone_tdb2 = conf.IN_LAUNCH_DIR() + conf.env.disable_python = getattr(Options.options, 'disable_python', False) + +# if not conf.env.standalone_tdb2: +# if conf.CHECK_BUNDLED_SYSTEM('tdb', minversion=VERSION, +# implied_deps='replace'): +# conf.define('USING_SYSTEM_TDB2', 1) + + conf.SAMBA_CONFIG_H() + +def build(bld): + if bld.env.BUILD_TDB2: + bld.RECURSE('lib/replace') + + if bld.env.standalone_tdb2: + bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig' + bld.PKG_CONFIG_FILES('tdb2.pc', vnum=VERSION) + bld.INSTALL_FILES('${INCLUDEDIR}', 'tdb2.h', flat=True) + private_library = False + else: + private_library = True + + if not bld.CONFIG_SET('USING_SYSTEM_TDB2'): + # FIXME: hide_symbols=True, abi_directory='ABI', abi_match='tdb_*', vnum=VERSION, + bld.SAMBA_LIBRARY('tdb', + '''check.c free.c hash.c io.c lock.c open.c + summary.c tdb.c transaction.c traverse.c''', + deps='replace ccan', + private_library=private_library) + + bld.SAMBA_BINARY('tdb2torture', + 'tools/tdb2torture.c', + 'tdb', + install=False) + + bld.SAMBA_BINARY('tdb2tool', + 'tools/tdb2tool.c', + 'tdb') + + bld.SAMBA_BINARY('tdb2dump', + 'tools/tdb2dump.c', + 'tdb') + + bld.SAMBA_BINARY('tdb2restore', + 'tools/tdb2restore.c', + 'tdb') + + bld.SAMBA_PYTHON('pytdb', + 'pytdb.c', + deps='tdb', + enabled=not bld.env.disable_python, + realname='tdb.so', + cflags='-DPACKAGE_VERSION=\"%s\"' % VERSION) + +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) diff --git a/lib/tdb_compat/wscript b/lib/tdb_compat/wscript index 8a6f69a96a..574e67e8ef 100644 --- a/lib/tdb_compat/wscript +++ b/lib/tdb_compat/wscript @@ -1,15 +1,26 @@ #!/usr/bin/env python +import Options + def set_options(opt): + opt.RECURSE('lib/tdb2') opt.RECURSE('lib/tdb') def configure(conf): - conf.RECURSE('lib/tdb') + conf.env.BUILD_TDB2 = getattr(Options.options, 'BUILD_TDB2', False) + + if conf.env.BUILD_TDB2: + conf.RECURSE('lib/tdb2') + else: + conf.RECURSE('lib/tdb') conf.RECURSE('lib/ccan') def build(bld): - bld.RECURSE('lib/tdb') bld.RECURSE('lib/ccan') + if bld.env.BUILD_TDB2: + bld.RECURSE('lib/tdb2') + else: + bld.RECURSE('lib/tdb') bld.SAMBA_LIBRARY('tdb_compat', source='tdb_compat.c', deps='replace tdb ccan', -- cgit