summaryrefslogtreecommitdiff
blob: c509e2d29968fc5ee47ffeb2130783034bb4356d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
From 63a44d0cb5494ed1078de411b55cb1c9a8307cec Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Fri, 18 Nov 2011 19:09:27 -0500
Subject: [PATCH] make chrpath optional

There's no reason to require chrpath for distributions who only want to
compile locally and then install elsewhere for packaging.  So allow them
to specify CHRPATH='' via the env to disable this requirement.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 SConstruct |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/SConstruct b/SConstruct
index ccaca7d..68bf367 100644
--- a/SConstruct
+++ b/SConstruct
@@ -270,7 +270,7 @@ def installdir(dir, add_destdir=True):
 
 # Honor the specified installation prefix in link paths.
 env.Prepend(LIBPATH=[installdir('libdir')])
-if env["shared"]:
+if env["shared"] and env['CHRPATH']:
     env.Prepend(RPATH=[installdir('libdir')])
 
 # Give deheader a way to set compiler flags
@@ -390,17 +390,18 @@ config = Configure(env, custom_tests = { 'CheckPKG' : CheckPKG,
                                          'CheckXsltproc' : CheckXsltproc})
 
 env.Prepend(LIBPATH=[os.path.realpath(os.curdir)])
-if config.CheckExecutable('$CHRPATH -v', 'chrpath'):
-    # Tell generated binaries to look in the current directory for
-    # shared libraries so we can run tests without hassle. Should be
-    # handled sanely by scons on all systems.  Not good to use '.' or
-    # a relative path here; it's a security risk.  At install time we
-    # use chrpath to edit this out of RPATH.
-    if env["shared"]:
-        env.Prepend(RPATH=[os.path.realpath(os.curdir)])
-else:
-    print "chrpath is not available, forcing static linking."
-    env["shared"] = False
+if env['CHRPATH']:
+    if config.CheckExecutable('$CHRPATH -v', 'chrpath'):
+        # Tell generated binaries to look in the current directory for
+        # shared libraries so we can run tests without hassle. Should be
+        # handled sanely by scons on all systems.  Not good to use '.' or
+        # a relative path here; it's a security risk.  At install time we
+        # use chrpath to edit this out of RPATH.
+        if env["shared"]:
+            env.Prepend(RPATH=[os.path.realpath(os.curdir)])
+    else:
+        print "chrpath is not available, forcing static linking."
+        env["shared"] = False
 
 confdefs = ["/* gpsd_config.h.  Generated by scons, do not hand-hack.  */\n"]
 
@@ -1140,7 +1141,7 @@ if qt_env:
     binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib))
 
 # We don't use installdir here in order to avoid having DESTDIR affect the rpath
-if env["shared"]:
+if env['CHRPATH']:
     env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
                       % (installdir('libdir', False), ))
 
-- 
1.7.8.3