From 40bbc02d03a8b376c2a0be5c297207c34920e0c9 Mon Sep 17 00:00:00 2001 From: whitequark Date: Wed, 21 Aug 2019 21:02:05 +0000 Subject: [PATCH] build.plat: remove TemplatedPlatform.unix_interpreter. Vendor toolchains generally require far more workarounds than this, and we already have a perfectly fine way of overriding templates. --- nmigen/build/plat.py | 10 ---------- nmigen/vendor/xilinx_spartan_3_6.py | 8 +++++++- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/nmigen/build/plat.py b/nmigen/build/plat.py index af0edca..20c0e3d 100644 --- a/nmigen/build/plat.py +++ b/nmigen/build/plat.py @@ -225,13 +225,11 @@ class TemplatedPlatform(Platform): toolchain = abstractproperty() file_templates = abstractproperty() command_templates = abstractproperty() - unix_interpreter = "sh" build_script_templates = { "build_{{name}}.sh": """ # {{autogenerated}} set -e{{verbose("x")}} - {{emit_unix_interpreter()}} [ -n "$NMIGEN_{{platform.toolchain}}_env" ] && . "$NMIGEN_{{platform.toolchain}}_env" {{emit_commands("sh")}} """, @@ -248,13 +246,6 @@ class TemplatedPlatform(Platform): # and to incorporate the nMigen version into generated code. autogenerated = "Automatically generated by nMigen {}. Do not edit.".format(__version__) - def emit_unix_interpreter(): - if self.unix_interpreter == "sh": - return "# runs on any POSIX sh" - if self.unix_interpreter == "bash": - return """if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi""" - assert False - def emit_design(backend): backend_mod = {"rtlil": rtlil, "verilog": verilog}[backend] return backend_mod.convert_fragment(fragment, name=name) @@ -321,7 +312,6 @@ class TemplatedPlatform(Platform): return compiled.render({ "name": name, "platform": self, - "emit_unix_interpreter": emit_unix_interpreter, "emit_design": emit_design, "emit_commands": emit_commands, "get_tool": get_tool, diff --git a/nmigen/vendor/xilinx_spartan_3_6.py b/nmigen/vendor/xilinx_spartan_3_6.py index 2f93e45..ffda165 100644 --- a/nmigen/vendor/xilinx_spartan_3_6.py +++ b/nmigen/vendor/xilinx_spartan_3_6.py @@ -76,6 +76,13 @@ class XilinxSpartan3Or6Platform(TemplatedPlatform): file_templates = { **TemplatedPlatform.build_script_templates, + "build_{{name}}.sh": r""" + # {{autogenerated}} + set -e{{verbose("x")}} + if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi + [ -n "$NMIGEN_{{platform.toolchain}}_env" ] && . "$NMIGEN_{{platform.toolchain}}_env" + {{emit_commands("sh")}} + """, "{{name}}.v": r""" /* {{autogenerated}} */ {{emit_design("verilog")}} @@ -118,7 +125,6 @@ class XilinxSpartan3Or6Platform(TemplatedPlatform): {{get_override("add_constraints")|default("# (add_constraints placeholder)")}} """ } - unix_interpreter = "bash" command_templates = [ r""" {{get_tool("xst")}} -- 2.30.2