gnu: freehdl: Fix gvhdl and freehdl-gennodes scripts.

* gnu/packages/engineering.scm (freehdl):
[arguments] <phases>: Add patch-gvhdl and patch-freehdl-gennodes phases.
Wrap-program "/bin/gvhdl" in make-wrapper phase.
[inputs]: Add guile-2.2.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Theodoros Foradis 2017-10-27 17:18:17 +03:00 committed by Ludovic Courtès
parent e37bdc0f28
commit d3f9589842
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5

View File

@ -42,6 +42,7 @@
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
@ -1441,25 +1442,62 @@ parallel computing platforms. It also supports serial execution.")
(string-append (assoc-ref inputs "coreutils") (string-append (assoc-ref inputs "coreutils")
"/bin/cat"))) "/bin/cat")))
#t)) #t))
(add-after 'patch-pkg-config 'setenv
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CXX" (string-append (assoc-ref inputs "gcc")
"/bin/g++"))
(setenv "SYSTEM_LIBTOOL" (string-append (assoc-ref inputs "libtool")
"/bin/libtool"))
#t))
(add-after 'setenv 'patch-gvhdl
(lambda _
(substitute* "v2cc/gvhdl.in"
(("--mode=link") "--mode=link --tag=CXX")
(("-lm") "-lm FREEHDL/lib/freehdl/libieee.la"))
#t))
(add-after 'patch-gvhdl 'patch-freehdl-gennodes
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "freehdl/freehdl-gennodes.in"
(("guile")
(string-append (assoc-ref inputs "guile") "/bin/guile"))
(("\\(debug") ";(debug")
(("\\(@ ") "(apply-emit")
(("\\(@@ ") "(apply-mini-format"))
#t))
(add-after 'configure 'patch-freehdl-pc (add-after 'configure 'patch-freehdl-pc
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "freehdl.pc" (substitute* "freehdl.pc"
(("=g\\+\\+") (("=g\\+\\+")
(string-append "=" (assoc-ref inputs "gcc") (string-append "=" (assoc-ref inputs "gcc-toolchain")
"/bin/g++")) "/bin/g++"))
(("=libtool") (("=libtool")
(string-append "=" (assoc-ref inputs "libtool") (string-append "=" (assoc-ref inputs "libtool")
"/bin/libtool"))) "/bin/libtool")))
#t)) #t))
(add-after 'install-scripts 'make-wrapper (add-after 'install-scripts 'make-wrapper
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
;; 'gvhdl' invokes the C compiler directly, so hard-code its
;; file name.
(wrap-program (string-append out "/bin/gvhdl")
`("CPLUS_INCLUDE_PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/include")))
`("LIBRARY_PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/lib")))
`("PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/bin")
,(string-append (assoc-ref inputs "coreutils")
"/bin"))))
(wrap-program (string-append out "/bin/freehdl-config") (wrap-program (string-append out "/bin/freehdl-config")
`("PKG_CONFIG_PATH" ":" prefix (,(string-append out "/lib/pkgconfig"))))) `("PKG_CONFIG_PATH" ":" prefix (,(string-append out "/lib/pkgconfig")))))
#t))))) #t)))))
(inputs (inputs
`(("coreutils" ,coreutils) `(("coreutils" ,coreutils)
("gcc" ,gcc) ("gcc-toolchain" ,gcc-toolchain-5)
("guile" ,guile-2.2)
("perl" ,perl) ("perl" ,perl)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("libtool" ,libtool))) ("libtool" ,libtool)))