if getattr(self, 'samba_realname', None):
install_name = self.samba_realname
install_link = None
+ if getattr(self, 'soname', ''):
+ install_link = self.soname
if getattr(self, 'samba_type', None) == 'PYTHON':
inst_name = bld.make_libname(t.target, nolibprefix=True, python=True)
else:
install_link = None
inst_name = bld.make_libname(t.target)
- if t.env.SONAME_ST and install_link:
- t.env.append_value('LINKFLAGS', t.env.SONAME_ST % install_link)
+ if t.env.SONAME_ST:
+ # ensure we get the right names in the library
+ if install_link:
+ t.env.append_value('LINKFLAGS', t.env.SONAME_ST % install_link)
+ else:
+ t.env.append_value('LINKFLAGS', t.env.SONAME_ST % install_name)
t.env.SONAME_ST = ''
# tell waf to install the library
bld.install_as(os.path.join(install_path, install_name),
- os.path.join(self.path.abspath(bld.env), inst_name))
+ os.path.join(self.path.abspath(bld.env), inst_name),
+ chmod=MODE_755)
if install_link and install_link != install_name:
# and the symlink if needed
- bld.symlink_as(os.path.join(install_path, install_link), install_name)
+ bld.symlink_as(os.path.join(install_path, install_link), os.path.basename(install_name))
if dev_link:
- bld.symlink_as(os.path.join(install_path, dev_link), install_name)
+ bld.symlink_as(os.path.join(install_path, dev_link), os.path.basename(install_name))
@feature('cshlib')
if self.env.HAVE_LD_VERSION_SCRIPT and getattr(self, 'version_script', ''):
self.env.append_value('LINKFLAGS', "-Wl,--version-script=%s" %
- os.path.join(self.path.abspath(self.env), self.version_script))
+ self.version_script)
self.version_script = None
link_target = getattr(self, 'link_name', '')
if link_target == '':
- basename = self.bld.make_libname(self.target, version=soext)
+ basename = os.path.basename(self.bld.make_libname(self.target, version=soext))
if getattr(self, "private_library", False):
link_target = '%s/private/%s' % (LIB_PATH, basename)
else:
return
blddir = os.path.dirname(self.bld.srcnode.abspath(self.bld.env))
+ if not self.link_task.outputs or not self.link_task.outputs[0]:
+ raise Utils.WafError('no outputs found for %s in symlink_bin' % self.name)
binpath = self.link_task.outputs[0].abspath(self.env)
bldpath = os.path.join(self.bld.env.BUILD_DIRECTORY, self.link_task.outputs[0].name)