From f163c290f1aa2925d0c7fdbc94f82625092bb330 Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Sat, 9 Jan 2016 11:04:40 +0100 Subject: [PATCH] gnu: mit-scheme: Generate and install documentation. * gnu/packages/scheme.scm (mit-scheme): Add 'doc' output. [arguments]: Add phases 'configure-doc, 'build-doc and 'install-doc. [native-inputs]: Add 'texlive'. Move 'texinfo' and 'm4' from inputs. --- gnu/packages/scheme.scm | 50 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 752dae226a..352b66c59b 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages emacs) #:use-module (gnu packages texinfo) + #:use-module (gnu packages texlive) #:use-module (gnu packages base) #:use-module (gnu packages pkg-config) #:use-module (gnu packages avahi) @@ -55,9 +56,13 @@ (name "mit-scheme") (version "9.2") (source #f) ; see below + (outputs '("out" "doc")) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) #:phases (modify-phases %standard-phases (replace 'unpack @@ -83,11 +88,48 @@ (string-prefix? "i686" system)) (zero? (system* "make" "compile-microcode")) (zero? (system* "./etc/make-liarc.sh" - (string-append "--prefix=" out)))))))))) + (string-append "--prefix=" out))))))) + (add-after 'configure 'configure-doc + (lambda* (#:key outputs inputs #:allow-other-keys) + (with-directory-excursion "../doc" + (let* ((out (assoc-ref outputs "out")) + (bash (assoc-ref inputs "bash")) + (bin/sh (string-append bash "/bin/sh"))) + (system* bin/sh "./configure" + (string-append "--prefix=" out) + (string-append "SHELL=" bin/sh)) + (substitute* '("Makefile" "make-common") + (("/lib/mit-scheme/doc") + (string-append "/share/doc/" ,name "-" ,version))) + #t)))) + (add-after 'build 'build-doc + (lambda* _ + (with-directory-excursion "../doc" + (zero? (system* "make"))))) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (old-doc-dir (string-append out "/share/doc")) + (new-doc/mit-scheme-dir + (string-append doc "/share/doc/" ,name "-" ,version))) + (with-directory-excursion "../doc" + (for-each (lambda (target) + (system* "make" target)) + '("install-config" "install-info-gz" "install-man" + "install-html" "install-pdf"))) + (mkdir-p new-doc/mit-scheme-dir) + (copy-recursively + (string-append old-doc-dir "/" ,name "-" ,version) + new-doc/mit-scheme-dir) + (delete-file-recursively old-doc-dir) + #t)))))) + (native-inputs + `(("texlive" ,texlive) + ("texinfo" ,texinfo) + ("m4" ,m4))) (inputs - `(("texinfo" ,texinfo) - ("m4" ,m4) - ("libx11" ,libx11) + `(("libx11" ,libx11) ("source"