[1/2] menuconfig: optionally use pkg-config to detect ncurses libs
diff mbox

Message ID fc9c6e000f62c2eeda426d4d5f022b3d57729bb0.1362679061.git.yann.morin.1998@free.fr
State New, archived
Headers show

Commit Message

Yann E. MORIN March 7, 2013, 6:20 p.m. UTC
From: Justin Lecher <jlec@gentoo.org>

When building ncurses with --with-termlib several symbols get moved from
libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
additionally needs to link with libtinfo.so.

The ncurses pkg-config module will be used to detect the necessary libs for
linking. If not available the old heuristic for detection of the ncurses libs
will be used.

Signed-off-by: Justin Lecher <jlec@gentoo.org>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 scripts/kconfig/lxdialog/check-lxdialog.sh |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Comments

Michal Marek March 21, 2013, 10:09 p.m. UTC | #1
Dne 7.3.2013 19:20, Yann E. MORIN napsal(a):
> From: Justin Lecher <jlec@gentoo.org>
> 
> When building ncurses with --with-termlib several symbols get moved from
> libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
> additionally needs to link with libtinfo.so.
> 
> The ncurses pkg-config module will be used to detect the necessary libs for
> linking. If not available the old heuristic for detection of the ncurses libs
> will be used.
> 
> Signed-off-by: Justin Lecher <jlec@gentoo.org>
> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> ---
>  scripts/kconfig/lxdialog/check-lxdialog.sh |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
> index 8078813..782d200 100644
> --- a/scripts/kconfig/lxdialog/check-lxdialog.sh
> +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
> @@ -4,6 +4,8 @@
>  # What library to link
>  ldflags()
>  {
> +	pkg-config --libs ncursesw 2>/dev/null && exit
> +	pkg-config --libs ncurses 2>/dev/null && exit
>  	for ext in so a dll.a dylib ; do
>  		for lib in ncursesw ncurses curses ; do

Do you also plan to use pkg-config in the ccflags function?

Thanks,
Michal

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yann E. MORIN March 22, 2013, 6:30 p.m. UTC | #2
Michal, All,

On Thursday 21 March 2013 Michal Marek wrote:
> Dne 7.3.2013 19:20, Yann E. MORIN napsal(a):
> > From: Justin Lecher <jlec@gentoo.org>
[--SNIP--]
> > diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
> > index 8078813..782d200 100644
> > --- a/scripts/kconfig/lxdialog/check-lxdialog.sh
> > +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
> > @@ -4,6 +4,8 @@
> >  # What library to link
> >  ldflags()
> >  {
> > +	pkg-config --libs ncursesw 2>/dev/null && exit
> > +	pkg-config --libs ncurses 2>/dev/null && exit
> >  	for ext in so a dll.a dylib ; do
> >  		for lib in ncursesw ncurses curses ; do
> 
> Do you also plan to use pkg-config in the ccflags function?

That was my intention to pursue Justin's work to the CFLAGS, but that is
not so simple for menuconfig as it is for the libs, as:

  - we need the name of the header to include: '-DCURSES_LOC="<path/ncurses.h>"'
    (where 'path' is a relative path) which we use as: #include CURSES_LOC
  - there is no way to get this info from pkg-config

So, I'll be working a bit more on this this WE, and see if I can come with
something meaningful and not too ugly. ;-)

Regards,
Yann E. MORIN.

Patch
diff mbox

diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
index 8078813..782d200 100644
--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -4,6 +4,8 @@ 
 # What library to link
 ldflags()
 {
+	pkg-config --libs ncursesw 2>/dev/null && exit
+	pkg-config --libs ncurses 2>/dev/null && exit
 	for ext in so a dll.a dylib ; do
 		for lib in ncursesw ncurses curses ; do
 			$cc -print-file-name=lib${lib}.${ext} | grep -q /