Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

kconfig: if ncurses-devel is missing then say so

With this patch when ncurses-devel (or whatever it is named)
is missing trying to run menuconfig will result in this:

$ make menuconfig
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/kxgettext.o
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig] Error 2

Much better than before where we just listed some build errors.
The other *config targets will work indepenednt on ncurses
being present or not.

Includes improvements suggested by: Frans Pop <elendil@planet.nl>

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Frans Pop <elendil@planet.nl>

+17 -13
+8 -6
scripts/kconfig/Makefile
··· 93 93 94 94 HOST_EXTRACFLAGS += -DLOCALE 95 95 96 - PHONY += $(obj)/dochecklxdialog 97 - $(obj)/dochecklxdialog: 98 - $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES) 99 - 100 - always := dochecklxdialog 101 - 102 96 103 97 # =========================================================================== 104 98 # Shared Makefile for the various kconfig executables: ··· 138 144 clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \ 139 145 .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c 140 146 clean-files += mconf qconf gconf 147 + 148 + # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) 149 + PHONY += $(obj)/dochecklxdialog 150 + $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog 151 + $(obj)/dochecklxdialog: 152 + $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES) 153 + 154 + always := dochecklxdialog 141 155 142 156 # Add environment specific flags 143 157 HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
+9 -7
scripts/kconfig/lxdialog/check-lxdialog.sh
··· 36 36 37 37 # Check if we can link to ncurses 38 38 check() { 39 - echo "main() {}" | $cc -xc - -o $tmp 2> /dev/null 39 + echo -e " #include CURSES_LOC \n main() {}" | 40 + $cc -xc - -o $tmp 2> /dev/null 40 41 if [ $? != 0 ]; then 41 - echo " *** Unable to find the ncurses libraries." 1>&2 42 - echo " *** make menuconfig require the ncurses libraries" 1>&2 43 - echo " *** " 1>&2 44 - echo " *** Install ncurses (ncurses-devel) and try again" 1>&2 45 - echo " *** " 1>&2 46 - exit 1 42 + echo " *** Unable to find the ncurses libraries or the" 1>&2 43 + echo " *** required header files." 1>&2 44 + echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2 45 + echo " *** " 1>&2 46 + echo " *** Install ncurses (ncurses-devel) and try again." 1>&2 47 + echo " *** " 1>&2 48 + exit 1 47 49 fi 48 50 } 49 51