diff options
| author | Sam Ravnborg <sam@mars.ravnborg.org> | 2006-01-08 12:39:44 -0500 |
|---|---|---|
| committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2006-01-08 12:39:44 -0500 |
| commit | ae215b14bdbd459afe5f371175765fae817062a8 (patch) | |
| tree | 138f8f74c5d0cca6e1fcb6f88cee3009089ccc8c /scripts | |
| parent | d51bfb7852d0e524074ad1cf04e4c3026d75d652 (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>
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/kconfig/lxdialog/Makefile | 48 | ||||
| -rw-r--r-- | scripts/kconfig/lxdialog/check-lxdialog.sh | 67 |
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 @@ | |||
| 1 | HOST_EXTRACFLAGS := -DLOCALE | 1 | # Makefile to build lxdialog package |
| 2 | ifeq ($(shell uname),SunOS) | 2 | # |
| 3 | HOST_LOADLIBES := -lcurses | ||
| 4 | else | ||
| 5 | HOST_LOADLIBES := -lncurses | ||
| 6 | endif | ||
| 7 | 3 | ||
| 8 | ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h)) | 4 | check-lxdialog := $(srctree)/$(src)/check-lxdialog.sh |
| 9 | HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>" | 5 | HOST_EXTRACFLAGS := $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) |
| 10 | else | 6 | HOST_LOADLIBES := $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags) |
| 11 | ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h)) | 7 | |
| 12 | HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>" | 8 | HOST_EXTRACFLAGS += -DLOCALE |
| 13 | else | 9 | |
| 14 | ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h)) | 10 | .PHONY: dochecklxdialog |
| 15 | HOST_EXTRACFLAGS += -DCURSES_LOC="<ncurses.h>" | 11 | $(obj)/dochecklxdialog: |
| 16 | else | 12 | $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES) |
| 17 | HOST_EXTRACFLAGS += -DCURSES_LOC="<curses.h>" | ||
| 18 | endif | ||
| 19 | endif | ||
| 20 | endif | ||
| 21 | 13 | ||
| 22 | hostprogs-y := lxdialog | 14 | hostprogs-y := lxdialog |
| 23 | always := ncurses $(hostprogs-y) | 15 | always := $(hostprogs-y) dochecklxdialog |
| 24 | 16 | ||
| 25 | lxdialog-objs := checklist.o menubox.o textbox.o yesno.o inputbox.o \ | 17 | lxdialog-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 | ||
| 5 | ldflags() | ||
| 6 | { | ||
| 7 | if [ `uname` == SunOS ]; then | ||
| 8 | echo '-lcurses' | ||
| 9 | else | ||
| 10 | echo '-lncurses' | ||
| 11 | fi | ||
| 12 | } | ||
| 13 | |||
| 14 | # Where is ncurses.h? | ||
| 15 | ccflags() | ||
| 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 | |||
| 28 | compiler="" | ||
| 29 | # Check if we can link to ncurses | ||
| 30 | check() { | ||
| 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 | |||
| 42 | usage() { | ||
| 43 | printf "Usage: $0 [-check compiler options|-header|-library]\n" | ||
| 44 | } | ||
| 45 | |||
| 46 | if [ $# == 0 ]; then | ||
| 47 | usage | ||
| 48 | exit 1 | ||
| 49 | fi | ||
| 50 | |||
| 51 | case "$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 | ;; | ||
| 67 | esac | ||
