diff options
author | Jean-Pierre De Jesus DIAZ <jean@foundationdevices.com> | 2023-11-28 12:34:52 +0100 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2023-12-11 13:34:17 +0200 |
commit | dfc1701724186acf6fcfa9fc26ffa1e67b74c988 (patch) | |
tree | 6327a46e98f5eaf0bfd39e880ea59beb66af490a /gnu/packages | |
parent | f49ccd9cefcc2cd93543a0619f54d10f86c61468 (diff) |
gnu: cross-libc: Add AVR Libc support.
* gnu/packages/avr.scm (make-avr-libc/implementation)[arguments]: Add
avr target parameter and disable implicit cross inputs.
[native-inputs]: Rename avr-gcc and avr-binutils to cross-gcc
and cross-binutils to keep consistency with gnu-build-system.
* gnu/packages/cross-base.scm (cross-libc): Add case for avr.
Change-Id: I6b087946d1287a82fac61c48c513e7f2d2184794
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/avr.scm | 21 | ||||
-rw-r--r-- | gnu/packages/cross-base.scm | 4 |
2 files changed, 18 insertions, 7 deletions
diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index e3671399c1..6042c1bd55 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -33,7 +33,8 @@ #:use-module (gnu packages cross-base) #:use-module (gnu packages flashing-tools) #:use-module (gnu packages gcc) - #:export (make-avr-toolchain)) + #:export (make-avr-libc + make-avr-toolchain)) ;;; Commentary: ;;; @@ -101,7 +102,10 @@ changed to ~a~%" (define make-avr-gcc (memoize make-avr-gcc/implementation)) -(define* (make-avr-libc/implementation #:key (xgcc gcc)) +(define* (make-avr-libc/implementation #:key + (xbinutils (cross-binutils "avr")) + (xgcc (cross-gcc "avr" + #:xbinutils xbinutils))) (package (name "avr-libc") (version "2.0.0") @@ -114,10 +118,13 @@ changed to ~a~%" "15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj")))) (build-system gnu-build-system) (arguments - '(#:out-of-source? #t - #:configure-flags '("--host=avr"))) - (native-inputs `(("avr-binutils" ,(make-avr-binutils)) - ("avr-gcc" ,(make-avr-gcc #:xgcc xgcc)))) + '(#:target "avr" + #:out-of-source? #t + ;; Avoid including itself as this package is a target input and cannot + ;; use the normal cross compilation inputs. + #:implicit-cross-inputs? #f)) + (native-inputs `(("cross-binutils" ,xbinutils) + ("cross-gcc" ,xgcc))) (home-page "https://www.nongnu.org/avr-libc/") (synopsis "AVR C Library") (description @@ -131,7 +138,7 @@ for use with GCC on Atmel AVR microcontrollers.") (define* (make-avr-toolchain/implementation #:key (xgcc gcc)) (let ((avr-binutils (make-avr-binutils)) - (avr-libc (make-avr-libc #:xgcc xgcc)) + (avr-libc (make-avr-libc #:xgcc (cross-gcc "avr" #:xgcc xgcc))) (avr-gcc (make-avr-gcc #:xgcc xgcc))) ;; avr-libc checks the compiler version and passes "--enable-device-lib" ;; for avr-gcc > 5.1.0. It wouldn't install the library for atmega32u4 diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 0561fd2df8..264c8c7e15 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -28,6 +28,7 @@ (define-module (gnu packages cross-base) #:use-module (gnu packages) + #:use-module (gnu packages avr) #:use-module (gnu packages gcc) #:use-module (gnu packages base) #:use-module (gnu packages linux) @@ -699,6 +700,9 @@ returned." '()) ,@(package-inputs libc) ;FIXME: static-bash ,@(package-native-inputs libc))))) + ((? target-avr?) + (make-avr-libc #:xbinutils xbinutils + #:xgcc xgcc)) (else #f))) |