Better handling of scons -u targets.
authorSteve Reinhardt <stever@eecs.umich.edu>
Mon, 4 Dec 2006 17:09:36 +0000 (09:09 -0800)
committerSteve Reinhardt <stever@eecs.umich.edu>
Mon, 4 Dec 2006 17:09:36 +0000 (09:09 -0800)
--HG--
extra : convert_revision : 7bf0688a1c83d8385b77a59a1c75040e9624c0ae

SConstruct

index b9a2defda51a365df3f6bb143f0345e9e1b4ae3c..7e8c6c2f032247770c086e22a7df80a9d895956f 100644 (file)
@@ -106,13 +106,6 @@ sys.path.append(joinpath(ROOT, 'src/python'))
 # Find default configuration & binary.
 Default(os.environ.get('M5_DEFAULT_BINARY', 'build/ALPHA_SE/m5.debug'))
 
-# Ask SCons which directory it was invoked from.
-launch_dir = GetLaunchDir()
-
-# Make targets relative to invocation directory
-abs_targets = map(lambda x: os.path.normpath(joinpath(launch_dir, str(x))),
-                  BUILD_TARGETS)
-
 # helper function: find last occurrence of element in list
 def rfind(l, elt, offs = -1):
     for i in range(len(l)+offs, 0, -1):
@@ -142,6 +135,19 @@ def compare_versions(v1, v2):
 # recognize that ALPHA_SE specifies the configuration because it
 # follow 'build' in the bulid path.
 
+# Generate absolute paths to targets so we can see where the build dir is
+if COMMAND_LINE_TARGETS:
+    # Ask SCons which directory it was invoked from
+    launch_dir = GetLaunchDir()
+    # Make targets relative to invocation directory
+    abs_targets = map(lambda x: os.path.normpath(joinpath(launch_dir, str(x))),
+                      COMMAND_LINE_TARGETS)
+else:
+    # Default targets are relative to root of tree
+    abs_targets = map(lambda x: os.path.normpath(joinpath(ROOT, str(x))),
+                      DEFAULT_TARGETS)
+
+
 # Generate a list of the unique build roots and configs that the
 # collected targets reference.
 build_paths = []