Olaf Hering
2011-Nov-22 11:35 UTC
[PATCH] use ncurses-config to find all curses related libs
After a split of libtinfo from libncurses in openSuSE Factory the tools will not link anymore. In the URL below it was suggested to use ''ncurses-config --libs'' to find the correct linker options. But ncurses-config does not exist neither in SLES11 nor in openSuSE. So check for both ncurses5-config and ncurses-config, if the latter happens to exist in other environments. With this change xen-unstable tools build succeeds again in SLES11 and the latest openSuSE development branch. http://lists.opensuse.org/opensuse-packaging/2011-11/msg00055.html Signed-off-by: Olaf Hering <olaf@aepfle.de> diff -r 0b1ac7b3ee4d config/StdGNU.mk --- a/config/StdGNU.mk +++ b/config/StdGNU.mk @@ -67,7 +67,7 @@ XEN_CONFIG_DIR = $(CONFIG_DIR)/xen XEN_SCRIPT_DIR = $(XEN_CONFIG_DIR)/scripts SOCKET_LIBS -CURSES_LIBS = -lncurses +CURSES_LIBS = $(shell if ! ncurses5-config --libs 2>/dev/null ; then ncurses-config --libs ; fi) PTHREAD_LIBS = -lpthread UTIL_LIBS = -lutil DLOPEN_LIBS = -ldl
Ian Jackson
2011-Nov-24 18:38 UTC
Re: [PATCH] use ncurses-config to find all curses related libs
Olaf Hering writes ("[Xen-devel] [PATCH] use ncurses-config to find all curses related libs"):> After a split of libtinfo from libncurses in openSuSE Factory the tools > will not link anymore. In the URL below it was suggested to use > ''ncurses-config --libs'' to find the correct linker options. But > ncurses-config does not exist neither in SLES11 nor in openSuSE. So > check for both ncurses5-config and ncurses-config, if the latter happens > to exist in other environments. > > With this change xen-unstable tools build succeeds again in SLES11 and > the latest openSuSE development branch.Thanks. However:> -CURSES_LIBS = -lncurses > +CURSES_LIBS = $(shell if ! ncurses5-config --libs 2>/dev/null ; then ncurses-config --libs ; fi)In the case where ncurses5-config is not provided, this will fail. Ian.
Olaf Hering
2011-Nov-24 18:49 UTC
Re: [PATCH] use ncurses-config to find all curses related libs
On Thu, Nov 24, Ian Jackson wrote:> Olaf Hering writes ("[Xen-devel] [PATCH] use ncurses-config to find all curses related libs"): > > -CURSES_LIBS = -lncurses > > +CURSES_LIBS = $(shell if ! ncurses5-config --libs 2>/dev/null ; then ncurses-config --libs ; fi) > > In the case where ncurses5-config is not provided, this will fail.It seems to work for me, with this example foo is printed: if ! ABC 2>/dev/null ; then echo foo ; fi Olaf
Ian Jackson
2011-Nov-24 18:53 UTC
Re: [PATCH] use ncurses-config to find all curses related libs
Olaf Hering writes ("Re: [Xen-devel] [PATCH] use ncurses-config to find all curses related libs"):> On Thu, Nov 24, Ian Jackson wrote: > > Olaf Hering writes ("[Xen-devel] [PATCH] use ncurses-config to find all curses related libs"): > > > -CURSES_LIBS = -lncurses > > > +CURSES_LIBS = $(shell if ! ncurses5-config --libs 2>/dev/null ; then ncurses-config --libs ; fi) > > > > In the case where ncurses5-config is not provided, this will fail.Sorry, I wasn''t sufficiently clear. The case that fails is if neither ncurses5-config nor ncurses-config is provided. The default should be to use -lncurses as before.> It seems to work for me, with this example foo is printed: > > if ! ABC 2>/dev/null ; then echo foo ; fiYes, but it won''t include -lncurses in CURSES_LIBS. Ian.
Olaf Hering
2011-Nov-24 19:15 UTC
Re: [PATCH] use ncurses-config to find all curses related libs
On Thu, Nov 24, Ian Jackson wrote:> Olaf Hering writes ("Re: [Xen-devel] [PATCH] use ncurses-config to find all curses related libs"): > > On Thu, Nov 24, Ian Jackson wrote: > > > Olaf Hering writes ("[Xen-devel] [PATCH] use ncurses-config to find all curses related libs"): > > > > -CURSES_LIBS = -lncurses > > > > +CURSES_LIBS = $(shell if ! ncurses5-config --libs 2>/dev/null ; then ncurses-config --libs ; fi) > > > > > > In the case where ncurses5-config is not provided, this will fail. > > Sorry, I wasn''t sufficiently clear. The case that fails is if neither > ncurses5-config nor ncurses-config is provided. The default should be > to use -lncurses as before.I see. Another if construct, or a check_ncurses script which looks for ncurses5-config or ncurses-config. After some digging in old SuSE releases, ncurses5-config appeared in 11.0 (2008), SLES10 does not have it yes . So blindly relying on -config scripts will likely break building on old distributions. This should work: if ! ncurses5-config --libs 2>/dev/null;then if ! ncurses-config --libs ; then echo ''-lncurses'' ; fi ; fi Olaf
Ian Jackson
2011-Nov-24 19:20 UTC
Re: [PATCH] use ncurses-config to find all curses related libs
Olaf Hering writes ("Re: [Xen-devel] [PATCH] use ncurses-config to find all curses related libs"):> This should work: > > if ! ncurses5-config --libs 2>/dev/null;then if ! ncurses-config --libs ; then echo ''-lncurses'' ; fi ; fiThat''s an improvement, but it reruns the shell rune for every time CURSES_LIBS is expanded. Ian.
Olaf Hering
2011-Nov-24 19:37 UTC
Re: [PATCH] use ncurses-config to find all curses related libs
On Thu, Nov 24, Ian Jackson wrote:> Olaf Hering writes ("Re: [Xen-devel] [PATCH] use ncurses-config to find all curses related libs"): > > This should work: > > > > if ! ncurses5-config --libs 2>/dev/null;then if ! ncurses-config --libs ; then echo ''-lncurses'' ; fi ; fi > > That''s an improvement, but it reruns the shell rune for every time > CURSES_LIBS is expanded.Right. I remember there are ways to assign a variable only once, I will check the make documentation. Olaf
Olaf Hering
2011-Nov-29 12:50 UTC
[PATCH v2] use ncurses-config to find all curses related libs
After a split of libtinfo from libncurses in openSuSE Factory the tools will not link anymore. In the URL below it was suggested to use ''ncurses-config --libs'' to find the correct linker options. But ncurses-config does not exist neither in SLES11 nor in openSuSE. So check for both ncurses5-config and ncurses-config, if the latter happens to exist in other environments. With this change xen-unstable tools build succeeds again in SLES11 and the latest openSuSE development branch. http://lists.opensuse.org/opensuse-packaging/2011-11/msg00055.html Signed-off-by: Olaf Hering <olaf@aepfle.de> diff -r 4319d77f5b3b config/StdGNU.mk --- a/config/StdGNU.mk +++ b/config/StdGNU.mk @@ -67,7 +67,7 @@ XEN_CONFIG_DIR = $(CONFIG_DIR)/xen XEN_SCRIPT_DIR = $(XEN_CONFIG_DIR)/scripts SOCKET_LIBS -CURSES_LIBS = -lncurses +CURSES_LIBS ?= $(shell if ! ncurses5-config --libs 2>/dev/null;then if ! ncurses-config --libs 2>/dev/null;then echo -lncurses;fi;fi) PTHREAD_LIBS = -lpthread UTIL_LIBS = -lutil DLOPEN_LIBS = -ldl