diff mbox

[1/2] gnu: ncurses: Install pkg-config ‘.pc’ files.

Message ID 20161107180538.21231-2-me@tobias.gr
State New
Headers show

Commit Message

Tobias Geerinckx-Rice Nov. 7, 2016, 6:05 p.m. UTC
* gnu/packages/ncurses.scm (ncurses)[arguments]: Add ‘--enable-pc-files’
and ‘--with-pkg-config-libdir=’ to #:configure-flags. Create ‘non-wide’
compatibility symbolic links for ‘.pc’ files in the post-install-phase.
[native-inputs]: Add pkg-config.
---
 gnu/packages/ncurses.scm | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

Comments

Mark H Weaver Nov. 8, 2016, 8:55 p.m. UTC | #1
Tobias Geerinckx-Rice <me@tobias.gr> writes:

> * gnu/packages/ncurses.scm (ncurses)[arguments]: Add ‘--enable-pc-files’
> and ‘--with-pkg-config-libdir=’ to #:configure-flags. Create ‘non-wide’
> compatibility symbolic links for ‘.pc’ files in the post-install-phase.
> [native-inputs]: Add pkg-config.

This will have to wait for the next 'core-updates' cycle, since it would
require about 13000 rebuilds.  The current 'core-updates' is almost
ready to be merged into 'master'.

       Mark
diff mbox

Patch

diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index 9799167..46e4adc 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -26,7 +26,8 @@ 
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
   #:use-module (gnu packages)
-  #:use-module (gnu packages perl))
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config))
 
 (define-public ncurses
   (let ((patch-makefile-phase
@@ -68,7 +69,7 @@ 
             (let ((out (assoc-ref outputs "out")))
               ;; When building a wide-character (Unicode) build, create backward
               ;; compatibility links from the the "normal" libraries to the
-              ;; wide-character libraries (e.g. libncurses.so to libncursesw.so).
+              ;; wide-character ones (e.g. libncurses.so to libncursesw.so).
               (with-directory-excursion (string-append out "/lib")
                 (for-each (lambda (lib)
                             (define libw.a
@@ -81,6 +82,10 @@ 
                               (string-append "lib" lib ".so.6"))
                             (define lib.so
                               (string-append "lib" lib ".so"))
+                            (define packagew.pc
+                              (string-append lib "w.pc"))
+                            (define package.pc
+                              (string-append lib ".pc"))
 
                             (when (file-exists? libw.a)
                               (format #t "creating symlinks for `lib~a'~%" lib)
@@ -89,7 +94,11 @@ 
                               (false-if-exception (delete-file lib.so))
                               (call-with-output-file lib.so
                                 (lambda (p)
-                                  (format p "INPUT (-l~aw)~%" lib)))))
+                                  (format p "INPUT (-l~aw)~%" lib))))
+                            (with-directory-excursion "pkgconfig"
+                              (format #t "creating symlink for `~a'~%" package.pc)
+                              (when (file-exists? packagew.pc)
+                                (symlink packagew.pc package.pc))))
                           '("curses" "ncurses" "form" "panel" "menu")))))))
     (package
      (name "ncurses")
@@ -108,6 +117,11 @@ 
       `(#:configure-flags
         `("--with-shared" "--without-debug" "--enable-widec"
 
+          "--enable-pc-files"
+          ,(string-append "--with-pkg-config-libdir="
+                          (assoc-ref %outputs "out")
+                          "/lib/pkgconfig")
+
           ;; By default headers land in an `ncursesw' subdir, which is not
           ;; what users expect.
           ,(string-append "--includedir=" (assoc-ref %outputs "out")
@@ -128,6 +142,8 @@ 
                    (add-after 'unpack 'remove-unneeded-shebang
                      ,remove-shebang-phase))))
      (self-native-input? #t)                      ; for `tic'
+     (native-inputs
+      `(("pkg-config" ,pkg-config)))
      (native-search-paths
       (list (search-path-specification
              (variable "TERMINFO_DIRS")