Package a standalone scons-local package.
[scons.git] / src / script / scons.py
index c339d000153096782da8194535d7667a5a3340c6..c66008f378e252f196cdba07e182f2e64ac31bb5 100644 (file)
 
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
+__version__ = "__VERSION__"
+
+__build__ = "__BUILD__"
+
+__buildsys__ = "__BUILDSYS__"
+
+__date__ = "__DATE__"
+
+__developer__ = "__DEVELOPER__"
+
 import sys
 import os.path
 import os
@@ -37,28 +47,53 @@ import os
 # followed by generic) so we pick up the right version of the build
 # engine modules if they're in either directory.
 
+script_dir = sys.path[0]
+
+if script_dir in sys.path:
+    sys.path.remove(script_dir)
+
 libs = []
 
 if os.environ.has_key("SCONS_LIB_DIR"):
     libs.append(os.environ["SCONS_LIB_DIR"])
 
+local = 'scons-local-' + __version__
+if script_dir:
+    local = os.path.join(script_dir, local)
+libs.append(local)
+
 if sys.platform == 'win32':
-    libs.extend([ os.path.join(sys.prefix, 'SCons-__VERSION__'),
+    libs.extend([ os.path.join(sys.prefix, 'SCons-%s' % __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')
+
+    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]
-    libs.extend(map(lambda x: os.path.join(x, 'lib', 'scons-__VERSION__'), prefs))
+        prefs.append(sys.prefix)
+
+    libs.extend(map(lambda x: os.path.join(x, 'lib', 'scons-%s' % __version__), prefs))
     libs.extend(map(lambda x: os.path.join(x, 'lib', 'scons'), prefs))
 
-sys.path = libs + sys.path[1:]
+sys.path = libs + sys.path
 
 import SCons.Script
 SCons.Script.main()