blob: d34dfd46d902e112f8dae7278f28f71555f38746
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/ncursesw/ncurses.h ]; then |
23 | echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncurses.h>"' |
24 | elif [ -f /usr/include/ncursesw/curses.h ]; then |
25 | echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncursesw/curses.h>"' |
26 | elif [ -f /usr/include/ncurses/ncurses.h ]; then |
27 | echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"' |
28 | elif [ -f /usr/include/ncurses/curses.h ]; then |
29 | echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"' |
30 | elif [ -f /usr/include/ncurses.h ]; then |
31 | echo '-DCURSES_LOC="<ncurses.h>"' |
32 | else |
33 | echo '-DCURSES_LOC="<curses.h>"' |
34 | fi |
35 | } |
36 | |
37 | # Temp file, try to clean up after us |
38 | tmp=.lxdialog.tmp |
39 | trap "rm -f $tmp" 0 1 2 3 15 |
40 | |
41 | # Check if we can link to ncurses |
42 | check() { |
43 | $cc -xc - -o $tmp 2>/dev/null <<'EOF' |
44 | #include CURSES_LOC |
45 | main() {} |
46 | EOF |
47 | if [ $? != 0 ]; then |
48 | echo " *** Unable to find the ncurses libraries or the" 1>&2 |
49 | echo " *** required header files." 1>&2 |
50 | echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2 |
51 | echo " *** " 1>&2 |
52 | echo " *** Install ncurses (ncurses-devel) and try again." 1>&2 |
53 | echo " *** " 1>&2 |
54 | exit 1 |
55 | fi |
56 | } |
57 | |
58 | usage() { |
59 | printf "Usage: $0 [-check compiler options|-ccflags|-ldflags compiler options]\n" |
60 | } |
61 | |
62 | if [ $# -eq 0 ]; then |
63 | usage |
64 | exit 1 |
65 | fi |
66 | |
67 | cc="" |
68 | case "$1" in |
69 | "-check") |
70 | shift |
71 | cc="$@" |
72 | check |
73 | ;; |
74 | "-ccflags") |
75 | ccflags |
76 | ;; |
77 | "-ldflags") |
78 | shift |
79 | cc="$@" |
80 | ldflags |
81 | ;; |
82 | "*") |
83 | usage |
84 | exit 1 |
85 | ;; |
86 | esac |
87 |