guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

17/27: gnu: racket: Support cross-compiling the VM packages.


From: guix-commits
Subject: 17/27: gnu: racket: Support cross-compiling the VM packages.
Date: Sun, 4 Sep 2022 17:20:32 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit cb0d106590400eefb74c1d747805b3014fe645d0
Author: Philip McGrath <philip@philipmcgrath.com>
AuthorDate: Sat Aug 27 14:55:51 2022 -0400

    gnu: racket: Support cross-compiling the VM packages.
    
    Cross-compilation works for 'racket-vm-cgc', 'racket-vm-bc', and
    'racket-vm-cs'. These changes are not enough to cross-compile
    'racket-minimal' or 'racket': that would require building and loading
    cross-compilation pluggins for 'racket-vm-cs', which will be much
    easier once we can build the package 'raco-cross'.
    
    * gnu/packages/racket.scm (racket-vm-cgc): Add 'this-package' when
    cross-compiling.
    (racket-vm-bc)[native-inputs]: Adjust accordingly.
    (racket-vm-cs)[native-inputs]: Use 'racket-vm-cs' instead of
    'racket-vm-bc' when cross-compiling. Adapt to changes to
    'racket-vm-cgc'.
    [arguments]<#:configure-flags>: Fix '--enable-scheme' for
    cross-compilation.
    
    Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/racket.scm | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm
index 349cf38e07..4fcdd2f721 100644
--- a/gnu/packages/racket.scm
+++ b/gnu/packages/racket.scm
@@ -312,8 +312,11 @@ One of the early layers implements macros.")
      (source %racket-origin)
      (inputs (list ncurses ;; <- common to all variants (for #%terminal)
                    libffi)) ;; <- only for BC variants
-     (native-inputs (list zuo ;; <- for all variants
-                          libtool)) ;; <- only for BC variants
+     (native-inputs (cons* zuo ;; <- for all variants
+                           libtool ;; <- only for BC variants
+                           (if (%current-target-system)
+                               (list this-package)
+                               '())))
      (outputs '("out" "debug"))
      (build-system gnu-build-system)
      (arguments
@@ -401,8 +404,10 @@ code to use the 3M garbage collector.")
     (inherit racket-vm-cgc)
     (name "racket-vm-bc")
     (native-inputs
-     (modify-inputs (package-native-inputs racket-vm-cgc)
-       (prepend racket-vm-cgc)))
+     (if (%current-target-system)
+         (package-native-inputs racket-vm-cgc)
+         (modify-inputs (package-native-inputs racket-vm-cgc)
+           (prepend racket-vm-cgc))))
     (arguments
      (substitute-keyword-arguments (package-arguments racket-vm-cgc)
        ((#:configure-flags _ '())
@@ -432,11 +437,17 @@ collector, 3M (``Moving Memory Manager'').")
        (prepend zlib lz4)
        (delete "libffi")))
     (native-inputs
-     (modify-inputs (package-native-inputs racket-vm-cgc)
-       (delete "libtool")
-       (prepend chez-scheme-for-racket
-                chez-nanopass-bootstrap
-                racket-vm-bc)))
+     (let ((native-inputs (package-native-inputs racket-vm-cgc)))
+       (modify-inputs (if (%current-target-system)
+                          (modify-inputs native-inputs
+                            (delete "racket-vm-cgc"))
+                          native-inputs)
+         (delete "libtool")
+         (prepend chez-scheme-for-racket
+                  chez-nanopass-bootstrap
+                  (if (%current-target-system)
+                      racket-vm-cs
+                      racket-vm-bc)))))
     (arguments
      (substitute-keyword-arguments (package-arguments racket-vm-cgc)
        ((#:phases those-phases #~%standard-phases)
@@ -450,7 +461,7 @@ collector, 3M (``Moving Memory Manager'').")
                  "--enable-libz"
                  "--enable-lz4"
                  (string-append "--enable-scheme="
-                                #$(this-package-native-input
+                                #+(this-package-native-input
                                    "chez-scheme-for-racket")
                                 "/bin/scheme")
                  #$racket-vm-common-configure-flags))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]