summaryrefslogtreecommitdiff
path: root/lib/tdb2
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2011-06-20 18:40:34 +0930
committerRusty Russell <rusty@rustcorp.com.au>2011-06-20 11:18:36 +0200
commit985e83ef520da68a60899f0ad977cb28a77b8cbe (patch)
tree4da2f88a0879b86ada629441dc79f67be17b7a29 /lib/tdb2
parent5eecc854236f0b943aaa89e0c3a46f9fbd208ca9 (diff)
downloadsamba-985e83ef520da68a60899f0ad977cb28a77b8cbe.tar.gz
samba-985e83ef520da68a60899f0ad977cb28a77b8cbe.tar.bz2
samba-985e83ef520da68a60899f0ad977cb28a77b8cbe.zip
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 <rusty@rustcorp.com.au>
Diffstat (limited to 'lib/tdb2')
-rw-r--r--lib/tdb2/TODO4
-rw-r--r--lib/tdb2/wscript99
2 files changed, 103 insertions, 0 deletions
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)