aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-05-26 22:48:22 +0200
committerLudovic Courtès <ludo@gnu.org>2013-05-26 23:46:11 +0200
commit9a97b8144ded0385d1e73ebb0bc1b66d1f5c461b (patch)
tree3d320f81c2c132fd84527f9a457bfd7b90180942
parentaa289a3e82bbbf2aceccc3abacf5343e0d4319ba (diff)
downloadguix-9a97b8144ded0385d1e73ebb0bc1b66d1f5c461b.tar.gz
guix-9a97b8144ded0385d1e73ebb0bc1b66d1f5c461b.zip
gnu: bash: Fix cross-compilation.
* gnu/packages/bash.scm (bash): Pass "bash_cv_job_control_missing=no" when (%current-target-system) is true.
-rw-r--r--gnu/packages/bash.scm57
1 files changed, 33 insertions, 24 deletions
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 7caa26f36c..637c098604 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,19 +26,29 @@
#:use-module (guix build-system gnu))
(define-public bash
- (let ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'"
- "-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'"
- "-DDEFAULT_PATH_VALUE='\"/no-such-path\"'"
- "-DSTANDARD_UTILS_PATH='\"/no-such-path\"'"
- "-DNON_INTERACTIVE_LOGIN_SHELLS"
- "-DSSH_SOURCE_BASHRC")
- " "))
- (post-install-phase
- '(lambda* (#:key outputs #:allow-other-keys)
- ;; Add a `bash' -> `sh' link.
- (let ((out (assoc-ref outputs "out")))
- (with-directory-excursion (string-append out "/bin")
- (symlink "bash" "sh"))))))
+ (let* ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'"
+ "-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'"
+ "-DDEFAULT_PATH_VALUE='\"/no-such-path\"'"
+ "-DSTANDARD_UTILS_PATH='\"/no-such-path\"'"
+ "-DNON_INTERACTIVE_LOGIN_SHELLS"
+ "-DSSH_SOURCE_BASHRC")
+ " "))
+ (configure-flags
+ ``("--with-installed-readline"
+ ,,(string-append "CPPFLAGS=" cppflags)
+ ,(string-append
+ "LDFLAGS=-Wl,-rpath -Wl,"
+ (assoc-ref %build-inputs "readline")
+ "/lib"
+ " -Wl,-rpath -Wl,"
+ (assoc-ref %build-inputs "ncurses")
+ "/lib")))
+ (post-install-phase
+ '(lambda* (#:key outputs #:allow-other-keys)
+ ;; Add a `bash' -> `sh' link.
+ (let ((out (assoc-ref outputs "out")))
+ (with-directory-excursion (string-append out "/bin")
+ (symlink "bash" "sh"))))))
(package
(name "bash")
(version "4.2")
@@ -53,15 +63,12 @@
(inputs `(("readline" ,readline)
("ncurses" ,ncurses))) ; TODO: add texinfo
(arguments
- `(#:configure-flags `("--with-installed-readline"
- ,,(string-append "CPPFLAGS=" cppflags)
- ,(string-append
- "LDFLAGS=-Wl,-rpath -Wl,"
- (assoc-ref %build-inputs "readline")
- "/lib"
- " -Wl,-rpath -Wl,"
- (assoc-ref %build-inputs "ncurses")
- "/lib"))
+ `(;; When cross-compiling, `configure' incorrectly guesses that job
+ ;; control is missing.
+ #:configure-flags ,(if (%current-target-system)
+ `(cons* "bash_cv_job_control_missing=no"
+ ,configure-flags)
+ configure-flags)
;; Bash is reportedly not parallel-safe. See, for instance,
;; <http://patches.openembedded.org/patch/32745/> and
@@ -75,7 +82,9 @@
#:phases (alist-cons-after 'install 'post-install
,post-install-phase
- %standard-phases)))
+ ,(if (%current-target-system)
+ '%standard-cross-phases
+ '%standard-phases))))
(synopsis "The GNU Bourne-Again SHell")
(description
"Bash is the shell, or command language interpreter, that will appear in