diff --git a/tapeout/src/main/scala/transforms/macros/MacroCompiler.scala b/tapeout/src/main/scala/transforms/macros/MacroCompiler.scala index 87386c12..4edeef5f 100644 --- a/tapeout/src/main/scala/transforms/macros/MacroCompiler.scala +++ b/tapeout/src/main/scala/transforms/macros/MacroCompiler.scala @@ -376,18 +376,19 @@ object MacroCompiler extends App { throw new Exception(usage) } - def run(args: List[String]) = { + def run(args: List[String]) { val (params, synflops) = parseArgs(Map[MacroParam, File](), false, args) try { val macros = readJSON(params get Macros).get map (x => (new Macro(x)).blackbox) - val circuit = Circuit(NoInfo, macros, macros.last.name) - val annotations = AnnotationMap(Seq(MacroCompilerAnnotation( - circuit.main, params(Macros), params get Library, synflops))) - val state = CircuitState(circuit, HighForm, Some(annotations)) val verilog = new FileWriter(params(Verilog)) - val result = new MacroCompiler compile (state, verilog) + if (macros.nonEmpty) { + val circuit = Circuit(NoInfo, macros, macros.last.name) + val annotations = AnnotationMap(Seq(MacroCompilerAnnotation( + circuit.main, params(Macros), params get Library, synflops))) + val state = CircuitState(circuit, HighForm, Some(annotations)) + val result = new MacroCompiler compile (state, verilog) + } verilog.close - result } catch { case e: java.util.NoSuchElementException => throw new Exception(usage) diff --git a/tapeout/src/main/scala/transforms/macros/Utils.scala b/tapeout/src/main/scala/transforms/macros/Utils.scala index 4520a114..e0254253 100644 --- a/tapeout/src/main/scala/transforms/macros/Utils.scala +++ b/tapeout/src/main/scala/transforms/macros/Utils.scala @@ -128,10 +128,10 @@ object Utils { case (res, _) => res } ) - case _ => None + case _ => Some(Nil) } } catch { - case _: Throwable => None + case _: Throwable => Some(Nil) } }