mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
build: added --nonshared-binary=LIST option
This allows you to specify some binaries that should be built without shared libs. A non-shared smbtorture will make testing s3 in the build farm easier
This commit is contained in:
parent
1d5aee6b91
commit
681f3dad7c
@ -127,3 +127,11 @@ def CHECK_BUNDLED_SYSTEM(conf, libname, minversion='0.0.0',
|
||||
sys.exit(1)
|
||||
return False
|
||||
|
||||
def NONSHARED_BINARY(bld, name):
|
||||
'''return True if a binary should be built without non-system shared libs'''
|
||||
if bld.env.DISABLE_SHARED:
|
||||
return True
|
||||
return target_in_list(name, bld.env.NONSHARED_BINARIES, False)
|
||||
Build.BuildContext.NONSHARED_BINARY = NONSHARED_BINARY
|
||||
|
||||
|
||||
|
@ -642,6 +642,19 @@ def calculate_final_deps(bld, tgt_list, loops):
|
||||
if t.sname in t.final_objects:
|
||||
t.final_objects.remove(t.sname)
|
||||
|
||||
# handle any non-shared binaries
|
||||
for t in tgt_list:
|
||||
if t.samba_type == 'BINARY' and bld.NONSHARED_BINARY(t.sname):
|
||||
# replace lib deps with objlist deps
|
||||
for l in t.final_libs:
|
||||
objname = l + '.objlist'
|
||||
t2 = bld.name_to_obj(objname, bld.env)
|
||||
if t2 is None:
|
||||
Logs.error('ERROR: subsystem %s not found' % objname)
|
||||
sys.exit(1)
|
||||
t.final_objects.add(objname)
|
||||
t.final_objects = t.final_objects.union(extended_objects(bld, t2, set()))
|
||||
t.final_libs = set()
|
||||
|
||||
# find any library loops
|
||||
for t in tgt_list:
|
||||
|
@ -46,6 +46,9 @@ def set_options(opt):
|
||||
gr.add_option('--disable-rpath-install',
|
||||
help=("Disable use of rpath for installed binaries"),
|
||||
action="store_true", dest='disable_rpath_install', default=False)
|
||||
gr.add_option('--nonshared-binary',
|
||||
help=("Disable use of shared libs for the listed binaries"),
|
||||
action="store", dest='NONSHARED_BINARIES', default='')
|
||||
|
||||
opt.add_option('--with-modulesdir',
|
||||
help=("modules directory [PREFIX/modules]"),
|
||||
@ -149,6 +152,7 @@ def configure(conf):
|
||||
conf.env.BUNDLED_LIBS = Options.options.BUNDLED_LIBS.split(',')
|
||||
conf.env.BUILTIN_LIBRARIES = Options.options.BUILTIN_LIBRARIES.split(',')
|
||||
conf.env.DISABLE_SHARED = Options.options.disable_shared
|
||||
conf.env.NONSHARED_BINARIES = Options.options.NONSHARED_BINARIES.split(',')
|
||||
|
||||
conf.env.BUNDLED_EXTENSION = Options.options.BUNDLED_EXTENSION
|
||||
conf.env.BUNDLED_EXTENSION_EXCEPTION = Options.options.BUNDLED_EXTENSION_EXCEPTION.split(',')
|
||||
|
Loading…
Reference in New Issue
Block a user