gnu: sunxi-tools: Simplify build.

* gnu/packages/admin.scm (sunxi-tools-source): New procedure.
(sunxi-target-tools): New variable.
(sunxi-tools)[source]: Use sunxi-tools-source.
[native-inputs]: Remove cross-gcc, cross-libc, cross-libc-static.
Add sunxi-target-tools.
[arguments]<#:make-flags>: Modify.
[arguments]<#:phases>[set-environment-up]: Delete phase.
[build-armhf]: Delete phase.
[install]: Modify.
This commit is contained in:
Danny Milosavljevic 2019-12-04 18:56:31 +01:00
parent ed15dfcf31
commit 208e743415
No known key found for this signature in database
GPG key ID: E71A35542C30BAA5

View file

@ -2629,11 +2629,7 @@ (define-public pam-krb5
;; clause requiring us to give all recipients a copy. ;; clause requiring us to give all recipients a copy.
(license license:gpl1+))) (license license:gpl1+)))
(define-public sunxi-tools (define (sunxi-tools-source version)
(package
(name "sunxi-tools")
(version "1.4.2")
(source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2648,14 +2644,49 @@ (define-public sunxi-tools
'(begin '(begin
(delete-file-recursively "bin") (delete-file-recursively "bin")
#t)) #t))
(file-name (git-file-name name version)))) (file-name (git-file-name "sunxi-tools" version))))
(define sunxi-target-tools
(package
(name "sunxi-target-tools")
(version "1.4.2")
(build-system gnu-build-system)
(source
(sunxi-tools-source version))
(arguments
`(#:system "armhf-linux"
#:tests? #f
#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out"))
(string-append "CROSS_COMPILE=")
"CC=gcc")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "target-tools" make-flags)))
(replace 'install
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "install-target-tools"
make-flags))))))
(home-page "https://github.com/linux-sunxi/sunxi-tools")
(synopsis "Hardware management tools for Allwinner computers")
(description "This package contains tools for Allwinner devices:
@enumerate
@item @command{sunxi-meminfo}: Prints memory bus settings.
@end enumerate")
(license license:gpl2+)))
(define-public sunxi-tools
(package
(name "sunxi-tools")
(version "1.4.2")
(source
(sunxi-tools-source version))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("sunxi-target-tools" ,sunxi-target-tools)
("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf" ("pkg-config" ,pkg-config)))
#:xbinutils (cross-binutils "arm-linux-gnueabihf")
#:libc (cross-libc "arm-linux-gnueabihf")))
("cross-libc" ,(cross-libc "arm-linux-gnueabihf")) ; header files
("cross-libc-static" ,(cross-libc "arm-linux-gnueabihf") "static")))
(inputs (inputs
`(("libusb" ,libusb))) `(("libusb" ,libusb)))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -2663,50 +2694,22 @@ (define-public sunxi-tools
`(#:tests? #f ; no tests exist `(#:tests? #f ; no tests exist
#:make-flags (list (string-append "PREFIX=" #:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out")) (assoc-ref %outputs "out"))
(string-append "CROSS_COMPILE=" (string-append "CROSS_COMPILE=disabled")
"arm-linux-gnueabihf-")
"CC=gcc") "CC=gcc")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-before 'build 'set-environment-up
(lambda* (#:key make-flags #:allow-other-keys)
(define (cross? x)
(string-contains x "cross-arm-linux"))
(define (filter-environment! filter-predicate
environment-variable-names)
(for-each
(lambda (env-name)
(when (getenv env-name)
(let* ((env-value (getenv env-name))
(search-path (search-path-as-string->list env-value))
(new-search-path (filter filter-predicate
search-path))
(new-env-value (list->search-path-as-string
new-search-path ":")))
(setenv env-name new-env-value))))
environment-variable-names))
(setenv "CROSS_CPATH" (getenv "CPATH"))
(setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
(setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
(setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
(filter-environment! cross?
'("CROSS_CPATH" "CROSS_C_INCLUDE_PATH" "CROSS_CPLUS_INCLUDE_PATH"
"CROSS_LIBRARY_PATH"))
(filter-environment! (lambda (e) (not (cross? e)))
'("CPATH" "C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"
"LIBRARY_PATH"))
#t))
(replace 'build (replace 'build
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "tools" "misc" make-flags))) (apply invoke "make" "tools" "misc" make-flags)))
(add-after 'build 'build-armhf
(lambda* (#:key make-flags #:allow-other-keys)
(setenv "LIBRARY_PATH" #f)
(apply invoke "make" "target-tools" make-flags)))
(replace 'install (replace 'install
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key inputs outputs make-flags #:allow-other-keys)
(apply invoke "make" "install-all" "install-misc" ;; Those tools have been built for armhf but are part of the
;; installation in the upstream package. So do the same
;; here.
(copy-recursively (assoc-ref inputs "sunxi-target-tools")
(assoc-ref outputs "out"))
(apply invoke "make" "install-tools" "install-misc"
make-flags)))))) make-flags))))))
(home-page "https://github.com/linux-sunxi/sunxi-tools") (home-page "https://github.com/linux-sunxi/sunxi-tools")
(synopsis "Hardware management tools for Allwinner computers") (synopsis "Hardware management tools for Allwinner computers")