summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-06-30 17:42:35 +0200
committerLudovic Courtès <ludo@gnu.org>2015-07-01 23:29:49 +0200
commitce367ef3a9031e3211d616630ff01c8a6128db96 (patch)
treebdb7af923ad304395a701faf5b38adc49f8dd755
parent6b6298ae39bfe185ce1ab18bb3d641ddfad17c8f (diff)
downloadguix-ce367ef3a9031e3211d616630ff01c8a6128db96.tar.gz
environment: Add --system.
* guix/scripts/environment.scm (show-help, %options): Add -s/--system.
  (%default-options): Add 'system' pair.
  (guix-environment): Pass 'system' value from OPTS to 'lower-inputs'.
* doc/guix.texi (Invoking guix environment): Document it.
-rw-r--r--doc/guix.texi4
-rw-r--r--guix/scripts/environment.scm9
2 files changed, 12 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index ccccf7b347..71167dfdc7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4219,6 +4219,10 @@ only contain package inputs.
 @item --search-paths
 Display the environment variable definitions that make up the
 environment.
+
+@item --system=@var{system}
+@itemx -s @var{system}
+Attempt to build for @var{system}---e.g., @code{i686-linux}.
 @end table
 
 It also supports all of the common build options that @command{guix
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index e2ac086f6d..7a7664a1ea 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -115,6 +115,8 @@ shell command in that environment.\n"))
       --pure             unset existing environment variables"))
   (display (_ "
       --search-paths     display needed environment variable definitions"))
+  (display (_ "
+  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""))
   (newline)
   (show-build-options-help)
   (newline)
@@ -128,6 +130,7 @@ shell command in that environment.\n"))
 (define %default-options
   ;; Default to opening a new shell.
   `((exec . ,(or (getenv "SHELL") "/bin/sh"))
+    (system . ,(%current-system))
     (substitutes? . #t)
     (max-silent-time . 3600)
     (verbosity . 0)))
@@ -162,6 +165,10 @@ shell command in that environment.\n"))
          (option '(#\n "dry-run") #f #f
                  (lambda (opt name arg result)
                    (alist-cons 'dry-run? #t result)))
+         (option '(#\s "system") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'system arg
+                               (alist-delete 'system result eq?))))
          %standard-build-options))
 
 (define (pick-all alist key)
@@ -243,7 +250,7 @@ OUTPUT) tuples, using the build options in OPTS."
                                               ((label item output)
                                                (list item output)))
                                             inputs)
-                                       #:system (%current-system))))
+                                       #:system (assoc-ref opts 'system))))
             (mbegin %store-monad
               ;; First build INPUTS.  This is necessary even for
               ;; --search-paths.