gnu: chez-scheme: Refactor documentation phases.

Patches merged in both upstream Chez Scheme and Racket's variant will
soon let us replace the 'install-docs' phase with just
'make install-docs'.  Separating the 'link-doc-pdfs' phase (which won't
change) leaves us well-prepared for the transition, regardless of
whether Chez Scheme 9.5.10 or Racket 8.6 is released first.

* gnu/packages/chez.scm (chez-scheme)[arguments]: Split 'install-doc'
phase into 'install-docs' (matching the future 'make' target) and
'link-doc-pdfs'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Philip McGrath 2022-05-09 02:02:45 -04:00 committed by Ludovic Courtès
parent e9ac2a8f4b
commit d35920daf0
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -309,35 +309,43 @@ (define-public chez-scheme
(string-append (dirname scheme.boot)
"/chez-scheme.boot")))))))
;; Building the documentation requires stex and a running scheme.
;; FIXME: this is probably wrong for cross-compilation
(add-after 'install-symlink 'install-doc
(add-after 'install-symlink 'install-docs
(lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
(match (assoc-ref outputs "doc")
(#f
(format #t "not installing docs~%"))
(doc-prefix
(let* ((chez+version (strip-store-file-name #$output))
(scheme (search-input-file outputs "/bin/scheme"))
(stexlib (search-input-directory (or native-inputs
inputs)
"/lib/stex"))
(doc-dir (string-append doc-prefix
"/share/doc/"
chez+version)))
(define* (stex-make #:optional (suffix ""))
(invoke "make" "install"
(string-append "Scheme=" scheme)
(string-append "STEXLIB=" stexlib)
(string-append "installdir=" doc-dir suffix)))
(with-directory-excursion "csug"
(stex-make "/csug"))
(with-directory-excursion "release_notes"
(stex-make "/release_notes"))
(with-directory-excursion doc-dir
(symlink "release_notes/release_notes.pdf"
"release_notes.pdf")
(symlink "csug/csug9_5.pdf"
"csug.pdf"))))))))))
(let* ((doc-prefix (or (assoc-ref outputs "doc")
(assoc-ref outputs "out")))
(chez+version (strip-store-file-name #$output))
(scheme (search-input-file outputs "/bin/scheme"))
(stexlib (search-input-directory (or native-inputs
inputs)
"/lib/stex"))
(doc-dir (string-append doc-prefix
"/share/doc/"
chez+version)))
(define* (stex-make #:optional (suffix ""))
(invoke "make" "install"
(string-append "Scheme=" scheme)
(string-append "STEXLIB=" stexlib)
(string-append "installdir=" doc-dir suffix)))
(with-directory-excursion "csug"
(stex-make "/csug"))
(with-directory-excursion "release_notes"
(stex-make "/release_notes")))))
(add-after 'install-docs 'link-doc-pdfs
;; otherwise, it's hard to notice them in a forest of HTML files
(lambda* (#:key outputs #:allow-other-keys)
(with-directory-excursion
(string-append (or (assoc-ref outputs "doc")
(assoc-ref outputs "out"))
"/share/doc/"
(strip-store-file-name #$output))
(symlink "release_notes/release_notes.pdf"
"release_notes.pdf")
(match (find-files "csug"
"csug.*\\.pdf$" ;; embeded version number
#:fail-on-error? #t)
((pth)
(symlink pth
"csug.pdf")))))))))
;; Chez Scheme does not have a MIPS backend.
;; FIXME: Debian backports patches to get armhf working.
;; We should too. It is the Chez machine type arm32le