guix-devel
[Top][All Lists]
Advanced

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

[PATCH 10/12] gnu: ncurses: build mingw with libtool.


From: Jan Nieuwenhuizen
Subject: [PATCH 10/12] gnu: ncurses: build mingw with libtool.
Date: Thu, 18 Aug 2016 08:08:49 +0200

* gnu/packages/ncurses.scm (ncurses)[MINGW]: Build with libtool, as
recommended; enables dlopen'ing.
---
 gnu/packages/ncurses.scm | 33 +++++++++++++++++++++++++--------
 1 file changed, 25 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index 4d26fde..74a8470 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -27,6 +27,11 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu))
 
+(define* (cross-libtool #:optional (target (%current-target-system)))
+  (let* ((libtool (resolve-interface '(gnu packages cross-base)))
+         (cross-libtool (module-ref libtool 'cross-libtool)))
+    `(("xlibtool" ,(cross-libtool target)))))
+
 (define-public ncurses
   (package
     (name "ncurses")
@@ -41,6 +46,9 @@
               (patches (if (target-mingw?)
                            (search-patches "ncurses-mingw.patch")
                            '()))))
+    (native-inputs `(,@(if (target-mingw?)
+                           `(,@(cross-libtool))
+                           '())))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                ;1 MiB of man pages
@@ -92,12 +100,12 @@
                             (lambda (lib)
                               (define lib.dll
                                 (string-append "lib" lib ".dll"))
-                              (define libw6.dll
-                                (string-append "lib" lib "w6.dll"))
+                              (define libw-6.dll
+                                (string-append "lib" lib "w-6.dll"))
 
-                              (when (file-exists? libw6.dll)
+                              (when (file-exists? libw-6.dll)
                                 (format #t "creating symlinks for `lib~a'~%" 
lib)
-                                (symlink libw6.dll lib.dll)))
+                                (symlink libw-6.dll lib.dll)))
                             '("curses" "ncurses" "form" "panel" "menu"))))
                        '())
                  (with-directory-excursion (string-append out "/lib")
@@ -114,7 +122,10 @@
                                          (string-append "lib" lib ".so.6"))
                                        (define lib.so
                                          (string-append "lib" lib ".so")))
-                                     '())
+                                     '((define libw.la
+                                         (string-append "lib" lib "w.la"))
+                                       (define lib.la
+                                         (string-append "lib" lib ".la"))))
 
                                (when (file-exists? libw.a)
                                  (format #t "creating symlinks for `lib~a'~%" 
lib)
@@ -125,7 +136,13 @@
                                          (call-with-output-file lib.so
                                            (lambda (p)
                                              (format p "INPUT (-l~aw)~%" 
lib))))
-                                       '())))
+                                       '()))
+
+                               ,@(if (target-mingw?)
+                                     '((when (file-exists? libw.la)
+                                         (format #t "creating symlinks for 
`lib~a'~%" lib)
+                                         (symlink libw.la lib.la)))
+                                     '()))
                              '("curses" "ncurses" "form" "panel" "menu")))))))
        `(#:configure-flags
          ,(cons*
@@ -142,8 +159,8 @@
               ;; correct RUNPATH.
               ,(list 'unquote '(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref 
%outputs "out")
                                               "/lib"))
-              ;; MinGW: Use term-driver created for the MinGW port.
-              ,@(if (target-mingw?) '("--enable-term-driver") '()))))
+              ;; MinGW: Use term-driver created for the MinGW port, libtool.
+              ,@(if (target-mingw?) '("--enable-term-driver" "--with-libtool") 
'()))))
          #:tests? #f                  ; no "check" target
          #:phases (modify-phases %standard-phases
                     (replace 'configure ,configure-phase)
-- 
2.9.2




reply via email to

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