kconfig: factor out ncurses check in a shell script
Cleaning up the lxdialog Makefile by factoring out the ncurses compatibility checks. This made the checks much more obvious and easier to extend. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This commit is contained in:
parent
d51bfb7852
commit
ae215b14bd
@ -1,42 +1,18 @@
|
|||||||
HOST_EXTRACFLAGS := -DLOCALE
|
# Makefile to build lxdialog package
|
||||||
ifeq ($(shell uname),SunOS)
|
#
|
||||||
HOST_LOADLIBES := -lcurses
|
|
||||||
else
|
|
||||||
HOST_LOADLIBES := -lncurses
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h))
|
check-lxdialog := $(srctree)/$(src)/check-lxdialog.sh
|
||||||
HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"
|
HOST_EXTRACFLAGS := $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
|
||||||
else
|
HOST_LOADLIBES := $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags)
|
||||||
ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h))
|
|
||||||
HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"
|
HOST_EXTRACFLAGS += -DLOCALE
|
||||||
else
|
|
||||||
ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h))
|
.PHONY: dochecklxdialog
|
||||||
HOST_EXTRACFLAGS += -DCURSES_LOC="<ncurses.h>"
|
$(obj)/dochecklxdialog:
|
||||||
else
|
$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES)
|
||||||
HOST_EXTRACFLAGS += -DCURSES_LOC="<curses.h>"
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
hostprogs-y := lxdialog
|
hostprogs-y := lxdialog
|
||||||
always := ncurses $(hostprogs-y)
|
always := $(hostprogs-y) dochecklxdialog
|
||||||
|
|
||||||
lxdialog-objs := checklist.o menubox.o textbox.o yesno.o inputbox.o \
|
lxdialog-objs := checklist.o menubox.o textbox.o yesno.o inputbox.o \
|
||||||
util.o lxdialog.o msgbox.o
|
util.o lxdialog.o msgbox.o
|
||||||
|
|
||||||
.PHONY: $(obj)/ncurses
|
|
||||||
$(obj)/ncurses:
|
|
||||||
@echo "main() {}" > lxtemp.c
|
|
||||||
@if $(HOSTCC) lxtemp.c $(HOST_LOADLIBES); then \
|
|
||||||
rm -f lxtemp.c a.out; \
|
|
||||||
else \
|
|
||||||
rm -f lxtemp.c; \
|
|
||||||
echo -e "\007" ;\
|
|
||||||
echo ">> Unable to find the Ncurses libraries." ;\
|
|
||||||
echo ">>" ;\
|
|
||||||
echo ">> You must install ncurses-devel in order" ;\
|
|
||||||
echo ">> to use 'make menuconfig'" ;\
|
|
||||||
echo ;\
|
|
||||||
exit 1 ;\
|
|
||||||
fi
|
|
||||||
|
67
scripts/kconfig/lxdialog/check-lxdialog.sh
Normal file
67
scripts/kconfig/lxdialog/check-lxdialog.sh
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Check ncurses compatibility
|
||||||
|
|
||||||
|
# What library to link
|
||||||
|
ldflags()
|
||||||
|
{
|
||||||
|
if [ `uname` == SunOS ]; then
|
||||||
|
echo '-lcurses'
|
||||||
|
else
|
||||||
|
echo '-lncurses'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Where is ncurses.h?
|
||||||
|
ccflags()
|
||||||
|
{
|
||||||
|
if [ -f /usr/include/ncurses/ncurses.h ]; then
|
||||||
|
echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
|
||||||
|
elif [ -f /usr/include/ncurses/curses.h ]; then
|
||||||
|
echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
|
||||||
|
elif [ -f /usr/include/ncurses.h ]; then
|
||||||
|
echo '-DCURSES_LOC="<ncurses.h>"'
|
||||||
|
else
|
||||||
|
echo '-DCURSES_LOC="<curses.h>"'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
compiler=""
|
||||||
|
# Check if we can link to ncurses
|
||||||
|
check() {
|
||||||
|
echo "main() {}" | $compiler -xc -
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo " *** Unable to find the ncurses libraries." 1>&2
|
||||||
|
echo " *** make menuconfig require the ncurses libraries" 1>&2
|
||||||
|
echo " *** " 1>&2
|
||||||
|
echo " *** Install ncurses (ncurses-devel) and try again" 1>&2
|
||||||
|
echo " *** " 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
printf "Usage: $0 [-check compiler options|-header|-library]\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# == 0 ]; then
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
"-check")
|
||||||
|
shift
|
||||||
|
compiler="$@"
|
||||||
|
check
|
||||||
|
;;
|
||||||
|
"-ccflags")
|
||||||
|
ccflags
|
||||||
|
;;
|
||||||
|
"-ldflags")
|
||||||
|
ldflags
|
||||||
|
;;
|
||||||
|
"*")
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
Loading…
Reference in New Issue
Block a user