aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Ravnborg <sam@mars.ravnborg.org>2006-01-08 12:39:44 -0500
committerSam Ravnborg <sam@mars.ravnborg.org>2006-01-08 12:39:44 -0500
commitae215b14bdbd459afe5f371175765fae817062a8 (patch)
tree138f8f74c5d0cca6e1fcb6f88cee3009089ccc8c
parentd51bfb7852d0e524074ad1cf04e4c3026d75d652 (diff)
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>
-rw-r--r--scripts/kconfig/lxdialog/Makefile48
-rw-r--r--scripts/kconfig/lxdialog/check-lxdialog.sh67
2 files changed, 79 insertions, 36 deletions
diff --git a/scripts/kconfig/lxdialog/Makefile b/scripts/kconfig/lxdialog/Makefile
index a45a13fb26ed..8f41d9a57aaa 100644
--- a/scripts/kconfig/lxdialog/Makefile
+++ b/scripts/kconfig/lxdialog/Makefile
@@ -1,42 +1,18 @@
1HOST_EXTRACFLAGS := -DLOCALE 1# Makefile to build lxdialog package
2ifeq ($(shell uname),SunOS) 2#
3HOST_LOADLIBES := -lcurses
4else
5HOST_LOADLIBES := -lncurses
6endif
7 3
8ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h)) 4check-lxdialog := $(srctree)/$(src)/check-lxdialog.sh
9 HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>" 5HOST_EXTRACFLAGS := $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
10else 6HOST_LOADLIBES := $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags)
11ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h)) 7
12 HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>" 8HOST_EXTRACFLAGS += -DLOCALE
13else 9
14ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h)) 10.PHONY: dochecklxdialog
15 HOST_EXTRACFLAGS += -DCURSES_LOC="<ncurses.h>" 11$(obj)/dochecklxdialog:
16else 12 $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES)
17 HOST_EXTRACFLAGS += -DCURSES_LOC="<curses.h>"
18endif
19endif
20endif
21 13
22hostprogs-y := lxdialog 14hostprogs-y := lxdialog
23always := ncurses $(hostprogs-y) 15always := $(hostprogs-y) dochecklxdialog
24 16
25lxdialog-objs := checklist.o menubox.o textbox.o yesno.o inputbox.o \ 17lxdialog-objs := checklist.o menubox.o textbox.o yesno.o inputbox.o \
26 util.o lxdialog.o msgbox.o 18 util.o lxdialog.o msgbox.o
27
28.PHONY: $(obj)/ncurses
29$(obj)/ncurses:
30 @echo "main() {}" > lxtemp.c
31 @if $(HOSTCC) lxtemp.c $(HOST_LOADLIBES); then \
32 rm -f lxtemp.c a.out; \
33 else \
34 rm -f lxtemp.c; \
35 echo -e "\007" ;\
36 echo ">> Unable to find the Ncurses libraries." ;\
37 echo ">>" ;\
38 echo ">> You must install ncurses-devel in order" ;\
39 echo ">> to use 'make menuconfig'" ;\
40 echo ;\
41 exit 1 ;\
42 fi
diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
new file mode 100644
index 000000000000..a3c141b49670
--- /dev/null
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -0,0 +1,67 @@
1#!/bin/sh
2# Check ncurses compatibility
3
4# What library to link
5ldflags()
6{
7 if [ `uname` == SunOS ]; then
8 echo '-lcurses'
9 else
10 echo '-lncurses'
11 fi
12}
13
14# Where is ncurses.h?
15ccflags()
16{
17 if [ -f /usr/include/ncurses/ncurses.h ]; then
18 echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
19 elif [ -f /usr/include/ncurses/curses.h ]; then
20 echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
21 elif [ -f /usr/include/ncurses.h ]; then
22 echo '-DCURSES_LOC="<ncurses.h>"'
23 else
24 echo '-DCURSES_LOC="<curses.h>"'
25 fi
26}
27
28compiler=""
29# Check if we can link to ncurses
30check() {
31 echo "main() {}" | $compiler -xc -
32 if [ $? != 0 ]; then
33 echo " *** Unable to find the ncurses libraries." 1>&2
34 echo " *** make menuconfig require the ncurses libraries" 1>&2
35 echo " *** " 1>&2
36 echo " *** Install ncurses (ncurses-devel) and try again" 1>&2
37 echo " *** " 1>&2
38 exit 1
39 fi
40}
41
42usage() {
43 printf "Usage: $0 [-check compiler options|-header|-library]\n"
44}
45
46if [ $# == 0 ]; then
47 usage
48 exit 1
49fi
50
51case "$1" in
52 "-check")
53 shift
54 compiler="$@"
55 check
56 ;;
57 "-ccflags")
58 ccflags
59 ;;
60 "-ldflags")
61 ldflags
62 ;;
63 "*")
64 usage
65 exit 1
66 ;;
67esac