From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: [PATCH 10/12] gnu: ncurses: build mingw with libtool. Date: Thu, 18 Aug 2016 08:08:49 +0200 Message-ID: <20160818060851.2853-11-janneke@gnu.org> References: <20160818060851.2853-1-janneke@gnu.org> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49747) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1baGW9-00008I-7Q for guix-devel@gnu.org; Thu, 18 Aug 2016 02:09:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1baGW4-0008US-Gp for guix-devel@gnu.org; Thu, 18 Aug 2016 02:09:28 -0400 In-Reply-To: <20160818060851.2853-1-janneke@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org * 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