summaryrefslogtreecommitdiff
path: root/gnu/packages/lisp.scm
diff options
context:
space:
mode:
authorKei Kebreau <kei@openmailbox.org>2017-07-08 17:36:29 -0400
committerKei Kebreau <kei@openmailbox.org>2017-07-25 07:58:06 -0400
commit5ea8dbf0c906d51779ba0cf775ec9967f5f42382 (patch)
tree0fc668ad34ad82cb7d49048d84517ea3a5d7ff9b /gnu/packages/lisp.scm
parentebc9f7050c6912b015395e020fe6a07b0369e3a8 (diff)
gnu: gcl: Ensure gcc and binutils are available at runtime.
* gnu/packages/lisp.scm (gcl)[arguments]: Add -fgnu89-inline to CFLAGS. Add GCC path to make-flags. Modify 'pre-conf' phase. Add 'wrap' phase.
Diffstat (limited to 'gnu/packages/lisp.scm')
-rw-r--r--gnu/packages/lisp.scm25
1 files changed, 25 insertions, 0 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index e92ae2ebfe..224cea56f6 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -88,6 +88,10 @@
`(#:parallel-build? #f ; The build system seems not to be thread safe.
#:tests? #f ; There does not seem to be make check or anything similar.
#:configure-flags '("--enable-ansi") ; required for use by the maxima package
+ #:make-flags (list
+ "CFLAGS=-fgnu89-inline" ; removes inline function warnings
+ (string-append "GCC=" (assoc-ref %build-inputs "gcc")
+ "/bin/gcc"))
#:phases (modify-phases %standard-phases
(add-before 'configure 'pre-conf
(lambda _
@@ -104,6 +108,27 @@
(string-append "SHELL=" (which "bash")))
(("SHELL=/bin/sh")
(string-append "SHELL=" (which "sh"))))
+ (substitute* "h/linux.defs"
+ (("#CC") "CC")
+ (("-fwritable-strings") "")
+ (("-Werror") ""))
+ #t))
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((gcl (assoc-ref outputs "out"))
+ (input-path (lambda (lib path)
+ (string-append
+ (assoc-ref inputs lib) path)))
+ (binaries '("binutils")))
+ ;; GCC and the GNU binutils are necessary for GCL to be
+ ;; able to compile Lisp functions and programs (this is
+ ;; a standard feature in Common Lisp). While the
+ ;; the location of GCC is specified in the make-flags,
+ ;; the GNU binutils must be available in GCL's $PATH.
+ (wrap-program (string-append gcl "/bin/gcl")
+ `("PATH" prefix ,(map (lambda (binary)
+ (input-path binary "/bin"))
+ binaries))))
#t))
;; drop strip phase to make maxima build, see
;; https://www.ma.utexas.edu/pipermail/maxima/2008/009769.html