From: Randy Dunlap <rdunlap@infradead.org>
To: Masahiro Yamada <yamada.masahiro@socionext.com>,
linux-kbuild@vger.kernel.org
Cc: "Luis R . Rodriguez" <mcgrof@suse.com>,
Ulf Magnusson <ulfalizer@gmail.com>,
Sam Ravnborg <sam@ravnborg.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 5/5] kconfig: refactor ncurses package checks for building nconf
Date: Sun, 20 May 2018 16:31:58 -0700 [thread overview]
Message-ID: <6ddb1db4-97e5-44a0-e154-be1140fffa16@infradead.org> (raw)
In-Reply-To: <1526804213-8238-6-git-send-email-yamada.masahiro@socionext.com>
On 05/20/2018 01:16 AM, Masahiro Yamada wrote:
> Building nconf requires ncurses, but its presence is not checked.
> Check and configure necessary packages by a shell script like the
> other GUI frontends.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
>
> Changes in v2:
> - Add fallback code in case distributions cannot find
> ncurses by pkg-config.
>
Hi,
Patch 4/5 for mconf works for me, but this one is failing.
$ make ARCH=x86_64 O=xx64 nconfig
make[1]: Entering directory '/home/rdunlap/lnx/next/linux-next-20180517/xx64'
GEN ./Makefile
UPD scripts/kconfig/.nconf-cfg
HOSTCC scripts/kconfig/nconf.o
In file included from ../scripts/kconfig/nconf.c:15:0:
../scripts/kconfig/nconf.h:19:18: fatal error: menu.h: No such file or directory
#include <menu.h>
^
compilation terminated.
scripts/Makefile.host:107: recipe for target 'scripts/kconfig/nconf.o' failed
make[2]: *** [scripts/kconfig/nconf.o] Error 1
/home/rdunlap/lnx/next/linux-next-20180517/Makefile:525: recipe for target 'nconfig' failed
make[1]: *** [nconfig] Error 2
make[1]: Leaving directory '/home/rdunlap/lnx/next/linux-next-20180517/xx64'
Makefile:146: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
xx64/scripts/kconfig/.nconf-cfg contains:
libs="-lncursesw -lmenuw -lpanelw"
There are several menu.h files in /usr/include:
$ find . -name menu.h
./ncurses6/ncursesw/menu.h
./ncurses6/ncurses/menu.h
./ncursesw/menu.h
./claws-mail/gtk/menu.h
./ncurses/menu.h
> scripts/kconfig/Makefile | 16 ++++++++--------
> scripts/kconfig/nconf-cfg.sh | 34 ++++++++++++++++++++++++++++++++++
> 2 files changed, 42 insertions(+), 8 deletions(-)
> create mode 100644 scripts/kconfig/nconf-cfg.sh
>
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 25a3d25..b90e801 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -176,15 +176,12 @@ help:
> # ===========================================================================
> # Shared Makefile for the various kconfig executables:
> # conf: Used for defconfig, oldconfig and related targets
> -# nconf: Used for the nconfig target.
> -# Utilizes ncurses
> # object files used by all kconfig flavours
>
> conf-objs := conf.o zconf.tab.o
> -nconf-objs := nconf.o zconf.tab.o nconf.gui.o
> kxgettext-objs := kxgettext.o zconf.tab.o
>
> -hostprogs-y := conf nconf kxgettext
> +hostprogs-y := conf kxgettext
>
> targets += zconf.lex.c
> clean-files += gconf.glade.h
> @@ -199,10 +196,13 @@ HOST_EXTRACXXFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTC
> HOSTCFLAGS_zconf.lex.o := -I$(src)
> HOSTCFLAGS_zconf.tab.o := -I$(src)
>
> -HOSTLOADLIBES_nconf = $(shell \
> - pkg-config --libs menuw panelw ncursesw 2>/dev/null \
> - || pkg-config --libs menu panel ncurses 2>/dev/null \
> - || echo "-lmenu -lpanel -lncurses" )
> +# nconf: Used for the nconfig target based on ncurses
> +hostprogs-y += nconf
> +nconf-objs := nconf.o zconf.tab.o nconf.gui.o
> +
> +HOSTLOADLIBES_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs)
> +
> +$(obj)/nconf.o: $(obj)/.nconf-cfg
>
> # mconf: Used for the menuconfig target based on lxdialog
> hostprogs-y += mconf
> diff --git a/scripts/kconfig/nconf-cfg.sh b/scripts/kconfig/nconf-cfg.sh
> new file mode 100644
> index 0000000..8eb7948
> --- /dev/null
> +++ b/scripts/kconfig/nconf-cfg.sh
> @@ -0,0 +1,34 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +
> +PKG="ncursesw menuw panelw"
> +PKG2="ncurses menu panel"
> +
> +if pkg-config --exists $PKG; then
> + echo libs=\"$(pkg-config --libs $PKG)\"
> + exit 0
> +fi
> +
> +if pkg-config --exists $PKG2; then
> + echo libs=\"$(pkg-config --libs $PKG2)\"
> + exit 0
> +fi
> +
> +# Unfortunately, some distributions (e.g. openSUSE) cannot find ncurses
> +# by pkg-config.
> +if [ -f /usr/include/ncursesw/ncurses.h ]; then
> + echo libs=\"-lncursesw -lmenuw -lpanelw\"
> + exit 0
> +fi
> +
> +if [ -f /usr/include/ncurses.h ]; then
> + echo libs=\"-lncurses -lmenu -lpanel\"
> + exit 0
> +fi
> +
> +echo >&2 "*"
> +echo >&2 "* Unable to find the ncurses."
> +echo >&2 "* Install ncurses (ncurses-devel or libncurses-dev"
> +echo >&2 "* depending on your distribution)"
> +echo >&2 "*"
> +exit 1
>
--
~Randy
next prev parent reply other threads:[~2018-05-20 23:32 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-20 8:16 [PATCH v2 0/5] kconfig: refactor package checks for GUI frontends Masahiro Yamada
2018-05-20 8:16 ` [PATCH v2 1/5] kbuild: do not display CHK for filechk Masahiro Yamada
2018-05-20 8:16 ` [PATCH v2 2/5] kconfig: refactor Qt package checks for building qconf Masahiro Yamada
2018-05-20 9:45 ` Sam Ravnborg
2018-05-20 8:16 ` [PATCH v2 3/5] kconfig: refactor GTK+ package checks for building gconf Masahiro Yamada
2018-05-20 8:16 ` [PATCH v2 4/5] kconfig: refactor ncurses package checks for building mconf Masahiro Yamada
2018-05-20 10:06 ` Sam Ravnborg
2018-05-22 6:48 ` Masahiro Yamada
2018-05-22 15:49 ` Sam Ravnborg
2018-05-20 23:36 ` Randy Dunlap
2018-05-20 8:16 ` [PATCH v2 5/5] kconfig: refactor ncurses package checks for building nconf Masahiro Yamada
2018-05-20 23:31 ` Randy Dunlap [this message]
2018-05-20 23:41 ` Randy Dunlap
2018-05-21 4:48 ` Masahiro Yamada
2018-05-21 4:51 ` Randy Dunlap
2018-05-21 4:58 ` Masahiro Yamada
2018-05-21 6:24 ` Randy Dunlap
2018-05-21 6:58 ` Masahiro Yamada
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6ddb1db4-97e5-44a0-e154-be1140fffa16@infradead.org \
--to=rdunlap@infradead.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mcgrof@suse.com \
--cc=sam@ravnborg.org \
--cc=ulfalizer@gmail.com \
--cc=yamada.masahiro@socionext.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®