kconfig: search harder for curses library in check-lxdialog.sh
[linux-2.6.git] / scripts / kconfig / lxdialog / check-lxdialog.sh
1 #!/bin/sh
2 # Check ncurses compatibility
3
4 # What library to link
5 ldflags()
6 {
7         for ext in so a dylib ; do
8                 for lib in ncursesw ncurses curses ; do
9                         $cc -print-file-name=lib${lib}.${ext} | grep -q /
10                         if [ $? -eq 0 ]; then
11                                 echo "-l${lib}"
12                                 exit
13                         fi
14                 done
15         done
16         exit 1
17 }
18
19 # Where is ncurses.h?
20 ccflags()
21 {
22         if [ -f /usr/include/ncurses/ncurses.h ]; then
23                 echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
24         elif [ -f /usr/include/ncurses/curses.h ]; then
25                 echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
26         elif [ -f /usr/include/ncurses.h ]; then
27                 echo '-DCURSES_LOC="<ncurses.h>"'
28         else
29                 echo '-DCURSES_LOC="<curses.h>"'
30         fi
31 }
32
33 # Temp file, try to clean up after us
34 tmp=.lxdialog.tmp
35 trap "rm -f $tmp" 0 1 2 3 15
36
37 # Check if we can link to ncurses
38 check() {
39         echo "main() {}" | $cc -xc - -o $tmp 2> /dev/null
40         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
47         fi
48 }
49
50 usage() {
51         printf "Usage: $0 [-check compiler options|-header|-library]\n"
52 }
53
54 if [ $# == 0 ]; then
55         usage
56         exit 1
57 fi
58
59 cc=""
60 case "$1" in
61         "-check")
62                 shift
63                 cc="$@"
64                 check
65                 ;;
66         "-ccflags")
67                 ccflags
68                 ;;
69         "-ldflags")
70                 shift
71                 cc="$@"
72                 ldflags
73                 ;;
74         "*")
75                 usage
76                 exit 1
77                 ;;
78 esac