diff options
author | Robert Managan <ramanagan@att.net> | 2012-11-17 16:03:24 -0800 |
---|---|---|
committer | Robert Managan <ramanagan@att.net> | 2012-11-17 16:03:24 -0800 |
commit | 81b07f07cb020062a718c38d6d0438b4cb548094 (patch) | |
tree | 4c868fadb15124e977272eea53b5dd7b41592924 | |
parent | 39aad562ade86dd6381b4031394d3b97f6e5acd2 (diff) | |
download | scons-81b07f07cb020062a718c38d6d0438b4cb548094.tar.gz |
Change symlinks to match what ldconfig does
-rw-r--r-- | src/engine/SCons/Tool/__init__.py | 22 | ||||
-rw-r--r-- | test/LINK/VersionedLib.py | 2 |
2 files changed, 17 insertions, 7 deletions
diff --git a/src/engine/SCons/Tool/__init__.py b/src/engine/SCons/Tool/__init__.py index 35a05f00..4f46cd86 100644 --- a/src/engine/SCons/Tool/__init__.py +++ b/src/engine/SCons/Tool/__init__.py @@ -266,7 +266,9 @@ def VersionShLibLinkNames(version, libname, env): versionparts = version.split('.') major_name = linkname + "." + versionparts[0] minor_name = major_name + "." + versionparts[1] - for linkname in [major_name, minor_name]: + #Only add link for major_name + #for linkname in [major_name, minor_name]: + for linkname in [major_name, ]: if Verbose: print "VersionShLibLinkNames: linkname ",linkname, ", target ",libname linknames.append(linkname) @@ -323,12 +325,22 @@ symlinks for the platform we are on""" # here we need the full pathname so the links end up in the right directory libname = target[0].path linknames = VersionShLibLinkNames(version, libname, env) + if Verbose: + print "VerShLib: linknames ",linknames # Here we just need the file name w/o path as the target of the link lib_ver = target[0].name - for linkname in linknames: - os.symlink(lib_ver,linkname) - if Verbose: - print "VerShLib: made sym link of %s -> %s" % (linkname, lib_ver) + # make symlink of adjacent names in linknames + for count in range(len(linknames)): + linkname = linknames[count] + if count > 0: + os.symlink(os.path.basename(linkname),lastname) + if Verbose: + print "VerShLib: made sym link of %s -> %s" % (lastname,linkname) + lastname = linkname + # finish chain of sym links with link to the actual library + os.symlink(lib_ver,lastname) + if Verbose: + print "VerShLib: made sym link of %s -> %s" % (lib_ver,linkname) return result ShLibAction = SCons.Action.Action(VersionedSharedLibrary, None) diff --git a/test/LINK/VersionedLib.py b/test/LINK/VersionedLib.py index 04604444..5b6ba779 100644 --- a/test/LINK/VersionedLib.py +++ b/test/LINK/VersionedLib.py @@ -102,7 +102,6 @@ if platform == 'posix': files = [
'libtest.so',
'libtest.so.2',
- 'libtest.so.2.5',
'libtest.so.2.5.4',
'test.os',
]
@@ -110,7 +109,6 @@ if platform == 'posix': instfiles = [
'libtest.so',
'libtest.so.2',
- 'libtest.so.2.5',
'libtest.so.2.5.4',
]
elif platform == 'darwin':
|