summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt5
-rw-r--r--src/engine/SCons/Platform/posix.py3
-rw-r--r--src/engine/SCons/Tool/gnulink.py7
3 files changed, 15 insertions, 0 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 0501093..49584a1 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -19,6 +19,11 @@ RELEASE 0.96 - XXX
- Add a $QT_AUTOBUILD_MOC_SOURCES construction variable that controls
whether moc-generated .cpp files get compiled.
+ From Chad Austin and Christoph Wiedemann:
+
+ - Add support for a $RPATH variable to supply a list of directories
+ to search for shared libraries when linking a program.
+
From Charles Crain:
- Restore the ability to do construction variable substitutions in all
diff --git a/src/engine/SCons/Platform/posix.py b/src/engine/SCons/Platform/posix.py
index bc121e6..f64d272 100644
--- a/src/engine/SCons/Platform/posix.py
+++ b/src/engine/SCons/Platform/posix.py
@@ -229,3 +229,6 @@ def generate(env):
env['SPAWN'] = spawn
env['SHELL'] = 'sh'
env['ESCAPE'] = escape
+
+ # This platform supports RPATH specifications.
+ env['__RPATH'] = '$_RPATH'
diff --git a/src/engine/SCons/Tool/gnulink.py b/src/engine/SCons/Tool/gnulink.py
index 0e75304..b900202 100644
--- a/src/engine/SCons/Tool/gnulink.py
+++ b/src/engine/SCons/Tool/gnulink.py
@@ -45,6 +45,13 @@ def generate(env):
if env['PLATFORM'] == 'hpux':
env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -shared -fPIC')
+
+ # __RPATH is set to $_RPATH in the platform specification if that
+ # platform supports it.
+ env.Append(LINKFLAGS=['$__RPATH'])
+ env['RPATHPREFIX'] = '-Wl,--rpath='
+ env['RPATHSUFFIX'] = ''
+ env['_RPATH'] = '${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, __env__)}'
def exists(env):
return env.Detect(linkers)