guix-commits
[Top][All Lists]
Advanced

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

02/02: gnu: Add arm-none-eabi-toolchain variants.


From: Ricardo Wurmus
Subject: 02/02: gnu: Add arm-none-eabi-toolchain variants.
Date: Sun, 16 Oct 2016 09:53:57 +0000 (UTC)

rekado pushed a commit to branch master
in repository guix.

commit 569f60164920a36e6597fe25e9373f97f89e8860
Author: Theodoros Foradis <address@hidden>
Date:   Sun Oct 16 11:27:21 2016 +0200

    gnu: Add arm-none-eabi-toolchain variants.
    
    * gnu/packages/embedded.scm (arm-none-eabi-toolchain): New procedure.
    (arm-none-eabi-toolchain-4.9, arm-none-eabi-nano-toolchain-4.9,
    arm-none-eabi-toolchain-6, arm-none-eabi-nano-toolchain-6): New
    variables.
    
    Co-authored-by: Ricardo Wurmus <address@hidden>
---
 gnu/packages/embedded.scm |   47 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 96d63d5..a7af69f 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -25,6 +25,8 @@
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
+  #:use-module (guix build utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages flex)
@@ -176,3 +178,48 @@ usable on embedded products.")
            "--enable-newlib-nano-formatted-io"
            "--disable-nls"))))
     (synopsis "Newlib variant for small systems with limited memory")))
+
+(define (arm-none-eabi-toolchain xgcc newlib)
+  "Produce a cross-compiler toolchain package with the compiler XGCC and the C
+library variant NEWLIB."
+  (let ((newlib-with-xgcc (package (inherit newlib)
+                            (native-inputs
+                             (alist-replace "xgcc" (list xgcc)
+                                            (package-native-inputs newlib))))))
+    (package
+      (name (string-append "arm-none-eabi"
+                           (if (string=? (package-name newlib-with-xgcc)
+                                         "newlib-nano")
+                               "-nano" "")
+                           "-toolchain"))
+      (version (package-version xgcc))
+      (source #f)
+      (build-system trivial-build-system)
+      (arguments '(#:builder (mkdir %output)))
+      (propagated-inputs
+       `(("binutils" ,(cross-binutils "arm-none-eabi"))
+         ("gcc" ,xgcc)
+         ("newlib" ,newlib-with-xgcc)))
+      (synopsis "Complete GCC tool chain for ARM bare metal development")
+      (description "This package provides a complete GCC tool chain for ARM
+bare metal development.  This includes the GCC arm-none-eabi cross compiler
+and newlib (or newlib-nano) as the C library.  The supported programming
+languages are C and C++.")
+      (home-page (package-home-page xgcc))
+      (license (package-license xgcc)))))
+
+(define-public arm-none-eabi-toolchain-4.9
+  (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9
+                           newlib-arm-none-eabi))
+
+(define-public arm-none-eabi-nano-toolchain-4.9
+  (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9
+                           newlib-nano-arm-none-eabi))
+
+(define-public arm-none-eabi-toolchain-6
+  (arm-none-eabi-toolchain gcc-arm-none-eabi-6
+                           newlib-arm-none-eabi))
+
+(define-public arm-none-eabi-nano-toolchain-6
+  (arm-none-eabi-toolchain gcc-arm-none-eabi-6
+                           newlib-nano-arm-none-eabi))



reply via email to

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