gnu: giac-xcas: Add a "doc" output

* gnu/packages/algebra.scm (giac-xcas): Add "doc" output.
[arguments]: Add phase to install documentation in the appropriate directory.
This commit is contained in:
Nicolas Goaziou 2018-10-21 21:12:00 +02:00
parent 90d5ec55ae
commit af90cc45ae
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -257,8 +257,12 @@ (define-public giac-xcas
(base32
"0ds1zh712sr20qh0fih8jnm4nlv90andllp8n263qs7rlhblz551"))))
(build-system gnu-build-system)
(outputs '("out" "doc")) ;77MiB of documentation
(arguments
`(#:phases
`(#:modules ((ice-9 ftw)
(guix build utils)
(guix build gnu-build-system))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-bin-cp
;; Some Makefiles contain hard-coded "/bin/cp".
@ -271,6 +275,28 @@ (define-public giac-xcas
(lambda _
(substitute* "check/Makefile.in"
(("chk_fhan11") ""))
#t))
(add-after 'install 'install-doc
;; Setting --docdir to "doc" output isn't sufficient as
;; documentation and examples are scattered throughout the source.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc"))
(docdir (string-append doc
"/share/doc/"
(string-append ,name "-" ,version))))
;; For some reason, the install process moves
;; "share/giac/examples" instead of "share/giac/doc" to
;; "$(docdir)". Clean up the mess and start over.
(delete-file-recursively (string-append doc "/share"))
(mkdir-p docdir)
(with-directory-excursion out
(for-each (lambda (f)
(unless (member f '("." ".."))
(copy-recursively (string-append "share/giac/" f)
(string-append docdir "/" f))))
(scandir "share/giac"))
(delete-file-recursively "share/giac")))
#t)))))
(inputs
`(("fltk" ,fltk)