120d624e672c5740faf2aa744aa7785c5edbecab
[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         $cc -print-file-name=libncursesw.so | grep -q /
8         if [ $? -eq 0 ]; then
9                 echo '-lncursesw'
10                 exit
11         fi
12         $cc -print-file-name=libncurses.so | grep -q /
13         if [ $? -eq 0 ]; then
14                 echo '-lncurses'
15                 exit
16         fi
17         $cc -print-file-name=libcurses.so | grep -q /
18         if [ $? -eq 0 ]; then
19                 echo '-lcurses'
20                 exit
21         fi
22         exit 1
23 }
24
25 # Where is ncurses.h?
26 ccflags()
27 {
28         if [ -f /usr/include/ncurses/ncurses.h ]; then
29                 echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
30         elif [ -f /usr/include/ncurses/curses.h ]; then
31                 echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
32         elif [ -f /usr/include/ncurses.h ]; then
33                 echo '-DCURSES_LOC="<ncurses.h>"'
34         else
35                 echo '-DCURSES_LOC="<curses.h>"'
36         fi
37 }
38
39 # Temp file, try to clean up after us
40 tmp=.lxdialog.tmp
41 trap "rm -f $tmp" 0 1 2 3 15
42
43 # Check if we can link to ncurses
44 check() {
45         echo "main() {}" | $cc -xc - -o $tmp 2> /dev/null
46         if [ $? != 0 ]; then
47                 echo " *** Unable to find the ncurses libraries."          1>&2
48                 echo " *** make menuconfig require the ncurses libraries"  1>&2
49                 echo " *** "                                               1>&2
50                 echo " *** Install ncurses (ncurses-devel) and try again"  1>&2
51                 echo " *** "                                               1>&2
52                 exit 1
53         fi
54 }
55
56 usage() {
57         printf "Usage: $0 [-check compiler options|-header|-library]\n"
58 }
59
60 if [ $# == 0 ]; then
61         usage
62         exit 1
63 fi
64
65 cc=""
66 case "$1" in
67         "-check")
68                 shift
69                 cc="$@"
70                 check
71                 ;;
72         "-ccflags")
73                 ccflags
74                 ;;
75         "-ldflags")
76                 shift
77                 cc="$@"
78                 ldflags
79                 ;;
80         "*")
81                 usage
82                 exit 1
83                 ;;
84 esac