mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
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:
parent
ed15dfcf31
commit
208e743415
1 changed files with 51 additions and 48 deletions
|
@ -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")
|
||||||
|
|
Loading…
Reference in a new issue