SET_TARGET_TYPE(bld, libname, 'EMPTY')
return
- if not SET_TARGET_TYPE(bld, libname, 'LIBRARY'):
- return
-
- obj_target = libname + '.objlist'
+ if bld.env.DISABLE_SHARED:
+ obj_target = libname
+ else:
+ obj_target = libname + '.objlist'
# first create a target for building the object files for this library
# by separating in this way, we avoid recompiling the C files
depends_on = depends_on,
local_include = local_include)
+ if bld.env.DISABLE_SHARED:
+ return
+
+ if not SET_TARGET_TYPE(bld, libname, 'LIBRARY'):
+ return
+
# the library itself will depend on that object target
deps += ' ' + public_deps
deps = TO_LIST(deps)
# all disabled
bld.ADD_INIT_FUNCTION(subsystem, modname, init_function)
- if internal_module:
+ if internal_module or bld.env.DISABLE_SHARED:
# treat internal modules as subsystems for now
SAMBA_SUBSYSTEM(bld, modname, source,
deps=deps,
opt.add_option('--sbindir',
help=("system admin executables [PREFIX/sbin]"),
action="store", dest='SBINDIR', default='${PREFIX}/sbin')
+ opt.add_option('--disable-shared',
+ help=("Disable all use of shared libraries"),
+ action="store_true", dest='disable_shared', default=False)
opt.add_option('--disable-rpath',
help=("Disable use of rpath for build binaries"),
action="store_true", dest='disable_rpath_build', default=False)
conf.env.BINDIR = Options.options.BINDIR
conf.env.SBINDIR = Options.options.SBINDIR
+ conf.env.DISABLE_SHARED = Options.options.disable_shared
+
# check for rpath
- if conf.CHECK_RPATH_SUPPORT():
+ if not conf.env.DISABLE_SHARED and conf.CHECK_RPATH_SUPPORT():
conf.env.RPATH_ON_BUILD = not Options.options.disable_rpath_build
conf.env.RPATH_ON_INSTALL = (conf.env.RPATH_ON_BUILD and
not Options.options.disable_rpath_install)