[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
- Re: [PATCH 02/12] gnu: Add mingw-w64., (continued)
- [PATCH 03/12] gnu: cross-build: i686-w64-mingw32: new cross target., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 04/12] gnu: Add function libiconv-if-needed., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 05/12] gnu: libunistring: support mingw: propagate libiconv if needed., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 06/12] gnu: gmp: build shared library for mingw., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 08/12] gnu: cross-base: Add cross-libtool., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 09/12] gnu: libtool: support cross-libtool mingw., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 07/12] gnu: ncurses: support mingw., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 12/12] gnu: guile-2.0: support mingw., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 01/12] gnu: Add gcc-cross-x86_64 packages for testing., Jan Nieuwenhuizen, 2016/08/18
- [PATCH 10/12] gnu: ncurses: build mingw with libtool.,
Jan Nieuwenhuizen <=
- [PATCH 11/12] gnu: readline: support mingw., Jan Nieuwenhuizen, 2016/08/18