summary refs log tree commit diff
path: root/gnu/packages/make-bootstrap.scm
diff options
context:
space:
mode:
authorJan Nieuwenhuizen <janneke@gnu.org>2018-11-18 13:41:18 +0100
committerJan Nieuwenhuizen <janneke@gnu.org>2018-11-18 16:38:11 +0100
commita647da364ac494b409114a52e48dc0dab03cbf4f (patch)
tree696d1181a445d5b3d184ca6fe2d364f32e6e805b /gnu/packages/make-bootstrap.scm
parent02d83c247931045cf899433223e1b1a51f605a9f (diff)
downloadguix-a647da364ac494b409114a52e48dc0dab03cbf4f.tar.gz
bootstrap: Add %mes-minimal.
%mes-minimal introduces a Mes for bootstrap that does not depend on graphviz,
perl, and texinfo and thus does not build any documentation.  This removes
~100 dependencies from bootstrap-tarballs.

* gnu/packages/make-bootstrap.scm (%mes-minimal): New variable.
(%mes-minmal-stripped): Rename from %mes-stripped.
(%mes-bootstrap-tarball): Update.
Diffstat (limited to 'gnu/packages/make-bootstrap.scm')
-rw-r--r--gnu/packages/make-bootstrap.scm35
1 files changed, 30 insertions, 5 deletions
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 36a5f6904c..1897a6d12b 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -546,11 +546,36 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
        ((#:make-flags flags)
         `(cons "CC=gcc -static" ,flags))))))
 
-(define %mes-stripped
+(define %mes-minimal
+  ;; A minimal Mes without documentation dependencies, for bootstrap.
+  (let ((triplet "i686-unknown-linux-gnu"))
+    (package
+      (inherit mes)
+      (name "mes-minimal")
+      (native-inputs
+       `(("guile" ,guile-2.2)
+         ,@(if (not (string-prefix? "i686-linux" (or (%current-target-system)
+                                                     (%current-system))))
+               ;; Use cross-compiler rather than #:system "i686-linux" to get
+               ;; MesCC 64 bit .go files installed ready for use with Guile.
+               `(("i686-linux-binutils" ,(cross-binutils triplet))
+                 ("i686-linux-gcc" ,(cross-gcc triplet)))
+               '())))
+      (arguments
+       `(#:strip-binaries? #f
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'optional-dot
+             (lambda _
+               (substitute* "configure"
+                 (("#:version-option \"-V\"" all)
+                  (string-append all "#:optional? #t")))))))))))
+
+(define-public %mes-minimal-stripped
   ;; The subset of Mes files needed for bootstrap.
   (package
-    (inherit mes)
-    (name "mes-stripped")
+    (inherit %mes-minimal)
+    (name "mes-minimal-stripped")
     (build-system trivial-build-system)
     (source #f)
     (arguments
@@ -573,7 +598,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                                                 (string-suffix? ".c" file)))
                              (find-files out ".*")))
            #t))))
-    (inputs `(("mes" ,mes)))))
+    (inputs `(("mes" ,%mes-minimal)))))
 
 (define %guile-static
   ;; A statically-linked Guile that is relocatable--i.e., it can search
@@ -748,7 +773,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
 
 (define %mes-bootstrap-tarball
   ;; A tarball with Mes ASCII Seed and binary Mes C Library.
-  (tarball-package %mes-stripped))
+  (tarball-package %mes-minimal-stripped))
 
 (define %bootstrap-tarballs
   ;; A single derivation containing all the bootstrap tarballs, for