summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Fonseca <jrfonseca@tungstengraphics.com>2008-09-08 07:54:15 +0900
committerJosé Fonseca <jrfonseca@tungstengraphics.com>2008-09-08 07:54:15 +0900
commit52c2dd1f73e17c8352fe976e2ee4cdf049f81957 (patch)
treea63408a9e90f459920e479699ccb6a225037bb4f
parent8af4794afcfa04351d4131d826daeb1312634f82 (diff)
scons: Install libGL.so and respective symlinks.
-rw-r--r--scons/gallium.py25
-rw-r--r--src/gallium/winsys/xlib/SConscript4
2 files changed, 28 insertions, 1 deletions
diff --git a/scons/gallium.py b/scons/gallium.py
index 342a0879c3..abe962493d 100644
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -140,6 +140,30 @@ def createCodeGenerateMethod(env):
env.AddMethod(code_generate, 'CodeGenerate')
+def symlink(target, source, env):
+ target = str(target[0])
+ source = str(source[0])
+ if os.path.islink(target) or os.path.exists(target):
+ os.remove(target)
+ os.symlink(os.path.basename(source), target)
+
+def install_shared_library(env, source, version = ()):
+ source = str(source[0])
+ version = tuple(map(str, version))
+ target_dir = os.path.join(env['build'], 'lib')
+ target_name = '.'.join((str(source),) + version)
+ last = env.InstallAs(os.path.join(target_dir, target_name), source)
+ while len(version):
+ version = version[:-1]
+ target_name = '.'.join((str(source),) + version)
+ action = SCons.Action.Action(symlink, "$TARGET -> $SOURCE")
+ print os.path.join(target_dir, target_name), last
+ last = env.Command(os.path.join(target_dir, target_name), last, action)
+
+def createInstallMethods(env):
+ env.AddMethod(install_shared_library, 'InstallSharedLibrary')
+
+
def generate(env):
"""Common environment generation code"""
@@ -426,6 +450,7 @@ def generate(env):
# Custom builders and methods
createConvenienceLibBuilder(env)
createCodeGenerateMethod(env)
+ createInstallMethods(env)
# for debugging
#print env.Dump()
diff --git a/src/gallium/winsys/xlib/SConscript b/src/gallium/winsys/xlib/SConscript
index 8650f595a7..324fbef306 100644
--- a/src/gallium/winsys/xlib/SConscript
+++ b/src/gallium/winsys/xlib/SConscript
@@ -36,8 +36,10 @@ if env['platform'] == 'linux' \
drivers += [trace]
# TODO: write a wrapper function http://www.scons.org/wiki/WrapperFunctions
- env.SharedLibrary(
+ libgl = env.SharedLibrary(
target ='GL',
source = sources,
LIBS = glapi + mesa + drivers + auxiliaries + env['LIBS'],
)
+
+ env.InstallSharedLibrary(libgl, version=(1, 5))