diff options
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) + |