[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 09/11] gnu: ncurses: build mingw with libtool.
From: |
Jan Nieuwenhuizen |
Subject: |
[PATCH 09/11] gnu: ncurses: build mingw with libtool. |
Date: |
Sun, 8 May 2016 22:42:47 +0200 |
* gnu/packages/ncurses.scm (ncurses)[MINGW]: Build with libtool, as
recommended; enables dlopen'ing.
---
gnu/packages/ncurses.scm | 32 ++++++++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index 840dcf2..4c255c9 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
(let ((patch-makefile-phase
'(lambda _
@@ -80,14 +85,13 @@
(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)))
libraries))
- ;; TODO: create .la files to link to the .dll?
(with-directory-excursion (string-append out "/lib")
(for-each
(lambda (lib)
@@ -95,10 +99,17 @@
(string-append "lib" lib "w.a"))
(define lib.a
(string-append "lib" lib ".a"))
+ (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)
- (symlink libw.a lib.a)))
+ (symlink libw.a lib.a))
+ (when (file-exists? libw.la)
+ (format #t "creating symlinks for `lib~a'~%" lib)
+ (symlink libw.la lib.la)))
libraries)))
(else
(with-directory-excursion (string-append out "/lib")
@@ -135,6 +146,10 @@
(sha256
(base32
"0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm"))))
+ ;; add to gnu:standard-cross-packages?
+ (native-inputs `(,@(if (mingw-target?)
+ `(,@(cross-libtool))
+ '())))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;1 MiB of man pages
@@ -152,8 +167,9 @@
;; correct RUNPATH.
,(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out")
"/lib")
- ;; MinGW: Provide termcap api, created for the MinGW port.
- ,@(if ,(mingw-target?) '("--enable-term-driver") '()))
+ ;; MinGW: Provide termcap api, created for the MinGW port,
+ ;; use litbool to build .la files to dlopen.
+ ,@(if ,(mingw-target?) `("--enable-term-driver" "--with-libtool")
'()))
#:tests? #f ; no "check" target
#:phases (modify-phases %standard-phases
(replace 'configure ,configure-phase)
--
2.7.3
[PATCH 10/11] gnu: readline: support mingw., Jan Nieuwenhuizen, 2016/05/08
[PATCH 09/11] gnu: ncurses: build mingw with libtool.,
Jan Nieuwenhuizen <=
[PATCH 08/11] gnu: libtool: support cross-libtool mingw., Jan Nieuwenhuizen, 2016/05/08
[PATCH 11/11] gnu: guile-2.0: support mingw., Jan Nieuwenhuizen, 2016/05/08