Add --outdir option. Didn't call it "-d" since
authorSteve Reinhardt <stever@eecs.umich.edu>
Sat, 17 Jun 2006 13:58:10 +0000 (09:58 -0400)
committerSteve Reinhardt <stever@eecs.umich.edu>
Sat, 17 Jun 2006 13:58:10 +0000 (09:58 -0400)
that's already being used for "detailed cpu".
Needed to add extra function for user script
to pass parsed options back to m5 module.

configs/test/fs.py:
configs/test/test.py:
    Call setStandardOptions().
src/python/m5/__init__.py:
    Add --outdir option.
    Add setStandardOptions() so user script can
    pass parsed options back to m5 module.
src/sim/main.cc:
    Add SWIG-wrappable function to set output dir.

--HG--
extra : convert_revision : 1323bee69ca920c699a1cd1218e15b7b0875c1e5

configs/test/fs.py
configs/test/test.py
src/python/m5/__init__.py
src/sim/main.cc

index c742e916ca5e85d7150d87485db1cc034d7c7472..aa530dd55c1343ec3a2e1495a4ec0f757124b411 100644 (file)
@@ -8,6 +8,7 @@ parser = optparse.OptionParser(option_list=m5.standardOptions)
 parser.add_option("-t", "--timing", action="store_true")
 
 (options, args) = parser.parse_args()
+m5.setStandardOptions(options)
 
 if args:
     print "Error: script doesn't take any positional arguments"
index 2b5a6769f5e84476da99d8c108cc32db6742365e..a570c1a08606b710ae83d3de7a2df6c1d519fe07 100644 (file)
@@ -17,6 +17,7 @@ parser.add_option("-d", "--detailed", action="store_true")
 parser.add_option("-m", "--maxtick", type="int")
 
 (options, args) = parser.parse_args()
+m5.setStandardOptions(options)
 
 if args:
     print "Error: script doesn't take any positional arguments"
index c0728120c5ff1b4359d030443d32681418785283..19af24e6f69beeacdf1b7d364f16f24324a4c6a0 100644 (file)
@@ -58,6 +58,20 @@ def AddToPath(path):
     sys.path.insert(1, path)
 
 
+# The m5 module's pointer to the parsed options object
+options = None
+
+
+# User should call this function after calling parse_args() to pass
+# parsed standard option values back into the m5 module for
+# processing.
+def setStandardOptions(_options):
+    # Set module global var
+    global options
+    options = _options
+    # tell C++ about output directory
+    main.setOutputDir(options.outdir)
+
 # Callback to set trace flags.  Not necessarily the best way to do
 # things in the long run (particularly if we change how these global
 # options are handled).
@@ -110,6 +124,7 @@ TorF = "True | False"
 # Standard optparse options.  Need to be explicitly included by the
 # user script when it calls optparse.OptionParser().
 standardOptions = [
+    optparse.make_option("--outdir", type="string", default="."),
     optparse.make_option("--traceflags", type="string", action="callback",
                          callback=setTraceFlags),
     optparse.make_option("--tracestart", type="int", action="callback",
@@ -187,7 +202,7 @@ def resolveSimObject(name):
 def instantiate(root):
     config.ticks_per_sec = float(root.clock.frequency)
     # ugly temporary hack to get output to config.ini
-    sys.stdout = file('config.ini', 'w')
+    sys.stdout = file(os.path.join(options.outdir, 'config.ini'), 'w')
     root.print_ini()
     sys.stdout.close() # close config.ini
     sys.stdout = sys.__stdout__ # restore to original
index f63aec9cc4dab348d8652f6aa1bc0fb9293a0712..fc057ea6f57913c4d8f469779d0afe5948f2b59f 100644 (file)
@@ -297,6 +297,14 @@ main(int argc, char **argv)
     Py_Finalize();
 }
 
+
+void
+setOutputDir(const string &dir)
+{
+    simout.setDirectory(dir);
+}
+
+
 IniFile inifile;
 
 SimObject *