Root/scripts/config/lxdialog/check-lxdialog.sh

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

Archive Download this file



interactive