12 # find the buildtools directory
14 while not os
.path
.exists(srcdir
+'/buildtools') and len(srcdir
.split('/')) < 5:
15 srcdir
= '../' + srcdir
16 sys
.path
.insert(0, srcdir
+ '/buildtools/wafsamba')
19 sys
.path
.insert(0, srcdir
+"/buildtools/wafsamba")
20 import wafsamba
, samba_dist
, Options
22 # setup what directories to put in a tarball
23 samba_dist
.DIST_DIRS('lib/talloc:. lib/replace:lib/replace buildtools:buildtools')
27 opt
.BUILTIN_DEFAULT('replace')
28 opt
.PRIVATE_EXTENSION_DEFAULT('talloc', noextension
='talloc')
29 opt
.RECURSE('lib/replace')
30 opt
.add_option('--enable-talloc-compat1',
31 help=("Build talloc 1.x.x compat library [False]"),
32 action
="store_true", dest
='TALLOC_COMPAT1', default
=False)
33 if opt
.IN_LAUNCH_DIR():
34 opt
.add_option('--disable-python',
35 help=("disable the pytalloc module"),
36 action
="store_true", dest
='disable_python', default
=False)
40 conf
.RECURSE('lib/replace')
42 conf
.env
.standalone_talloc
= conf
.IN_LAUNCH_DIR()
44 conf
.env
.disable_python
= getattr(Options
.options
, 'disable_python', False)
46 if not conf
.env
.standalone_talloc
:
47 if conf
.CHECK_BUNDLED_SYSTEM('talloc', minversion
=VERSION
,
48 implied_deps
='replace'):
49 conf
.define('USING_SYSTEM_TALLOC', 1)
50 if conf
.CHECK_BUNDLED_SYSTEM('pytalloc-util', minversion
=VERSION
,
51 implied_deps
='talloc replace'):
52 conf
.define('USING_SYSTEM_PYTALLOC_UTIL', 1)
54 conf
.env
.TALLOC_COMPAT1
= Options
.options
.TALLOC_COMPAT1
56 conf
.CHECK_XSLTPROC_MANPAGES()
58 if not conf
.env
.disable_python
:
59 # also disable if we don't have the python libs installed
60 conf
.find_program('python', var
='PYTHON')
61 conf
.check_tool('python')
62 conf
.check_python_version((2,4,2))
63 conf
.SAMBA_CHECK_PYTHON_HEADERS(mandatory
=False)
64 if not conf
.env
.HAVE_PYTHON_H
:
65 Logs
.warn('Disabling pytalloc-util as python devel libs not found')
66 conf
.env
.disable_python
= True
72 bld
.RECURSE('lib/replace')
74 if bld
.env
.standalone_talloc
:
75 bld
.env
.PKGCONFIGDIR
= '${LIBDIR}/pkgconfig'
76 bld
.env
.TALLOC_VERSION
= VERSION
77 bld
.PKG_CONFIG_FILES('talloc.pc', vnum
=VERSION
)
78 private_library
= False
80 # should we also install the symlink to libtalloc1.so here?
81 bld
.SAMBA_LIBRARY('talloc-compat1-%s' % (VERSION
),
82 'compat/talloc_compat1.c',
84 soname
='libtalloc.so.1',
85 enabled
=bld
.env
.TALLOC_COMPAT1
)
87 if not bld
.env
.disable_python
:
88 bld
.PKG_CONFIG_FILES('pytalloc-util.pc', vnum
=VERSION
)
90 private_library
= True
92 if not bld
.CONFIG_SET('USING_SYSTEM_TALLOC'):
94 bld
.SAMBA_LIBRARY('talloc',
98 abi_match
='talloc* _talloc*',
101 public_headers
='talloc.h',
102 public_headers_install
=not private_library
,
103 private_library
=private_library
,
106 if not bld
.CONFIG_SET('USING_SYSTEM_PYTALLOC_UTIL') and not bld
.env
.disable_python
:
108 bld
.SAMBA_LIBRARY('pytalloc-util',
109 source
='pytalloc_util.c',
110 public_deps
='talloc',
113 private_library
=private_library
,
114 public_headers
='pytalloc.h'
116 bld
.SAMBA_PYTHON('pytalloc',
118 deps
='talloc pytalloc-util',
120 realname
='talloc.so')
122 if not getattr(bld
.env
, '_SAMBA_BUILD_', 0) == 4:
123 # s4 already has the talloc testsuite builtin to smbtorture
124 bld
.SAMBA_BINARY('talloc_testsuite',
125 'testsuite_main.c testsuite.c',
131 '''run talloc testsuite'''
132 import Utils
, samba_utils
133 cmd
= os
.path
.join(Utils
.g_module
.blddir
, 'talloc_testsuite')
134 ret
= samba_utils
.RUN_COMMAND(cmd
)
135 print("testsuite returned %d" % ret
)
139 '''makes a tarball for distribution'''
142 def reconfigure(ctx
):
143 '''reconfigure if config scripts have changed'''
145 samba_utils
.reconfigure(ctx
)
149 '''build python apidocs'''
150 cmd
='PYTHONPATH=bin/python pydoctor --project-name=talloc --project-url=http://talloc.samba.org/ --make-html --docformat=restructuredtext --introspect-c-modules --add-module bin/python/talloc.*'
151 print("Running: %s" % cmd
)