~ruther/guix-local

cb0d106590400eefb74c1d747805b3014fe645d0 — Philip McGrath 3 years ago 9ed6e51
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>
1 files changed, 21 insertions(+), 10 deletions(-)

M gnu/packages/racket.scm
M gnu/packages/racket.scm => gnu/packages/racket.scm +21 -10
@@ 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))))