summary refs log tree commit diff
path: root/gnu/packages/cross-base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/cross-base.scm')
-rw-r--r--gnu/packages/cross-base.scm53
1 files changed, 27 insertions, 26 deletions
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index add9a2f901..2959616af6 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2018, 2020, 2023 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
@@ -38,7 +38,7 @@
   #:use-module (guix i18n)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system trivial)
+  #:use-module (guix gexp)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
@@ -399,39 +399,40 @@ target that libc."
                        ("cross-binutils" ,xbinutils)
                        ,@(package-native-inputs linux-headers)))))
 
+  (define xgnumach-headers-name
+    (string-append (package-name gnumach-headers) "-cross-" target))
+
   (define xgnumach-headers
     (package
       (inherit gnumach-headers)
-      (name (string-append (package-name gnumach-headers)
-                           "-cross-" target))
-
-      (native-inputs `(("cross-gcc" ,xgcc)
-                       ("cross-binutils" ,xbinutils)
-                       ,@(package-native-inputs 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
-       `(#:modules ((guix build gnu-build-system)
-                    (guix build utils)
-                    (srfi srfi-26))
-         #:phases (modify-phases %standard-phases
-                    (add-before 'configure 'set-cross-headers-path
-                      (lambda* (#:key inputs #:allow-other-keys)
-                        (let* ((mach (assoc-ref inputs "cross-gnumach-headers"))
-                               (cpath (string-append mach "/include")))
-                          (for-each (cut setenv <> cpath)
-                                    ',%gcc-cross-include-paths)
-                          #t))))
-         #:configure-flags (list ,(string-append "--target=" target))
-         #:tests? #f))
-
-      (propagated-inputs `(("cross-gnumach-headers" ,xgnumach-headers)))
-      (native-inputs `(("cross-gcc" ,xgcc)
-                       ("cross-binutils" ,xbinutils)
-                       ,@(package-native-inputs mig)))))
+       (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
     (package