mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
build: waf quicktest nearly works
Rewrote wafsamba using a new dependency handling system, and started adding the waf test code
This commit is contained in:
parent
845e0cbe6f
commit
844acb2260
@ -2,13 +2,49 @@
|
||||
|
||||
# compare the generated files from a waf
|
||||
|
||||
old_build=$HOME/samba_old
|
||||
|
||||
gen_files=$(cd bin/default && find . -type f -name '*.[ch]')
|
||||
|
||||
2>&1
|
||||
|
||||
strip_file()
|
||||
{
|
||||
in_file=$1
|
||||
out_file=$2
|
||||
cat $in_file |
|
||||
grep -v 'The following definitions come from' |
|
||||
grep -v 'Automatically generated at' |
|
||||
grep -v 'Generated from' |
|
||||
sed 's|/home/tnagy/samba/source4||g' |
|
||||
sed 's|/home/tnagy/samba/|../|g' |
|
||||
sed 's|bin/default/source4/||g' |
|
||||
sed 's|bin/default/|../|g' |
|
||||
sed 's/define _____/define ___/g' |
|
||||
sed 's/define __*/define _/g' |
|
||||
sed 's/define _DEFAULT_/define _/g' |
|
||||
sed 's/define _SOURCE4_/define ___/g' |
|
||||
sed 's/define ___/define _/g' |
|
||||
sed 's/ifndef ___/ifndef _/g' |
|
||||
sed 's|endif /* ____|endif /* __|g' |
|
||||
sed s/__DEFAULT_SOURCE4/__/ |
|
||||
sed s/__DEFAULT_SOURCE4/__/ |
|
||||
sed s/__DEFAULT/____/ > $out_file
|
||||
}
|
||||
|
||||
compare_file()
|
||||
{
|
||||
f=$f
|
||||
bname=$(basename $f)
|
||||
t1=/tmp/$bname.old.$$
|
||||
t2=/tmp/$bname.new.$$
|
||||
strip_file $old_build/$f $t1
|
||||
strip_file bin/default/$f $t2
|
||||
diff -u -b $t1 $t2 2>&1
|
||||
rm -f $t1 $t2
|
||||
}
|
||||
|
||||
for f in $gen_files; do
|
||||
echo
|
||||
echo "==================================================="
|
||||
echo "Comparing generated file $f"
|
||||
diff -u -b $HOME/samba_old/$f bin/default/$f
|
||||
compare_file $f
|
||||
done
|
||||
|
||||
|
Binary file not shown.
@ -2,3 +2,18 @@ This is a set of waf 'tools' to help make building the Samba
|
||||
components easier, by having common functions in one place. This gives
|
||||
us a more consistent build, and ensures that our project rules are
|
||||
obeyed
|
||||
|
||||
|
||||
TODO:
|
||||
- fix deps for --target
|
||||
- cache project rules calculation
|
||||
- make pidl rules depend on full pidl sources
|
||||
- make script rules depend on the scripts
|
||||
- add waf test
|
||||
- s3 build
|
||||
- merged build
|
||||
- etags
|
||||
- rest of old make targets
|
||||
- better Makefile waf wrapper
|
||||
-
|
||||
|
||||
|
108
buildtools/wafsamba/gccdeps.py
Normal file
108
buildtools/wafsamba/gccdeps.py
Normal file
@ -0,0 +1,108 @@
|
||||
#!/usr/bin/env python
|
||||
# encoding: utf-8
|
||||
# Thomas Nagy, 2008-2010 (ita)
|
||||
|
||||
"""
|
||||
Execute the tasks with gcc -MD, read the dependencies from the .d file
|
||||
and prepare the dependency calculation for the next run
|
||||
"""
|
||||
|
||||
import os, re, threading
|
||||
import Task, Logs, Utils, preproc
|
||||
|
||||
lock = threading.Lock()
|
||||
|
||||
|
||||
def detect(conf):
|
||||
conf.env.append_unique('CCFLAGS', '-MD')
|
||||
|
||||
def scan(self):
|
||||
"the scanner does not do anything initially"
|
||||
nodes = self.generator.bld.node_deps.get(self.unique_id(), [])
|
||||
names = []
|
||||
return (nodes, names)
|
||||
|
||||
re_src = re.compile("^(\.\.)[\\/](.*)$")
|
||||
|
||||
def post_run(self):
|
||||
# The following code is executed by threads, it is not safe, so a lock is needed...
|
||||
|
||||
if getattr(self, 'cached', None):
|
||||
return Task.Task.post_run(self)
|
||||
|
||||
name = self.outputs[0].abspath(self.env)
|
||||
name = name.rstrip('.o') + '.d'
|
||||
txt = Utils.readf(name)
|
||||
#os.unlink(name)
|
||||
|
||||
txt = txt.replace('\\\n', '')
|
||||
|
||||
lst = txt.strip().split(':')
|
||||
val = ":".join(lst[1:])
|
||||
val = val.split()
|
||||
|
||||
nodes = []
|
||||
bld = self.generator.bld
|
||||
|
||||
f = re.compile("^("+self.env.variant()+"|\.\.)[\\/](.*)$")
|
||||
for x in val:
|
||||
if os.path.isabs(x):
|
||||
|
||||
if not preproc.go_absolute:
|
||||
continue
|
||||
|
||||
lock.acquire()
|
||||
try:
|
||||
node = bld.root.find_resource(x)
|
||||
finally:
|
||||
lock.release()
|
||||
else:
|
||||
g = re.search(re_src, x)
|
||||
if g:
|
||||
x = g.group(2)
|
||||
lock.acquire()
|
||||
try:
|
||||
node = bld.bldnode.parent.find_resource(x)
|
||||
finally:
|
||||
lock.release()
|
||||
else:
|
||||
g = re.search(f, x)
|
||||
if g:
|
||||
x = g.group(2)
|
||||
lock.acquire()
|
||||
try:
|
||||
node = bld.srcnode.find_resource(x)
|
||||
finally:
|
||||
lock.release()
|
||||
|
||||
if id(node) == id(self.inputs[0]):
|
||||
# ignore the source file, it is already in the dependencies
|
||||
# this way, successful config tests may be retrieved from the cache
|
||||
continue
|
||||
|
||||
if not node:
|
||||
raise ValueError('could not find %r for %r' % (x, self))
|
||||
else:
|
||||
nodes.append(node)
|
||||
|
||||
Logs.debug('deps: real scanner for %s returned %s' % (str(self), str(nodes)))
|
||||
|
||||
bld.node_deps[self.unique_id()] = nodes
|
||||
bld.raw_deps[self.unique_id()] = []
|
||||
|
||||
try:
|
||||
del self.cache_sig
|
||||
except:
|
||||
pass
|
||||
|
||||
Task.Task.post_run(self)
|
||||
|
||||
for name in 'cc cxx'.split():
|
||||
try:
|
||||
cls = Task.TaskBase.classes[name]
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
cls.post_run = post_run
|
||||
cls.scan = scan
|
||||
|
@ -1,7 +1,7 @@
|
||||
# samba ASN1 rules
|
||||
|
||||
from TaskGen import taskgen, before
|
||||
import Build, os, string, Utils
|
||||
from TaskGen import before
|
||||
import Build, os
|
||||
from samba_utils import *
|
||||
from samba_autoconf import *
|
||||
|
||||
@ -48,11 +48,16 @@ def SAMBA_ASN1(bld, name, source,
|
||||
# SRC[0].abspath(env) gives the absolute path to the source directory for the first
|
||||
# source file. Note that in the case of a option_file, we have more than
|
||||
# one source file
|
||||
# SRC[1].abspath(env) gives the path of asn1_compile. This makes the asn1 output
|
||||
# correctly depend on the compiler binary
|
||||
cd_rule = 'cd ${TGT[0].parent.abspath(env)}'
|
||||
asn1_rule = cd_rule + ' && ${ASN1COMPILER} ${OPTION_FILE} ${ASN1OPTIONS} --one-code-file ${SRC[0].abspath(env)} ${ASN1NAME}'
|
||||
asn1_rule = cd_rule + ' && ${SRC[1].abspath(env)} ${OPTION_FILE} ${ASN1OPTIONS} --one-code-file ${SRC[0].abspath(env)} ${ASN1NAME}'
|
||||
|
||||
source = TO_LIST(source)
|
||||
source.append('asn1_compile')
|
||||
|
||||
if option_file is not None:
|
||||
source = [ source, option_file ]
|
||||
source.append(option_file)
|
||||
|
||||
t = bld(rule=asn1_rule,
|
||||
features = 'asn1',
|
||||
@ -65,7 +70,6 @@ def SAMBA_ASN1(bld, name, source,
|
||||
|
||||
t.env.ASN1NAME = asn1name
|
||||
t.env.ASN1OPTIONS = options
|
||||
t.env.ASN1COMPILER = os.path.join(os.environ.get('PWD'), 'bin/asn1_compile')
|
||||
if option_file is not None:
|
||||
t.env.OPTION_FILE = "--option-file=%s" % os.path.normpath(os.path.join(bld.curdir, option_file))
|
||||
|
||||
@ -99,7 +103,7 @@ def SAMBA_ASN1(bld, name, source,
|
||||
t = bld(features = 'cc',
|
||||
source = cfile,
|
||||
target = name,
|
||||
ccflags = CURRENT_CFLAGS(bld, name, ''),
|
||||
samba_cflags = CURRENT_CFLAGS(bld, name, ''),
|
||||
depends_on = '',
|
||||
samba_deps = TO_LIST('HEIMDAL_ROKEN'),
|
||||
samba_includes = includes,
|
||||
|
@ -1,10 +1,8 @@
|
||||
# a waf tool to add autoconf-like macros to the configure section
|
||||
|
||||
import Build, os, Logs, sys, Configure, Options
|
||||
import string, Task, Utils, optparse
|
||||
import Build, os
|
||||
import string
|
||||
from Configure import conf
|
||||
from Logs import debug
|
||||
from TaskGen import extension
|
||||
from samba_utils import *
|
||||
|
||||
####################################################
|
||||
@ -208,7 +206,7 @@ def CHECK_CODE(conf, code, define,
|
||||
execute=execute,
|
||||
define_name = define,
|
||||
mandatory = mandatory,
|
||||
ccflags=TO_LIST(cflags),
|
||||
samba_cflags=TO_LIST(cflags),
|
||||
includes=includes,
|
||||
msg=msg):
|
||||
conf.DEFINE(define, 1)
|
||||
|
@ -1,7 +1,6 @@
|
||||
# waf build tool for building automatic prototypes from C source
|
||||
|
||||
from TaskGen import taskgen, before
|
||||
import Build, os, string, Utils
|
||||
import Build
|
||||
from samba_utils import *
|
||||
|
||||
# rule for heimdal prototype generation
|
||||
|
@ -1,7 +1,6 @@
|
||||
# Samba automatic dependency handling
|
||||
# Samba automatic dependency handling and project rules
|
||||
|
||||
from TaskGen import taskgen, before
|
||||
import Build, os, string, Utils, re
|
||||
import Build, os, re, Environment
|
||||
from samba_utils import *
|
||||
from samba_autoconf import *
|
||||
|
||||
@ -30,156 +29,66 @@ def EXPAND_ALIAS(bld, target):
|
||||
Build.BuildContext.EXPAND_ALIAS = EXPAND_ALIAS
|
||||
|
||||
|
||||
def expand_dependencies(bld, dep, chain, path):
|
||||
'''expand a dependency recursively
|
||||
return a triple of (uselib, uselib_local, add_objects)
|
||||
'''
|
||||
def expand_subsystem_deps(bld):
|
||||
'''expand the reverse dependencies resulting from subsystem
|
||||
attributes of modules'''
|
||||
subsystems = LOCAL_CACHE(bld, 'INIT_FUNCTIONS')
|
||||
aliases = LOCAL_CACHE(bld, 'TARGET_ALIAS')
|
||||
targets = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
|
||||
dep = EXPAND_ALIAS(bld, dep)
|
||||
for s in subsystems:
|
||||
if s in aliases:
|
||||
s = aliases[s]
|
||||
bld.ASSERT(s in targets, "Subsystem target %s not declared" % s)
|
||||
type = targets[s]
|
||||
if type == 'DISABLED' or type == 'EMPTY':
|
||||
continue
|
||||
|
||||
t = bld.name_to_obj(dep, bld.env)
|
||||
|
||||
# check for a cached list
|
||||
if t is not None:
|
||||
expanded = getattr(t, 'expanded_dependencies', None)
|
||||
if expanded is not None:
|
||||
return expanded
|
||||
|
||||
target_dict = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
|
||||
uselib_local = []
|
||||
uselib = []
|
||||
add_objects = []
|
||||
|
||||
recurse = False
|
||||
|
||||
bld.ASSERT(dep in target_dict, "Dependency %s not found in %s" % (dep, path))
|
||||
type = target_dict[dep]
|
||||
if type == 'SYSLIB':
|
||||
uselib.append(dep)
|
||||
elif type == 'LIBRARY':
|
||||
uselib_local.append(dep)
|
||||
recurse = True
|
||||
elif type == 'SUBSYSTEM':
|
||||
add_objects.append(dep)
|
||||
recurse = True
|
||||
elif type == 'MODULE':
|
||||
add_objects.append(dep)
|
||||
recurse = True
|
||||
elif type == 'PYTHON':
|
||||
add_objects.append(dep)
|
||||
recurse = True
|
||||
elif type == 'ASN1':
|
||||
add_objects.append(dep)
|
||||
recurse = True
|
||||
elif type == 'BINARY':
|
||||
pass
|
||||
elif type == 'EMPTY':
|
||||
pass
|
||||
elif type == 'DISABLED':
|
||||
debug('deps: Ignoring dependency on disabled target %s: %s' % (dep, path))
|
||||
else:
|
||||
bld.ASSERT(False, "Unknown target type %s for %s" % (type, dep))
|
||||
|
||||
# for some types we have to build the list recursively
|
||||
if recurse:
|
||||
bld.ASSERT(t is not None, "Unable to find target %s" % dep)
|
||||
rec_deps = getattr(t, 'samba_deps', None)
|
||||
bld.ASSERT(rec_deps is not None, "Unable to find dependencies of target %s" % dep)
|
||||
for d2 in rec_deps:
|
||||
try:
|
||||
bld.ASSERT(d2 not in chain, "Circular dependency for %s: %s->%s" % (dep, path, d2))
|
||||
except:
|
||||
print "Removing dependency %s from target %s" % (d2, dep)
|
||||
rec_deps.remove(d2)
|
||||
continue
|
||||
c2 = chain.copy()
|
||||
c2[d2] = True
|
||||
(rec_uselib, rec_uselib_local,
|
||||
rec_add_objects) = expand_dependencies(bld, d2, c2, "%s->%s" % (path, d2))
|
||||
uselib.extend(rec_uselib)
|
||||
uselib_local.extend(rec_uselib_local)
|
||||
add_objects.extend(rec_add_objects)
|
||||
|
||||
if t is not None:
|
||||
t.expanded_dependencies = (uselib, uselib_local, add_objects)
|
||||
|
||||
return (uselib, uselib_local, add_objects)
|
||||
|
||||
|
||||
def expand_deplist(self):
|
||||
'''return an expanded list of dependencies from the samba_deps attribute'''
|
||||
|
||||
if not getattr(self, 'samba_deps', None):
|
||||
return ([], [], [])
|
||||
|
||||
bld = self.bld
|
||||
deps = self.samba_deps
|
||||
|
||||
uselib_local = []
|
||||
uselib = []
|
||||
add_objects = []
|
||||
|
||||
for d in deps:
|
||||
(u, ul, ao) = expand_dependencies(bld, d, { self.name:True }, self.name)
|
||||
uselib.extend(u)
|
||||
uselib_local.extend(ul)
|
||||
add_objects.extend(ao)
|
||||
|
||||
return (uselib, uselib_local, add_objects)
|
||||
t = bld.name_to_obj(s, bld.env)
|
||||
bld.ASSERT(t is not None, "Subsystem target %s not found" % s)
|
||||
for d in subsystems[s]:
|
||||
type = targets[d['TARGET']]
|
||||
if type != 'DISABLED' and type != 'EMPTY':
|
||||
t.samba_deps_extended.append(d['TARGET'])
|
||||
t2 = bld.name_to_obj(d['TARGET'], bld.env)
|
||||
t2.samba_includes_extended.extend(t.samba_includes_extended)
|
||||
t2.samba_deps_extended.extend(t.samba_deps_extended)
|
||||
t.samba_deps_extended = unique_list(t.samba_deps_extended)
|
||||
|
||||
|
||||
|
||||
@feature('cc', 'cshlib', 'cprogram')
|
||||
@before('apply_lib_vars', 'apply_verif', 'apply_objdeps', 'apply_obj_vars', 'apply_incpaths', 'build_includes')
|
||||
@after('default_cc')
|
||||
def build_dependencies(self):
|
||||
'''This builds the dependency list for a target. It runs after all the targets are declared
|
||||
|
||||
The reason this is not just done in the SAMBA_*() rules is that we have no way of knowing
|
||||
the full dependency list for a target until we have all of the targets declared. So what we do is
|
||||
add a samba_deps attribute on the task generator when we declare it, then
|
||||
this rule runs after all the task generators are declared and maps the samba_deps attribute
|
||||
to a set of uselib, uselib_local and add_objects dependencies
|
||||
the full dependency list for a target until we have all of the targets declared.
|
||||
'''
|
||||
|
||||
if getattr(self, 'build_dependencies_done', False):
|
||||
return
|
||||
self.build_dependencies_done = True
|
||||
|
||||
if getattr(self, 'samba_deps', None) is None:
|
||||
return
|
||||
|
||||
target_dict = LOCAL_CACHE(self.bld, 'TARGET_TYPE')
|
||||
|
||||
# we only should add extra library and object deps on libraries and binaries
|
||||
type = target_dict[self.name]
|
||||
if type != 'LIBRARY' and type != 'BINARY':
|
||||
if not self.samba_type in ['LIBRARY', 'BINARY', 'PYTHON']:
|
||||
return
|
||||
|
||||
(uselib, uselib_local, add_objects) = expand_deplist(self)
|
||||
# we need to link against:
|
||||
|
||||
if 'GLOBAL_DEPENDENCIES' in self.bld.env:
|
||||
add_objects.extend(self.bld.env.GLOBAL_DEPENDENCIES)
|
||||
# 1) any direct system libs
|
||||
# 2) any indirect system libs that come from subsystem dependencies
|
||||
# 3) any direct local libs
|
||||
# 4) any indirect local libs that come from subsystem dependencies
|
||||
# 5) any direct objects
|
||||
# 6) any indirect objects that come from subsystem dependencies
|
||||
|
||||
self.uselib = unique_list(uselib)
|
||||
self.uselib_local = unique_list(uselib_local)
|
||||
self.add_objects = unique_list(add_objects)
|
||||
self.uselib = list(self.final_syslibs)
|
||||
self.uselib_local = list(self.final_libs)
|
||||
self.add_objects = list(self.final_objects)
|
||||
|
||||
debug('deps: dependency counts for %s: uselib=%u uselib_local=%u add_objects=%u' % (
|
||||
self.name, len(uselib), len(uselib_local), len(add_objects)))
|
||||
debug('deps: computed dependencies for target %s: uselib=%s uselib_local=%s add_objects=%s',
|
||||
self.sname, self.uselib, self.uselib_local, self.add_objects)
|
||||
|
||||
|
||||
|
||||
@feature('cc', 'cshlib', 'cprogram')
|
||||
@before('apply_lib_vars', 'apply_verif', 'apply_objdeps', 'apply_obj_vars', 'apply_incpaths', 'add_init_functions')
|
||||
@after('build_dependencies')
|
||||
def build_includes(self):
|
||||
'''This builds the right set of includes for a target.
|
||||
|
||||
This is closely related to building the set of dependencies, and
|
||||
calls into the same expand_dependencies() function to do the work.
|
||||
|
||||
One tricky part of this is that the includes= attribute for a
|
||||
target needs to use paths which are relative to that targets
|
||||
declaration directory (which we can get at via t.path).
|
||||
@ -191,82 +100,68 @@ def build_includes(self):
|
||||
attribute
|
||||
'''
|
||||
|
||||
if not getattr(self, 'build_dependencies_done', False):
|
||||
build_dependencies(self)
|
||||
if getattr(self, 'build_includes_done', False):
|
||||
return
|
||||
self.build_includes_done = True
|
||||
|
||||
if getattr(self, 'samba_includes', None) is None:
|
||||
return
|
||||
|
||||
bld = self.bld
|
||||
|
||||
(uselib, uselib_local, add_objects) = expand_deplist(self)
|
||||
|
||||
# get the list of all dependencies
|
||||
all_deps = []
|
||||
# all_deps.extend(uselib)
|
||||
all_deps.extend(uselib_local)
|
||||
all_deps.extend(add_objects)
|
||||
all_deps = unique_list(all_deps)
|
||||
inc_deps = self.includes_objects
|
||||
|
||||
includes = []
|
||||
|
||||
# build a list of includes
|
||||
# maybe add local includes
|
||||
if getattr(self, 'local_include', True) == True and getattr(self, 'local_include_first', True):
|
||||
includes.append('.')
|
||||
|
||||
includes.extend(TO_LIST(self.samba_includes))
|
||||
includes.extend(self.samba_includes_extended)
|
||||
|
||||
if 'EXTRA_INCLUDES' in bld.env:
|
||||
includes.extend(bld.env['EXTRA_INCLUDES'])
|
||||
|
||||
includes.append('#')
|
||||
|
||||
mypath = self.path.abspath(bld.env)
|
||||
inc_set = set()
|
||||
inc_abs = []
|
||||
|
||||
for d in all_deps:
|
||||
for d in inc_deps:
|
||||
t = bld.name_to_obj(d, bld.env)
|
||||
bld.ASSERT(t is not None, "Unable to find dependency %s for %s" % (d, self.name))
|
||||
t.samba_used = True
|
||||
samba_includes = getattr(t, 'samba_includes', None)
|
||||
inclist = TO_LIST(samba_includes)
|
||||
bld.ASSERT(t is not None, "Unable to find dependency %s for %s" % (d, self.sname))
|
||||
inclist = getattr(t, 'samba_includes_extended', [])
|
||||
if getattr(t, 'local_include', True) == True:
|
||||
inclist.append('.')
|
||||
if inclist == []:
|
||||
continue
|
||||
tpath = t.path.abspath(bld.env)
|
||||
relpath = os.path.relpath(tpath, mypath)
|
||||
tpath = t.samba_abspath
|
||||
for inc in inclist:
|
||||
includes.append(os.path.normpath(os.path.join(relpath, inc)))
|
||||
npath = tpath + '/' + inc
|
||||
if not npath in inc_set:
|
||||
inc_abs.append(npath)
|
||||
inc_set.add(npath)
|
||||
|
||||
mypath = self.path.abspath(bld.env)
|
||||
for inc in inc_abs:
|
||||
relpath = os_path_relpath(inc, mypath)
|
||||
includes.append(relpath)
|
||||
|
||||
if getattr(self, 'local_include', True) == True and not getattr(self, 'local_include_first', True):
|
||||
includes.append('.')
|
||||
|
||||
self.includes = unique_list(includes)
|
||||
debug('deps: Target %s has includes=%s all_deps=%s' % (self.name, self.includes, all_deps))
|
||||
debug('deps: includes for target %s: includes=%s',
|
||||
self.sname, self.includes)
|
||||
|
||||
|
||||
|
||||
@feature('cc', 'cshlib', 'cprogram')
|
||||
@before('apply_lib_vars', 'apply_verif', 'apply_objdeps', 'apply_obj_vars', 'apply_incpaths')
|
||||
@after('build_includes')
|
||||
def add_init_functions(self):
|
||||
'''This builds the right set of init functions'''
|
||||
|
||||
if not getattr(self, 'build_includes_done', False):
|
||||
build_includes(self)
|
||||
if getattr(self, 'add_init_functions_done', False):
|
||||
return
|
||||
self.add_init_functions_done = True
|
||||
|
||||
bld = self.bld
|
||||
|
||||
subsystems = LOCAL_CACHE(bld, 'INIT_FUNCTIONS')
|
||||
|
||||
modules = []
|
||||
if self.name in subsystems:
|
||||
modules.append(self.name)
|
||||
if self.sname in subsystems:
|
||||
modules.append(self.sname)
|
||||
|
||||
m = getattr(self, 'samba_modules', None)
|
||||
if m is not None:
|
||||
@ -279,112 +174,530 @@ def add_init_functions(self):
|
||||
if modules == []:
|
||||
return
|
||||
|
||||
cflags = getattr(self, 'ccflags', [])
|
||||
sentinal = getattr(self, 'init_function_sentinal', 'NULL')
|
||||
|
||||
cflags = getattr(self, 'samba_cflags', [])[:]
|
||||
for m in modules:
|
||||
if not m in subsystems:
|
||||
print "subsystems: %s" % subsystems
|
||||
bld.ASSERT(m in subsystems,
|
||||
"No init_function defined for module '%s' in target '%s'" % (m, self.name))
|
||||
cflags.append('-DSTATIC_%s_MODULES="%s"' % (m, ','.join(subsystems[m])))
|
||||
"No init_function defined for module '%s' in target '%s'" % (m, self.sname))
|
||||
init_fn_list = []
|
||||
for d in subsystems[m]:
|
||||
init_fn_list.append(d['INIT_FUNCTION'])
|
||||
cflags.append('-DSTATIC_%s_MODULES=%s' % (m, ','.join(init_fn_list) + ',' + sentinal))
|
||||
self.ccflags = cflags
|
||||
|
||||
|
||||
def check_orpaned_targets(bld):
|
||||
|
||||
def check_duplicate_sources(bld, tgt_list):
|
||||
'''see if we are compiling the same source file into multiple
|
||||
subsystem targets for the same library or binary'''
|
||||
|
||||
debug('deps: checking for duplicate sources')
|
||||
|
||||
targets = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
|
||||
for t in tgt_list:
|
||||
if not targets[t.sname] in [ 'LIBRARY', 'BINARY', 'PYTHON' ]:
|
||||
continue
|
||||
|
||||
sources = []
|
||||
for obj in t.add_objects:
|
||||
t2 = t.bld.name_to_obj(obj, bld.env)
|
||||
obj_sources = getattr(t2, 'source', '')
|
||||
if obj_sources == '': continue
|
||||
tpath = os_path_relpath(t2.path.abspath(bld.env), t.env['BUILD_DIRECTORY'] + '/default')
|
||||
obj_sources = bld.SUBDIR(tpath, obj_sources)
|
||||
sources.append( { 'dep':obj, 'src':set(TO_LIST(obj_sources)) } )
|
||||
#debug('deps: dependency expansion for target %s add_object %s: %s',
|
||||
# t.sname, obj, obj_sources)
|
||||
for s in sources:
|
||||
for s2 in sources:
|
||||
if s['dep'] == s2['dep']: continue
|
||||
common = s['src'].intersection(s2['src'])
|
||||
if common:
|
||||
bld.ASSERT(False,
|
||||
"Target %s has duplicate source files in %s and %s : %s" % (t.sname,
|
||||
s['dep'], s2['dep'],
|
||||
common))
|
||||
|
||||
def check_orpaned_targets(bld, tgt_list):
|
||||
'''check if any build targets are orphaned'''
|
||||
|
||||
target_dict = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
|
||||
# make sure all the earlier functions have run
|
||||
for t in bld.all_task_gen:
|
||||
if not t.name in target_dict:
|
||||
continue
|
||||
if not getattr(t, 'add_init_functions_done', False):
|
||||
add_init_functions(t)
|
||||
debug('deps: checking for orphaned targets')
|
||||
|
||||
for t in bld.all_task_gen:
|
||||
if not t.name in target_dict:
|
||||
continue
|
||||
for t in tgt_list:
|
||||
if getattr(t, 'samba_used', False) == True:
|
||||
continue
|
||||
type = target_dict[t.name]
|
||||
if type != 'BINARY' and type != 'LIBRARY' and type != 'MODULE':
|
||||
if re.search('^PIDL_', t.name) is None:
|
||||
print "Target %s of type %s is unused by any other target" % (t.name, type)
|
||||
type = target_dict[t.sname]
|
||||
if not type in ['BINARY', 'LIBRARY', 'MODULE', 'ET', 'PYTHON']:
|
||||
if re.search('^PIDL_', t.sname) is None:
|
||||
print "Target %s of type %s is unused by any other target" % (t.sname, type)
|
||||
|
||||
|
||||
def CHECK_ORPANED_TARGETS(bld):
|
||||
bld.add_pre_fun(check_orpaned_targets)
|
||||
Build.BuildContext.CHECK_ORPANED_TARGETS = CHECK_ORPANED_TARGETS
|
||||
def show_final_deps(bld, tgt_list):
|
||||
'''show the final dependencies for all targets'''
|
||||
|
||||
targets = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
|
||||
for t in tgt_list:
|
||||
if not targets[t.sname] in ['LIBRARY', 'BINARY', 'PYTHON']:
|
||||
continue
|
||||
debug('deps: final dependencies for target %s: uselib=%s uselib_local=%s add_objects=%s',
|
||||
t.sname, t.uselib, t.uselib_local, t.add_objects)
|
||||
|
||||
|
||||
@feature('dfkj*')
|
||||
def samba_post_process(self):
|
||||
'''samba specific post processing of task'''
|
||||
if getattr(self, 'meths', None) is None:
|
||||
return
|
||||
count = getattr(self, 'moved_to_end', 0)
|
||||
if count < 10:
|
||||
# there has got to be a better way!!
|
||||
self.moved_to_end = count + 1
|
||||
self.meths.append('samba_post_process')
|
||||
def add_samba_attributes(bld, tgt_list):
|
||||
'''ensure a target has a the required samba attributes'''
|
||||
|
||||
targets = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
|
||||
for t in tgt_list:
|
||||
if t.name != '':
|
||||
t.sname = t.name
|
||||
else:
|
||||
t.sname = t.target
|
||||
t.samba_type = targets[t.sname]
|
||||
t.samba_abspath = t.path.abspath(bld.env)
|
||||
t.samba_deps_extended = t.samba_deps[:]
|
||||
t.samba_includes_extended = TO_LIST(t.samba_includes)[:]
|
||||
t.ccflags = getattr(t, 'samba_cflags', '')
|
||||
|
||||
def build_direct_deps(bld, tgt_list):
|
||||
'''build the direct_objects and direct_libs sets for each target'''
|
||||
|
||||
targets = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
global_deps = bld.env.GLOBAL_DEPENDENCIES
|
||||
|
||||
for t in tgt_list:
|
||||
t.direct_objects = set()
|
||||
t.direct_libs = set()
|
||||
t.direct_syslibs = set()
|
||||
deps = t.samba_deps_extended
|
||||
deps.extend(global_deps)
|
||||
for d in deps:
|
||||
d = EXPAND_ALIAS(bld, d)
|
||||
if not d in targets:
|
||||
print "Unknown dependency %s in %s" % (d, t.sname)
|
||||
raise
|
||||
if targets[d] in [ 'EMPTY', 'DISABLED' ]:
|
||||
continue
|
||||
if targets[d] == 'SYSLIB':
|
||||
t.direct_syslibs.add(d)
|
||||
continue
|
||||
t2 = bld.name_to_obj(d, bld.env)
|
||||
if t2 is None:
|
||||
print "no task %s type %s" % (d, targets[d])
|
||||
if t2.samba_type in [ 'LIBRARY', 'MODULE' ]:
|
||||
t.direct_libs.add(d)
|
||||
elif t2.samba_type in [ 'SUBSYSTEM', 'ASN1', 'PYTHON' ]:
|
||||
t.direct_objects.add(d)
|
||||
debug('deps: built direct dependencies')
|
||||
|
||||
|
||||
|
||||
def indirect_libs(bld, t, chain):
|
||||
'''recursively calculate the indirect library dependencies for a target
|
||||
|
||||
An indirect library is a library that results from a dependency on
|
||||
a subsystem
|
||||
'''
|
||||
|
||||
ret = getattr(t, 'indirect_libs', None)
|
||||
if ret is not None:
|
||||
return ret
|
||||
|
||||
ret = set()
|
||||
for obj in t.direct_objects:
|
||||
if obj in chain:
|
||||
continue
|
||||
chain.add(obj)
|
||||
t2 = bld.name_to_obj(obj, bld.env)
|
||||
r2 = indirect_libs(bld, t2, chain)
|
||||
chain.remove(obj)
|
||||
ret = ret.union(t2.direct_libs)
|
||||
ret = ret.union(r2)
|
||||
|
||||
for obj in t.indirect_objects:
|
||||
if obj in chain:
|
||||
continue
|
||||
chain.add(obj)
|
||||
t2 = bld.name_to_obj(obj, bld.env)
|
||||
r2 = indirect_libs(bld, t2, chain)
|
||||
chain.remove(obj)
|
||||
ret = ret.union(t2.direct_libs)
|
||||
ret = ret.union(r2)
|
||||
|
||||
t.indirect_libs = ret
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def indirect_syslibs(bld, t, chain):
|
||||
'''recursively calculate the indirect system library dependencies for a target
|
||||
|
||||
An indirect syslib results from a subsystem dependency
|
||||
'''
|
||||
|
||||
ret = getattr(t, 'indirect_syslibs', None)
|
||||
if ret is not None:
|
||||
return ret
|
||||
ret = set()
|
||||
for obj in t.direct_objects:
|
||||
if obj in chain:
|
||||
continue
|
||||
chain.add(obj)
|
||||
t2 = bld.name_to_obj(obj, bld.env)
|
||||
r2 = indirect_syslibs(bld, t2, chain)
|
||||
chain.remove(obj)
|
||||
ret = ret.union(t2.direct_syslibs)
|
||||
ret = ret.union(r2)
|
||||
|
||||
t.indirect_syslibs = ret
|
||||
return ret
|
||||
|
||||
|
||||
def indirect_objects(bld, t, chain):
|
||||
'''recursively calculate the indirect object dependencies for a target
|
||||
|
||||
indirect objects are the set of objects from expanding the
|
||||
subsystem dependencies
|
||||
'''
|
||||
|
||||
ret = getattr(t, 'indirect_objects', None)
|
||||
if ret is not None: return ret
|
||||
|
||||
ret = set()
|
||||
for lib in t.direct_objects:
|
||||
if lib in chain:
|
||||
continue
|
||||
chain.add(lib)
|
||||
t2 = bld.name_to_obj(lib, bld.env)
|
||||
r2 = indirect_objects(bld, t2, chain)
|
||||
chain.remove(lib)
|
||||
ret = ret.union(t2.direct_objects)
|
||||
ret = ret.union(r2)
|
||||
|
||||
t.indirect_objects = ret
|
||||
return ret
|
||||
|
||||
|
||||
def expanded_targets(bld, t, chain):
|
||||
'''recursively calculate the expanded targets for a target
|
||||
|
||||
expanded objects are the set of objects, libraries and syslibs
|
||||
from expanding the subsystem dependencies, library dependencies
|
||||
and syslib dependencies
|
||||
'''
|
||||
|
||||
ret = getattr(t, 'expanded_targets', None)
|
||||
if ret is not None: return ret
|
||||
|
||||
ret = t.direct_objects.copy()
|
||||
ret = ret.union(t.direct_libs)
|
||||
ret = ret.union(t.direct_syslibs)
|
||||
|
||||
direct = ret.copy()
|
||||
|
||||
for d in direct:
|
||||
if d in chain: continue
|
||||
chain.add(d)
|
||||
t2 = bld.name_to_obj(d, bld.env)
|
||||
if t2 is None: continue
|
||||
r2 = expanded_targets(bld, t2, chain)
|
||||
chain.remove(d)
|
||||
ret = ret.union(r2)
|
||||
|
||||
if t.sname in ret:
|
||||
ret.remove(t.sname)
|
||||
|
||||
t.expanded_targets = ret
|
||||
return ret
|
||||
|
||||
|
||||
def expanded_targets2(bld, t, chain):
|
||||
'''recursively calculate the expanded targets for a target
|
||||
|
||||
expanded objects are the set of objects from expanding the
|
||||
subsystem dependencies and library dependencies
|
||||
'''
|
||||
|
||||
ret = getattr(t, 'expanded_targets2', None)
|
||||
if ret is not None: return ret
|
||||
|
||||
ret = t.final_objects.copy()
|
||||
|
||||
for attr in [ 'final_objects', 'final_libs' ]:
|
||||
f = getattr(t, attr, set())
|
||||
for d in f.copy():
|
||||
if d in chain:
|
||||
continue
|
||||
chain.add(d)
|
||||
t2 = bld.name_to_obj(d, bld.env)
|
||||
if t2 is None: continue
|
||||
r2 = expanded_targets2(bld, t2, chain)
|
||||
chain.remove(d)
|
||||
ret = ret.union(r2)
|
||||
|
||||
if t.sname in ret:
|
||||
ret.remove(t.sname)
|
||||
|
||||
t.expanded_targets2 = ret
|
||||
return ret
|
||||
|
||||
|
||||
def includes_objects(bld, t, chain):
|
||||
'''recursively calculate the includes object dependencies for a target
|
||||
|
||||
includes dependencies come from either library or object dependencies
|
||||
'''
|
||||
ret = getattr(t, 'includes_objects', None)
|
||||
if ret is not None:
|
||||
return ret
|
||||
|
||||
ret = t.direct_objects.copy()
|
||||
ret = ret.union(t.direct_libs)
|
||||
|
||||
for obj in t.direct_objects:
|
||||
if obj in chain:
|
||||
continue
|
||||
chain.add(obj)
|
||||
t2 = bld.name_to_obj(obj, bld.env)
|
||||
r2 = includes_objects(bld, t2, chain)
|
||||
chain.remove(obj)
|
||||
ret = ret.union(t2.direct_objects)
|
||||
ret = ret.union(r2)
|
||||
|
||||
for lib in t.direct_libs:
|
||||
if lib in chain:
|
||||
continue
|
||||
chain.add(lib)
|
||||
t2 = bld.name_to_obj(lib, bld.env)
|
||||
r2 = includes_objects(bld, t2, chain)
|
||||
chain.remove(lib)
|
||||
ret = ret.union(t2.direct_objects)
|
||||
ret = ret.union(r2)
|
||||
|
||||
t.includes_objects = ret
|
||||
return ret
|
||||
|
||||
|
||||
def build_indirect_deps(bld, tgt_list):
|
||||
'''build the indirect_objects and indirect_libs sets for each target'''
|
||||
for t in tgt_list:
|
||||
indirect_objects(bld, t, set())
|
||||
indirect_libs(bld, t, set())
|
||||
indirect_syslibs(bld, t, set())
|
||||
includes_objects(bld, t, set())
|
||||
expanded_targets(bld, t, set())
|
||||
debug('deps: built indirect dependencies')
|
||||
|
||||
|
||||
def re_expand2(bld, tgt_list):
|
||||
for t in tgt_list:
|
||||
t.expanded_targets2 = None
|
||||
for type in ['BINARY','LIBRARY','PYTHON']:
|
||||
for t in tgt_list:
|
||||
if t.samba_type == type:
|
||||
expanded_targets2(bld, t, set())
|
||||
for t in tgt_list:
|
||||
expanded_targets2(bld, t, set())
|
||||
|
||||
|
||||
def calculate_final_deps(bld, tgt_list):
|
||||
'''calculate the final library and object dependencies'''
|
||||
for t in tgt_list:
|
||||
# start with the maximum possible list
|
||||
t.final_syslibs = t.direct_syslibs.union(t.indirect_syslibs)
|
||||
t.final_libs = t.direct_libs.union(t.indirect_libs)
|
||||
t.final_objects = t.direct_objects.union(t.indirect_objects)
|
||||
|
||||
for t in tgt_list:
|
||||
# don't depend on ourselves
|
||||
if t.sname in t.final_libs:
|
||||
t.final_libs.remove(t.sname)
|
||||
if t.sname in t.final_objects:
|
||||
t.final_objects.remove(t.sname)
|
||||
|
||||
re_expand2(bld, tgt_list)
|
||||
|
||||
loops = {}
|
||||
|
||||
# find any library loops
|
||||
for t in tgt_list:
|
||||
if t.samba_type in ['LIBRARY', 'PYTHON']:
|
||||
for l in t.final_libs.copy():
|
||||
t2 = bld.name_to_obj(l, bld.env)
|
||||
if t.sname in t2.final_libs:
|
||||
debug('deps: removing library loop %s<->%s', t.sname, l)
|
||||
t2.final_libs.remove(t.sname)
|
||||
loops[t2.sname] = t.sname;
|
||||
|
||||
re_expand2(bld, tgt_list)
|
||||
|
||||
for type in ['BINARY']:
|
||||
while True:
|
||||
changed = False
|
||||
for t in tgt_list:
|
||||
if t.samba_type != type: continue
|
||||
# if we will indirectly link to a target then we don't need it
|
||||
new = t.final_objects.copy()
|
||||
for l in t.final_libs:
|
||||
t2 = bld.name_to_obj(l, bld.env)
|
||||
dup = new.intersection(t2.expanded_targets2)
|
||||
if dup:
|
||||
debug('deps: removing dups from %s: %s also in %s %s',
|
||||
t.sname, dup, t2.samba_type, l)
|
||||
new = new.difference(dup)
|
||||
changed = True
|
||||
if changed:
|
||||
t.final_objects = new
|
||||
break
|
||||
if not changed:
|
||||
break
|
||||
debug('deps: removed duplicate dependencies')
|
||||
|
||||
|
||||
######################################################################
|
||||
# this provides a way to save our dependency calculations between runs
|
||||
savedeps_version = 1
|
||||
savedeps_inputs = ['samba_deps', 'samba_includes', 'local_include', 'local_include_first', 'samba_cflags']
|
||||
savedeps_outputs = ['uselib', 'uselib_local', 'add_objects', 'includes', 'ccflags']
|
||||
savedeps_caches = ['GLOBAL_DEPENDENCIES', 'TARGET_ALIAS', 'TARGET_TYPE', 'INIT_FUNCTIONS']
|
||||
|
||||
def save_samba_deps(bld, tgt_list):
|
||||
'''save the dependency calculations between builds, to make
|
||||
further builds faster'''
|
||||
denv = Environment.Environment()
|
||||
|
||||
denv.version = savedeps_version
|
||||
denv.savedeps_inputs = savedeps_inputs
|
||||
denv.savedeps_outputs = savedeps_outputs
|
||||
denv.input = {}
|
||||
denv.output = {}
|
||||
denv.caches = {}
|
||||
|
||||
for c in savedeps_caches:
|
||||
denv.caches[c] = LOCAL_CACHE(bld, c)
|
||||
|
||||
for t in tgt_list:
|
||||
# save all the input attributes for each target
|
||||
tdeps = {}
|
||||
for attr in savedeps_inputs:
|
||||
v = getattr(t, attr, None)
|
||||
if v is not None:
|
||||
tdeps[attr] = v
|
||||
if tdeps != {}:
|
||||
denv.input[t.sname] = tdeps
|
||||
|
||||
# save all the output attributes for each target
|
||||
tdeps = {}
|
||||
for attr in savedeps_outputs:
|
||||
v = getattr(t, attr, None)
|
||||
if v is not None:
|
||||
tdeps[attr] = v
|
||||
if tdeps != {}:
|
||||
denv.output[t.sname] = tdeps
|
||||
|
||||
depsfile = os.path.join(bld.bdir, "sambadeps")
|
||||
denv.store(depsfile)
|
||||
|
||||
|
||||
def load_samba_deps(bld, tgt_list):
|
||||
'''load a previous set of build dependencies if possible'''
|
||||
depsfile = os.path.join(bld.bdir, "sambadeps")
|
||||
denv = Environment.Environment()
|
||||
try:
|
||||
debug('deps: checking saved dependencies')
|
||||
denv.load(depsfile)
|
||||
if (denv.version != savedeps_version or
|
||||
denv.savedeps_inputs != savedeps_inputs or
|
||||
denv.savedeps_outputs != savedeps_outputs):
|
||||
return False
|
||||
except:
|
||||
return False
|
||||
|
||||
# check if caches are the same
|
||||
for c in savedeps_caches:
|
||||
if c not in denv.caches or denv.caches[c] != LOCAL_CACHE(bld, c):
|
||||
return False
|
||||
|
||||
# check inputs are the same
|
||||
for t in tgt_list:
|
||||
tdeps = {}
|
||||
for attr in savedeps_inputs:
|
||||
v = getattr(t, attr, None)
|
||||
if v is not None:
|
||||
tdeps[attr] = v
|
||||
if t.sname in denv.input:
|
||||
olddeps = denv.input[t.sname]
|
||||
else:
|
||||
olddeps = {}
|
||||
if tdeps != olddeps:
|
||||
#print '%s: \ntdeps=%s \nodeps=%s' % (t.sname, tdeps, olddeps)
|
||||
return False
|
||||
|
||||
# put outputs in place
|
||||
for t in tgt_list:
|
||||
if not t.sname in denv.output: continue
|
||||
tdeps = denv.output[t.sname]
|
||||
for a in tdeps:
|
||||
setattr(t, a, tdeps[a])
|
||||
|
||||
debug('deps: loaded saved dependencies')
|
||||
return True
|
||||
|
||||
|
||||
def check_project_rules(bld):
|
||||
'''check the project rules - ensuring the targets are sane'''
|
||||
|
||||
targets = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
|
||||
# build a list of task generators we are interested in
|
||||
tgt_list = []
|
||||
for tgt in targets:
|
||||
type = targets[tgt]
|
||||
if not type in ['SUBSYSTEM', 'MODULE', 'BINARY', 'LIBRARY', 'ASN1', 'PYTHON']:
|
||||
continue
|
||||
t = bld.name_to_obj(tgt, bld.env)
|
||||
tgt_list.append(t)
|
||||
|
||||
add_samba_attributes(bld, tgt_list)
|
||||
|
||||
if load_samba_deps(bld, tgt_list):
|
||||
return
|
||||
|
||||
samba_post = getattr(self, 'samba_post', None)
|
||||
if samba_post is None:
|
||||
debug('deps: project rules checking started')
|
||||
|
||||
expand_subsystem_deps(bld)
|
||||
build_direct_deps(bld, tgt_list)
|
||||
build_indirect_deps(bld, tgt_list)
|
||||
calculate_final_deps(bld, tgt_list)
|
||||
|
||||
# run the various attribute generators
|
||||
for f in [ build_dependencies, build_includes, add_init_functions ]:
|
||||
debug('deps: project rules checking %s', f)
|
||||
for t in tgt_list: f(t)
|
||||
|
||||
debug('deps: project rules stage1 completed')
|
||||
|
||||
#check_orpaned_targets(bld, tgt_list)
|
||||
#check_duplicate_sources(bld, tgt_list)
|
||||
show_final_deps(bld, tgt_list)
|
||||
|
||||
debug('deps: project rules checking completed - %u targets checked',
|
||||
len(tgt_list))
|
||||
|
||||
save_samba_deps(bld, tgt_list)
|
||||
|
||||
|
||||
def CHECK_PROJECT_RULES(bld):
|
||||
'''enable checking of project targets for sanity'''
|
||||
if bld.env.added_project_rules:
|
||||
return
|
||||
(tgt, cmd) = samba_post
|
||||
self.env.TARGET_DIRECTORY = self.path.abspath(self.env)
|
||||
#print "cmd=%s tgt=%s" % (cmd, tgt)
|
||||
cmd = Utils.subst_vars(cmd, self.env)
|
||||
tgt = Utils.subst_vars(tgt, self.env)
|
||||
if os.path.isfile(tgt):
|
||||
debug('deps: post processing for %s: %s' % (self.name, cmd))
|
||||
ret = os.system(cmd)
|
||||
self.bld.ASSERT(ret == 0, "Post processing for %s failed (%d): %s" % (self.name, ret, cmd))
|
||||
|
||||
|
||||
##############################
|
||||
# handle the creation of links for libraries and binaries
|
||||
# note that we use a relative symlink path to allow the whole tree
|
||||
# to me moved/copied elsewhere without breaking the links
|
||||
t = Task.simple_task_type('symlink_lib', 'ln -sf ../${SRC} ${LINK_TARGET}', color='PINK',
|
||||
ext_in='.bin')
|
||||
t.quiet = True
|
||||
|
||||
@feature('symlink_lib')
|
||||
@after('apply_link')
|
||||
def symlink_lib(self):
|
||||
tsk = self.create_task('symlink_lib', self.link_task.outputs[0])
|
||||
|
||||
# calculat the link target and put it in the environment
|
||||
soext=""
|
||||
vnum = getattr(self, 'vnum', None)
|
||||
if vnum is not None:
|
||||
soext = '.' + vnum.split('.')[0]
|
||||
|
||||
libname = self.target
|
||||
tsk.env.LINK_TARGET = '%s/lib%s.so%s' % (LIB_PATH, libname, soext)
|
||||
debug('task_gen: LINK_TARGET for %s is %s', self.name, tsk.env.LINK_TARGET)
|
||||
|
||||
|
||||
# for binaries we need to copy the executable to avoid the rpath changing
|
||||
# in the local bin/ directory on install
|
||||
t = Task.simple_task_type('copy_bin', 'rm -f ${BIN_TARGET} && cp ${SRC} ${BIN_TARGET}', color='PINK',
|
||||
ext_in='.bin', shell=True)
|
||||
t.quiet = True
|
||||
|
||||
@feature('copy_bin')
|
||||
@after('apply_link')
|
||||
def copy_bin(self):
|
||||
if Options.is_install:
|
||||
# we don't want to copy the install binary, as
|
||||
# that has the install rpath, not the build rpath
|
||||
# The rpath of the binaries in bin/default/foo/blah is different
|
||||
# during the install phase, as distros insist on not using rpath in installed binaries
|
||||
return
|
||||
tsk = self.create_task('copy_bin', self.link_task.outputs[0])
|
||||
|
||||
tsk.env.BIN_TARGET = self.target
|
||||
debug('task_gen: BIN_TARGET for %s is %s', self.name, tsk.env.BIN_TARGET)
|
||||
bld.env.added_project_rules = True
|
||||
bld.add_pre_fun(check_project_rules)
|
||||
Build.BuildContext.CHECK_PROJECT_RULES = CHECK_PROJECT_RULES
|
||||
|
||||
|
||||
|
26
buildtools/wafsamba/samba_errtable.py
Normal file
26
buildtools/wafsamba/samba_errtable.py
Normal file
@ -0,0 +1,26 @@
|
||||
# waf build tool for building .et files with compile_et
|
||||
import Build, os
|
||||
from samba_utils import *
|
||||
|
||||
def SAMBA_ERRTABLE(bld, name, source):
|
||||
'''Build a heimdal errtable from a .et file'''
|
||||
|
||||
bname = source[0:-3]; # strip off the .et suffix
|
||||
|
||||
if not SET_TARGET_TYPE(bld, name, 'ET'):
|
||||
return
|
||||
|
||||
bld.SET_BUILD_GROUP('build_source')
|
||||
|
||||
out_files = []
|
||||
out_files.append('%s.c' % bname)
|
||||
out_files.append('%s.h' % bname)
|
||||
|
||||
t = bld(rule='${SRC[0].abspath(env)} . ${TGT[0].parent.abspath(env)} default/source4/heimdal_build/compile_et ${SRC[2].abspath(env)} ${TGT[0].bldpath(env)}',
|
||||
ext_out = '.c',
|
||||
before = 'cc',
|
||||
shell = True,
|
||||
source = ['et_compile_wrapper.sh', 'compile_et', source],
|
||||
target = out_files,
|
||||
name = name)
|
||||
Build.BuildContext.SAMBA_ERRTABLE = SAMBA_ERRTABLE
|
@ -1,28 +1,9 @@
|
||||
# a waf tool to add extension based build patterns for Samba
|
||||
|
||||
import os, sys, Options
|
||||
import string, Task, Utils, optparse
|
||||
from Configure import conf
|
||||
from Logs import debug
|
||||
import Task
|
||||
from TaskGen import extension
|
||||
from samba_utils import *
|
||||
|
||||
################################################################################
|
||||
# a et task which calls out to compile_et to do the work
|
||||
Task.simple_task_type('et',
|
||||
'../heimdal_build/et_compile_wrapper.sh . ${TGT[0].bld_dir(env)} default/source4/heimdal_build/compile_et ${SRC[0].abspath(env)} ${TGT[0].bldpath(env)}',
|
||||
color='BLUE', ext_out='.c',
|
||||
shell = False)
|
||||
|
||||
@extension('.et')
|
||||
def process_et(self, node):
|
||||
c_node = node.change_ext('.c')
|
||||
h_node = node.change_ext('.h')
|
||||
self.create_task('et', node, [c_node, h_node])
|
||||
self.allnodes.append(c_node)
|
||||
|
||||
|
||||
|
||||
def SAMBA_MKVERSION(bld, target):
|
||||
'''generate the version.h header for Samba'''
|
||||
bld.SET_BUILD_GROUP('setup')
|
||||
|
@ -1,7 +1,7 @@
|
||||
# waf build tool for building IDL files with pidl
|
||||
|
||||
from TaskGen import taskgen, before
|
||||
import Build, os, string, Utils
|
||||
from TaskGen import before
|
||||
import Build, os
|
||||
from samba_utils import *
|
||||
|
||||
def SAMBA_PIDL(bld, pname, source, options='', output_dir='.'):
|
||||
@ -41,7 +41,11 @@ def SAMBA_PIDL(bld, pname, source, options='', output_dir='.'):
|
||||
# remember this one for the tables generation
|
||||
table_header_idx = len(out_files) - 1
|
||||
|
||||
pidl = bld.srcnode.find_resource('pidl/pidl').relpath_gen(bld.path)
|
||||
# depend on the full pidl sources
|
||||
source = TO_LIST(source)
|
||||
pidl_src = [x.relpath_gen(bld.path) for x in
|
||||
bld.srcnode.ant_glob('pidl/**/*', flat=False)]
|
||||
source.extend(pidl_src)
|
||||
|
||||
# the cd .. is needed because pidl currently is sensitive to the directory it is run in
|
||||
t = bld(rule='cd .. && ${PIDL} ${OPTIONS} --outputdir ${OUTPUTDIR} -- ${SRC[0].abspath(env)}',
|
||||
@ -54,8 +58,7 @@ def SAMBA_PIDL(bld, pname, source, options='', output_dir='.'):
|
||||
|
||||
t.env.PIDL = "../pidl/pidl"
|
||||
t.env.OPTIONS = TO_LIST(options)
|
||||
t.env.OUTPUTDIR = 'bin/' + bld.BUILD_PATH(output_dir)
|
||||
|
||||
t.env.OUTPUTDIR = bld.bldnode.name + '/' + bld.path.find_dir(output_dir).bldpath(t.env)
|
||||
|
||||
if table_header_idx is not None:
|
||||
pidl_headers = LOCAL_CACHE(bld, 'PIDL_HEADERS')
|
||||
|
@ -1,7 +1,6 @@
|
||||
# waf build tool for building IDL files with pidl
|
||||
|
||||
from TaskGen import taskgen, before
|
||||
import Build, os, string, Utils
|
||||
import Build
|
||||
from samba_utils import *
|
||||
from samba_autoconf import *
|
||||
|
||||
@ -18,6 +17,25 @@ def SAMBA_PYTHON(bld, name,
|
||||
enabled=True):
|
||||
'''build a python extension for Samba'''
|
||||
|
||||
# when we support static python modules we'll need to gather
|
||||
# the list from all the SAMBA_PYTHON() targets
|
||||
if init_function_sentinal is not None:
|
||||
cflags += '-DSTATIC_LIBPYTHON_MODULES="%s"' % init_function_sentinal
|
||||
|
||||
if realname is None:
|
||||
# a SAMBA_PYTHON target without a realname is just a
|
||||
# subsystem with needs_python=True
|
||||
return bld.SAMBA_SUBSYSTEM(name,
|
||||
source=source,
|
||||
deps=deps,
|
||||
public_deps=public_deps,
|
||||
cflags=cflags,
|
||||
includes=includes,
|
||||
init_function_sentinal=init_function_sentinal,
|
||||
local_include=local_include,
|
||||
needs_python=True,
|
||||
enabled=enabled)
|
||||
|
||||
if not enabled:
|
||||
SET_TARGET_TYPE(bld, name, 'DISABLED')
|
||||
return
|
||||
@ -27,18 +45,19 @@ def SAMBA_PYTHON(bld, name,
|
||||
|
||||
deps += ' ' + public_deps
|
||||
|
||||
# when we support static python modules we'll need to gather
|
||||
# the list from all the SAMBA_PYTHON() targets
|
||||
if init_function_sentinal is not None:
|
||||
cflags += '-DSTATIC_LIBPYTHON_MODULES="%s"' % init_function_sentinal
|
||||
if realname is None:
|
||||
link_name = 'python/%s.so' % name
|
||||
else:
|
||||
link_name = 'python/%s' % realname
|
||||
|
||||
t = bld(
|
||||
features = 'cc cshlib pyext',
|
||||
features = 'cc cshlib pyext symlink_lib',
|
||||
source = source,
|
||||
target = name,
|
||||
ccflags = CURRENT_CFLAGS(bld, name, cflags),
|
||||
samba_cflags = CURRENT_CFLAGS(bld, name, cflags),
|
||||
samba_includes = includes,
|
||||
local_include = local_include,
|
||||
samba_deps = TO_LIST(deps)
|
||||
samba_deps = TO_LIST(deps),
|
||||
link_name = link_name
|
||||
)
|
||||
Build.BuildContext.SAMBA_PYTHON = SAMBA_PYTHON
|
||||
|
@ -1,11 +1,10 @@
|
||||
# a waf tool to add autoconf-like macros to the configure section
|
||||
# and for SAMBA_ macros for building libraries, binaries etc
|
||||
|
||||
import Build, os, Logs, sys, Configure, Options, string, Task, Utils, optparse
|
||||
import Build, os, sys, Options, Utils
|
||||
from TaskGen import feature, before
|
||||
from Configure import conf
|
||||
from Logs import debug
|
||||
from TaskGen import extension
|
||||
import shlex
|
||||
|
||||
# TODO: make this a --option
|
||||
@ -102,7 +101,7 @@ Build.BuildContext.ASSERT = ASSERT
|
||||
def SUBDIR(bld, subdir, list):
|
||||
ret = ''
|
||||
for l in TO_LIST(list):
|
||||
ret = ret + subdir + '/' + l + ' '
|
||||
ret = ret + os.path.normpath(os.path.join(subdir, l)) + ' '
|
||||
return ret
|
||||
Build.BuildContext.SUBDIR = SUBDIR
|
||||
|
||||
@ -189,16 +188,22 @@ def ENABLE_MAGIC_ORDERING(bld):
|
||||
Build.BuildContext.ENABLE_MAGIC_ORDERING = ENABLE_MAGIC_ORDERING
|
||||
|
||||
|
||||
def BUILD_PATH(bld, relpath):
|
||||
'''return a relative build path, given a relative path
|
||||
for example, if called in the source4/librpc directory, with the path
|
||||
gen_ndr/tables.c, then it will return default/source4/gen_ndr/tables.c
|
||||
'''
|
||||
os_path_relpath = getattr(os.path, 'relpath', None)
|
||||
if os_path_relpath is None:
|
||||
# Python < 2.6 does not have os.path.relpath, provide a replacement
|
||||
# (imported from Python2.6.5~rc2)
|
||||
def os_path_relpath(path, start):
|
||||
"""Return a relative version of a path"""
|
||||
start_list = os.path.abspath(start).split("/")
|
||||
path_list = os.path.abspath(path).split("/")
|
||||
|
||||
ret = os.path.normpath(os.path.join(os.path.relpath(bld.curdir, bld.env.TOPDIR), relpath))
|
||||
ret = 'default/%s' % ret
|
||||
return ret
|
||||
Build.BuildContext.BUILD_PATH = BUILD_PATH
|
||||
# Work out how much of the filepath is shared by start and path.
|
||||
i = len(os.path.commonprefix([start_list, path_list]))
|
||||
|
||||
rel_list = ['..'] * (len(start_list)-i) + path_list[i:]
|
||||
if not rel_list:
|
||||
return start
|
||||
return os.path.join(*rel_list)
|
||||
|
||||
|
||||
# this is a useful way of debugging some of the rules in waf
|
||||
@ -276,3 +281,24 @@ Build.BuildContext.ENFORCE_GROUP_ORDERING = ENFORCE_GROUP_ORDERING
|
||||
# raise Utils.WafError('object %r was not found in uselib_local (required by add_objects %r)' % (x, self.name))
|
||||
# y.post()
|
||||
# self.env.append_unique('INC_PATHS', y.env.INC_PATHS)
|
||||
|
||||
|
||||
def recursive_dirlist(dir, relbase):
|
||||
'''recursive directory list'''
|
||||
ret = []
|
||||
for f in os.listdir(dir):
|
||||
f2 = dir + '/' + f
|
||||
if os.path.isdir(f2):
|
||||
ret.extend(recursive_dirlist(f2, relbase))
|
||||
else:
|
||||
ret.append(os_path_relpath(f2, relbase))
|
||||
return ret
|
||||
|
||||
|
||||
def mkdir_p(dir):
|
||||
'''like mkdir -p'''
|
||||
if os.path.isdir(dir):
|
||||
return
|
||||
mkdir_p(os.path.dirname(dir))
|
||||
os.mkdir(dir)
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
# a waf tool to add autoconf-like macros to the configure section
|
||||
# and for SAMBA_ macros for building libraries, binaries etc
|
||||
|
||||
import Build, os, Logs, sys, Configure, Options, string, Task, Utils, optparse
|
||||
import Build, os, Options, Task, Utils
|
||||
from Configure import conf
|
||||
from Logs import debug
|
||||
from TaskGen import extension
|
||||
|
||||
# bring in the other samba modules
|
||||
from samba_utils import *
|
||||
from samba_autoconf import *
|
||||
from samba_patterns import *
|
||||
from samba_pidl import *
|
||||
from samba_errtable import *
|
||||
from samba_asn1 import *
|
||||
from samba_autoproto import *
|
||||
from samba_python import *
|
||||
@ -19,25 +19,26 @@ from samba_deps import *
|
||||
LIB_PATH="shared"
|
||||
|
||||
|
||||
|
||||
#################################################################
|
||||
# create the samba build environment
|
||||
@conf
|
||||
def SAMBA_BUILD_ENV(conf):
|
||||
libpath="%s/%s" % (conf.blddir, LIB_PATH)
|
||||
conf.env['BUILD_DIRECTORY'] = conf.blddir
|
||||
if not os.path.exists(libpath):
|
||||
os.mkdir(libpath)
|
||||
mkdir_p(os.path.join(conf.blddir, LIB_PATH))
|
||||
mkdir_p(os.path.join(conf.blddir, 'python/samba/dcerpc'))
|
||||
|
||||
|
||||
################################################################
|
||||
# add an init_function to the list for a subsystem
|
||||
def ADD_INIT_FUNCTION(bld, subsystem, init_function):
|
||||
def ADD_INIT_FUNCTION(bld, subsystem, target, init_function):
|
||||
if init_function is None:
|
||||
return
|
||||
bld.ASSERT(subsystem is not None, "You must specify a subsystem for init_function '%s'" % init_function)
|
||||
cache = LOCAL_CACHE(bld, 'INIT_FUNCTIONS')
|
||||
if not subsystem in cache:
|
||||
cache[subsystem] = []
|
||||
cache[subsystem].append(init_function)
|
||||
cache[subsystem].append( { 'TARGET':target, 'INIT_FUNCTION':init_function } )
|
||||
Build.BuildContext.ADD_INIT_FUNCTION = ADD_INIT_FUNCTION
|
||||
|
||||
|
||||
@ -50,7 +51,7 @@ def SAMBA_LIBRARY(bld, libname, source,
|
||||
public_headers=None,
|
||||
vnum=None,
|
||||
cflags='',
|
||||
output_type=None,
|
||||
external_library=False,
|
||||
realname=None,
|
||||
autoproto=None,
|
||||
group='main',
|
||||
@ -73,7 +74,7 @@ def SAMBA_LIBRARY(bld, libname, source,
|
||||
features = 'cc cshlib symlink_lib',
|
||||
source = source,
|
||||
target = libname,
|
||||
ccflags = CURRENT_CFLAGS(bld, libname, cflags),
|
||||
samba_cflags = CURRENT_CFLAGS(bld, libname, cflags),
|
||||
depends_on = depends_on,
|
||||
samba_deps = TO_LIST(deps),
|
||||
samba_includes = includes,
|
||||
@ -98,10 +99,10 @@ def SAMBA_BINARY(bld, binname, source,
|
||||
autoproto=None,
|
||||
use_hostcc=None,
|
||||
compiler=None,
|
||||
group='main',
|
||||
group='binaries',
|
||||
manpages=None,
|
||||
local_include=True,
|
||||
subsystem=None,
|
||||
subsystem_name=None,
|
||||
needs_python=False):
|
||||
|
||||
if not SET_TARGET_TYPE(bld, binname, 'BINARY'):
|
||||
@ -116,38 +117,26 @@ def SAMBA_BINARY(bld, binname, source,
|
||||
features = features,
|
||||
source = source,
|
||||
target = binname,
|
||||
ccflags = CURRENT_CFLAGS(bld, binname, cflags),
|
||||
samba_cflags = CURRENT_CFLAGS(bld, binname, cflags),
|
||||
samba_deps = TO_LIST(deps),
|
||||
samba_includes = includes,
|
||||
local_include = local_include,
|
||||
samba_modules = modules,
|
||||
top = True,
|
||||
samba_subsystem= subsystem
|
||||
samba_subsystem= subsystem_name
|
||||
)
|
||||
|
||||
# setup the subsystem_name as an alias for the real
|
||||
# binary name, so it can be found when expanding
|
||||
# subsystem dependencies
|
||||
if subsystem_name is not None:
|
||||
bld.TARGET_ALIAS(subsystem_name, binname)
|
||||
|
||||
if autoproto is not None:
|
||||
bld.SAMBA_AUTOPROTO(autoproto, source)
|
||||
Build.BuildContext.SAMBA_BINARY = SAMBA_BINARY
|
||||
|
||||
|
||||
#################################################################
|
||||
# define a Samba ET target
|
||||
def SAMBA_ERRTABLE(bld, name, source,
|
||||
options='',
|
||||
directory=''):
|
||||
# print "Skipping ERRTABLE rule for %s with source=%s" % (name, source)
|
||||
# return
|
||||
if not SET_TARGET_TYPE(bld, name, 'ET'):
|
||||
return
|
||||
bld.SET_BUILD_GROUP('build_source')
|
||||
bld(
|
||||
features = 'cc',
|
||||
source = source,
|
||||
target = name,
|
||||
includes = '# #source4/heimdal_build #source4 #lib/replace'
|
||||
)
|
||||
Build.BuildContext.SAMBA_ERRTABLE = SAMBA_ERRTABLE
|
||||
|
||||
#################################################################
|
||||
# define a Samba module.
|
||||
def SAMBA_MODULE(bld, modname, source,
|
||||
@ -159,12 +148,12 @@ def SAMBA_MODULE(bld, modname, source,
|
||||
autoproto_extra_source='',
|
||||
aliases=None,
|
||||
cflags='',
|
||||
output_type=None,
|
||||
internal_module=True,
|
||||
local_include=True,
|
||||
enabled=True):
|
||||
|
||||
if output_type == 'MERGED_OBJ':
|
||||
# treat merged object modules as subsystems for now
|
||||
if internal_module:
|
||||
# treat internal modules as subsystems for now
|
||||
SAMBA_SUBSYSTEM(bld, modname, source,
|
||||
deps=deps,
|
||||
includes=includes,
|
||||
@ -177,7 +166,8 @@ def SAMBA_MODULE(bld, modname, source,
|
||||
# add it to the init_function list
|
||||
# TODO: we should also create an implicit dependency
|
||||
# between the subsystem target and this target
|
||||
bld.ADD_INIT_FUNCTION(subsystem, init_function)
|
||||
if enabled:
|
||||
bld.ADD_INIT_FUNCTION(subsystem, modname, init_function)
|
||||
return
|
||||
|
||||
if not enabled:
|
||||
@ -193,7 +183,7 @@ def SAMBA_MODULE(bld, modname, source,
|
||||
return
|
||||
|
||||
|
||||
bld.ADD_INIT_FUNCTION(subsystem, init_function)
|
||||
bld.ADD_INIT_FUNCTION(subsystem, modname, init_function)
|
||||
|
||||
if subsystem is not None:
|
||||
deps += ' ' + subsystem
|
||||
@ -203,7 +193,7 @@ def SAMBA_MODULE(bld, modname, source,
|
||||
features = 'cc',
|
||||
source = source,
|
||||
target = modname,
|
||||
ccflags = CURRENT_CFLAGS(bld, modname, cflags),
|
||||
samba_cflags = CURRENT_CFLAGS(bld, modname, cflags),
|
||||
samba_includes = includes,
|
||||
local_include = local_include,
|
||||
samba_deps = TO_LIST(deps)
|
||||
@ -234,18 +224,14 @@ def SAMBA_SUBSYSTEM(bld, modname, source,
|
||||
depends_on='',
|
||||
local_include=True,
|
||||
local_include_first=True,
|
||||
enabled=True):
|
||||
subsystem_name=None,
|
||||
enabled=True,
|
||||
needs_python=False):
|
||||
|
||||
if not enabled:
|
||||
SET_TARGET_TYPE(bld, modname, 'DISABLED')
|
||||
return
|
||||
|
||||
# if the caller specifies a config_option, then we create a blank
|
||||
# subsystem if that configuration option was found at configure time
|
||||
if (config_option is not None) and bld.CONFIG_SET(config_option):
|
||||
SET_TARGET_TYPE(bld, modname, 'EMPTY')
|
||||
return
|
||||
|
||||
# remember empty subsystems, so we can strip the dependencies
|
||||
if (source == '') or (source == []):
|
||||
SET_TARGET_TYPE(bld, modname, 'EMPTY')
|
||||
@ -258,16 +244,21 @@ def SAMBA_SUBSYSTEM(bld, modname, source,
|
||||
|
||||
bld.SET_BUILD_GROUP(group)
|
||||
|
||||
features = 'cc'
|
||||
if needs_python:
|
||||
features += ' pyext'
|
||||
|
||||
t = bld(
|
||||
features = 'cc',
|
||||
features = features,
|
||||
source = source,
|
||||
target = modname,
|
||||
ccflags = CURRENT_CFLAGS(bld, modname, cflags),
|
||||
samba_cflags = CURRENT_CFLAGS(bld, modname, cflags),
|
||||
depends_on = depends_on,
|
||||
samba_deps = TO_LIST(deps),
|
||||
samba_includes = includes,
|
||||
local_include = local_include,
|
||||
local_include_first = local_include_first
|
||||
local_include_first = local_include_first,
|
||||
samba_subsystem= subsystem_name
|
||||
)
|
||||
|
||||
if heimdal_autoproto is not None:
|
||||
@ -334,6 +325,7 @@ def SETUP_BUILD_GROUPS(bld):
|
||||
bld.add_group('build_source')
|
||||
bld.add_group('prototypes')
|
||||
bld.add_group('main')
|
||||
bld.add_group('binaries')
|
||||
bld.add_group('final')
|
||||
Build.BuildContext.SETUP_BUILD_GROUPS = SETUP_BUILD_GROUPS
|
||||
|
||||
@ -360,3 +352,91 @@ def h_file(filename):
|
||||
@conf
|
||||
def ENABLE_TIMESTAMP_DEPENDENCIES(conf):
|
||||
Utils.h_file = h_file
|
||||
|
||||
|
||||
##############################
|
||||
# handle the creation of links for libraries and binaries
|
||||
# note that we use a relative symlink path to allow the whole tree
|
||||
# to me moved/copied elsewhere without breaking the links
|
||||
t = Task.simple_task_type('symlink_lib', 'ln -sf ${LINK_SOURCE} ${LINK_TARGET}',
|
||||
color='PINK', ext_in='.bin')
|
||||
t.quiet = True
|
||||
|
||||
@feature('symlink_lib')
|
||||
@after('apply_link')
|
||||
def symlink_lib(self):
|
||||
tsk = self.create_task('symlink_lib', self.link_task.outputs[0])
|
||||
|
||||
# calculat the link target and put it in the environment
|
||||
soext=""
|
||||
vnum = getattr(self, 'vnum', None)
|
||||
if vnum is not None:
|
||||
soext = '.' + vnum.split('.')[0]
|
||||
|
||||
link_target = getattr(self, 'link_name', '')
|
||||
if link_target == '':
|
||||
link_target = '%s/lib%s.so%s' % (LIB_PATH, self.sname, soext)
|
||||
|
||||
|
||||
link_source = os_path_relpath(self.link_task.outputs[0].abspath(self.env),
|
||||
os.path.join(self.env.BUILD_DIRECTORY, link_target))
|
||||
|
||||
tsk.env.LINK_TARGET = link_target
|
||||
tsk.env.LINK_SOURCE = link_source[3:]
|
||||
debug('task_gen: LINK for %s is %s -> %s',
|
||||
self.name, tsk.env.LINK_SOURCE, tsk.env.LINK_TARGET)
|
||||
|
||||
# for binaries we need to copy the executable to avoid the rpath changing
|
||||
# in the local bin/ directory on install
|
||||
t = Task.simple_task_type('copy_bin', 'rm -f ${BIN_TARGET} && cp ${SRC} ${BIN_TARGET}', color='PINK',
|
||||
ext_in='.bin', shell=True)
|
||||
t.quiet = True
|
||||
|
||||
@feature('copy_bin')
|
||||
@after('apply_link')
|
||||
def copy_bin(self):
|
||||
if Options.is_install:
|
||||
# we don't want to copy the install binary, as
|
||||
# that has the install rpath, not the build rpath
|
||||
# The rpath of the binaries in bin/default/foo/blah is different
|
||||
# during the install phase, as distros insist on not using rpath in installed binaries
|
||||
return
|
||||
tsk = self.create_task('copy_bin', self.link_task.outputs[0])
|
||||
|
||||
tsk.env.BIN_TARGET = self.target
|
||||
debug('task_gen: BIN_TARGET for %s is %s', self.name, tsk.env.BIN_TARGET)
|
||||
|
||||
|
||||
|
||||
|
||||
t = Task.simple_task_type('copy_script', 'ln -sf ${SRC[0].abspath(env)} ${LINK_TARGET}',
|
||||
color='PINK', ext_in='.bin', shell=True)
|
||||
t.quiet = True
|
||||
|
||||
@feature('copy_script')
|
||||
@before('apply_link')
|
||||
def copy_script(self):
|
||||
tsk = self.create_task('copy_script', self.allnodes[0])
|
||||
tsk.env.TARGET = self.target
|
||||
|
||||
def SAMBA_SCRIPT(bld, name, pattern, installdir, installname=None):
|
||||
'''used to copy scripts from the source tree into the build directory
|
||||
for use by selftest'''
|
||||
|
||||
source = bld.path.ant_glob(pattern)
|
||||
|
||||
bld.SET_BUILD_GROUP('build_source')
|
||||
for s in TO_LIST(source):
|
||||
iname = s
|
||||
if installname != None:
|
||||
iname = installname
|
||||
target = os.path.join(installdir, iname)
|
||||
tgtdir = os.path.dirname(os.path.join(bld.srcnode.abspath(bld.env), '..', target))
|
||||
mkdir_p(tgtdir)
|
||||
t = bld(features='copy_script',
|
||||
source=s,
|
||||
target = target,
|
||||
always=True)
|
||||
t.env.LINK_TARGET = target
|
||||
|
||||
Build.BuildContext.SAMBA_SCRIPT = SAMBA_SCRIPT
|
||||
|
@ -28,7 +28,7 @@ def set_options(opt):
|
||||
action="store_true", dest='developer', default=False)
|
||||
opt.add_option('--timestamp-dependencies',
|
||||
help=("use file timestamps instead of content for build dependencies (BROKEN)"),
|
||||
action="store", dest='timestamp_dependencies', default=False)
|
||||
action="store_true", dest='timestamp_dependencies', default=False)
|
||||
|
||||
@wafsamba.runonce
|
||||
def configure(conf):
|
||||
@ -43,7 +43,7 @@ def configure(conf):
|
||||
|
||||
conf.check_tool('compiler_cc')
|
||||
# gccdeps can be useful for debugging recursion in #include lines
|
||||
# conf.check_tool('gccdeps', tooldir=conf.srcdir + "/buildtools/wafsamba")
|
||||
conf.check_tool('gccdeps', tooldir=conf.srcdir + "/buildtools/wafsamba")
|
||||
|
||||
# make the install paths available in environment
|
||||
conf.env.LIBDIR = Options.options.LIBDIR
|
||||
@ -52,6 +52,9 @@ def configure(conf):
|
||||
|
||||
conf.env.RPATH_ON_INSTALL = Options.options.enable_rpath
|
||||
|
||||
# we should use the PIC options in waf instead
|
||||
conf.ADD_CFLAGS('-fPIC')
|
||||
|
||||
# check for pkgconfig
|
||||
conf.check_cfg(atleast_pkgconfig_version='0.0.0')
|
||||
|
||||
@ -163,6 +166,7 @@ def configure(conf):
|
||||
conf.CHECK_FUNCS_IN('poptGetContext', 'popt')
|
||||
conf.CHECK_FUNCS_IN('res_search', 'resolv')
|
||||
conf.CHECK_FUNCS_IN('gettext', 'intl')
|
||||
conf.CHECK_FUNCS_IN('pthread_create', 'pthread')
|
||||
|
||||
conf.CHECK_FUNCS_IN('crypt', 'crypt', checklibc=True)
|
||||
|
||||
@ -269,8 +273,6 @@ def configure(conf):
|
||||
cflags=conf.env.VISIBILITY_CFLAGS,
|
||||
define='HAVE_VISIBILITY_ATTR')
|
||||
|
||||
# use this later -> conf.recurse('.', name='getpass')
|
||||
|
||||
if conf.CHECK_FUNCS('getpass getpassphrase'):
|
||||
# if we have both, then we prefer getpassphrase
|
||||
conf.DEFINE(REPLACE_GETPASS_BY_GETPASSPHRASE, 1)
|
||||
@ -294,7 +296,8 @@ def build(bld):
|
||||
|
||||
bld.SAMBA_LIBRARY('replace',
|
||||
source=REPLACE_SOURCE,
|
||||
group='base_libraries')
|
||||
group='base_libraries',
|
||||
deps='LIBREPLACE_GETPASS')
|
||||
|
||||
TEST_SOURCES = '''test/testsuite.c test/main.c test/strptime.c
|
||||
test/os2_delete.c test/getifaddrs.c'''
|
||||
@ -317,3 +320,8 @@ def build(bld):
|
||||
if not 'HAVE_CRYPT' in bld.env: CRYPT_SOURCES.append('crypt.c')
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LIBREPLACE_EXT', CRYPT_SOURCES)
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LIBREPLACE_GETPASS', 'getpass.c',
|
||||
enabled=bld.CONFIG_SET('REPLACE_GETPASS'))
|
||||
|
||||
bld.CHECK_PROJECT_RULES()
|
||||
|
16
lib/subunit/python/wscript_build
Normal file
16
lib/subunit/python/wscript_build
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
# install out various python scripts for use by make test
|
||||
|
||||
bld.SAMBA_SCRIPT('python_iso8601',
|
||||
pattern='iso8601/**/*.py',
|
||||
installdir='python')
|
||||
|
||||
|
||||
bld.SAMBA_SCRIPT('python_subunit',
|
||||
pattern='subunit/**/*.py',
|
||||
installdir='python')
|
||||
|
||||
|
||||
bld.SAMBA_SCRIPT('python_testtools',
|
||||
pattern='testtools/**/*.py',
|
||||
installdir='python')
|
@ -9,7 +9,7 @@ bld.SAMBA_SUBSYSTEM('NDR_NBT_BUF',
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LIBCLI_NBT',
|
||||
source='lmhosts.c nbtsocket.c namequery.c nameregister.c namerefresh.c namerelease.c',
|
||||
source='lmhosts.c nbtsocket.c namequery.c nameregister.c namerefresh.c namerelease.c dns_hosts_file.c',
|
||||
public_deps='LIBNDR NDR_NBT LIBCLI_COMPOSITE LIBEVENTS NDR_SECURITY samba_socket LIBSAMBA-UTIL'
|
||||
)
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LIBSECURITY_COMMON',
|
||||
source='dom_sid.c display_sec.c secace.c secacl.c security_descriptor.c',
|
||||
source='dom_sid.c display_sec.c secace.c secacl.c security_descriptor.c sddl.c',
|
||||
deps='talloc'
|
||||
)
|
||||
|
||||
|
@ -3,8 +3,9 @@
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LIBWINBIND-CLIENT',
|
||||
source='wb_common.c'
|
||||
)
|
||||
source='wb_common.c',
|
||||
cflags='-DSOCKET_WRAPPER_DISABLE=1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_BINARY('nsstest',
|
||||
|
20
source4/Makefile.waf
Normal file
20
source4/Makefile.waf
Normal file
@ -0,0 +1,20 @@
|
||||
# very crude Makefile to run waf
|
||||
WAF=WAFCACHE=$(HOME)/.wafcache ../buildtools/waf
|
||||
|
||||
all:
|
||||
$(WAF) build -v
|
||||
|
||||
install:
|
||||
$(WAF) install
|
||||
|
||||
uninstall:
|
||||
$(WAF) uninstall
|
||||
|
||||
clean:
|
||||
$(WAF) clean
|
||||
|
||||
distclean:
|
||||
rm -rf bin
|
||||
|
||||
*:
|
||||
echo "target not implemented"
|
@ -1,7 +1,3 @@
|
||||
# AUTOGENERATED by mktowscript.pl from ../../source4/auth/gensec/config.mk
|
||||
# Please remove this notice if hand editing
|
||||
|
||||
|
||||
bld.SAMBA_LIBRARY('gensec',
|
||||
source='gensec.c socket.c',
|
||||
# PC_FILES='gensec.pc',
|
||||
@ -49,7 +45,7 @@ bld.SAMBA_MODULE('gensec_schannel',
|
||||
source='schannel.c ../../../libcli/auth/schannel_sign.c',
|
||||
subsystem='gensec',
|
||||
deps='COMMON_SCHANNELDB NDR_SCHANNEL CREDENTIALS LIBNDR auth_session',
|
||||
output_type='MERGED_OBJ',
|
||||
internal_module=True,
|
||||
autoproto='schannel_proto.h',
|
||||
init_function='gensec_schannel_init'
|
||||
)
|
||||
|
@ -1,7 +1,3 @@
|
||||
# AUTOGENERATED by mktowscript.pl from ../../source4/auth/ntlm/config.mk
|
||||
# Please remove this notice if hand editing
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('auth_sam_module',
|
||||
source='auth_sam.c',
|
||||
subsystem='auth',
|
||||
@ -59,6 +55,6 @@ bld.SAMBA_MODULE('auth',
|
||||
subsystem='service',
|
||||
init_function='server_service_auth_init',
|
||||
deps='LIBSAMBA-UTIL LIBSECURITY SAMDB CREDENTIALS UTIL_TEVENT',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
@ -8,6 +8,6 @@ bld.SAMBA_MODULE('gensec_ntlmssp',
|
||||
subsystem='gensec',
|
||||
init_function='gensec_ntlmssp_init',
|
||||
deps='MSRPC_PARSE CREDENTIALS',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
@ -33,7 +33,7 @@ bld.SAMBA_SUBSYSTEM('auth_system_session',
|
||||
bld.SAMBA_SUBSYSTEM('auth_sam',
|
||||
source='sam.c',
|
||||
autoproto='auth_sam.h',
|
||||
public_deps='SAMDB UTIL_LDB LIBSECURITY',
|
||||
public_deps='SAMDB UTIL_LDB LIBSECURITY ldb',
|
||||
deps=''
|
||||
)
|
||||
|
||||
|
10
source4/autogen-waf.sh
Executable file
10
source4/autogen-waf.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "Setting up for waf build"
|
||||
rm -f configure Makefile
|
||||
cp configure.waf configure
|
||||
|
||||
# this relies on the fact that make looks for 'makefile' before 'Makefile'
|
||||
cp Makefile.waf makefile
|
||||
|
||||
echo "done ... now run ./configure or ./configure.developer"
|
@ -1,7 +1,3 @@
|
||||
# AUTOGENERATED by mktowscript.pl from ../../source4/client/config.mk
|
||||
# Please remove this notice if hand editing
|
||||
|
||||
|
||||
bld.SAMBA_BINARY('smbclient',
|
||||
source='client.c',
|
||||
installdir='BINDIR',
|
||||
|
9
source4/configure.waf
Executable file
9
source4/configure.waf
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Using waf based build"
|
||||
|
||||
WAF=../buildtools/waf
|
||||
export WAFCACHE=$HOME/.wafcache
|
||||
mkdir -p $WAFCACHE
|
||||
|
||||
$WAF configure $*
|
@ -1,7 +1,3 @@
|
||||
# AUTOGENERATED by mktowscript.pl from ../../source4/dsdb/samdb/ldb_modules/config.mk
|
||||
# Please remove this notice if hand editing
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('DSDB_MODULE_HELPERS',
|
||||
source='util.c ridalloc.c',
|
||||
autoproto='util_proto.h',
|
||||
@ -11,7 +7,7 @@ bld.SAMBA_SUBSYSTEM('DSDB_MODULE_HELPERS',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_samba_dsdb',
|
||||
source='samba_dsdb.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(samba_dsdb)',
|
||||
deps='SAMDB talloc LIBEVENTS LIBNDR DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -19,7 +15,7 @@ bld.SAMBA_MODULE('ldb_samba_dsdb',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_samba_secrets',
|
||||
source='samba_secrets.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(samba_secrets)',
|
||||
deps='SAMDB talloc LIBEVENTS LIBNDR'
|
||||
)
|
||||
@ -27,7 +23,7 @@ bld.SAMBA_MODULE('ldb_samba_secrets',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_objectguid',
|
||||
source='objectguid.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(objectguid)',
|
||||
deps='SAMDB talloc LIBEVENTS LIBNDR'
|
||||
)
|
||||
@ -35,7 +31,7 @@ bld.SAMBA_MODULE('ldb_objectguid',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_repl_meta_data',
|
||||
source='repl_meta_data.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(repl_meta_data)',
|
||||
deps='SAMDB talloc LIBEVENTS LIBNDR NDR_DRSUAPI NDR_DRSBLOBS LIBNDR DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -43,7 +39,7 @@ bld.SAMBA_MODULE('ldb_repl_meta_data',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_dsdb_cache',
|
||||
source='dsdb_cache.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(dsdb_cache)',
|
||||
deps='SAMDB talloc LIBEVENTS'
|
||||
)
|
||||
@ -51,7 +47,7 @@ bld.SAMBA_MODULE('ldb_dsdb_cache',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_schema_load',
|
||||
source='schema_load.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(schema_load)',
|
||||
deps='SAMDB talloc LIBEVENTS DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -59,7 +55,7 @@ bld.SAMBA_MODULE('ldb_schema_load',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_schema_data',
|
||||
source='schema_data.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(schema_data)',
|
||||
deps='SAMDB talloc LIBEVENTS DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -67,7 +63,7 @@ bld.SAMBA_MODULE('ldb_schema_data',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_naming_fsmo',
|
||||
source='naming_fsmo.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(naming_fsmo)',
|
||||
deps='SAMDB talloc LIBEVENTS DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -75,7 +71,7 @@ bld.SAMBA_MODULE('ldb_naming_fsmo',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_pdc_fsmo',
|
||||
source='pdc_fsmo.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(pdc_fsmo)',
|
||||
deps='SAMDB talloc LIBEVENTS DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -83,7 +79,7 @@ bld.SAMBA_MODULE('ldb_pdc_fsmo',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_samldb',
|
||||
source='samldb.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(samldb)',
|
||||
deps='talloc LIBEVENTS SAMDB DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -91,7 +87,7 @@ bld.SAMBA_MODULE('ldb_samldb',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_samba3sam',
|
||||
source='samba3sam.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(samba3sam)',
|
||||
deps='talloc LIBEVENTS ldb SMBPASSWD NSS_WRAPPER LIBSECURITY NDR_SECURITY'
|
||||
)
|
||||
@ -99,7 +95,7 @@ bld.SAMBA_MODULE('ldb_samba3sam',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_samba3sid',
|
||||
source='samba3sid.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(samba3sid)',
|
||||
deps='talloc LIBEVENTS ldb SMBPASSWD NSS_WRAPPER LIBSECURITY NDR_SECURITY'
|
||||
)
|
||||
@ -108,7 +104,7 @@ bld.SAMBA_MODULE('ldb_samba3sid',
|
||||
bld.SAMBA_MODULE('ldb_simple_ldap_map',
|
||||
source='simple_ldap_map.c',
|
||||
aliases='entryuuid nsuniqueid',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(entryuuid),LDB_MODULE(nsuniqueid)',
|
||||
deps='talloc LIBEVENTS ldb LIBNDR'
|
||||
)
|
||||
@ -116,7 +112,7 @@ bld.SAMBA_MODULE('ldb_simple_ldap_map',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_rootdse',
|
||||
source='rootdse.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(rootdse)',
|
||||
deps='talloc LIBEVENTS SAMDB'
|
||||
)
|
||||
@ -124,7 +120,7 @@ bld.SAMBA_MODULE('ldb_rootdse',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_password_hash',
|
||||
source='password_hash.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(password_hash)',
|
||||
deps='talloc LIBEVENTS SAMDB LIBCLI_AUTH NDR_DRSBLOBS KERBEROS HEIMDAL_HDB_KEYS HEIMDAL_KRB5'
|
||||
)
|
||||
@ -132,7 +128,7 @@ bld.SAMBA_MODULE('ldb_password_hash',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_local_password',
|
||||
source='local_password.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(local_password)',
|
||||
deps='talloc LIBEVENTS LIBNDR SAMDB'
|
||||
)
|
||||
@ -140,7 +136,7 @@ bld.SAMBA_MODULE('ldb_local_password',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_kludge_acl',
|
||||
source='kludge_acl.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(kludge_acl)',
|
||||
deps='talloc LIBEVENTS LIBSECURITY SAMDB'
|
||||
)
|
||||
@ -148,7 +144,7 @@ bld.SAMBA_MODULE('ldb_kludge_acl',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_extended_dn_in',
|
||||
source='extended_dn_in.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(extended_dn_in)',
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL'
|
||||
)
|
||||
@ -157,7 +153,7 @@ bld.SAMBA_MODULE('ldb_extended_dn_in',
|
||||
bld.SAMBA_MODULE('ldb_extended_dn_out',
|
||||
source='extended_dn_out.c',
|
||||
aliases='extended_dn_out_ldb extended_dn_out_openldap extended_dn_out_fds',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
deps='talloc LIBEVENTS LIBNDR LIBSAMBA-UTIL SAMDB',
|
||||
init_function='LDB_MODULE(extended_dn_out_ldb),LDB_MODULE(extended_dn_out_openldap),LDB_MODULE(extended_dn_out_fds)'
|
||||
)
|
||||
@ -165,7 +161,7 @@ bld.SAMBA_MODULE('ldb_extended_dn_out',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_extended_dn_store',
|
||||
source='extended_dn_store.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(extended_dn_store)',
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL SAMDB DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -173,7 +169,7 @@ bld.SAMBA_MODULE('ldb_extended_dn_store',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_show_deleted',
|
||||
source='show_deleted.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(show_deleted)',
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL'
|
||||
)
|
||||
@ -182,7 +178,7 @@ bld.SAMBA_MODULE('ldb_show_deleted',
|
||||
bld.SAMBA_MODULE('ldb_partition',
|
||||
source='partition.c partition_init.c',
|
||||
autoproto='partition_proto.h',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(partition)',
|
||||
deps='talloc LIBEVENTS SAMDB DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -190,7 +186,7 @@ bld.SAMBA_MODULE('ldb_partition',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_new_partition',
|
||||
source='new_partition.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(new_partition)',
|
||||
deps='talloc LIBEVENTS SAMDB DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -198,15 +194,15 @@ bld.SAMBA_MODULE('ldb_new_partition',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_update_keytab',
|
||||
source='update_keytab.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(update_keytab)',
|
||||
deps='talloc LIBEVENTS CREDENTIALS'
|
||||
deps='talloc LIBEVENTS CREDENTIALS ldb'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('ldb_objectclass',
|
||||
source='objectclass.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(objectclass)',
|
||||
deps='talloc LIBEVENTS LIBSECURITY NDR_SECURITY SAMDB DSDB_MODULE_HELPERS LIBSAMBA-UTIL'
|
||||
)
|
||||
@ -214,15 +210,15 @@ bld.SAMBA_MODULE('ldb_objectclass',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_subtree_rename',
|
||||
source='subtree_rename.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(subtree_rename)',
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL'
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL ldb'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('ldb_subtree_delete',
|
||||
source='subtree_delete.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(subtree_delete)',
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -230,7 +226,7 @@ bld.SAMBA_MODULE('ldb_subtree_delete',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_linked_attributes',
|
||||
source='linked_attributes.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(linked_attributes)',
|
||||
deps='talloc LIBEVENTS SAMDB DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -238,15 +234,15 @@ bld.SAMBA_MODULE('ldb_linked_attributes',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_ranged_results',
|
||||
source='ranged_results.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(ranged_results)',
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL'
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL ldb'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('ldb_anr',
|
||||
source='anr.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(anr)',
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL SAMDB'
|
||||
)
|
||||
@ -254,7 +250,7 @@ bld.SAMBA_MODULE('ldb_anr',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_instancetype',
|
||||
source='instancetype.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(instancetype)',
|
||||
deps='talloc LIBEVENTS LIBSAMBA-UTIL SAMDB'
|
||||
)
|
||||
@ -262,15 +258,15 @@ bld.SAMBA_MODULE('ldb_instancetype',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_operational',
|
||||
source='operational.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(operational)',
|
||||
deps='talloc tevent LIBSAMBA-UTIL SAMDB_COMMON DSDB_MODULE_HELPERS'
|
||||
deps='talloc tevent LIBSAMBA-UTIL SAMDB_COMMON DSDB_MODULE_HELPERS auth_sam'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('ldb_descriptor',
|
||||
source='descriptor.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(descriptor)',
|
||||
deps='talloc LIBEVENTS LIBSECURITY NDR_SECURITY SAMDB DSDB_MODULE_HELPERS'
|
||||
)
|
||||
@ -278,7 +274,7 @@ bld.SAMBA_MODULE('ldb_descriptor',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_resolve_oids',
|
||||
source='resolve_oids.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(resolve_oids)',
|
||||
deps='SAMDB talloc LIBEVENTS LIBNDR'
|
||||
)
|
||||
@ -286,7 +282,7 @@ bld.SAMBA_MODULE('ldb_resolve_oids',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_acl',
|
||||
source='acl.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(acl)',
|
||||
deps='talloc LIBEVENTS LIBSECURITY SAMDB'
|
||||
)
|
||||
@ -294,7 +290,7 @@ bld.SAMBA_MODULE('ldb_acl',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_lazy_commit',
|
||||
source='lazy_commit.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(lazy_commit)',
|
||||
deps='SAMDB'
|
||||
)
|
||||
@ -302,7 +298,7 @@ bld.SAMBA_MODULE('ldb_lazy_commit',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_validate_update',
|
||||
source='validate_update.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(validate_update)',
|
||||
deps='talloc LIBEVENTS LIBSECURITY SAMDB'
|
||||
)
|
||||
|
@ -12,9 +12,9 @@ bld.SAMBA_SUBSYSTEM('SAMDB',
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('SAMDB_COMMON',
|
||||
source='common/util.c ./samdb/ldb_modules/util.c common/dsdb_dn.c ../../libds/common/flag_mapping.c',
|
||||
source='common/util.c common/dsdb_dn.c common/dsdb_access.c ../../libds/common/flag_mapping.c',
|
||||
autoproto='common/proto.h',
|
||||
deps='ldb NDR_DRSBLOBS LIBCLI_LDAP_NDR UTIL_LDB LIBCLI_AUTH'
|
||||
deps='ldb NDR_DRSBLOBS LIBCLI_LDAP_NDR UTIL_LDB LIBCLI_AUTH DSDB_MODULE_HELPERS'
|
||||
)
|
||||
|
||||
|
||||
|
@ -126,68 +126,48 @@ bld.SAMBA_ASN1('HEIMDAL_PKCS10_ASN1',
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_HDB_ASN1',
|
||||
'../heimdal/lib/hdb/hdb.asn1',
|
||||
includes='../heimdal/lib/asn1',
|
||||
directory='lib/hdb'
|
||||
)
|
||||
includes='../heimdal/lib/asn1')
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_ASN1_ERR_ET',
|
||||
'../heimdal/lib/asn1/asn1_err.et',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
'../heimdal/lib/asn1/asn1_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_HDB_ERR_ET',
|
||||
'../heimdal/lib/hdb/hdb_err.et',
|
||||
directory='lib/hdb'
|
||||
)
|
||||
'../heimdal/lib/hdb/hdb_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_HEIM_ERR_ET',
|
||||
'../heimdal/lib/krb5/heim_err.et',
|
||||
directory='lib/krb5'
|
||||
)
|
||||
'../heimdal/lib/krb5/heim_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_K524_ERR_ET',
|
||||
'../heimdal/lib/krb5/k524_err.et',
|
||||
directory='lib/krb5'
|
||||
)
|
||||
'../heimdal/lib/krb5/k524_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_KRB_ERR_ET',
|
||||
'../heimdal/lib/krb5/krb_err.et',
|
||||
directory='lib/krb5'
|
||||
)
|
||||
'../heimdal/lib/krb5/krb_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_KRB5_ERR_ET',
|
||||
'../heimdal/lib/krb5/krb5_err.et',
|
||||
directory='lib/krb5'
|
||||
)
|
||||
'../heimdal/lib/krb5/krb5_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_GKRB5_ERR_ET',
|
||||
'../heimdal/lib/gssapi/krb5/gkrb5_err.et',
|
||||
directory='lib/gssapi'
|
||||
)
|
||||
'../heimdal/lib/gssapi/krb5/gkrb5_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_HX509_ERR_ET',
|
||||
'../heimdal/lib/hx509/hx509_err.et',
|
||||
directory='lib/hx509'
|
||||
)
|
||||
'../heimdal/lib/hx509/hx509_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_WIND_ERR_ET',
|
||||
'../heimdal/lib/wind/wind_err.et',
|
||||
directory='lib/wind'
|
||||
)
|
||||
'../heimdal/lib/wind/wind_err.et')
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN',
|
||||
'../heimdal/lib/roken/base64.c ../heimdal/lib/roken/ct.c ../heimdal/lib/roken/hex.c ../heimdal/lib/roken/bswap.c ../heimdal/lib/roken/dumpdata.c ../heimdal/lib/roken/emalloc.c ../heimdal/lib/roken/ecalloc.c ../heimdal/lib/roken/getarg.c ../heimdal/lib/roken/get_window_size.c ../heimdal/lib/roken/getdtablesize.c ../heimdal/lib/roken/h_errno.c ../heimdal/lib/roken/issuid.c ../heimdal/lib/roken/net_read.c ../heimdal/lib/roken/net_write.c ../heimdal/lib/roken/socket.c ../heimdal/lib/roken/parse_time.c ../heimdal/lib/roken/parse_units.c ../heimdal/lib/roken/resolve.c ../heimdal/lib/roken/roken_gethostby.c ../heimdal/lib/roken/signal.c ../heimdal/lib/roken/vis.c ../heimdal/lib/roken/strlwr.c ../heimdal/lib/roken/strsep_copy.c ../heimdal/lib/roken/strsep.c ../heimdal/lib/roken/strupr.c ../heimdal/lib/roken/strpool.c ../heimdal/lib/roken/estrdup.c ../heimdal/lib/roken/erealloc.c ../heimdal/lib/roken/simple_exec.c ../heimdal/lib/roken/strcollect.c ../heimdal/lib/roken/rtbl.c ../heimdal/lib/roken/cloexec.c ../heimdal/lib/roken/xfree.c replace.c',
|
||||
includes='../heimdal/lib/roken ../heimdal/include ../../lib/socket_wrapper',
|
||||
deps='HEIMDAL_ROKEN_PROGNAME HEIMDAL_ROKEN_CLOSEFROM resolv LIBREPLACE_NETWORK UID_WRAPPER'
|
||||
deps='HEIMDAL_ROKEN_PROGNAME HEIMDAL_ROKEN_CLOSEFROM resolv LIBREPLACE_NETWORK UID_WRAPPER util'
|
||||
)
|
||||
|
||||
|
||||
@ -218,7 +198,7 @@ bld.SAMBA_SUBSYSTEM('HEIMDAL_HDB_KEYS',
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_HDB',
|
||||
source='''../heimdal/lib/hdb/db.c ../heimdal/lib/hdb/dbinfo.c ../heimdal/lib/hdb/hdb.c ../heimdal/lib/hdb/ext.c ../heimdal/lib/hdb/keytab.c
|
||||
../heimdal/lib/hdb/mkey.c ../heimdal/lib/hdb/ndbm.c ../heimdal/lib/hdb/hdb_err.c hdb-glue.c''',
|
||||
includes='../heimdal/lib/hdb',
|
||||
includes='../heimdal/lib/hdb ../heimdal/lib/com_err',
|
||||
heimdal_autoproto='../heimdal/lib/hdb/hdb-protos.h',
|
||||
heimdal_autoproto_private='../heimdal/lib/hdb/hdb-private.h',
|
||||
deps='HDB_LDB HEIMDAL_KRB5 HEIMDAL_HDB_KEYS HEIMDAL_ROKEN HEIMDAL_HCRYPTO HEIMDAL_COM_ERR HEIMDAL_HDB_ASN1'
|
||||
@ -272,14 +252,44 @@ bld.SAMBA_SUBSYSTEM('HEIMDAL_GSSAPI',
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_KRB5',
|
||||
'../heimdal/lib/krb5/acache.c ../heimdal/lib/krb5/add_et_list.c ../heimdal/lib/krb5/addr_families.c ../heimdal/lib/krb5/appdefault.c ../heimdal/lib/krb5/asn1_glue.c ../heimdal/lib/krb5/auth_context.c ../heimdal/lib/krb5/build_ap_req.c ../heimdal/lib/krb5/build_auth.c ../heimdal/lib/krb5/cache.c ../heimdal/lib/krb5/changepw.c ../heimdal/lib/krb5/codec.c ../heimdal/lib/krb5/config_file.c ../heimdal/lib/krb5/constants.c ../heimdal/lib/krb5/context.c ../heimdal/lib/krb5/convert_creds.c ../heimdal/lib/krb5/copy_host_realm.c ../heimdal/lib/krb5/crc.c ../heimdal/lib/krb5/creds.c ../heimdal/lib/krb5/crypto.c ../heimdal/lib/krb5/data.c ../heimdal/lib/krb5/eai_to_heim_errno.c ../heimdal/lib/krb5/error_string.c ../heimdal/lib/krb5/expand_hostname.c ../heimdal/lib/krb5/fcache.c ../heimdal/lib/krb5/free.c ../heimdal/lib/krb5/free_host_realm.c ../heimdal/lib/krb5/generate_seq_number.c ../heimdal/lib/krb5/generate_subkey.c ../heimdal/lib/krb5/get_addrs.c ../heimdal/lib/krb5/get_cred.c ../heimdal/lib/krb5/get_default_principal.c ../heimdal/lib/krb5/get_default_realm.c ../heimdal/lib/krb5/get_for_creds.c ../heimdal/lib/krb5/get_host_realm.c ../heimdal/lib/krb5/get_in_tkt.c ../heimdal/lib/krb5/get_port.c ../heimdal/lib/krb5/init_creds.c ../heimdal/lib/krb5/init_creds_pw.c ../heimdal/lib/krb5/kcm.c ../heimdal/lib/krb5/keyblock.c ../heimdal/lib/krb5/keytab.c ../heimdal/lib/krb5/keytab_any.c ../heimdal/lib/krb5/keytab_file.c ../heimdal/lib/krb5/keytab_memory.c ../heimdal/lib/krb5/keytab_keyfile.c ../heimdal/lib/krb5/krbhst.c ../heimdal/lib/krb5/log.c ../heimdal/lib/krb5/mcache.c ../heimdal/lib/krb5/misc.c ../heimdal/lib/krb5/mk_error.c ../heimdal/lib/krb5/mk_priv.c ../heimdal/lib/krb5/mk_rep.c ../heimdal/lib/krb5/mk_req.c ../heimdal/lib/krb5/mk_req_ext.c ../heimdal/lib/krb5/mit_glue.c ../heimdal/lib/krb5/n-fold.c ../heimdal/lib/krb5/padata.c ../heimdal/lib/krb5/pkinit.c ../heimdal/lib/krb5/plugin.c ../heimdal/lib/krb5/principal.c ../heimdal/lib/krb5/prog_setup.c ../heimdal/lib/krb5/pac.c ../heimdal/lib/krb5/prompter_posix.c ../heimdal/lib/krb5/rd_cred.c ../heimdal/lib/krb5/rd_error.c ../heimdal/lib/krb5/rd_priv.c ../heimdal/lib/krb5/rd_rep.c ../heimdal/lib/krb5/rd_req.c ../heimdal/lib/krb5/replay.c ../heimdal/lib/krb5/send_to_kdc.c ../heimdal/lib/krb5/set_default_realm.c ../heimdal/lib/krb5/store.c ../heimdal/lib/krb5/store_emem.c ../heimdal/lib/krb5/store_fd.c ../heimdal/lib/krb5/store_mem.c ../heimdal/lib/krb5/ticket.c ../heimdal/lib/krb5/time.c ../heimdal/lib/krb5/transited.c ../heimdal/lib/krb5/v4_glue.c ../heimdal/lib/krb5/version.c ../heimdal/lib/krb5/warn.c ../heimdal/lib/krb5/krb5_err.c ../heimdal/lib/krb5/heim_err.c ../heimdal/lib/krb5/k524_err.c krb5-glue.c',
|
||||
includes='../heimdal/lib/krb5 ../heimdal/lib/asn1 ../heimdal/lib/com_err',
|
||||
public_deps='HEIMDAL_COM_ERR',
|
||||
heimdal_autoproto='../heimdal/lib/krb5/krb5-protos.h',
|
||||
heimdal_autoproto_options='-E KRB5_LIB -q -P comment -o',
|
||||
heimdal_autoproto_private='../heimdal/lib/krb5/krb5-private.h',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_PKINIT_ASN1 HEIMDAL_WIND HEIMDAL_KRB5_ASN1 HEIMDAL_HX509 HEIMDAL_HCRYPTO LIBNETIF LIBSAMBA-HOSTCONFIG INTL'
|
||||
)
|
||||
bld.SUBDIR('../heimdal/lib/krb5/',
|
||||
'''acache.c add_et_list.c
|
||||
addr_families.c appdefault.c
|
||||
asn1_glue.c auth_context.c
|
||||
build_ap_req.c build_auth.c cache.c
|
||||
changepw.c codec.c config_file.c
|
||||
constants.c context.c convert_creds.c
|
||||
copy_host_realm.c crc.c creds.c
|
||||
crypto.c data.c eai_to_heim_errno.c
|
||||
error_string.c expand_hostname.c
|
||||
fcache.c free.c free_host_realm.c
|
||||
generate_seq_number.c generate_subkey.c
|
||||
get_addrs.c get_cred.c
|
||||
get_default_principal.c
|
||||
get_default_realm.c get_for_creds.c
|
||||
get_host_realm.c get_in_tkt.c
|
||||
get_port.c init_creds.c init_creds_pw.c
|
||||
kcm.c keyblock.c keytab.c keytab_any.c
|
||||
keytab_file.c keytab_memory.c
|
||||
keytab_keyfile.c krbhst.c log.c
|
||||
mcache.c misc.c mk_error.c mk_priv.c
|
||||
mk_rep.c mk_req.c mk_req_ext.c
|
||||
mit_glue.c n-fold.c padata.c pkinit.c
|
||||
plugin.c principal.c prog_setup.c pac.c
|
||||
prompter_posix.c rd_cred.c rd_error.c
|
||||
rd_priv.c rd_rep.c rd_req.c replay.c
|
||||
send_to_kdc.c set_default_realm.c
|
||||
store.c store_emem.c store_fd.c
|
||||
store_mem.c ticket.c time.c transited.c
|
||||
v4_glue.c version.c warn.c krb5_err.c
|
||||
heim_err.c k524_err.c krb_err.c''') + ' krb5-glue.c',
|
||||
includes='../heimdal/lib/krb5 ../heimdal/lib/asn1 ../heimdal/lib/com_err',
|
||||
public_deps='HEIMDAL_COM_ERR',
|
||||
heimdal_autoproto='../heimdal/lib/krb5/krb5-protos.h',
|
||||
heimdal_autoproto_options='-E KRB5_LIB -q -P comment -o',
|
||||
heimdal_autoproto_private='../heimdal/lib/krb5/krb5-private.h',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_PKINIT_ASN1 HEIMDAL_WIND HEIMDAL_KRB5_ASN1 HEIMDAL_HX509 HEIMDAL_HCRYPTO LIBNETIF LIBSAMBA-HOSTCONFIG INTL'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_HEIM_ASN1',
|
||||
@ -320,14 +330,14 @@ bld.SAMBA_SUBSYSTEM('HEIMDAL_WIND',
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_PROGNAME',
|
||||
'../heimdal/lib/roken/getprogname.c ../heimdal/lib/roken/setprogname.c',
|
||||
includes='../heimdal/lib/roken',
|
||||
config_option='HAVE_GETPROGNAME'
|
||||
enabled=not bld.CONFIG_SET('HAVE_GETPROGNAME')
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_CLOSEFROM',
|
||||
'../heimdal/lib/roken/closefrom.c',
|
||||
includes='../heimdal/lib/roken',
|
||||
config_option='HAVE_CLOSEFROM'
|
||||
enabled=not bld.CONFIG_SET('HAVE_CLOSEFROM')
|
||||
)
|
||||
|
||||
|
||||
@ -335,7 +345,7 @@ bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_PROGNAME_H',
|
||||
'../heimdal/lib/roken/getprogname.c ../heimdal/lib/roken/setprogname.c',
|
||||
cflags='-DSOCKET_WRAPPER_DISABLE=1 -DNSS_WRAPPER_DISABLE=1',
|
||||
includes='../heimdal/lib/roken',
|
||||
config_option='HAVE_GETPROGNAME'
|
||||
enabled=not bld.CONFIG_SET('HAVE_GETPROGNAME')
|
||||
)
|
||||
|
||||
|
||||
@ -343,7 +353,7 @@ bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_CLOSEFROM_H',
|
||||
'../heimdal/lib/roken/closefrom.c',
|
||||
cflags='-DSOCKET_WRAPPER_DISABLE=1 -DNSS_WRAPPER_DISABLE=1',
|
||||
includes='../heimdal/lib/roken',
|
||||
config_option='HAVE_CLOSEFROM'
|
||||
enabled=not bld.CONFIG_SET('HAVE_CLOSEFROM')
|
||||
)
|
||||
|
||||
|
||||
@ -359,7 +369,7 @@ bld.SAMBA_SUBSYSTEM('HEIMDAL_COM_ERR',
|
||||
'../heimdal/lib/com_err/com_err.c ../heimdal/lib/com_err/error.c',
|
||||
includes='../heimdal/lib/com_err',
|
||||
deps='HEIMDAL_ROKEN',
|
||||
config_option='HAVE_COM_ERR'
|
||||
enabled=not bld.CONFIG_SET('HAVE_COM_ERR')
|
||||
)
|
||||
|
||||
|
||||
|
@ -45,9 +45,10 @@ bld.SAMBA_SUBSYSTEM('MIT_SAMBA',
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_LIBRARY('mit_samba',source='',
|
||||
deps='MIT_SAMBA',
|
||||
output_type='SHARED_LIBRARY',
|
||||
realname='mit_samba.so'
|
||||
)
|
||||
bld.SAMBA_LIBRARY('mit_samba',
|
||||
source='',
|
||||
deps='MIT_SAMBA',
|
||||
external_library=True,
|
||||
realname='mit_samba.so'
|
||||
)
|
||||
|
||||
|
@ -26,29 +26,89 @@ def build(bld):
|
||||
bld.BUILD_SUBDIR(LIBTDB_DIR)
|
||||
bld.BUILD_SUBDIR(LIBTEVENT_DIR)
|
||||
|
||||
LDB_TDB_SRC = bld.SUBDIR('ldb_tdb',
|
||||
'''ldb_tdb.c ldb_pack.c ldb_search.c ldb_index.c
|
||||
ldb_cache.c ldb_tdb_wrap.c''')
|
||||
# in Samba4 we build some extra modules, and add extra
|
||||
# capabilities to the ldb cmdline tools
|
||||
s4_build = getattr(bld.env, '_SAMBA_BUILD_', 0) == 4
|
||||
|
||||
LDB_MAP_SRC = bld.SUBDIR('ldb_map',
|
||||
'ldb_map.c ldb_map_inbound.c ldb_map_outbound.c')
|
||||
|
||||
COMMON_SRC = bld.SUBDIR('common',
|
||||
'''ldb.c ldb_ldif.c ldb_parse.c ldb_msg.c ldb_utf8.c
|
||||
ldb_debug.c ldb_modules.c ldb_dn.c ldb_match.c
|
||||
ldb_debug.c ldb_dn.c ldb_match.c
|
||||
ldb_attributes.c attrib_handlers.c ldb_controls.c qsort.c''')
|
||||
|
||||
MODULES_SRC = bld.SUBDIR('modules',
|
||||
'rdn_name.c asq.c paged_results.c sort.c')
|
||||
bld.SAMBA_SUBSYSTEM('LIBLDB',
|
||||
includes='include',
|
||||
deps='tevent',
|
||||
source='common/ldb_modules.c')
|
||||
|
||||
bld.SAMBA_MODULE('ldb_asq',
|
||||
'modules/asq.c',
|
||||
init_function='LDB_MODULE(asq)',
|
||||
subsystem='LIBLDB')
|
||||
|
||||
bld.SAMBA_MODULE('ldb_server_sort',
|
||||
'modules/sort.c',
|
||||
init_function='LDB_MODULE(server_sort)',
|
||||
subsystem='LIBLDB')
|
||||
|
||||
bld.SAMBA_MODULE('ldb_paged_results',
|
||||
'modules/paged_results.c',
|
||||
init_function='LDB_MODULE(paged_results)',
|
||||
subsystem='LIBLDB')
|
||||
|
||||
bld.SAMBA_MODULE('ldb_paged_searches',
|
||||
'modules/paged_searches.c',
|
||||
init_function='LDB_MODULE(paged_searches)',
|
||||
enabled = s4_build,
|
||||
subsystem='LIBLDB')
|
||||
|
||||
bld.SAMBA_MODULE('ldb_rdn_name',
|
||||
'modules/rdn_name.c',
|
||||
init_function='LDB_MODULE(rdn_name)',
|
||||
subsystem='LIBLDB')
|
||||
|
||||
bld.SAMBA_MODULE('ldb_sqlite3',
|
||||
'sqlite3/ldb_sqlite3.c',
|
||||
init_function='LDB_BACKEND(sqlite3)',
|
||||
enabled=False,
|
||||
subsystem='LIBLDB')
|
||||
|
||||
bld.SAMBA_MODULE('ldb_tdb',
|
||||
bld.SUBDIR('ldb_tdb',
|
||||
'''ldb_tdb.c ldb_pack.c ldb_search.c ldb_index.c
|
||||
ldb_cache.c ldb_tdb_wrap.c'''),
|
||||
init_function='LDB_BACKEND(tdb)',
|
||||
deps='tdb',
|
||||
subsystem='LIBLDB')
|
||||
|
||||
bld.SAMBA_MODULE('ldb_ildap', 'ldb_ildap/ldb_ildap.c',
|
||||
init_function='LDB_BACKEND(ldapi),LDB_BACKEND(ldaps),LDB_BACKEND(ldap)',
|
||||
deps='talloc LIBCLI_LDAP CREDENTIALS',
|
||||
enabled=s4_build,
|
||||
subsystem='LIBLDB')
|
||||
|
||||
ldb_deps = 'tevent LIBLDB'
|
||||
if s4_build:
|
||||
ldb_deps += ' LDBSAMBA POPT_CREDENTIALS POPT_SAMBA LIBCMDLINE_CREDENTIALS gensec'
|
||||
|
||||
bld.SAMBA_LIBRARY('ldb',
|
||||
LDB_TDB_SRC + ' ' + COMMON_SRC + ' ' + MODULES_SRC,
|
||||
deps='tdb tevent',
|
||||
COMMON_SRC + ' ' + LDB_MAP_SRC,
|
||||
deps=ldb_deps,
|
||||
includes='include',
|
||||
vnum=VERSION)
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LIBLDB_CMDLINE',
|
||||
'tools/ldbutil.c tools/cmdline.c',
|
||||
'ldb dl popt')
|
||||
|
||||
LDB_TOOLS='ldbadd ldbsearch ldbdel ldbmodify ldbedit ldbrename ldbtest'
|
||||
for t in LDB_TOOLS.split():
|
||||
bld.SAMBA_BINARY(t,
|
||||
'tools/%s.c tools/ldbutil.c tools/cmdline.c' % t,
|
||||
deps='ldb dl popt')
|
||||
bld.SAMBA_BINARY(t, 'tools/%s.c' % t, deps='LIBLDB_CMDLINE')
|
||||
|
||||
if s4_build:
|
||||
bld.SAMBA_PYTHON('pyldb', 'pyldb.c',
|
||||
deps='ldb',
|
||||
realname='ldb.so')
|
||||
|
||||
|
@ -57,7 +57,7 @@ bld.SAMBA_BINARY('regtree',
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('torture_registry',
|
||||
source='tests/generic.c hive.c tests/diff.c tests/registry.c',
|
||||
source='tests/generic.c tests/hive.c tests/diff.c tests/registry.c',
|
||||
autoproto='tests/proto.h',
|
||||
deps='torture registry'
|
||||
)
|
||||
|
6
source4/lib/smbreadline/wscript_build
Normal file
6
source4/lib/smbreadline/wscript_build
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
termlib=bld.env.READLINE_TERMLIB or ''
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('SMBREADLINE',
|
||||
source='smbreadline.c',
|
||||
deps=termlib + ' readline')
|
12
source4/lib/smbreadline/wscript_configure
Normal file
12
source4/lib/smbreadline/wscript_configure
Normal file
@ -0,0 +1,12 @@
|
||||
|
||||
conf.CHECK_HEADERS('readline.h history.h readline/readline.h readline/history.h')
|
||||
for termlib in ['ncurses', 'curses', 'termcap', 'terminfo', 'termlib', 'tinfo']:
|
||||
if conf.CHECK_FUNCS_IN('tgetent', termlib):
|
||||
conf.env['READLINE_TERMLIB'] = termlib
|
||||
break
|
||||
|
||||
if conf.CHECK_FUNCS_IN('rl_completion_matches', 'readline'):
|
||||
conf.DEFINE('HAVE_NEW_LIBREADLINE', 1)
|
||||
|
||||
if conf.CHECK_FUNCS_IN('rl_event_hook', 'readline'):
|
||||
conf.DEFINE('HAVE_HISTORY_LIST', 1)
|
@ -13,7 +13,7 @@ bld.SAMBA_MODULE('socket_ip',
|
||||
source='socket_ip.c',
|
||||
subsystem='samba_socket',
|
||||
deps='LIBSAMBA-ERRORS LIBREPLACE_NETWORK',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@ bld.SAMBA_MODULE('socket_unix',
|
||||
source='socket_unix.c',
|
||||
subsystem='samba_socket',
|
||||
deps='LIBREPLACE_NETWORK',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LIBSECURITY',
|
||||
source='security_token.c access_check.c privilege.c sddl.c create_descriptor.c object_tree.c',
|
||||
source='security_token.c access_check.c privilege.c create_descriptor.c object_tree.c',
|
||||
autoproto='proto.h',
|
||||
public_deps='LIBNDR LIBSECURITY_COMMON'
|
||||
)
|
||||
|
@ -54,19 +54,19 @@ bld.SAMBA_SUBSYSTEM('LIBCLI_DGRAM',
|
||||
bld.SAMBA_SUBSYSTEM('LIBCLI_WREPL',
|
||||
source='wrepl/winsrepl.c',
|
||||
autoproto='wrepl/winsrepl_proto.h',
|
||||
public_deps='NDR_WINSREPL samba_socket LIBEVENTS LIBPACKET'
|
||||
public_deps='NDR_WINSREPL samba_socket LIBEVENTS LIBPACKET LIBSAMBA_TSOCKET'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LIBCLI_RESOLVE',
|
||||
source='resolve/resolve.c',
|
||||
autoproto='resolve/proto.h',
|
||||
public_deps='NDR_NBT'
|
||||
public_deps='NDR_NBT LIBTSOCKET'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('LP_RESOLVE',
|
||||
source='resolve/bcast.c resolve/nbtlist.c resolve/wins.c resolve/dns_ex.c resolve/host.c resolve/resolve_lp.c',
|
||||
source='resolve/bcast.c resolve/nbtlist.c resolve/wins.c resolve/dns_ex.c resolve/file.c resolve/host.c resolve/resolve_lp.c',
|
||||
autoproto='resolve/lp_proto.h',
|
||||
deps='LIBCLI_NBT LIBSAMBA-HOSTCONFIG LIBNETIF'
|
||||
)
|
||||
|
@ -1,5 +1,3 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
bld.BUILD_SUBDIR('../../librpc/idl')
|
||||
bld.BUILD_SUBDIR('idl')
|
||||
|
||||
@ -623,9 +621,8 @@ bld.SAMBA_PYTHON('python_winreg',
|
||||
|
||||
|
||||
bld.SAMBA_PYTHON('python_dcerpc_misc',
|
||||
source='ndr/py_misc.c',
|
||||
source='../../librpc/gen_ndr/py_misc.c',
|
||||
deps='PYTALLOC python_dcerpc NDR_MISC NDR_KRB5PAC',
|
||||
enabled=False,
|
||||
realname='samba/dcerpc/misc.so'
|
||||
)
|
||||
|
||||
@ -722,18 +719,19 @@ bld.SAMBA_PYTHON('python_drsuapi',
|
||||
|
||||
|
||||
bld.SAMBA_PYTHON('python_dcerpc_security',
|
||||
source='ndr/py_security.c',
|
||||
source='../../librpc/gen_ndr/py_security.c',
|
||||
deps='PYTALLOC python_dcerpc_misc python_dcerpc NDR_SECURITY',
|
||||
enabled=False,
|
||||
realname='samba/dcerpc/security.so'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_PYTHON('python_dcerpc_xattr',
|
||||
source='ndr/py_xattr.c',
|
||||
source='../../librpc/gen_ndr/py_xattr.c',
|
||||
deps='PYTALLOC python_dcerpc_misc python_dcerpc python_dcerpc_security NDR_XATTR RPC_NDR_XATTR',
|
||||
enabled=False,
|
||||
realname='samba/dcerpc/xattr.so'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SCRIPT('python_dcerpc_init',
|
||||
pattern='rpc/dcerpc.py',
|
||||
installdir='python/samba/dcerpc',
|
||||
installname='__init__.py')
|
||||
|
@ -11,7 +11,7 @@ bld.SAMBA_SUBSYSTEM('WINSDB',
|
||||
|
||||
bld.SAMBA_MODULE('ldb_wins_ldb',
|
||||
source='wins/wins_ldb.c',
|
||||
subsystem='ldb',
|
||||
subsystem='LIBLDB',
|
||||
init_function='LDB_MODULE(wins_ldb)',
|
||||
deps='ldb LIBNETIF LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL'
|
||||
)
|
||||
|
@ -28,25 +28,25 @@ bld.SAMBA_SUBSYSTEM('pvfs_aio',
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('ntvfs_posix',
|
||||
source='vfs_posix.c pvfs_util.c pvfs_search.c pvfs_dirlist.c pvfs_fileinfo.c pvfs_unlink.c pvfs_mkdir.c pvfs_open.c pvfs_read.c pvfs_flush.c pvfs_write.c pvfs_fsinfo.c pvfs_qfileinfo.c pvfs_setfileinfo.c pvfs_rename.c pvfs_resolve.c pvfs_shortname.c pvfs_lock.c pvfs_oplock.c pvfs_wait.c pvfs_seek.c pvfs_ioctl.c pvfs_xattr.c pvfs_streams.c pvfs_notify.c xattr_system.c xattr_tdb.c',
|
||||
source='vfs_posix.c pvfs_util.c pvfs_search.c pvfs_dirlist.c pvfs_fileinfo.c pvfs_unlink.c pvfs_mkdir.c pvfs_open.c pvfs_read.c pvfs_flush.c pvfs_write.c pvfs_fsinfo.c pvfs_qfileinfo.c pvfs_setfileinfo.c pvfs_rename.c pvfs_resolve.c pvfs_shortname.c pvfs_lock.c pvfs_oplock.c pvfs_wait.c pvfs_seek.c pvfs_ioctl.c pvfs_xattr.c pvfs_streams.c pvfs_notify.c pvfs_sys.c xattr_system.c xattr_tdb.c',
|
||||
autoproto='vfs_posix_proto.h',
|
||||
subsystem='ntvfs',
|
||||
init_function='ntvfs_posix_init',
|
||||
deps='NDR_XATTR WRAP_XATTR BLKID ntvfs_common MESSAGING LIBWBCLIENT_OLD pvfs_acl pvfs_aio',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_PYTHON('python_xattr_native',
|
||||
source='python/pyxattr_native.c',
|
||||
deps='LIBNDR ldb SAMDB CREDENTIALS python_dcerpc_security pyparam_util WRAP_XATTR',
|
||||
deps='LIBNDR ldb SAMDB CREDENTIALS python_dcerpc_security pyparam_util WRAP_XATTR attr',
|
||||
realname='samba/xattr_native.so'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_PYTHON('python_xattr_tdb',
|
||||
source='python/pyxattr_tdb.c xattr_tdb.c',
|
||||
deps='LIBNDR ldb python_dcerpc_security pyparam_util share',
|
||||
deps='LIBNDR ldb python_dcerpc_security pyparam_util share attr',
|
||||
realname='samba/xattr_tdb.so'
|
||||
)
|
||||
|
||||
|
@ -23,7 +23,7 @@ bld.SAMBA_MODULE('ntvfs_smb2',
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('ntvfs_simple',
|
||||
source='simple/vfs_simple.c cifs_posix_cli/svfs_util.c ./simple/svfs_util.c',
|
||||
source='simple/vfs_simple.c simple/svfs_util.c',
|
||||
autoproto='simple/proto.h',
|
||||
subsystem='ntvfs',
|
||||
init_function='ntvfs_simple_init'
|
||||
@ -31,7 +31,7 @@ bld.SAMBA_MODULE('ntvfs_simple',
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('ntvfs_cifsposix',
|
||||
source='cifs_posix_cli/vfs_cifs_posix.c cifs_posix_cli/svfs_util.c ./simple/svfs_util.c',
|
||||
source='cifs_posix_cli/vfs_cifs_posix.c cifs_posix_cli/svfs_util.c',
|
||||
autoproto='cifs_posix_cli/proto.h',
|
||||
subsystem='ntvfs',
|
||||
init_function='ntvfs_cifs_posix_init'
|
||||
|
@ -1,12 +1,8 @@
|
||||
# AUTOGENERATED by mktowscript.pl from ../../source4/param/config.mk
|
||||
# Please remove this notice if hand editing
|
||||
|
||||
|
||||
bld.SAMBA_LIBRARY('LIBSAMBA-HOSTCONFIG',
|
||||
source='loadparm.c generic.c util.c',
|
||||
# PC_FILES='samba-hostconfig.pc',
|
||||
vnum='0.0.1',
|
||||
deps='DYNCONFIG LIBREPLACE_EXT CHARSET',
|
||||
deps='DYNCONFIG LIBREPLACE_EXT CHARSET dl',
|
||||
public_deps='LIBSAMBA-UTIL',
|
||||
public_headers='param.h'
|
||||
)
|
||||
|
@ -73,7 +73,7 @@ bld.SAMBA_MODULE('dcerpc_winreg',
|
||||
subsystem='dcerpc_server',
|
||||
init_function='dcerpc_server_winreg_init',
|
||||
deps='registry NDR_STANDARD',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -99,7 +99,7 @@ bld.SAMBA_MODULE('dcerpc_spoolss',
|
||||
subsystem='dcerpc_server',
|
||||
init_function='dcerpc_server_spoolss_init',
|
||||
deps='DCERPC_COMMON NDR_SPOOLSS ntptr RPC_NDR_SPOOLSS',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -132,7 +132,7 @@ bld.SAMBA_MODULE('DCESRV',
|
||||
autoproto='service_rpc.h',
|
||||
subsystem='service',
|
||||
init_function='server_service_rpc_init',
|
||||
output_type='MERGED_OBJ',
|
||||
internal_module=True,
|
||||
deps='dcerpc_server'
|
||||
)
|
||||
|
||||
|
@ -15,7 +15,7 @@ bld.SAMBA_PYTHON('PYTALLOC',
|
||||
bld.SAMBA_PYTHON('python_uuid',
|
||||
source='uuidmodule.c',
|
||||
deps='LIBNDR',
|
||||
realname='uuid'
|
||||
realname='uuid.so'
|
||||
)
|
||||
|
||||
|
||||
@ -30,3 +30,9 @@ bld.SAMBA_PYTHON('python_glue',
|
||||
|
||||
# create a dummy subsystem for EXT_LIB_PYTHON
|
||||
bld.SAMBA_SUBSYSTEM('EXT_LIB_PYTHON', '')
|
||||
|
||||
|
||||
# install out various python scripts for use by make test
|
||||
bld.SAMBA_SCRIPT('samba_python',
|
||||
pattern='samba/**/*.py',
|
||||
installdir='python')
|
||||
|
@ -1,5 +1,7 @@
|
||||
# selftest main code.
|
||||
|
||||
import Scripting, os
|
||||
|
||||
########################################################################
|
||||
# main test entry point
|
||||
def cmd_test(opt):
|
||||
@ -11,8 +13,10 @@ def cmd_test(opt):
|
||||
def cmd_quicktest(opt):
|
||||
'''Run the quick test suite'''
|
||||
print "Starting quick test"
|
||||
#Scripting.commands += ['build']
|
||||
SELFTEST = 'PYTHON=/usr/bin/python perl -W ../selftest/selftest.pl --prefix=./st --builddir=. --srcdir=. --exclude=./selftest/skip --testlist="./selftest/tests.sh|" --exclude=./selftest/slow --quick --include=./selftest/quick --socket-wrapper | perl -W ../selftest/filter-subunit.pl --expected-failures=./selftest/knownfail | /usr/bin/perl -W ../selftest/format-subunit.pl --prefix=./st --format=plain --immediate'
|
||||
ret = os.system(SELFTEST)
|
||||
|
||||
def set_options(opt):
|
||||
opt.ADD_COMMAND('test', cmd_test)
|
||||
opt.ADD_COMMAND('quicktest', cmd_quicktest)
|
||||
|
||||
|
@ -8,7 +8,7 @@ bld.SAMBA_MODULE('SERVICE_SMB',
|
||||
subsystem='service',
|
||||
init_function='server_service_smb_init',
|
||||
deps='SMB_SERVER',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
|
@ -19,9 +19,10 @@ bld.SAMBA_BINARY('samba',
|
||||
source='server.c',
|
||||
manpages='samba.8',
|
||||
installdir='SBINDIR',
|
||||
subsystem='service',
|
||||
subsystem_name='service',
|
||||
deps='''LIBEVENTS process_model service LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL POPT_SAMBA PIDFILE
|
||||
LIBPOPT gensec registry ntptr ntvfs share CLUSTER DCESRV'''
|
||||
LIBPOPT gensec registry ntptr ntvfs share CLUSTER DCESRV''',
|
||||
needs_python=True
|
||||
)
|
||||
|
||||
|
||||
@ -35,7 +36,7 @@ bld.SAMBA_MODULE('process_model_single',
|
||||
source='process_single.c',
|
||||
subsystem='process_model',
|
||||
init_function='process_model_single_init',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -51,7 +52,8 @@ bld.SAMBA_MODULE('process_model_thread',
|
||||
source='process_thread.c',
|
||||
subsystem='process_model',
|
||||
init_function='process_model_thread_init',
|
||||
deps='PTHREAD'
|
||||
enabled=False,
|
||||
deps='pthread'
|
||||
)
|
||||
|
||||
|
||||
|
@ -8,6 +8,6 @@ bld.SAMBA_MODULE('TORTURE_DRS',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_drs_init',
|
||||
deps='NDR_TABLE RPC_NDR_UNIXINFO dcerpc_samr RPC_NDR_WINREG RPC_NDR_INITSHUTDOWN RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL RPC_NDR_NETLOGON dcerpc_atsvc dcerpc_mgmt RPC_NDR_DRSUAPI RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_FRSAPI RPC_NDR_SPOOLSS RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER RPC_NDR_NTSVCS WB_HELPER LIBSAMBA-NET LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP dcerpc_server service process_model ntvfs SERVICE_SMB RPC_NDR_BROWSER LIBCLI_DRSUAPI TORTURE_LDB_MODULE',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
@ -8,7 +8,7 @@ bld.SAMBA_MODULE('TORTURE_LIBNETAPI',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_libnetapi_init',
|
||||
deps='POPT_CREDENTIALS NETAPI',
|
||||
output_type='MERGED_OBJ',
|
||||
internal_module=True,
|
||||
enabled=False
|
||||
)
|
||||
|
||||
|
@ -8,7 +8,7 @@ bld.SAMBA_MODULE('TORTURE_LIBSMBCLIENT',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_libsmbclient_init',
|
||||
deps='POPT_CREDENTIALS SMBCLIENT',
|
||||
output_type='MERGED_OBJ',
|
||||
internal_module=True,
|
||||
enabled=False
|
||||
)
|
||||
|
||||
|
@ -3,6 +3,6 @@ bld.SAMBA_MODULE('TORTURE_LOCAL',
|
||||
autoproto='proto.h',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_local_init',
|
||||
deps='RPC_NDR_ECHO TDR LIBCLI_SMB MESSAGING ICONV POPT_CREDENTIALS TORTURE_AUTH TORTURE_UTIL TORTURE_NDR TORTURE_LIBCRYPTO share torture_registry PROVISION NSS_WRAPPER ldb SAMDB',
|
||||
output_type='MERGED_OBJ'
|
||||
deps='RPC_NDR_ECHO TDR LIBCLI_SMB MESSAGING ICONV POPT_CREDENTIALS TORTURE_AUTH TORTURE_UTIL TORTURE_NDR TORTURE_LIBCRYPTO share torture_registry PROVISION NSS_WRAPPER ldb SAMDB SOCKET_WRAPPER',
|
||||
internal_module=True
|
||||
)
|
||||
|
@ -6,7 +6,7 @@ bld.SAMBA_MODULE('TORTURE_SMB2',
|
||||
source='connect.c scan.c util.c getinfo.c setinfo.c lock.c notify.c smb2.c durable_open.c oplock.c dir.c lease.c create.c acls.c read.c compound.c streams.c',
|
||||
subsystem='smbtorture',
|
||||
deps='LIBCLI_SMB2 POPT_CREDENTIALS torture',
|
||||
output_type='MERGED_OBJ',
|
||||
internal_module=True,
|
||||
autoproto='proto.h',
|
||||
init_function='torture_smb2_init'
|
||||
)
|
||||
|
@ -4,5 +4,5 @@ bld.SAMBA_MODULE('TORTURE_WINBIND',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_winbind_init',
|
||||
deps='LIBWBCLIENT LIBWBCLIENT_ASYNC LIBWINBIND-CLIENT torture PAM_ERRORS',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
@ -10,22 +10,22 @@ bld.SAMBA_SUBSYSTEM('TORTURE_UTIL',
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('TORTURE_BASIC',
|
||||
source='basic/base.c basic/misc.c basic/scanner.c ./rpc/scanner.c basic/utable.c basic/charset.c basic/mangle_test.c basic/denytest.c basic/aliases.c basic/locking.c basic/secleak.c raw/rename.c ./basic/rename.c basic/dir.c ./smb2/dir.c basic/delete.c raw/unlink.c ./basic/unlink.c basic/disconnect.c basic/delaywrite.c basic/attr.c basic/properties.c',
|
||||
source='basic/base.c basic/misc.c basic/scanner.c basic/utable.c basic/charset.c basic/mangle_test.c basic/denytest.c basic/aliases.c basic/locking.c basic/secleak.c basic/rename.c basic/dir.c basic/delete.c basic/unlink.c basic/disconnect.c basic/delaywrite.c basic/attr.c basic/properties.c',
|
||||
subsystem='smbtorture',
|
||||
deps='LIBCLI_SMB POPT_CREDENTIALS TORTURE_UTIL LIBCLI_RAW TORTURE_RAW',
|
||||
output_type='MERGED_OBJ',
|
||||
internal_module=True,
|
||||
autoproto='basic/proto.h',
|
||||
init_function='torture_base_init'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('TORTURE_RAW',
|
||||
source='raw/qfsinfo.c raw/qfileinfo.c raw/setfileinfo.c raw/search.c raw/close.c raw/open.c raw/mkdir.c raw/oplock.c ./smb2/oplock.c raw/notify.c ./smb2/notify.c raw/mux.c raw/ioctl.c raw/chkpath.c raw/unlink.c ./basic/unlink.c raw/read.c ./smb2/read.c raw/context.c raw/write.c raw/lock.c ./smb2/lock.c raw/pingpong.c raw/lockbench.c raw/lookuprate.c raw/tconrate.c raw/openbench.c raw/rename.c ./basic/rename.c raw/eas.c raw/streams.c ./smb2/streams.c raw/acls.c ./smb2/acls.c raw/seek.c raw/samba3hide.c raw/samba3misc.c raw/composite.c raw/raw.c raw/offline.c',
|
||||
source='raw/qfsinfo.c raw/qfileinfo.c raw/setfileinfo.c raw/search.c raw/close.c raw/open.c raw/mkdir.c raw/oplock.c raw/notify.c raw/mux.c raw/ioctl.c raw/chkpath.c raw/unlink.c raw/read.c raw/context.c raw/write.c raw/lock.c raw/pingpong.c raw/lockbench.c raw/lookuprate.c raw/tconrate.c raw/openbench.c raw/rename.c raw/eas.c raw/streams.c raw/acls.c raw/seek.c raw/samba3hide.c raw/samba3misc.c raw/composite.c raw/raw.c raw/offline.c',
|
||||
autoproto='raw/proto.h',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_raw_init',
|
||||
deps='LIBCLI_SMB LIBCLI_LSA LIBCLI_SMB_COMPOSITE POPT_CREDENTIALS TORTURE_UTIL',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
bld.BUILD_SUBDIR('smb2')
|
||||
@ -34,19 +34,19 @@ bld.BUILD_SUBDIR('libnetapi')
|
||||
bld.BUILD_SUBDIR('libsmbclient')
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('TORTURE_NDR',
|
||||
source='ndr/ndr.c ndr/winreg.c ./rpc/winreg.c ndr/atsvc.c ./rpc/atsvc.c ndr/lsa.c ./rpc/lsa.c ndr/epmap.c ndr/dfs.c ./rpc/dfs.c ndr/netlogon.c ./rpc/netlogon.c ndr/drsuapi.c ./rpc/drsuapi.c ndr/spoolss.c ./rpc/spoolss.c ndr/samr.c ./rpc/samr.c ndr/dfsblob.c',
|
||||
source='ndr/ndr.c ndr/winreg.c ndr/atsvc.c ndr/lsa.c ndr/epmap.c ndr/dfs.c ndr/netlogon.c ndr/drsuapi.c ndr/spoolss.c ndr/samr.c ndr/dfsblob.c',
|
||||
autoproto='ndr/proto.h',
|
||||
deps='torture SERVICE_SMB'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('torture_rpc',
|
||||
source='rpc/join.c ndr/lsa.c ./rpc/lsa.c rpc/lsa_lookup.c rpc/session_key.c rpc/echo.c ndr/dfs.c ./rpc/dfs.c ndr/drsuapi.c ./rpc/drsuapi.c rpc/drsuapi_cracknames.c rpc/dssync.c rpc/dsgetinfo.c ndr/spoolss.c ./rpc/spoolss.c rpc/spoolss_notify.c rpc/spoolss_win.c rpc/unixinfo.c ndr/samr.c ./rpc/samr.c rpc/samr_accessmask.c rpc/wkssvc.c rpc/srvsvc.c rpc/svcctl.c ndr/atsvc.c ./rpc/atsvc.c rpc/eventlog.c rpc/epmapper.c ndr/winreg.c ./rpc/winreg.c rpc/initshutdown.c rpc/oxidresolve.c rpc/remact.c rpc/mgmt.c basic/scanner.c ./rpc/scanner.c rpc/autoidl.c rpc/countcalls.c rpc/testjoin.c rpc/schannel.c ndr/netlogon.c ./rpc/netlogon.c rpc/remote_pac.c rpc/samlogon.c rpc/samsync.c rpc/bind.c rpc/dssetup.c rpc/alter_context.c rpc/bench.c rpc/samba3rpc.c rpc/rpc.c rpc/async_bind.c rpc/handles.c rpc/frsapi.c rpc/object_uuid.c rpc/ntsvcs.c rpc/browser.c',
|
||||
source='rpc/join.c rpc/lsa.c rpc/lsa_lookup.c rpc/session_key.c rpc/echo.c rpc/dfs.c rpc/drsuapi.c rpc/drsuapi_cracknames.c rpc/dssync.c rpc/dsgetinfo.c rpc/spoolss.c rpc/spoolss_notify.c rpc/spoolss_win.c rpc/unixinfo.c rpc/samr.c rpc/samr_accessmask.c rpc/wkssvc.c rpc/srvsvc.c rpc/svcctl.c rpc/atsvc.c rpc/eventlog.c rpc/epmapper.c rpc/winreg.c rpc/initshutdown.c rpc/oxidresolve.c rpc/remact.c rpc/mgmt.c rpc/scanner.c rpc/autoidl.c rpc/countcalls.c rpc/testjoin.c rpc/schannel.c rpc/netlogon.c rpc/remote_pac.c rpc/samlogon.c rpc/samsync.c rpc/bind.c rpc/dssetup.c rpc/alter_context.c rpc/bench.c rpc/samba3rpc.c rpc/rpc.c rpc/async_bind.c rpc/handles.c rpc/frsapi.c rpc/object_uuid.c rpc/ntsvcs.c rpc/browser.c',
|
||||
autoproto='rpc/proto.h',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_rpc_init',
|
||||
deps='NDR_TABLE RPC_NDR_UNIXINFO dcerpc_samr RPC_NDR_WINREG RPC_NDR_INITSHUTDOWN RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL RPC_NDR_NETLOGON dcerpc_atsvc dcerpc_mgmt RPC_NDR_DRSUAPI RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_FRSAPI RPC_NDR_SPOOLSS RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER RPC_NDR_NTSVCS WB_HELPER LIBSAMBA-NET LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP dcerpc_server service process_model ntvfs SERVICE_SMB RPC_NDR_BROWSER LIBCLI_DRSUAPI TORTURE_LDB_MODULE',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
bld.BUILD_SUBDIR('drs')
|
||||
@ -57,7 +57,7 @@ bld.SAMBA_MODULE('TORTURE_RAP',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_rap_init',
|
||||
deps='TORTURE_UTIL LIBCLI_SMB',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -66,7 +66,7 @@ bld.SAMBA_MODULE('TORTURE_AUTH',
|
||||
autoproto='auth/proto.h',
|
||||
subsystem='smbtorture',
|
||||
deps='LIBCLI_SMB gensec auth KERBEROS POPT_CREDENTIALS SMBPASSWD torture',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
bld.BUILD_SUBDIR('local')
|
||||
@ -77,7 +77,7 @@ bld.SAMBA_MODULE('TORTURE_NBENCH',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_nbench_init',
|
||||
deps='TORTURE_UTIL',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -87,7 +87,7 @@ bld.SAMBA_MODULE('TORTURE_UNIX',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_unix_init',
|
||||
deps='TORTURE_UTIL',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -95,7 +95,7 @@ bld.SAMBA_MODULE('TORTURE_LDAP',
|
||||
source='ldap/common.c ldap/basic.c ldap/schema.c ldap/uptodatevector.c ldap/cldap.c ldap/cldapbench.c ldap/ldap_sort.c ldap/nested_search.c',
|
||||
subsystem='smbtorture',
|
||||
deps='LIBCLI_LDAP LIBCLI_CLDAP SAMDB POPT_CREDENTIALS torture LDB_WRAP',
|
||||
output_type='MERGED_OBJ',
|
||||
internal_module=True,
|
||||
autoproto='ldap/proto.h',
|
||||
init_function='torture_ldap_init'
|
||||
)
|
||||
@ -107,7 +107,7 @@ bld.SAMBA_MODULE('TORTURE_NBT',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_nbt_init',
|
||||
deps='LIBCLI_SMB LIBCLI_NBT LIBCLI_DGRAM LIBCLI_WREPL torture_rpc',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -117,7 +117,7 @@ bld.SAMBA_MODULE('TORTURE_NET',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_net_init',
|
||||
deps='LIBSAMBA-NET POPT_CREDENTIALS torture_rpc PROVISION',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
@ -127,18 +127,18 @@ bld.SAMBA_MODULE('TORTURE_NTP',
|
||||
subsystem='smbtorture',
|
||||
init_function='torture_ntp_init',
|
||||
deps='POPT_CREDENTIALS torture_rpc',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
TORTURE_MODULES = 'TORTURE_BASIC TORTURE_RAW torture_rpc TORTURE_RAP TORTURE_AUTH TORTURE_NBENCH TORTURE_UNIX TORTURE_LDAP TORTURE_NBT TORTURE_NET TORTURE_NTP'
|
||||
TORTURE_MODULES = 'TORTURE_BASIC TORTURE_RAW torture_rpc TORTURE_RAP TORTURE_AUTH TORTURE_NBENCH TORTURE_UNIX TORTURE_LDAP TORTURE_NBT TORTURE_NET TORTURE_NTP torture_registry'
|
||||
|
||||
bld.SAMBA_BINARY('smbtorture',
|
||||
source='smbtorture.c torture.c',
|
||||
manpages='man/smbtorture.1',
|
||||
public_headers='smbtorture.h',
|
||||
installdir='BINDIR',
|
||||
subsystem='smbtorture',
|
||||
deps='torture LIBPOPT POPT_SAMBA POPT_CREDENTIALS dcerpc LIBCLI_SMB SMBREADLINE ' + TORTURE_MODULES
|
||||
deps='torture LIBPOPT POPT_SAMBA POPT_CREDENTIALS dcerpc LIBCLI_SMB SMBREADLINE ' + TORTURE_MODULES,
|
||||
needs_python=True
|
||||
)
|
||||
|
||||
|
||||
@ -161,11 +161,11 @@ bld.SAMBA_BINARY('masktest',
|
||||
bld.SAMBA_BINARY('locktest',
|
||||
source='locktest.c',
|
||||
# COV_TARGET='test',
|
||||
ldflags='--coverage',
|
||||
manpages='man/locktest.1',
|
||||
#ldflags='--coverage',
|
||||
#cflags='--coverage',
|
||||
# GCOV='1',
|
||||
manpages='man/locktest.1',
|
||||
deps='LIBPOPT POPT_SAMBA POPT_CREDENTIALS LIBSAMBA-UTIL LIBCLI_SMB LIBSAMBA-HOSTCONFIG',
|
||||
cflags='--coverage',
|
||||
installdir='BINDIR'
|
||||
)
|
||||
|
||||
|
@ -1,13 +1,9 @@
|
||||
# AUTOGENERATED by mktowscript.pl from ../../source4/utils/net/config.mk
|
||||
# Please remove this notice if hand editing
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('net_drs',
|
||||
source='drs/net_drs.c drs/net_drs_bind.c drs/net_drs_kcc.c drs/net_drs_replicate.c drs/net_drs_showrepl.c',
|
||||
autoproto='drs/net_drs_proto.h',
|
||||
subsystem='net',
|
||||
deps='LIBCLI_DRSUAPI ldb',
|
||||
output_type='MERGED_OBJ'
|
||||
internal_module=True
|
||||
)
|
||||
|
||||
|
||||
|
@ -6,7 +6,8 @@ bld.SAMBA_BINARY('ntlm_auth',
|
||||
source='ntlm_auth.c',
|
||||
manpages='man/ntlm_auth.1',
|
||||
installdir='BINDIR',
|
||||
deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBPOPT POPT_SAMBA POPT_CREDENTIALS gensec LIBCLI_RESOLVE auth ntlm_check MESSAGING LIBEVENTS'
|
||||
deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBPOPT POPT_SAMBA POPT_CREDENTIALS gensec LIBCLI_RESOLVE auth ntlm_check MESSAGING LIBEVENTS service',
|
||||
needs_python=True
|
||||
)
|
||||
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('WINBIND',
|
||||
source='wb_server.c wb_irpc.c wb_samba3_protocol.c wb_samba3_cmd.c wb_init_domain.c wb_dom_info.c wb_dom_info_trusted.c wb_sid2domain.c wb_name2domain.c wb_sids2xids.c wb_xids2sids.c wb_gid2sid.c wb_sid2uid.c wb_sid2gid.c wb_uid2sid.c wb_connect_lsa.c wb_connect_sam.c wb_cmd_lookupname.c wb_cmd_lookupsid.c wb_cmd_getdcname.c wb_cmd_getgrnam.c wb_cmd_getgrgid.c wb_cmd_getpwnam.c wb_cmd_getpwuid.c wb_cmd_userdomgroups.c wb_cmd_usersids.c wb_cmd_list_groups.c wb_cmd_list_trustdom.c wb_cmd_list_users.c wb_cmd_setpwent.c wb_cmd_getpwent.c wb_pam_auth.c wb_sam_logon.c',
|
||||
source='wb_server.c wb_irpc.c wb_samba3_protocol.c wb_samba3_cmd.c wb_init_domain.c wb_dom_info.c wb_dom_info_trusted.c wb_sid2domain.c wb_name2domain.c wb_sids2xids.c wb_xids2sids.c wb_gid2sid.c wb_sid2uid.c wb_sid2gid.c wb_uid2sid.c wb_connect_lsa.c wb_connect_sam.c wb_cmd_lookupname.c wb_cmd_lookupsid.c wb_cmd_getdcname.c wb_cmd_getgrnam.c wb_cmd_getgrgid.c wb_cmd_getpwnam.c wb_cmd_getpwuid.c wb_cmd_userdomgroups.c wb_cmd_usersids.c wb_cmd_list_groups.c wb_cmd_list_trustdom.c wb_cmd_list_users.c wb_cmd_setpwent.c wb_cmd_getpwent.c wb_cmd_getgrent.c wb_cmd_setgrent.c wb_cmd_getgroups.c wb_pam_auth.c wb_sam_logon.c',
|
||||
autoproto='wb_proto.h',
|
||||
subsystem='service',
|
||||
init_function='server_service_winbind_init',
|
||||
|
@ -35,10 +35,7 @@ def configure(conf):
|
||||
# set a lower limit on recursing in waf preprocessor
|
||||
conf.env.preprocessor_recursion_limit = 10
|
||||
|
||||
# we should use the PIC options in waf instead
|
||||
conf.ADD_CFLAGS('-fPIC')
|
||||
|
||||
conf.ADD_EXTRA_INCLUDES('#source4 #lib #source4/lib #source4/include #lib/replace #lib/talloc')
|
||||
conf.ADD_EXTRA_INCLUDES('#source4 #lib #source4/lib #source4/include #lib/replace #lib/talloc #lib/tevent')
|
||||
|
||||
conf.sub_config('../lib/replace')
|
||||
|
||||
@ -63,5 +60,6 @@ def configure(conf):
|
||||
conf.sub_config('../lib/nss_wrapper')
|
||||
conf.sub_config('../lib/socket_wrapper')
|
||||
conf.sub_config('../lib/uid_wrapper')
|
||||
conf.sub_config('lib/smbreadline')
|
||||
|
||||
conf.SAMBA_CONFIG_H('include/config.h')
|
||||
|
@ -3,8 +3,6 @@
|
||||
import os
|
||||
srcdir = ".."
|
||||
|
||||
bld.env.TOPDIR = os.path.normpath(os.path.join(os.environ.get('PWD'), srcdir))
|
||||
|
||||
# create separate build groups for building the asn1 and et compiler, then
|
||||
# building the C from ASN1 and IDL, and finally the main build process
|
||||
bld.SETUP_BUILD_GROUPS()
|
||||
@ -16,29 +14,25 @@ bld.SAMBA_MKVERSION('version.h')
|
||||
bld.TARGET_ALIAS('attr', 'XATTR')
|
||||
bld.TARGET_ALIAS('execinfo', 'EXECINFO')
|
||||
bld.TARGET_ALIAS('popt', 'LIBPOPT')
|
||||
bld.TARGET_ALIAS('tevent', 'LIBTEVENT_EXT')
|
||||
bld.TARGET_ALIAS('z', 'ZLIB')
|
||||
bld.TARGET_ALIAS('pam', 'PAM')
|
||||
bld.TARGET_ALIAS('sasl2', 'SASL')
|
||||
bld.TARGET_ALIAS('crypt', 'CRYPT')
|
||||
|
||||
# missing subsystems
|
||||
bld.SAMBA_SUBSYSTEM('pyldb_util', '')
|
||||
bld.SAMBA_SUBSYSTEM('pyldb', '')
|
||||
bld.SAMBA_SUBSYSTEM('dcerpc_mgmt', '')
|
||||
bld.SAMBA_SUBSYSTEM('TORTURE_LDB_MODULE', '')
|
||||
bld.SAMBA_SUBSYSTEM('INTL', '')
|
||||
bld.SAMBA_SUBSYSTEM('NDR_SAMR', '')
|
||||
bld.SAMBA_SUBSYSTEM('LIBLDB_CMDLINE', '')
|
||||
bld.SAMBA_SUBSYSTEM('NETAPI', '')
|
||||
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
|
||||
bld.SAMBA_SUBSYSTEM('SMBREADLINE', '')
|
||||
bld.SAMBA_SUBSYSTEM('OPENPTY', '')
|
||||
bld.SAMBA_SUBSYSTEM('SMBCLIENT', '')
|
||||
bld.SAMBA_SUBSYSTEM('BLKID', '')
|
||||
bld.SAMBA_SUBSYSTEM('LIBTEVENT_EXT', '')
|
||||
bld.SAMBA_SUBSYSTEM('PTHREAD', '')
|
||||
bld.SAMBA_SUBSYSTEM('CRYPT', '')
|
||||
bld.SAMBA_SUBSYSTEM('PAM', '')
|
||||
bld.SAMBA_SUBSYSTEM('SASL', '')
|
||||
bld.SAMBA_SUBSYSTEM('smbcalls', '')
|
||||
bld.SAMBA_SUBSYSTEM('SETPROCTITLE', '')
|
||||
bld.SAMBA_SUBSYSTEM('ZLIB', '')
|
||||
bld.SAMBA_SUBSYSTEM('NDR_SRVSVC', '')
|
||||
bld.SAMBA_SUBSYSTEM('ICONV', '')
|
||||
bld.SAMBA_SUBSYSTEM('NDR_MISC', '')
|
||||
@ -54,6 +48,7 @@ bld.BUILD_SUBDIR('lib/ldb')
|
||||
bld.BUILD_SUBDIR('dynconfig')
|
||||
bld.BUILD_SUBDIR('../lib/util/charset')
|
||||
bld.BUILD_SUBDIR('scripting/python')
|
||||
bld.BUILD_SUBDIR('../lib/subunit/python')
|
||||
bld.BUILD_SUBDIR('param')
|
||||
bld.BUILD_SUBDIR('librpc')
|
||||
bld.BUILD_SUBDIR('dsdb')
|
||||
@ -114,6 +109,7 @@ bld.BUILD_SUBDIR('../libcli/samsync')
|
||||
bld.BUILD_SUBDIR('../libgpo')
|
||||
bld.BUILD_SUBDIR('../libcli/named_pipe_auth')
|
||||
bld.BUILD_SUBDIR('heimdal_build')
|
||||
bld.BUILD_SUBDIR('lib/smbreadline')
|
||||
|
||||
bld.ENFORCE_GROUP_ORDERING()
|
||||
bld.CHECK_ORPANED_TARGETS()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user