mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: cross-base: Factor out cross-mig.
* gnu/packages/cross-base.scm (cross-mig): New exported procedure. (cross-gnumach-headers): New procedure. (cross-kernel-headers*): Factor them out. (cross-libc*): Use them there. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
6cdd444a56
commit
a16a9c5a7b
1 changed files with 53 additions and 34 deletions
|
@ -46,6 +46,7 @@
|
||||||
#:export (cross-binutils
|
#:export (cross-binutils
|
||||||
cross-libc
|
cross-libc
|
||||||
cross-gcc
|
cross-gcc
|
||||||
|
cross-mig
|
||||||
cross-kernel-headers))
|
cross-kernel-headers))
|
||||||
|
|
||||||
(define-syntax %xgcc
|
(define-syntax %xgcc
|
||||||
|
@ -365,6 +366,52 @@ target that libc."
|
||||||
#:xgcc xgcc
|
#:xgcc xgcc
|
||||||
#:xbinutils xbinutils))
|
#:xbinutils xbinutils))
|
||||||
|
|
||||||
|
(define* (cross-gnumach-headers target
|
||||||
|
#:key
|
||||||
|
(xgcc (cross-gcc target))
|
||||||
|
(xbinutils (cross-binutils target)))
|
||||||
|
(package
|
||||||
|
(inherit gnumach-headers)
|
||||||
|
(name (string-append (package-name gnumach-headers)
|
||||||
|
"-cross-" target))
|
||||||
|
(native-inputs
|
||||||
|
(modify-inputs (package-native-inputs gnumach-headers)
|
||||||
|
(prepend xgcc xbinutils)))))
|
||||||
|
|
||||||
|
(define* (cross-mig target
|
||||||
|
#:key
|
||||||
|
(xgcc (cross-gcc target))
|
||||||
|
(xbinutils (cross-binutils target)))
|
||||||
|
"Return a cross-mig for TARGET, where TARGET is a GNU triplet. Use XGCC as
|
||||||
|
the base compiler. Use XBINUTILS as the associated cross-Binutils."
|
||||||
|
(define xgnumach-headers
|
||||||
|
(cross-gnumach-headers target
|
||||||
|
#:xgcc xgcc
|
||||||
|
#:xbinutils xbinutils))
|
||||||
|
(package
|
||||||
|
(inherit mig)
|
||||||
|
(name (string-append "mig-cross"))
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments mig)
|
||||||
|
((#:configure-flags flags #~'())
|
||||||
|
#~(list #$(string-append "--target=" target)))
|
||||||
|
((#:tests? _ #f)
|
||||||
|
#f)
|
||||||
|
((#:phases phases #~%standard-phases)
|
||||||
|
#~(modify-phases #$phases
|
||||||
|
(add-before 'configure 'set-cross-headers-path
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(let* ((mach #+xgnumach-headers)
|
||||||
|
(cpath (string-append mach "/include")))
|
||||||
|
(for-each (lambda (variable)
|
||||||
|
(setenv variable cpath))
|
||||||
|
'#$%gcc-cross-include-paths))))))))
|
||||||
|
(propagated-inputs
|
||||||
|
(list xgnumach-headers))
|
||||||
|
(native-inputs
|
||||||
|
(modify-inputs (package-native-inputs mig)
|
||||||
|
(prepend xgcc xbinutils)))))
|
||||||
|
|
||||||
(define* (cross-kernel-headers* target
|
(define* (cross-kernel-headers* target
|
||||||
#:key
|
#:key
|
||||||
(linux-headers linux-libre-headers)
|
(linux-headers linux-libre-headers)
|
||||||
|
@ -399,40 +446,11 @@ target that libc."
|
||||||
("cross-binutils" ,xbinutils)
|
("cross-binutils" ,xbinutils)
|
||||||
,@(package-native-inputs linux-headers)))))
|
,@(package-native-inputs linux-headers)))))
|
||||||
|
|
||||||
(define xgnumach-headers-name
|
(define xmig
|
||||||
(string-append (package-name gnumach-headers) "-cross-" target))
|
(cross-mig target #:xgcc xgcc #:xbinutils xbinutils))
|
||||||
|
|
||||||
(define xgnumach-headers
|
(define xgnumach-headers
|
||||||
(package
|
(cross-gnumach-headers target #:xgcc xgcc #:xbinutils xbinutils))
|
||||||
(inherit gnumach-headers)
|
|
||||||
(name xgnumach-headers-name)
|
|
||||||
(native-inputs
|
|
||||||
(modify-inputs (package-native-inputs gnumach-headers)
|
|
||||||
(prepend xgcc xbinutils)))))
|
|
||||||
|
|
||||||
(define xmig
|
|
||||||
(package
|
|
||||||
(inherit mig)
|
|
||||||
(name (string-append "mig-cross"))
|
|
||||||
(arguments
|
|
||||||
(substitute-keyword-arguments (package-arguments mig)
|
|
||||||
((#:configure-flags flags #~'())
|
|
||||||
#~(list #$(string-append "--target=" target)))
|
|
||||||
((#:tests? _ #f)
|
|
||||||
#f)
|
|
||||||
((#:phases phases #~%standard-phases)
|
|
||||||
#~(modify-phases #$phases
|
|
||||||
(add-before 'configure 'set-cross-headers-path
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(let* ((mach #+(this-package-input xgnumach-headers-name))
|
|
||||||
(cpath (string-append mach "/include")))
|
|
||||||
(for-each (lambda (variable)
|
|
||||||
(setenv variable cpath))
|
|
||||||
'#$%gcc-cross-include-paths))))))))
|
|
||||||
(propagated-inputs (list xgnumach-headers))
|
|
||||||
(native-inputs
|
|
||||||
(modify-inputs (package-native-inputs mig)
|
|
||||||
(prepend xgcc xbinutils)))))
|
|
||||||
|
|
||||||
(define xhurd-headers
|
(define xhurd-headers
|
||||||
(package
|
(package
|
||||||
|
@ -611,8 +629,9 @@ and the cross tool chain."
|
||||||
("cross-binutils" ,xbinutils)
|
("cross-binutils" ,xbinutils)
|
||||||
,@(if (target-hurd? target)
|
,@(if (target-hurd? target)
|
||||||
`(("cross-mig"
|
`(("cross-mig"
|
||||||
,@(assoc-ref (package-native-inputs xheaders)
|
,(cross-mig target
|
||||||
"cross-mig")))
|
#:xgcc xgcc
|
||||||
|
#:xbinutils xbinutils)))
|
||||||
'())
|
'())
|
||||||
,@(package-inputs libc) ;FIXME: static-bash
|
,@(package-inputs libc) ;FIXME: static-bash
|
||||||
,@(package-native-inputs libc))))))
|
,@(package-native-inputs libc))))))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue