Scons: Drop RUBY as compile time option.
authorNilay Vaish <nilay@cs.wisc.edu>
Tue, 2 Aug 2011 05:10:08 +0000 (00:10 -0500)
committerNilay Vaish <nilay@cs.wisc.edu>
Tue, 2 Aug 2011 05:10:08 +0000 (00:10 -0500)
This patch drops RUBY as a compile time option. Instead the PROTOCOL option
is used to figure out whether or not to build Ruby. If the specified protocol
is 'None', then Ruby is not compiled.

SConstruct
build_opts/ALPHA_SE_MESI_CMP_directory
build_opts/ALPHA_SE_MOESI_CMP_directory
build_opts/ALPHA_SE_MOESI_CMP_token
build_opts/ALPHA_SE_MOESI_hammer
build_opts/ALPHA_SE_Network_test
configs/example/se.py
src/mem/protocol/SConsopts
tests/SConscript

index 8c09e5e4dfb1b0ff63b13228ca222d82c896ead8..6074675c8f3c0016a61fb49b9142bf1ce9a8a208 100755 (executable)
@@ -810,7 +810,6 @@ sticky_vars.AddVariables(
     BoolVariable('USE_FENV', 'Use <fenv.h> IEEE mode control', have_fenv),
     BoolVariable('USE_CHECKER', 'Use checker for detailed CPU models', False),
     BoolVariable('CP_ANNOTATE', 'Enable critical path annotation capability', False),
-    BoolVariable('RUBY', 'Build with Ruby', False),
     )
 
 # These variables get exported to #defines in config/*.hh (see src/SConscript).
@@ -985,6 +984,11 @@ for variant_path in variant_paths:
     if env['USE_SSE2']:
         env.Append(CCFLAGS=['-msse2'])
 
+    if env['PROTOCOL'] != 'None':
+        env['RUBY'] = True
+    else:
+        env['RUBY'] = False
+
     # The src/SConscript file sets up the build rules in 'env' according
     # to the configured variables.  It returns a list of environments,
     # one for each variant build (debug, opt, etc.)
index 3db3daa029978f3a8423f5bd7405a45536a59ba6..c55731b30c859a21b7c5efa75d32690bac0a02b6 100644 (file)
@@ -2,4 +2,3 @@ FULL_SYSTEM = 0
 SS_COMPATIBLE_FP = 1
 CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,InOrderCPU'
 PROTOCOL = 'MESI_CMP_directory'
-RUBY = True
index 5685952af1c39742bb6a351448c2fdadce7e8d65..5edc7688bd74fdb6c64568485d7c50ae763605cf 100644 (file)
@@ -2,4 +2,3 @@ FULL_SYSTEM = 0
 SS_COMPATIBLE_FP = 1
 CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,InOrderCPU'
 PROTOCOL = 'MOESI_CMP_directory'
-RUBY = True
index 372be578d71697496212a59bdefc993010876d0b..f69c2c48cf1fee77466ebad6481b9f150b2fefa6 100644 (file)
@@ -2,4 +2,3 @@ FULL_SYSTEM = 0
 SS_COMPATIBLE_FP = 1
 CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,InOrderCPU'
 PROTOCOL = 'MOESI_CMP_token'
-RUBY = True
index 23bbc07a8177e476ec9584bc9fc57b8004f8437a..f21ca5e5d13f27dcbcd4541bae905466254a7da7 100644 (file)
@@ -2,4 +2,3 @@ FULL_SYSTEM = 0
 SS_COMPATIBLE_FP = 1
 CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,InOrderCPU'
 PROTOCOL = 'MOESI_hammer'
-RUBY = True
index a092a94fd14038d08336ab4fa4c82a2a589c2663..77426d349d8193eec7c76a6a37922f2e74e2f7a4 100644 (file)
@@ -2,4 +2,3 @@ FULL_SYSTEM = 0
 SS_COMPATIBLE_FP = 1
 CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,InOrderCPU'
 PROTOCOL = 'Network_test'
-RUBY = True
index 6ed3de4f60119acce74e57a555bd3c0dd03b67ea..a34a03b29fe919ab5ed7cc249d764ba0a6473c75 100644 (file)
@@ -71,13 +71,12 @@ parser.add_option("-i", "--input", default="", help="Read stdin from a file.")
 parser.add_option("--output", default="", help="Redirect stdout to a file.")
 parser.add_option("--errout", default="", help="Redirect stderr to a file.")
 
-if 'PROTOCOL' in buildEnv:
-    parser.add_option("--ruby", action="store_true")
-
 execfile(os.path.join(config_root, "common", "Options.py"))
 
-if '--ruby' in sys.argv:
-    Ruby.define_options(parser)
+if buildEnv['PROTOCOL'] != 'None':
+    parser.add_option("--ruby", action="store_true")
+    if '--ruby' in sys.argv:
+        Ruby.define_options(parser)
 
 (options, args) = parser.parse_args()
 
index dac52d742c74fe6131a2a5b82fc9807b695f87d0..6a6bd798e0cbd16f2524b8cf60aa595128add981 100644 (file)
@@ -34,24 +34,15 @@ Import('*')
 
 all_protocols = [
     'MESI_CMP_directory',
-    'MESI_SCMP_bankdirectory',
-    'MESI_SCMP_bankdirectory_m',
     'MI_example',
     'MOESI_CMP_directory',
-    'MOESI_CMP_directory_m',
     'MOESI_CMP_token',
-    'MOESI_SMP_directory',
-    'MOESI_SMP_token',
-    'MOSI_SMP_bcast',
-    'MOSI_SMP_bcast_1level',
-    'MOSI_SMP_bcast_m',
-    'MOSI_SMP_directory_1level',
-    'MSI_MOSI_CMP_directory',
     'MOESI_hammer',
     'Network_test',
+    'None'
     ]
 
-opt = EnumVariable('PROTOCOL', 'Coherence protocol for Ruby', 'MI_example',
+opt = EnumVariable('PROTOCOL', 'Coherence protocol for Ruby', 'None',
                    all_protocols)
 
 sticky_vars.AddVariables(opt)
index 2316d90927a4e11a0cc08280b0a56eaa3a6af743..58a9596699099f943923f54168372f812385f871 100644 (file)
@@ -289,16 +289,6 @@ else:
                 'inorder-timing', 'rubytest']
 
 if env['RUBY']:
-    # With Ruby, A protocol must be specified in the environment
-    assert(env['PROTOCOL'])
-
-    #
-    # Is there a way to determine what is Protocol EnumVariable
-    # default and eliminate the need to hard code the default protocol below?
-    #
-    # If the binary includes the default ruby protocol, run both ruby and
-    # non-ruby versions of the tests.  Otherwise just run the ruby versions.
-    #
     if env['PROTOCOL'] == 'MI_example':
         configs += [c + "-ruby" for c in configs]
     else: