From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: [PATCH 09/11] gnu: ncurses: build mingw with libtool. Date: Sun, 8 May 2016 22:42:47 +0200 Message-ID: <1462740169-15029-10-git-send-email-janneke@gnu.org> References: <1462740169-15029-1-git-send-email-janneke@gnu.org> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57327) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1azVXk-0004ac-Os for guix-devel@gnu.org; Sun, 08 May 2016 16:43:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1azVXg-0008Jm-RY for guix-devel@gnu.org; Sun, 08 May 2016 16:43:12 -0400 In-Reply-To: <1462740169-15029-1-git-send-email-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 | 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