summary refs log tree commit diff
path: root/gnu/packages/boost.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/boost.scm')
-rw-r--r--gnu/packages/boost.scm41
1 files changed, 35 insertions, 6 deletions
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 2f2ca289ab..d28c58d663 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -241,12 +242,40 @@ across a broad spectrum of applications.")
     (arguments (substitute-keyword-arguments (package-arguments boost)
       ((#:phases phases)
        `(modify-phases ,phases
-          ;; This was removed after boost-1.67.
-          (add-before 'configure 'more-bin-sh-patching
-            (lambda _
-              (substitute* "tools/build/doc/bjam.qbk"
-                (("/bin/sh") (which "sh")))))
-          (delete 'provide-libboost_python)))))
+          (replace 'configure
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((icu (assoc-ref inputs "icu4c"))
+                    (out (assoc-ref outputs "out")))
+                (substitute* (append
+                               (find-files "tools/build/src/engine/" "execunix\\.c.*")
+                               '("libs/config/configure"
+                                 "libs/spirit/classic/phoenix/test/runtest.sh"
+                                 "tools/build/doc/bjam.qbk"
+                                 "tools/build/src/engine/Jambase"))
+                  (("/bin/sh") (which "sh")))
+
+                (setenv "SHELL" (which "sh"))
+                (setenv "CONFIG_SHELL" (which "sh"))
+
+                ,@(if (%current-target-system)
+                    `((call-with-output-file "user-config.jam"
+                        (lambda (port)
+                          (format port
+                                  "using gcc : cross : ~a-c++ ;"
+                                  ,(%current-target-system)))))
+                    '())
+
+                (invoke "./bootstrap.sh"
+                        (string-append "--prefix=" out)
+                        ;; Auto-detection looks for ICU only in traditional
+                        ;; install locations.
+                        (string-append "--with-icu=" icu)
+                        "--with-toolset=gcc"))))
+          (delete 'provide-libboost_python)))
+      ((#:make-flags make-flags)
+       `(cons* "--without-python" ,make-flags))))
+    (native-inputs
+     (alist-delete "python" (package-native-inputs boost)))
     (properties '((hidden? . #t)))))
 
 (define-public boost-sync