gnu: atlas: Use 'modify-phases'.

* gnu/packages/maths.scm (atlas)[arguments]: Use 'modify-phases'.
This commit is contained in:
Efraim Flashner 2016-08-19 16:16:06 +03:00
parent 349cef585d
commit e5b4b96b8c
No known key found for this signature in database
GPG key ID: F4C1D3917EACEE93

View file

@ -2079,59 +2079,54 @@ (define-public atlas
,(string-append "--with-netlib-lapack-tarfile="
(assoc-ref %build-inputs "lapack-tar")))
#:phases
(alist-cons-after
'install 'install-doc
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "doc")
"/share/doc/atlas")))
(mkdir-p doc)
(fold (lambda (file previous)
(and previous (zero? (system* "cp" file doc))))
#t (find-files "../ATLAS/doc" ".*"))))
(alist-cons-after
'check 'check-pt
(lambda _ (zero? (system* "make" "ptcheck")))
;; Fix files required to run configure.
(alist-cons-before
'configure 'fix-/bin/sh
(modify-phases %standard-phases
(add-after 'install 'install-doc
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "doc")
"/share/doc/atlas")))
(mkdir-p doc)
(fold (lambda (file previous)
(and previous (zero? (system* "cp" file doc))))
#t (find-files "../ATLAS/doc" ".*")))))
(add-after 'check 'check-pt
(lambda _ (zero? (system* "make" "ptcheck"))))
;; Fix files required to run configure.
(add-before 'configure 'fix-/bin/sh
(lambda _
;; Use `sh', not `/bin/sh'.
(substitute* (find-files "." "Makefile|configure|SpewMakeInc\\.c")
(("/bin/sh")
"sh")))
;; Fix /bin/sh in generated make files.
(alist-cons-after
'configure 'fix-/bin/sh-in-generated-files
(lambda _
(substitute* (find-files "." "^[Mm]ake\\.inc.*")
(("/bin/sh")
"sh")))
;; ATLAS configure program does not accepts the default flags
;; passed by the 'gnu-build-system'.
(alist-replace
'configure
(lambda* (#:key native-inputs inputs outputs
(configure-flags '())
#:allow-other-keys #:rest args)
(let* ((prefix (assoc-ref outputs "out"))
(bash (or (and=> (assoc-ref
(or native-inputs inputs) "bash")
(cut string-append <> "/bin/bash"))
"/bin/sh"))
(flags `(,(string-append "--prefix=" prefix)
,@configure-flags))
(abs-srcdir (getcwd))
(srcdir (string-append "../" (basename abs-srcdir))))
(format #t "source directory: ~s (relative from build: ~s)~%"
abs-srcdir srcdir)
(mkdir "../build")
(chdir "../build")
(format #t "build directory: ~s~%" (getcwd))
(format #t "configure flags: ~s~%" flags)
(zero? (apply system* bash
(string-append srcdir "/configure")
flags))))
%standard-phases)))))))
"sh"))))
;; Fix /bin/sh in generated make files.
(add-after 'configure 'fix-/bin/sh-in-generated-files
(lambda _
(substitute* (find-files "." "^[Mm]ake\\.inc.*")
(("/bin/sh")
"sh"))))
;; ATLAS configure program does not accepts the default flags
;; passed by the 'gnu-build-system'.
(replace 'configure
(lambda* (#:key native-inputs inputs outputs
(configure-flags '())
#:allow-other-keys #:rest args)
(let* ((prefix (assoc-ref outputs "out"))
(bash (or (and=> (assoc-ref
(or native-inputs inputs) "bash")
(cut string-append <> "/bin/bash"))
"/bin/sh"))
(flags `(,(string-append "--prefix=" prefix)
,@configure-flags))
(abs-srcdir (getcwd))
(srcdir (string-append "../" (basename abs-srcdir))))
(format #t "source directory: ~s (relative from build: ~s)~%"
abs-srcdir srcdir)
(mkdir "../build")
(chdir "../build")
(format #t "build directory: ~s~%" (getcwd))
(format #t "configure flags: ~s~%" flags)
(zero? (apply system* bash
(string-append srcdir "/configure")
flags))))))))
(synopsis "Automatically Tuned Linear Algebra Software")
(description
"ATLAS is an automatically tuned linear algebra software library