Support installation in arbitrary --prefix values.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 30 Jan 2002 13:30:33 +0000 (13:30 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 30 Jan 2002 13:30:33 +0000 (13:30 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@232 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/script/scons.py

index f567a7aab507aa8bee154761e2d0c943c1556fcb..b0f9fee8808424ff6599448649d1cbe285a558af 100644 (file)
@@ -67,6 +67,9 @@ RELEASE 0.04 -
 
   - Only compute a build signature once for each node.
 
+  - Changes to our sys.path[] manipulation to support installation into
+    an arbitrary --prefix value.
+
   From Steve Leblanc:
 
   - Add var=value command-line arguments.
index c339d000153096782da8194535d7667a5a3340c6..3490873718e6ce9e04fb98071165caa54917314b 100644 (file)
@@ -46,15 +46,32 @@ if sys.platform == 'win32':
     libs.extend([ os.path.join(sys.prefix, 'SCons-__VERSION__'),
                   os.path.join(sys.prefix, 'SCons') ])
 else:
+    prefs = []
+
+    _bin = os.path.join('', 'bin')
     _usr = os.path.join('', 'usr')
     _usr_local = os.path.join('', 'usr', 'local')
+
+    script_dir = sys.path[0]
+
+    if script_dir == 'bin':
+        prefs.append(os.getcwd())
+    else:
+        if script_dir == '.' or script_dir == '':
+            script_dir = os.getcwd()
+        if script_dir[-len(_bin):] == _bin:
+            prefs.append(script_dir[:-len(_bin)])
+
     if sys.prefix[-len(_usr):] == _usr:
-        prefs = [sys.prefix, os.path.join(sys.prefix, "local")]
-    elif sys.prefix[-len(_usr_local)] == _usr_local:
+        prefs.append(sys.prefix)
+       prefs.append(os.path.join(sys.prefix, "local"))
+    elif sys.prefix[-len(_usr_local):] == _usr_local:
         _local = os.path.join('', 'local')
-        prefs = [sys.prefix[:-len(_local)], sys.prefix]
+        prefs.append(sys.prefix[:-len(_local)])
+        prefs.append(sys.prefix)
     else:
-        prefs = [sys.prefix]
+        prefs.append(sys.prefix)
+
     libs.extend(map(lambda x: os.path.join(x, 'lib', 'scons-__VERSION__'), prefs))
     libs.extend(map(lambda x: os.path.join(x, 'lib', 'scons'), prefs))