kconfig/lxdialog/check-lxdialog.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 04 00:04:23 2011 +0200 (2011-05-04)
changeset 2608 aa09a36c3d36
parent 2125 4009fc9c47d5
permissions -rw-r--r--
scripts/functions: test for decompressors before use

./configure does check for the presence of gz and bzip2, so we can
safely use them in the build scripts.

On the other hand, more recent formats (eg. XZ) are not yet widely
available, and we do not want, and can't, force the user to install
them as a pre-requisite.

So, build up a list of allowed tarball formats based on the available
decompressors. For no, this is a static list, but the upcoming XZ
support will conditionnaly add to this list.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     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/ncursesw/curses.h ]; then
    27 		echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncursesw/curses.h>"'
    28 	elif [ -f /usr/include/ncurses.h ]; then
    29 		echo '-DCURSES_LOC="<ncurses.h>"'
    30 	else
    31 		echo '-DCURSES_LOC="<curses.h>"'
    32 	fi
    33 }
    34 
    35 # Temp file, try to clean up after us
    36 tmp=.lxdialog.tmp
    37 trap "rm -f $tmp" 0 1 2 3 15
    38 
    39 # Check if we can link to ncurses
    40 check() {
    41         $cc -xc - -o $tmp 2>/dev/null <<'EOF'
    42 #include CURSES_LOC
    43 main() {}
    44 EOF
    45 	if [ $? != 0 ]; then
    46 	    echo " *** Unable to find the ncurses libraries or the"       1>&2
    47 	    echo " *** required header files."                            1>&2
    48 	    echo " *** 'make menuconfig' requires 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|-ccflags|-ldflags compiler options]\n"
    58 }
    59 
    60 if [ $# -eq 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