if not self.private_library:
# only generate the dev link for non-bundled libs
dev_link = bld.make_libname(self.target)
+ elif getattr(self, 'soname', ''):
+ install_name = bld.make_libname(self.target)
+ install_link = self.soname
+ inst_name = bld.make_libname(t.target)
else:
install_name = bld.make_libname(self.target)
install_link = None
install_name)
+@feature('cshlib')
+@after('apply_implib')
+@before('apply_vnum')
+def apply_soname(self):
+ '''install a library, taking account of the different rpath varients'''
+
+ if self.env.SONAME_ST and getattr(self, 'soname', ''):
+ self.env.append_value('LINKFLAGS', self.env.SONAME_ST % self.soname)
+ self.env.SONAME_ST = ''
##############################
# handle the creation of links for libraries and binaries in the build tree
header_path=None,
pc_files=None,
vnum=None,
+ soname=None,
cflags='',
external_library=False,
realname=None,
link_name = bld.map_shlib_extension(link_name, python=(target_type=='PYTHON'))
# we don't want any public libraries without version numbers
- if not private_library and vnum is None and target_type != 'PYTHON' and not realname:
+ if not private_library and vnum is None and soname is None and target_type != 'PYTHON' and not realname:
raise Utils.WafError("public library '%s' must have a vnum" % libname)
if target_type == 'PYTHON' or realname or not private_library:
samba_includes = includes,
local_include = local_include,
vnum = vnum,
+ soname = soname,
install_path = None,
samba_inst_path = install_path,
name = libname,