| Message ID | 8b52ca0f1d61c5ff14501fb72658b0bee716af13.1728459902.git.csantosb@inventati.org |
|---|---|
| State | New |
| Headers | |
| Series | [bug#73717] gnu: Add yosys-clang. | |
Commit Message
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index 68f36d501f..5204e041f9 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -224,6 +224,60 @@ (define-public yosys (description "Yosys synthesizes Verilog-2005.") (license license:isc))) +(define-public yosys-clang + (package + (inherit yosys) + (name "yosys-clang") + (arguments + (list + #:test-target "test" + #:make-flags #~(list "CC=clang" + "CXX=clang++" + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "./backends/smt2/smtio.py" + (("\\['z3") + (string-append "['" (search-input-file inputs "/bin/z3")))) + (substitute* "./kernel/fstdata.cc" + (("vcd2fst") + (search-input-file inputs "/bin/vcd2fst"))) + (substitute* '("./passes/cmds/show.cc" + "./passes/cmds/viz.cc") + (("exec xdot") + (string-append "exec " (search-input-file inputs + "/bin/xdot"))) + (("dot -") + (string-append (search-input-file inputs "/bin/dot") " -")) + (("fuser") + (search-input-file inputs "/bin/fuser"))))) + (replace 'configure + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "config-clang" make-flags))) + (add-after 'configure 'use-external-abc + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("./Makefile") + (("ABCEXTERNAL \\?=") + (string-append "ABCEXTERNAL = " + (search-input-file inputs "/bin/abc")))))) + (add-after 'install 'add-symbolic-link + (lambda* (#:key inputs #:allow-other-keys) + ;; Previously this package provided a copy of the "abc" + ;; executable in its output, named "yosys-abc". Create a + ;; symbolic link so any external uses of that name continue to + ;; work. + (symlink (search-input-file inputs "/bin/abc") + (string-append #$output "/bin/yosys-abc")))) + (add-after 'install 'wrap + (lambda* (#:key inputs #:allow-other-keys) + (wrap-program (string-append #$output "/bin/yosys-witness") + `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))))))) + (inputs + (modify-inputs (package-inputs yosys) + (append clang))))) + (define-public icestorm (let ((commit "2bc541743ada3542c6da36a50e66303b9cbd2059") (revision "4"))