diff options
author | Steve Reinhardt <steve.reinhardt@amd.com> | 2010-01-29 20:29:17 -0800 |
---|---|---|
committer | Steve Reinhardt <steve.reinhardt@amd.com> | 2010-01-29 20:29:17 -0800 |
commit | c6f1d959be74de55b0c90f3c961314791342d03e (patch) | |
tree | d0ef0777894828291a6ced188c8bcae323cea442 /src/mem/protocol/SConscript | |
parent | 98c94cfe3ce83634f3bad79ca18263f42e36ca6a (diff) | |
download | gem5-c6f1d959be74de55b0c90f3c961314791342d03e.tar.xz |
ruby: Make SLICC-generated objects SimObjects.
Also add SLICC support for state-machine parameter defaults
(passed through to Python as SimObject Param defaults).
Diffstat (limited to 'src/mem/protocol/SConscript')
-rw-r--r-- | src/mem/protocol/SConscript | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/mem/protocol/SConscript b/src/mem/protocol/SConscript index cd9920d22..453b37119 100644 --- a/src/mem/protocol/SConscript +++ b/src/mem/protocol/SConscript @@ -70,6 +70,25 @@ def slicc_emitter(target, source, env): print " %s" % name target.extend(sorted(slicc.files())) + pdir = str(protocol_dir) + hdir = str(html_dir) + + if not isdir(pdir): + os.mkdir(pdir) + if not isdir(hdir): + os.mkdir(hdir) + + print "SLICC Generator pass 1..." + slicc.findMachines() + + print "SLICC Generator pass 2..." + slicc.generate() + + print "SLICC writing C++ files..." + slicc.writeCodeFiles(pdir) + + print "SLICC writing HTML files..." + slicc.writeHTMLFiles(hdir) return target, source def slicc_action(target, source, env): @@ -108,5 +127,10 @@ env.Append(BUILDERS={'SLICC' : slicc_builder}) nodes = env.SLICC([], [ Value(protocol) ] + sources) env.Depends(nodes, slicc_depends) -for f in sorted(s for s in nodes if str(s).endswith('.cc')): - Source(f) +for f in nodes: + s = str(f) + if s.endswith('.cc'): + Source(f) + elif s.endswith('.py'): + SimObject(f) + |