From: Jan Nieuwenhuizen <janneke@gnu.org>
To: guix-devel@gnu.org
Subject: [PATCH 10/11] gnu: ncurses: build mingw with libtool.
Date: Tue, 9 Aug 2016 08:41:38 +0200 [thread overview]
Message-ID: <20160809064139.27872-11-janneke@gnu.org> (raw)
In-Reply-To: <20160809064139.27872-1-janneke@gnu.org>
* 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.9.2
next prev parent reply other threads:[~2016-08-09 6:42 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-09 6:41 mingw guile.exe cross build patch series v9 Jan Nieuwenhuizen
2016-08-09 6:41 ` [PATCH 01/11] gnu: Add gcc-cross-x86_64 packages for testing Jan Nieuwenhuizen
2016-08-09 6:41 ` [PATCH 02/11] gnu: Add mingw-w64 Jan Nieuwenhuizen
2016-08-09 7:28 ` Alex Kost
2016-08-09 15:56 ` Jan Nieuwenhuizen
2016-08-10 10:37 ` Alex Kost
2016-08-09 6:41 ` [PATCH 03/11] gnu: cross-build: i686-w64-mingw32: new cross target Jan Nieuwenhuizen
2016-08-09 6:41 ` [PATCH 04/11] gnu: Add function libiconv-if-needed Jan Nieuwenhuizen
2016-08-09 6:41 ` [PATCH 05/11] gnu: libunistring: support mingw: propagate libiconv if needed Jan Nieuwenhuizen
2016-08-09 7:37 ` Alex Kost
2016-08-09 16:00 ` Jan Nieuwenhuizen
2016-08-09 6:41 ` [PATCH 06/11] gnu: gmp: build shared library for mingw Jan Nieuwenhuizen
2016-08-09 6:41 ` [PATCH 07/11] gnu: ncurses: support mingw Jan Nieuwenhuizen
2016-08-09 7:53 ` Alex Kost
2016-08-09 15:59 ` Jan Nieuwenhuizen
2016-08-10 10:47 ` Alex Kost
2016-08-10 13:08 ` Jan Nieuwenhuizen
2016-08-10 18:04 ` Mark H Weaver
2016-08-14 16:54 ` Mark H Weaver
2016-08-15 16:37 ` Jan Nieuwenhuizen
2016-08-16 10:26 ` Ricardo Wurmus
2016-08-16 11:53 ` Guile question ... " Jan Nieuwenhuizen
2016-08-16 18:24 ` Jan Nieuwenhuizen
2016-08-09 6:41 ` [PATCH 08/11] gnu: cross-base: Add cross-libtool Jan Nieuwenhuizen
2016-08-09 8:08 ` Alex Kost
2016-08-09 16:04 ` Jan Nieuwenhuizen
2016-08-10 11:12 ` Alex Kost
2016-08-09 6:41 ` [PATCH 09/11] gnu: libtool: support cross-libtool mingw Jan Nieuwenhuizen
2016-08-09 6:41 ` Jan Nieuwenhuizen [this message]
2016-08-09 6:41 ` [PATCH 11/11] gnu: readline: support mingw Jan Nieuwenhuizen
2016-08-09 8:30 ` mingw guile.exe cross build patch series v9 Andy Wingo
2016-08-09 15:41 ` Jan Nieuwenhuizen
2016-08-10 11:03 ` Alex Kost
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160809064139.27872-11-janneke@gnu.org \
--to=janneke@gnu.org \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).