guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#28690] provide a lib output for boost


From: Dave Love
Subject: [bug#28690] provide a lib output for boost
Date: Tue, 03 Oct 2017 17:34:41 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

I mentioned elsewhere noticing the large size of boost in closures.
I've now realized what the problem was with making a lib output, and
done one, as below.  However, presumably it should have a dependency of
out on lib for compatibility, and I don't know the right way to do that.

The lib package is 17MiB, and the headers are 108MiB.

>From 1bb845d1d45ee7e8b9447bab902f3de41f0acfac Mon Sep 17 00:00:00 2001
From: Dave Love <address@hidden>
Date: Tue, 3 Oct 2017 16:18:59 +0100
Subject: [PATCH] gnu: boost: Make a "lib" output.

This save about half the contribution to the Closure of things linked against
it,

* gnu/packages/boost.scm(outputs): Add lib.
(arguments)[mv-lib]: Add move the lib output into place after install.
---
 gnu/packages/boost.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 4c7308e9d..c1e622fcd 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -53,6 +53,7 @@
      `(("perl" ,perl)
        ("python" ,python-2)
        ("tcsh" ,tcsh)))
+    (outputs '("out" "lib"))
     (arguments
      `(#:tests? #f
        #:make-flags
@@ -60,7 +61,7 @@
 
              ;; Set the RUNPATH to $libdir so that the libs find each other.
              (string-append "linkflags=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib")
+                            (assoc-ref %outputs "lib") "/lib")
 
              ;; Boost's 'context' library is not yet supported on mips64, so
              ;; we disable it.  The 'coroutine' library depends on 'context',
@@ -99,7 +100,13 @@
          (replace
              'install
            (lambda* (#:key outputs make-flags #:allow-other-keys)
-             (zero? (apply system* "./b2" "install" make-flags)))))))
+             (zero? (apply system* "./b2" "install" make-flags))))
+         (add-after 'install 'mv-lib
+           (lambda _
+             (mkdir-p (assoc-ref %outputs "lib"))
+             (rename-file (string-append %output "/lib")
+                          (string-append (assoc-ref %outputs "lib")
+                                         "/lib")))))))
 
     (home-page "http://boost.org";)
     (synopsis "Peer-reviewed portable C++ source libraries")
-- 
2.11.0


reply via email to

[Prev in Thread] Current Thread [Next in Thread]