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