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>
This commit is contained in:
Philip McGrath 2022-08-27 14:55:51 -04:00 committed by Ludovic Courtès
parent 9ed6e51ceb
commit cb0d106590
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -312,8 +312,11 @@ (define-public racket-vm-cgc
(source %racket-origin) (source %racket-origin)
(inputs (list ncurses ;; <- common to all variants (for #%terminal) (inputs (list ncurses ;; <- common to all variants (for #%terminal)
libffi)) ;; <- only for BC variants libffi)) ;; <- only for BC variants
(native-inputs (list zuo ;; <- for all variants (native-inputs (cons* zuo ;; <- for all variants
libtool)) ;; <- only for BC variants libtool ;; <- only for BC variants
(if (%current-target-system)
(list this-package)
'())))
(outputs '("out" "debug")) (outputs '("out" "debug"))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -401,8 +404,10 @@ (define-public racket-vm-bc
(inherit racket-vm-cgc) (inherit racket-vm-cgc)
(name "racket-vm-bc") (name "racket-vm-bc")
(native-inputs (native-inputs
(modify-inputs (package-native-inputs racket-vm-cgc) (if (%current-target-system)
(prepend racket-vm-cgc))) (package-native-inputs racket-vm-cgc)
(modify-inputs (package-native-inputs racket-vm-cgc)
(prepend racket-vm-cgc))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments racket-vm-cgc) (substitute-keyword-arguments (package-arguments racket-vm-cgc)
((#:configure-flags _ '()) ((#:configure-flags _ '())
@ -432,11 +437,17 @@ (define-public racket-vm-cs
(prepend zlib lz4) (prepend zlib lz4)
(delete "libffi"))) (delete "libffi")))
(native-inputs (native-inputs
(modify-inputs (package-native-inputs racket-vm-cgc) (let ((native-inputs (package-native-inputs racket-vm-cgc)))
(delete "libtool") (modify-inputs (if (%current-target-system)
(prepend chez-scheme-for-racket (modify-inputs native-inputs
chez-nanopass-bootstrap (delete "racket-vm-cgc"))
racket-vm-bc))) native-inputs)
(delete "libtool")
(prepend chez-scheme-for-racket
chez-nanopass-bootstrap
(if (%current-target-system)
racket-vm-cs
racket-vm-bc)))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments racket-vm-cgc) (substitute-keyword-arguments (package-arguments racket-vm-cgc)
((#:phases those-phases #~%standard-phases) ((#:phases those-phases #~%standard-phases)
@ -450,7 +461,7 @@ (define-public racket-vm-cs
"--enable-libz" "--enable-libz"
"--enable-lz4" "--enable-lz4"
(string-append "--enable-scheme=" (string-append "--enable-scheme="
#$(this-package-native-input #+(this-package-native-input
"chez-scheme-for-racket") "chez-scheme-for-racket")
"/bin/scheme") "/bin/scheme")
#$racket-vm-common-configure-flags)))) #$racket-vm-common-configure-flags))))