summary refs log tree commit diff
path: root/gnu/packages/gcc.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-07-19 22:27:37 +0200
committerLudovic Courtès <ludo@gnu.org>2015-07-19 22:27:37 +0200
commit50c7a1e297bff0935674b4f30e854a8889becfdd (patch)
treeccb3433f3f297e783d900a343619453ea61dc7e8 /gnu/packages/gcc.scm
parentac0922f63e9960a963cd7cc2b623bd1ec2f510b5 (diff)
downloadguix-50c7a1e297bff0935674b4f30e854a8889becfdd.tar.gz
gnu: Add gnu-c-manual.
* gnu/packages/gcc.scm (gnu-c-manual): New variable.
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r--gnu/packages/gcc.scm52
1 files changed, 51 insertions, 1 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index d2fe122f62..e41fd43e63 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -21,7 +21,7 @@
 
 (define-module (gnu packages gcc)
   #:use-module ((guix licenses)
-                #:select (gpl3+ gpl2+ lgpl2.1+ lgpl2.0+))
+                #:select (gpl3+ gpl2+ lgpl2.1+ lgpl2.0+ fdl1.3+))
   #:use-module (gnu packages)
   #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages compression)
@@ -680,3 +680,53 @@ CLooG is designed to avoid control overhead and to produce a very
 effective code.")
     (license gpl2+)))
 
+(define-public gnu-c-manual
+  (package
+    (name "gnu-c-manual")
+    (version "0.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/gnu-c-manual/gnu-c-manual-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0cf4503shr7hxkbrjfi9dky6q2lqk95bgbgbjmvj2s2x312kakd9"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("texinfo" ,texinfo)))
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (delete 'check)
+                  (replace 'build
+                           (lambda _
+                             (zero? (system* "make"
+                                             "gnu-c-manual.info"
+                                             "gnu-c-manual.html"))))
+                  (replace 'install
+                           (lambda* (#:key outputs #:allow-other-keys)
+                             (let* ((out (assoc-ref outputs "out"))
+                                    (info (string-append out "/share/info"))
+                                    (html (string-append
+                                           out "/share/doc/gnu-c-manual")))
+                               (mkdir-p info)
+                               (mkdir-p html)
+
+                               (for-each (lambda (file)
+                                           (copy-file file
+                                                      (string-append info "/"
+                                                                     file)))
+                                         (find-files "." "\\.info(-[0-9])?$"))
+                               (for-each (lambda (file)
+                                           (copy-file file
+                                                      (string-append html "/"
+                                                                     file)))
+                                         (find-files "." "\\.html$"))
+                               #t))))))
+    (synopsis "Reference manual for the C programming language")
+    (description
+     "This is a reference manual for the C programming language, as
+implemented by the GNU C Compiler (gcc).  As a reference, it is not intended
+to be a tutorial of the language.  Rather, it outlines all of the constructs
+of the language.  Library functions are not included.")
+    (home-page "http://www.gnu.org/software/gnu-c-manual")
+    (license fdl1.3+)))