Patchwork [3/3,v2] configure: try pkg-config for curses

login
register
mail settings
Submitter Vadim Evard
Date Jan. 15, 2013, 11:34 p.m.
Message ID <50F5E785.6060304@gmail.com>
Download mbox | patch
Permalink /patch/212351/
State New
Headers show

Comments

Vadim Evard - Jan. 15, 2013, 11:34 p.m.
Static linkikng against ncurses may require explicit -ltinfo.
In case -lcurses and -lncurses both didn't work give pkg-config a
chance.

Fixes #1094786 for me.

Signed-off-by: Vadim Evard <v.e.evard@gmail.com>
Signed-off-by: Stefan Hajnoczi<stefanha@redhat.com>
---
 configure |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Anthony Liguori - Jan. 15, 2013, 11:39 p.m.
Vadim Evard <v.e.evard@gmail.com> writes:

> Static linkikng against ncurses may require explicit -ltinfo.
> In case -lcurses and -lncurses both didn't work give pkg-config a
> chance.
>
> Fixes #1094786 for me.
>
> Signed-off-by: Vadim Evard <v.e.evard@gmail.com>
> Signed-off-by: Stefan Hajnoczi<stefanha@redhat.com>

The original patch is already in master so you'll need to send an
incremental one.

Regards,

Anthony Liguori

> ---
>  configure |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index c908f66..477c4e0 100755
> --- a/configure
> +++ b/configure
> @@ -2039,7 +2039,7 @@ fi
>  if test "$mingw32" = "yes" ; then
>      curses_list="-lpdcurses"
>  else
> -    curses_list="-lncurses -lcurses"
> +    curses_list="-lncurses:-lcurses:$($pkg_config --libs ncurses 2>/dev/null)"
>  fi
>
>  if test "$curses" != "no" ; then
> @@ -2052,13 +2052,16 @@ int main(void) {
>    return s != 0;
>  }
>  EOF
> +  IFS=:
>    for curses_lib in $curses_list; do
> +    unset IFS
>      if compile_prog "" "$curses_lib" ; then
>        curses_found=yes
>        libs_softmmu="$curses_lib $libs_softmmu"
>        break
>      fi
>    done
> +  unset IFS
>    if test "$curses_found" = "yes" ; then
>      curses=yes
>    else
> -- 
> 1.7.10.4
>
>
>
> On 16.01.2013 02:57, Anthony Liguori wrote:
>> Stefan Hajnoczi<stefanha@redhat.com>  writes:
>>
>>> From: Vadim Evard<v.e.evard@gmail.com>
>>>
>>> Static linkikng against ncurses may require explicit -ltinfo.
>>> In case -lcurses and -lncurses both didn't work give pkg-config a
>>> chance.
>>>
>>> Fixes #1094786 for me.
>>>
>>> Signed-off-by: Vadim Evard<v.e.evard@gmail.com>
>>> Signed-off-by: Stefan Hajnoczi<stefanha@redhat.com>
>>> ---
>>>   configure | 5 ++++-
>>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/configure b/configure
>>> index c908f66..40473a9 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -2039,7 +2039,7 @@ fi
>>>   if test "$mingw32" = "yes" ; then
>>>       curses_list="-lpdcurses"
>>>   else
>>> -    curses_list="-lncurses -lcurses"
>>> +    curses_list="-lncurses:-lcurses:$($pkg_config --libs ncurses)"
>>
>> Please fix this as a follow up but this is sloppy.
>>
>> pkg-config spews stuff to stderr when a package isn't found so this ends
>> up outputting junk in the configure if ncurses isn't found.
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>>   fi
>>>
>>>   if test "$curses" != "no" ; then
>>> @@ -2052,13 +2052,16 @@ int main(void) {
>>>     return s != 0;
>>>   }
>>>   EOF
>>> +  IFS=:
>>>     for curses_lib in $curses_list; do
>>> +    unset IFS
>>>       if compile_prog "" "$curses_lib" ; then
>>>         curses_found=yes
>>>         libs_softmmu="$curses_lib $libs_softmmu"
>>>         break
>>>       fi
>>>     done
>>> +  unset IFS
>>>     if test "$curses_found" = "yes" ; then
>>>       curses=yes
>>>     else
>>> --
>>> 1.8.0.2
>>

Patch

diff --git a/configure b/configure
index c908f66..477c4e0 100755
--- a/configure
+++ b/configure
@@ -2039,7 +2039,7 @@  fi
 if test "$mingw32" = "yes" ; then
     curses_list="-lpdcurses"
 else
-    curses_list="-lncurses -lcurses"
+    curses_list="-lncurses:-lcurses:$($pkg_config --libs ncurses 2>/dev/null)"
 fi

 if test "$curses" != "no" ; then
@@ -2052,13 +2052,16 @@  int main(void) {
   return s != 0;
 }
 EOF
+  IFS=:
   for curses_lib in $curses_list; do
+    unset IFS
     if compile_prog "" "$curses_lib" ; then
       curses_found=yes
       libs_softmmu="$curses_lib $libs_softmmu"
       break
     fi
   done
+  unset IFS
   if test "$curses_found" = "yes" ; then
     curses=yes
   else